Changes of Revision 53

handbrake.changes Changed
x
 
1
@@ -1,4 +1,16 @@
2
 -------------------------------------------------------------------
3
+Mon Feb 24 06:59:59 UTC 2025 - Manfred Hollstein <manfred.h@gmx.net>
4
+
5
+- Update to version 1.9.2:
6
+  * General
7
+    - Allowed muxing NVENC AV1 and VCN AV1 WebM container
8
+    - Fixed a crash that could happen when a source contains chapters with no
9
+      titles (#6565)
10
+  * Windows
11
+    - Fixed and issue where the audio track name would not reset on source
12
+      track change. (#6642)
13
+
14
+-------------------------------------------------------------------
15
 Thu Feb 13 16:30:21 UTC 2025 - Bjørn Lie <zaitor@opensuse.org>
16
 
17
 - Drop unused pkgconfig(webkit2gtk-4.0) BuildRequires: It was only
18
handbrake.spec Changed
10
 
1
@@ -26,7 +26,7 @@
2
 
3
 Name:           handbrake
4
 Summary:        Multithreaded Video Transcoder
5
-Version:        1.9.1
6
+Version:        1.9.2
7
 Release:        0
8
 Url:            http://handbrake.fr/
9
 Source0:        https://github.com/HandBrake/HandBrake/archive/refs/tags/%{version}.tar.gz
10
1.9.1.tar.gz/NEWS.markdown -> 1.9.2.tar.gz/NEWS.markdown Changed
21
 
1
@@ -11,6 +11,19 @@
2
 - For Arm64 (Qualcomm or other)(https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-arm64.exe)
3
 
4
 
5
+## HandBrake 1.9.2
6
+
7
+### All platforms
8
+
9
+#### General
10
+
11
+- Allowed muxing NVENC AV1 and VCN AV1 WebM container
12
+- Fixed a crash that could happen when a source contains chapters with no titles (#6565)
13
+  
14
+### Windows
15
+
16
+- Fixed and issue where the audio track name would not reset on source track change. (#6642)
17
+
18
 ## HandBrake 1.9.1
19
 
20
 ### All platforms
21
1.9.1.tar.gz/libhb/common.c -> 1.9.2.tar.gz/libhb/common.c Changed
18
 
1
@@ -287,11 +287,11 @@
2
     { { "AV1 10-bit (SVT)",            "svt_av1_10bit",    "AV1 10-bit (SVT)",               HB_VCODEC_SVT_AV1_10BIT,     HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_SVT,    },
3
     { { "AV1 (Intel QSV)",             "qsv_av1",          "AV1 (Intel Media SDK)",          HB_VCODEC_QSV_AV1,           HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_QSV,    },
4
     { { "AV1 10-bit (Intel QSV)",      "qsv_av1_10bit",    "AV1 10-bit (Intel Media SDK)",   HB_VCODEC_QSV_AV1_10BIT,     HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_QSV,    },
5
-    { { "AV1 (NVEnc)",                 "nvenc_av1",        "AV1 (NVEnc)",                    HB_VCODEC_FFMPEG_NVENC_AV1,                   HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_NVENC,  },
6
-    { { "AV1 10-bit (NVEnc)",          "nvenc_av1_10bit",  "AV1 10-bit (NVEnc)",             HB_VCODEC_FFMPEG_NVENC_AV1_10BIT,             HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_NVENC,  },
7
-    { { "AV1 (AMD VCE)",               "vce_av1",          "AV1 (AMD VCE)",                  HB_VCODEC_FFMPEG_VCE_AV1,                    HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_VCE,    },
8
-    { { "AV1 (MediaFoundation)",       "mf_av1",           "AV1 (MediaFoundation)",          HB_VCODEC_FFMPEG_MF_AV1,                      HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_MF,     },
9
-    { { "FFV1",                        "ffv1",             "FFV1 (libavcodec)",              HB_VCODEC_FFMPEG_FFV1,                                          HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_FFV1,     },
10
+    { { "AV1 (NVEnc)",                 "nvenc_av1",        "AV1 (NVEnc)",                    HB_VCODEC_FFMPEG_NVENC_AV1,  HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_NVENC,  },
11
+    { { "AV1 10-bit (NVEnc)",          "nvenc_av1_10bit",  "AV1 10-bit (NVEnc)",             HB_VCODEC_FFMPEG_NVENC_AV1_10BIT, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_NVENC,  },
12
+    { { "AV1 (AMD VCE)",               "vce_av1",          "AV1 (AMD VCE)",                  HB_VCODEC_FFMPEG_VCE_AV1,    HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_VCE,    },
13
+    { { "AV1 (MediaFoundation)",       "mf_av1",           "AV1 (MediaFoundation)",          HB_VCODEC_FFMPEG_MF_AV1,     HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_MF,     },
14
+    { { "FFV1",                        "ffv1",             "FFV1 (libavcodec)",              HB_VCODEC_FFMPEG_FFV1,                                        HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_FFV1,       },
15
     { { "H.264 (x264)",                "x264",             "H.264 (libx264)",                HB_VCODEC_X264_8BIT,                          HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_H264_X264,  },
16
     { { "H.264 10-bit (x264)",         "x264_10bit",       "H.264 10-bit (libx264)",         HB_VCODEC_X264_10BIT,                         HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_H264_X264,  },
17
     { { "H.264 (Intel QSV)",           "qsv_h264",         "H.264 (Intel Media SDK)",        HB_VCODEC_QSV_H264,                           HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_H264_QSV,   },
18
1.9.1.tar.gz/libhb/stream.c -> 1.9.2.tar.gz/libhb/stream.c Changed
51
 
1
@@ -6138,29 +6138,34 @@
2
                 chapter->seconds = ( seconds % 60 );
3
 
4
                 tag = av_dict_get( m->metadata, "title", NULL, 0 );
5
+                int valid = tag && tag->value && tag->value0;
6
 
7
-                // Detect if the chapter title is a valid UTF-8 string
8
-                char *p, *q;
9
-                size_t in_size, out_size, retval;
10
-
11
-                p = tag->value;
12
-                q = utf8_buf;
13
+                if (valid)
14
+                {
15
+                    // Detect if the chapter title is a valid UTF-8 string
16
+                    char *p, *q;
17
+                    size_t in_size, out_size, retval;
18
+
19
+                    in_size = strlen(tag->value);
20
+                    out_size = in_size;
21
+
22
+                    if (utf8_buf_size < in_size)
23
+                    {
24
+                        utf8_buf = realloc(utf8_buf, in_size + 1);
25
+                        utf8_buf_size = in_size + 1;
26
+                    }
27
 
28
-                in_size = strlen(tag->value);
29
-                out_size = in_size;
30
+                    p = tag->value;
31
+                    q = utf8_buf;
32
 
33
-                if (utf8_buf_size < in_size)
34
-                {
35
-                    utf8_buf = realloc(utf8_buf, in_size);
36
+                    retval = iconv(iconv_context, &p, &in_size, &q, &out_size);
37
+                    valid = retval != (size_t) -1;
38
                 }
39
 
40
-                retval = iconv(iconv_context, &p, &in_size, &q, &out_size);
41
-                int valid = retval != (size_t) -1;
42
-
43
                 /* Ignore generic chapter names set by MakeMKV
44
                  * ("Chapter 00" etc.).
45
                  * Our default chapter names are better. */
46
-                if( valid && tag && tag->value && tag->value0 &&
47
+                if (valid &&
48
                     ( strncmp( "Chapter ", tag->value, 8 ) ||
49
                       strlen( tag->value ) > 11 ) )
50
                 {
51
1.9.1.tar.gz/win/CS/HandBrake.App.Core/HandBrake.App.Core.csproj -> 1.9.2.tar.gz/win/CS/HandBrake.App.Core/HandBrake.App.Core.csproj Changed
12
 
1
@@ -2,8 +2,8 @@
2
 
3
    <PropertyGroup>
4
        <TargetFramework>net8.0</TargetFramework>
5
-       <FileVersion>1.9.1.0</FileVersion>
6
-       <Version>1.9.1</Version>
7
+       <FileVersion>1.9.2.0</FileVersion>
8
+       <Version>1.9.2</Version>
9
        <Authors>HandBrake Team</Authors>
10
        <Description>HandBrake is an open-source, GPL-licensed, multiplatform,video transcoder.</Description>
11
        <Copyright>Copyright © 2003-2024 HandBrake Team</Copyright>
12
1.9.1.tar.gz/win/CS/HandBrake.Interop/HandBrake.Interop.csproj -> 1.9.2.tar.gz/win/CS/HandBrake.Interop/HandBrake.Interop.csproj Changed
12
 
1
@@ -2,8 +2,8 @@
2
 
3
   <PropertyGroup>
4
     <TargetFramework>net8.0</TargetFramework>
5
-    <FileVersion>1.9.1.0</FileVersion>
6
-    <Version>1.9.1</Version>
7
+    <FileVersion>1.9.2.0</FileVersion>
8
+    <Version>1.9.2</Version>
9
     <Authors>HandBrake Team</Authors>
10
     <Description>HandBrake is an open-source, GPL-licensed, multiplatform,video transcoder.</Description>
11
     <Copyright>Copyright © 2003-2024 HandBrake Team</Copyright>
12
1.9.1.tar.gz/win/CS/HandBrake.Nsis.Installer/Installer64.nsi -> 1.9.2.tar.gz/win/CS/HandBrake.Nsis.Installer/Installer64.nsi Changed
12
 
1
@@ -5,8 +5,8 @@
2
       It may be used under the terms of the GNU General Public License. */
3
 
4
 !define PRODUCT_NAME "HandBrake"
5
-!define PRODUCT_VERSION "1.9.1"
6
-!define PRODUCT_VERSION_NUMBER "1.9.1"
7
+!define PRODUCT_VERSION "1.9.2"
8
+!define PRODUCT_VERSION_NUMBER "1.9.2"
9
 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\HandBrake.exe"
10
 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
11
 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
12
1.9.1.tar.gz/win/CS/HandBrake.Worker/HandBrake.Worker.csproj -> 1.9.2.tar.gz/win/CS/HandBrake.Worker/HandBrake.Worker.csproj Changed
21
 
1
@@ -12,7 +12,7 @@
2
     <PackageProjectUrl>https://handbrake.fr</PackageProjectUrl>
3
     <RepositoryUrl>https://github.com/HandBrake/HandBrake</RepositoryUrl>
4
     <RepositoryType>git</RepositoryType>
5
-    <AssemblyVersion>1.9.1.0</AssemblyVersion>
6
+    <AssemblyVersion>1.9.2.0</AssemblyVersion>
7
     <Platforms>AnyCPU</Platforms>
8
     <PlatformTarget>AnyCPU</PlatformTarget>
9
     <ApplicationIcon>handbrakepineapple.ico</ApplicationIcon>
10
@@ -20,8 +20,8 @@
11
     <AssemblyName>HandBrake.Worker</AssemblyName>
12
     <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
13
     <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
14
-    <FileVersion>1.9.1.0</FileVersion>
15
-    <Version>1.9.1</Version>
16
+    <FileVersion>1.9.2.0</FileVersion>
17
+    <Version>1.9.2</Version>
18
   </PropertyGroup>
19
 
20
   <ItemGroup>
21
1.9.1.tar.gz/win/CS/HandBrakeWPF/HandBrakeWPF.csproj -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/HandBrakeWPF.csproj Changed
12
 
1
@@ -14,8 +14,8 @@
2
     <PackageProjectUrl>https://handbrake.fr</PackageProjectUrl>
3
     <RepositoryUrl>https://github.com/HandBrake/HandBrake</RepositoryUrl>
4
     <RepositoryType>git</RepositoryType>
5
-    <AssemblyVersion>1.9.1.0</AssemblyVersion>
6
-    <Version>1.9.1</Version>
7
+    <AssemblyVersion>1.9.2.0</AssemblyVersion>
8
+    <Version>1.9.2</Version>
9
     <Platforms>AnyCPU</Platforms>
10
     <PlatformTarget>AnyCPU</PlatformTarget>
11
     <ApplicationIcon>handbrakepineapple.ico</ApplicationIcon>
12
1.9.1.tar.gz/win/CS/HandBrakeWPF/Services/Encode/Model/Models/AudioTrack.cs -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/Services/Encode/Model/Models/AudioTrack.cs Changed
13
 
1
@@ -374,9 +374,9 @@
2
                 this.NotifyOfPropertyChange(() => this.ScannedTrack);
3
                 this.NotifyOfPropertyChange(() => this.TrackReference);
4
 
5
-                if (string.IsNullOrEmpty(this.TrackName))
6
+                if (!string.IsNullOrEmpty(this.scannedTrack?.Name))
7
                 {
8
-                    this.TrackName = !string.IsNullOrEmpty(this.scannedTrack?.Name) ? this.scannedTrack.Name : null;
9
+                    this.TrackName = this.scannedTrack.Name;
10
                 }
11
                 
12
                 this.GetDefaultMixdownIfNull();
13
1.9.1.tar.gz/win/CS/HandBrakeWPF/Services/Logging/Interfaces/ILogInstanceManager.cs -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/Services/Logging/Interfaces/ILogInstanceManager.cs Changed
21
 
1
@@ -13,6 +13,8 @@
2
     using System.Collections.Generic;
3
 
4
     using HandBrakeWPF.Services.Logging.EventArgs;
5
+    using HandBrakeWPF.Services.Queue;
6
+    using HandBrakeWPF.Services.Queue.Interfaces;
7
 
8
     public interface ILogInstanceManager
9
     {
10
@@ -57,5 +59,10 @@
11
         /// <param name="filename">The key of the log instance</param>
12
         /// <returns>An ILog instance or null if invalid key</returns>
13
         ILog GetLogInstance(string filename);
14
+
15
+        /// <summary>
16
+        /// Set the instance of the queue that is in-use. 
17
+        /// </summary>
18
+        void SetQueue(IQueueService queueService);
19
     }
20
 }
21
1.9.1.tar.gz/win/CS/HandBrakeWPF/Services/Logging/LogInstanceManager.cs -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/Services/Logging/LogInstanceManager.cs Changed
73
 
1
@@ -13,16 +13,27 @@
2
     using System.IO;
3
     using System.Linq;
4
 
5
+    using HandBrakeWPF.Services.Interfaces;
6
     using HandBrakeWPF.Services.Logging.EventArgs;
7
     using HandBrakeWPF.Services.Logging.Interfaces;
8
+    using HandBrakeWPF.Services.Queue.Interfaces;
9
 
10
     public class LogInstanceManager : ILogInstanceManager
11
     {
12
+        private readonly IUserSettingService userSettingService;
13
+        private IQueueService queueService;
14
+
15
         private readonly object instanceLock = new object();
16
         private Dictionary<string, ILog> logInstances = new Dictionary<string, ILog>();
17
-        
18
+
19
         public event EventHandler<LogFileEventArgs> LogInstancesChanged;
20
 
21
+        public LogInstanceManager(IUserSettingService userSettingService)
22
+        {
23
+            this.queueService = null;
24
+            this.userSettingService = userSettingService;
25
+        }
26
+
27
         public ILog ApplicationLogInstance { get; private set; }
28
 
29
         public void Register(string filename, ILog log, bool isMaster)
30
@@ -58,8 +69,11 @@
31
 
32
         public void ResetApplicationLog()
33
         {
34
-            this.ApplicationLogInstance.Reset();
35
-            this.OnLogInstancesChanged(new LogFileEventArgs(this.ApplicationLogInstance.FileName, this.ApplicationLogInstance, true));
36
+            if (this.CanResetLog())
37
+            {
38
+                this.ApplicationLogInstance.Reset();
39
+                this.OnLogInstancesChanged(new LogFileEventArgs(this.ApplicationLogInstance.FileName, this.ApplicationLogInstance, true));
40
+            }
41
         }
42
 
43
         public List<string> GetLogFiles()
44
@@ -99,9 +113,28 @@
45
             return null;
46
         }
47
 
48
+        public void SetQueue(IQueueService queueService)
49
+        {
50
+            this.queueService = queueService;
51
+        }
52
+
53
         protected virtual void OnLogInstancesChanged(LogFileEventArgs e)
54
         {
55
             this.LogInstancesChanged?.Invoke(this, e);
56
         }
57
+
58
+        private bool CanResetLog()
59
+        {
60
+            // If we are running in-process and already encoding, don't allow log resets.
61
+            if (!userSettingService.GetUserSetting<bool>(UserSettingConstants.ProcessIsolationEnabled))
62
+            {
63
+                if (this.queueService.IsEncoding || this.queueService.IsPaused || this.queueService.IsProcessing)
64
+                {
65
+                    return false;
66
+                }
67
+            }
68
+
69
+            return true;
70
+        }
71
     }
72
 }
73
1.9.1.tar.gz/win/CS/HandBrakeWPF/Services/Queue/QueueService.cs -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/Services/Queue/QueueService.cs Changed
10
 
1
@@ -81,6 +81,8 @@
2
             this.logInstanceManager = logInstanceManager;
3
             this.portService = portService;
4
 
5
+            this.logInstanceManager.SetQueue(this);
6
+
7
             // If this is the first instance, just use the main queue file, otherwise add the instance id to the filename.
8
             this.queueFile = string.Format("{0}{1}.json", QueueRecoveryHelper.QueueFileName, GeneralUtilities.ProcessId);
9
 
10
1.9.1.tar.gz/win/CS/HandBrakeWPF/app.manifest -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/app.manifest Changed
9
 
1
@@ -1,6 +1,6 @@
2
 <?xml version="1.0" encoding="utf-8"?>
3
 <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
4
-  <assemblyIdentity version="1.9.1.0" name="HandBrake.app"/>
5
+  <assemblyIdentity version="1.9.2.0" name="HandBrake.app"/>
6
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
7
     <security>
8
       <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
9
1.9.1.tar.gz/win/CS/HandBrakeWPF/packages.lock.json -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/packages.lock.json Changed
19
 
1
@@ -109,7 +109,7 @@
2
       "handbrake.app.core": {
3
         "type": "Project",
4
         "dependencies": {
5
-          "HandBrake.Interop": "1.9.1, )"
6
+          "HandBrake.Interop": "1.9.2, )"
7
         }
8
       },
9
       "handbrake.interop": {
10
@@ -118,7 +118,7 @@
11
       "handbrake.worker": {
12
         "type": "Project",
13
         "dependencies": {
14
-          "HandBrake.Interop": "1.9.1, )"
15
+          "HandBrake.Interop": "1.9.2, )"
16
         }
17
       }
18
     }
19