Projects
home:manfred-h
handbrake
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 12
View file
handbrake.changes
Changed
@@ -1,4 +1,16 @@ ------------------------------------------------------------------- +Mon Feb 24 06:59:59 UTC 2025 - Manfred Hollstein <manfred.h@gmx.net> + +- Update to version 1.9.2: + * General + - Allowed muxing NVENC AV1 and VCN AV1 WebM container + - Fixed a crash that could happen when a source contains chapters with no + titles (#6565) + * Windows + - Fixed and issue where the audio track name would not reset on source + track change. (#6642) + +------------------------------------------------------------------- Thu Feb 13 16:30:21 UTC 2025 - Bjørn Lie <zaitor@opensuse.org> - Drop unused pkgconfig(webkit2gtk-4.0) BuildRequires: It was only
View file
handbrake.spec
Changed
@@ -26,7 +26,7 @@ Name: handbrake Summary: Multithreaded Video Transcoder -Version: 1.9.1 +Version: 1.9.2 Release: 0 Url: http://handbrake.fr/ Source0: https://github.com/HandBrake/HandBrake/archive/refs/tags/%{version}.tar.gz
View file
1.9.1.tar.gz/NEWS.markdown -> 1.9.2.tar.gz/NEWS.markdown
Changed
@@ -11,6 +11,19 @@ - For Arm64 (Qualcomm or other)(https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-arm64.exe) +## HandBrake 1.9.2 + +### All platforms + +#### General + +- Allowed muxing NVENC AV1 and VCN AV1 WebM container +- Fixed a crash that could happen when a source contains chapters with no titles (#6565) + +### Windows + +- Fixed and issue where the audio track name would not reset on source track change. (#6642) + ## HandBrake 1.9.1 ### All platforms
View file
1.9.1.tar.gz/libhb/common.c -> 1.9.2.tar.gz/libhb/common.c
Changed
@@ -287,11 +287,11 @@ { { "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, }, { { "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, }, { { "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, }, - { { "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, }, - { { "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, }, - { { "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, }, - { { "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, }, - { { "FFV1", "ffv1", "FFV1 (libavcodec)", HB_VCODEC_FFMPEG_FFV1, HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_FFV1, }, + { { "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, }, + { { "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, }, + { { "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, }, + { { "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, }, + { { "FFV1", "ffv1", "FFV1 (libavcodec)", HB_VCODEC_FFMPEG_FFV1, HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_FFV1, }, { { "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, }, { { "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, }, { { "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, },
View file
1.9.1.tar.gz/libhb/stream.c -> 1.9.2.tar.gz/libhb/stream.c
Changed
@@ -6138,29 +6138,34 @@ chapter->seconds = ( seconds % 60 ); tag = av_dict_get( m->metadata, "title", NULL, 0 ); + int valid = tag && tag->value && tag->value0; - // Detect if the chapter title is a valid UTF-8 string - char *p, *q; - size_t in_size, out_size, retval; - - p = tag->value; - q = utf8_buf; + if (valid) + { + // Detect if the chapter title is a valid UTF-8 string + char *p, *q; + size_t in_size, out_size, retval; + + in_size = strlen(tag->value); + out_size = in_size; + + if (utf8_buf_size < in_size) + { + utf8_buf = realloc(utf8_buf, in_size + 1); + utf8_buf_size = in_size + 1; + } - in_size = strlen(tag->value); - out_size = in_size; + p = tag->value; + q = utf8_buf; - if (utf8_buf_size < in_size) - { - utf8_buf = realloc(utf8_buf, in_size); + retval = iconv(iconv_context, &p, &in_size, &q, &out_size); + valid = retval != (size_t) -1; } - retval = iconv(iconv_context, &p, &in_size, &q, &out_size); - int valid = retval != (size_t) -1; - /* Ignore generic chapter names set by MakeMKV * ("Chapter 00" etc.). * Our default chapter names are better. */ - if( valid && tag && tag->value && tag->value0 && + if (valid && ( strncmp( "Chapter ", tag->value, 8 ) || strlen( tag->value ) > 11 ) ) {
View file
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
@@ -2,8 +2,8 @@ <PropertyGroup> <TargetFramework>net8.0</TargetFramework> - <FileVersion>1.9.1.0</FileVersion> - <Version>1.9.1</Version> + <FileVersion>1.9.2.0</FileVersion> + <Version>1.9.2</Version> <Authors>HandBrake Team</Authors> <Description>HandBrake is an open-source, GPL-licensed, multiplatform,video transcoder.</Description> <Copyright>Copyright © 2003-2024 HandBrake Team</Copyright>
View file
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
@@ -2,8 +2,8 @@ <PropertyGroup> <TargetFramework>net8.0</TargetFramework> - <FileVersion>1.9.1.0</FileVersion> - <Version>1.9.1</Version> + <FileVersion>1.9.2.0</FileVersion> + <Version>1.9.2</Version> <Authors>HandBrake Team</Authors> <Description>HandBrake is an open-source, GPL-licensed, multiplatform,video transcoder.</Description> <Copyright>Copyright © 2003-2024 HandBrake Team</Copyright>
View file
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
@@ -5,8 +5,8 @@ It may be used under the terms of the GNU General Public License. */ !define PRODUCT_NAME "HandBrake" -!define PRODUCT_VERSION "1.9.1" -!define PRODUCT_VERSION_NUMBER "1.9.1" +!define PRODUCT_VERSION "1.9.2" +!define PRODUCT_VERSION_NUMBER "1.9.2" !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\HandBrake.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM"
View file
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
@@ -12,7 +12,7 @@ <PackageProjectUrl>https://handbrake.fr</PackageProjectUrl> <RepositoryUrl>https://github.com/HandBrake/HandBrake</RepositoryUrl> <RepositoryType>git</RepositoryType> - <AssemblyVersion>1.9.1.0</AssemblyVersion> + <AssemblyVersion>1.9.2.0</AssemblyVersion> <Platforms>AnyCPU</Platforms> <PlatformTarget>AnyCPU</PlatformTarget> <ApplicationIcon>handbrakepineapple.ico</ApplicationIcon> @@ -20,8 +20,8 @@ <AssemblyName>HandBrake.Worker</AssemblyName> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath> - <FileVersion>1.9.1.0</FileVersion> - <Version>1.9.1</Version> + <FileVersion>1.9.2.0</FileVersion> + <Version>1.9.2</Version> </PropertyGroup> <ItemGroup>
View file
1.9.1.tar.gz/win/CS/HandBrakeWPF/HandBrakeWPF.csproj -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
Changed
@@ -14,8 +14,8 @@ <PackageProjectUrl>https://handbrake.fr</PackageProjectUrl> <RepositoryUrl>https://github.com/HandBrake/HandBrake</RepositoryUrl> <RepositoryType>git</RepositoryType> - <AssemblyVersion>1.9.1.0</AssemblyVersion> - <Version>1.9.1</Version> + <AssemblyVersion>1.9.2.0</AssemblyVersion> + <Version>1.9.2</Version> <Platforms>AnyCPU</Platforms> <PlatformTarget>AnyCPU</PlatformTarget> <ApplicationIcon>handbrakepineapple.ico</ApplicationIcon>
View file
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
@@ -374,9 +374,9 @@ this.NotifyOfPropertyChange(() => this.ScannedTrack); this.NotifyOfPropertyChange(() => this.TrackReference); - if (string.IsNullOrEmpty(this.TrackName)) + if (!string.IsNullOrEmpty(this.scannedTrack?.Name)) { - this.TrackName = !string.IsNullOrEmpty(this.scannedTrack?.Name) ? this.scannedTrack.Name : null; + this.TrackName = this.scannedTrack.Name; } this.GetDefaultMixdownIfNull();
View file
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
@@ -13,6 +13,8 @@ using System.Collections.Generic; using HandBrakeWPF.Services.Logging.EventArgs; + using HandBrakeWPF.Services.Queue; + using HandBrakeWPF.Services.Queue.Interfaces; public interface ILogInstanceManager { @@ -57,5 +59,10 @@ /// <param name="filename">The key of the log instance</param> /// <returns>An ILog instance or null if invalid key</returns> ILog GetLogInstance(string filename); + + /// <summary> + /// Set the instance of the queue that is in-use. + /// </summary> + void SetQueue(IQueueService queueService); } }
View file
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
@@ -13,16 +13,27 @@ using System.IO; using System.Linq; + using HandBrakeWPF.Services.Interfaces; using HandBrakeWPF.Services.Logging.EventArgs; using HandBrakeWPF.Services.Logging.Interfaces; + using HandBrakeWPF.Services.Queue.Interfaces; public class LogInstanceManager : ILogInstanceManager { + private readonly IUserSettingService userSettingService; + private IQueueService queueService; + private readonly object instanceLock = new object(); private Dictionary<string, ILog> logInstances = new Dictionary<string, ILog>(); - + public event EventHandler<LogFileEventArgs> LogInstancesChanged; + public LogInstanceManager(IUserSettingService userSettingService) + { + this.queueService = null; + this.userSettingService = userSettingService; + } + public ILog ApplicationLogInstance { get; private set; } public void Register(string filename, ILog log, bool isMaster) @@ -58,8 +69,11 @@ public void ResetApplicationLog() { - this.ApplicationLogInstance.Reset(); - this.OnLogInstancesChanged(new LogFileEventArgs(this.ApplicationLogInstance.FileName, this.ApplicationLogInstance, true)); + if (this.CanResetLog()) + { + this.ApplicationLogInstance.Reset(); + this.OnLogInstancesChanged(new LogFileEventArgs(this.ApplicationLogInstance.FileName, this.ApplicationLogInstance, true)); + } } public List<string> GetLogFiles() @@ -99,9 +113,28 @@ return null; } + public void SetQueue(IQueueService queueService) + { + this.queueService = queueService; + } + protected virtual void OnLogInstancesChanged(LogFileEventArgs e) { this.LogInstancesChanged?.Invoke(this, e); } + + private bool CanResetLog() + { + // If we are running in-process and already encoding, don't allow log resets. + if (!userSettingService.GetUserSetting<bool>(UserSettingConstants.ProcessIsolationEnabled)) + { + if (this.queueService.IsEncoding || this.queueService.IsPaused || this.queueService.IsProcessing) + { + return false; + } + } + + return true; + } } }
View file
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
@@ -81,6 +81,8 @@ this.logInstanceManager = logInstanceManager; this.portService = portService; + this.logInstanceManager.SetQueue(this); + // If this is the first instance, just use the main queue file, otherwise add the instance id to the filename. this.queueFile = string.Format("{0}{1}.json", QueueRecoveryHelper.QueueFileName, GeneralUtilities.ProcessId);
View file
1.9.1.tar.gz/win/CS/HandBrakeWPF/app.manifest -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/app.manifest
Changed
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> - <assemblyIdentity version="1.9.1.0" name="HandBrake.app"/> + <assemblyIdentity version="1.9.2.0" name="HandBrake.app"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
View file
1.9.1.tar.gz/win/CS/HandBrakeWPF/packages.lock.json -> 1.9.2.tar.gz/win/CS/HandBrakeWPF/packages.lock.json
Changed
@@ -109,7 +109,7 @@ "handbrake.app.core": { "type": "Project", "dependencies": { - "HandBrake.Interop": "1.9.1, )" + "HandBrake.Interop": "1.9.2, )" } }, "handbrake.interop": { @@ -118,7 +118,7 @@ "handbrake.worker": { "type": "Project", "dependencies": { - "HandBrake.Interop": "1.9.1, )" + "HandBrake.Interop": "1.9.2, )" } } }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.