Overview
Request 6241 (accepted)
- Update to version 1.9.1:
* General
- Fixed FFV1 pixel format selection when an hardware decoder is used
(#6565)
- Fixed an issue that could happen when chapters titles are not UTF-8
(#6489)
- Fixed gcc14 aarch64 build failures (#6463)
* Subtitles
- Improved support for SRT files with overlapping subtitles (#6155)
* Audio
- Fixed AC3 and EAC3 extradata in MKV (#6582)
* Third-party libraries
- nv-codec-headers: Harden DLL loading so that it only uses system32 for
the search path on Windows (#6548)
- Updated libraries
- libdav1d 1.5.1 (AV1 video decoding)
- HarfBuzz 10.2.0 (subtitles)
- libjpeg-turbo 3.1.0 (preview image compression)
* Windows
- Fix an issue with the autoname function not updating when title is the
only option (#6517)
- Fix an issue where the audio encoder may not display correctly after a
queue has been imported and queue item edited. This may exhibit in other
scenarios as well (#6524)
- Fix an issue with titlebar / taskbar progress erroneously showing with
multi-instance encodes (#6477)
- Fix a crash when importing chapters where there is a chapter count
mis-match (#6514)
- Fixed an issue with autoname pre/postfix option where it would apply
regardless of file path collision.
- Fixed an issue where the crop controls would not enable correctly when
editing jobs (#6614)
- Rebuild Source1 download.tar.bz2
- Created by manfred-h 2 months ago
- In state accepted
- 4 package maintainers
handbrake.changes
Changed
-------------------------------------------------------------------
+Thu Feb 13 13:24:12 UTC 2025 - Manfred Hollstein <manfred.h@gmx.net>
+
+- Update to version 1.9.1:
+ * General
+ - Fixed FFV1 pixel format selection when an hardware decoder is used
+ (#6565)
+ - Fixed an issue that could happen when chapters titles are not UTF-8
+ (#6489)
+ - Fixed gcc14 aarch64 build failures (#6463)
+ * Subtitles
+ - Improved support for SRT files with overlapping subtitles (#6155)
+ * Audio
+ - Fixed AC3 and EAC3 extradata in MKV (#6582)
+ * Third-party libraries
+ - nv-codec-headers: Harden DLL loading so that it only uses system32 for
+ the search path on Windows (#6548)
+ - Updated libraries
+ - libdav1d 1.5.1 (AV1 video decoding)
+ - HarfBuzz 10.2.0 (subtitles)
+ - libjpeg-turbo 3.1.0 (preview image compression)
+ * Windows
+ - Fix an issue with the autoname function not updating when title is the
+ only option (#6517)
+ - Fix an issue where the audio encoder may not display correctly after a
+ queue has been imported and queue item edited. This may exhibit in other
+ scenarios as well (#6524)
+ - Fix an issue with titlebar / taskbar progress erroneously showing with
+ multi-instance encodes (#6477)
+ - Fix a crash when importing chapters where there is a chapter count
+ mis-match (#6514)
+ - Fixed an issue with autoname pre/postfix option where it would apply
+ regardless of file path collision.
+ - Fixed an issue where the crop controls would not enable correctly when
+ editing jobs (#6614)
+- Rebuild Source1 download.tar.bz2
+
+-------------------------------------------------------------------
Wed Feb 12 18:55:19 UTC 2025 - Manfred Hollstein <manfred.h@gmx.net>
- Remove the _constraints file; 6G memory are not at all needed!
handbrake.spec
Changed
Name: handbrake
Summary: Multithreaded Video Transcoder
-Version: 1.9.0
+Version: 1.9.1
Release: 0
Url: http://handbrake.fr/
Source0: https://github.com/HandBrake/HandBrake/archive/refs/tags/%{version}.tar.gz
1.9.0.tar.gz/NEWS.markdown -> 1.9.1.tar.gz/NEWS.markdown
Changed
- For Arm64 (Qualcomm or other)(https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-arm64.exe)
+## HandBrake 1.9.1
+
+### All platforms
+
+#### General
+
+- Fixed FFV1 pixel format selection when an hardware decoder is used (#6565)
+- Fixed an issue that could happen when chapters titles are not UTF-8 (#6489)
+- Fixed gcc14 aarch64 build failures (#6463)
+
+#### Subtitles
+
+- Improved support for SRT files with overlapping subtitles (#6155)
+
+#### Audio
+
+- Fixed AC3 and EAC3 extradata in MKV (#6582)
+
+#### Third-party libraries
+
+- nv-codec-headers: Harden DLL loading so that it only uses system32 for the search path on Windows (#6548)
+
+- Updated libraries
+ - libdav1d 1.5.1 (AV1 video decoding)
+ - HarfBuzz 10.2.0 (subtitles)
+ - libjpeg-turbo 3.1.0 (preview image compression)
+
+### Windows
+
+- Fix an issue with the autoname function not updating when title is the only option (#6517)
+- Fix an issue where the audio encoder may not display correctly after a queue has been imported and queue item edited. This may exhibit in other scenarios as well (#6524)
+- Fix an issue with titlebar / taskbar progress erroneously showing with multi-instance encodes (#6477)
+- Fix a crash when importing chapters where there is a chapter count mis-match (#6514)
+- Fixed an issue with autoname pre/postfix option where it would apply regardless of file path collision.
+- Fixed an issue where the crop controls would not enable correctly when editing jobs (#6614)
+
+
## HandBrake 1.9.0
### All platforms
1.9.0.tar.gz/contrib/harfbuzz/module.defs -> 1.9.1.tar.gz/contrib/harfbuzz/module.defs
Changed
$(eval $(call import.MODULE.defs,HARFBUZZ,harfbuzz,$(__deps__)))
$(eval $(call import.CONTRIB.defs,HARFBUZZ))
-HARFBUZZ.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/harfbuzz-10.1.0.tar.xz
-HARFBUZZ.FETCH.url += https://github.com/harfbuzz/harfbuzz/releases/download/10.1.0/harfbuzz-10.1.0.tar.xz
-HARFBUZZ.FETCH.sha256 = 6ce3520f2d089a33cef0fc48321334b8e0b72141f6a763719aaaecd2779ecb82
+HARFBUZZ.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/harfbuzz-10.2.0.tar.xz
+HARFBUZZ.FETCH.url += https://github.com/harfbuzz/harfbuzz/releases/download/10.2.0/harfbuzz-10.2.0.tar.xz
+HARFBUZZ.FETCH.sha256 = 620e3468faec2ea8685d32c46a58469b850ef63040b3565cde05959825b48227
HARFBUZZ.build_dir = build
HARFBUZZ.CONFIGURE.exe = cmake
1.9.0.tar.gz/contrib/libdav1d/module.defs -> 1.9.1.tar.gz/contrib/libdav1d/module.defs
Changed
$(eval $(call import.MODULE.defs,LIBDAV1D,libdav1d))
$(eval $(call import.CONTRIB.defs,LIBDAV1D))
-LIBDAV1D.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/dav1d-1.5.0.tar.bz2
-LIBDAV1D.FETCH.url += https://code.videolan.org/videolan/dav1d/-/archive/1.5.0/dav1d-1.5.0.tar.bz2
-LIBDAV1D.FETCH.sha256 = a6ca64e34cec56ae1c2d359e1da5c5386ecd7a3a62f931d026ac4f2ff72ade64
+LIBDAV1D.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/dav1d-1.5.1.tar.bz2
+LIBDAV1D.FETCH.url += https://code.videolan.org/videolan/dav1d/-/archive/1.5.1/dav1d-1.5.1.tar.bz2
+LIBDAV1D.FETCH.sha256 = 4eddffd108f098e307b93c9da57b6125224dc5877b1b3d157b31be6ae8f1f093
LIBDAV1D.build_dir = build/
1.9.0.tar.gz/contrib/libjpeg-turbo/module.defs -> 1.9.1.tar.gz/contrib/libjpeg-turbo/module.defs
Changed
$(eval $(call import.MODULE.defs,LIBJPEGTURBO,libjpeg-turbo))
$(eval $(call import.CONTRIB.defs,LIBJPEGTURBO))
-LIBJPEGTURBO.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/libjpeg-turbo-3.0.4.tar.gz
-LIBJPEGTURBO.FETCH.url += https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.0.4.tar.gz
-LIBJPEGTURBO.FETCH.sha256 = 0270f9496ad6d69e743f1e7b9e3e9398f5b4d606b6a47744df4b73df50f62e38
+LIBJPEGTURBO.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/libjpeg-turbo-3.1.0.tar.gz
+LIBJPEGTURBO.FETCH.url += https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.1.0.tar.gz
+LIBJPEGTURBO.FETCH.sha256 = 35fec2e1ddfb05ecf6d93e50bc57c1e54bc81c16d611ddf6eff73fff266d8285
LIBJPEGTURBO.build_dir = build
LIBJPEGTURBO.CONFIGURE.exe = cmake
1.9.1.tar.gz/contrib/nvenc/A01-dll-harden.patch
Added
+--- nv-codec-headers-12.2.72.0/include/ffnvcodec/dynlink_loader.h
++++ nv-codec-headers-12.2.72.0/include/ffnvcodec/dynlink_loader.h
+@@ -62,7 +62,7 @@
+
+ #if !defined(FFNV_LOAD_FUNC) || !defined(FFNV_SYM_FUNC)
+ # ifdef _WIN32
+-# define FFNV_LOAD_FUNC(path) LoadLibrary(TEXT(path))
++# define FFNV_LOAD_FUNC(path) LoadLibraryExA(TEXT(path), NULL, LOAD_LIBRARY_SEARCH_SYSTEM32)
+ # define FFNV_SYM_FUNC(lib, sym) GetProcAddress((lib), (sym))
+ # define FFNV_FREE_FUNC(lib) FreeLibrary(lib)
+ # else
1.9.0.tar.gz/libhb/muxavformat.c -> 1.9.1.tar.gz/libhb/muxavformat.c
Changed
track->st->time_base = m->time_base;
}
+ // Some containers don't need metadata for some audio formats,
+ // and for some formats extradata will be generated automatically,
+ // set only what's needed
+ int need_extradata = 0;
switch (audio->config.out.codec & HB_ACODEC_MASK)
{
case HB_ACODEC_DCA:
break;
case HB_ACODEC_VORBIS:
track->st->codecpar->codec_id = AV_CODEC_ID_VORBIS;
+ need_extradata = 1;
break;
case HB_ACODEC_OPUS:
track->st->codecpar->codec_id = AV_CODEC_ID_OPUS;
+ need_extradata = 1;
break;
case HB_ACODEC_FFALAC:
case HB_ACODEC_FFALAC24:
track->st->codecpar->codec_id = AV_CODEC_ID_ALAC;
+ need_extradata = 1;
break;
case HB_ACODEC_FFFLAC:
case HB_ACODEC_FFFLAC24:
track->st->codecpar->codec_id = AV_CODEC_ID_FLAC;
+ need_extradata = 1;
break;
case HB_ACODEC_FFAAC:
case HB_ACODEC_CA_AAC:
case HB_ACODEC_FDK_AAC:
case HB_ACODEC_FDK_HAAC:
track->st->codecpar->codec_id = AV_CODEC_ID_AAC;
+ need_extradata = 1;
// AAC from pass-through source may be ADTS.
// Therefore inserting "aac_adtstoasc" bitstream filter is
goto error;
}
- if (set_extradata(audio->priv.extradata, &track->st->codecpar->extradata, &track->st->codecpar->extradata_size))
+ if (need_extradata)
{
- goto error;
+ if (set_extradata(audio->priv.extradata,
+ &track->st->codecpar->extradata,
+ &track->st->codecpar->extradata_size))
+ {
+ goto error;
+ }
}
if (track->bitstream_context != NULL)
1.9.0.tar.gz/libhb/rpu.c -> 1.9.1.tar.gz/libhb/rpu.c
Changed
// First subtract the crop values
left_offset -= left_offset > pv->crop_left ? pv->crop_left : left_offset;
right_offset -= right_offset > pv->crop_right ? pv->crop_right : right_offset;
- top_offset -= top_offset > pv->crop_top ? pv->crop_right : top_offset;
+ top_offset -= top_offset > pv->crop_top ? pv->crop_top : top_offset;
bottom_offset -= bottom_offset > pv->crop_bottom ? pv->crop_bottom : bottom_offset;
// Then rescale
1.9.0.tar.gz/libhb/stream.c -> 1.9.1.tar.gz/libhb/stream.c
Changed
#include <string.h>
#include <ctype.h>
#include <errno.h>
+#include <iconv.h>
#include "handbrake/handbrake.h"
#include "handbrake/hbffmpeg.h"
title->container_name = strdup( ic->iformat->name );
title->data_rate = ic->bit_rate;
+ iconv_t iconv_context;
+ iconv_context = iconv_open("utf-8", "utf-8");
+
+ size_t utf8_buf_size = 2048;
+ char *utf8_buf = malloc(utf8_buf_size);
+
hb_deep_log( 2, "Found ffmpeg %d chapters, container=%s", ic->nb_chapters, ic->iformat->name );
if( ic->nb_chapters != 0 )
chapter->seconds = ( seconds % 60 );
tag = av_dict_get( m->metadata, "title", NULL, 0 );
+
+ // 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;
+
+ in_size = strlen(tag->value);
+ out_size = in_size;
+
+ if (utf8_buf_size < in_size)
+ {
+ utf8_buf = realloc(utf8_buf, in_size);
+ }
+
+ 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( tag && tag->value && tag->value0 &&
+ if( valid && tag && tag->value && tag->value0 &&
( strncmp( "Chapter ", tag->value, 8 ) ||
strlen( tag->value ) > 11 ) )
{
}
}
+ iconv_close(iconv_context);
+ free(utf8_buf);
+
/*
* Fill the metadata.
*/
1.9.0.tar.gz/libhb/sync.c -> 1.9.1.tar.gz/libhb/sync.c
Changed
// marker to indicate the end of a subtitle
return;
}
- // Only SSA subs can overlap
+ // Theoretically only SSA subs can overlap,
+ // but there are some SRT subs out there with
+ // overlapping samples, so let's try to preserve them too
if (stream->subtitle.subtitle->source != SSASUB &&
stream->subtitle.subtitle->source != IMPORTSSA &&
+ stream->subtitle.subtitle->source != IMPORTSRT &&
stream->subtitle.subtitle->config.dest == PASSTHRUSUB &&
buf->s.start <= stream->last_pts)
{
1.9.0.tar.gz/libhb/templates/comb_detect_template.c -> 1.9.1.tar.gz/libhb/templates/comb_detect_template.c
Changed
mask_vec = vandq_u32(mask_vec, condition);
mask_vec = vandq_u32(mask_vec, v_one);
- vst1q_u32(&mask32, mask_vec);
+ vst1q_u32(mask32, mask_vec);
mask0 = mask320;
mask1 = mask321;
mask_vec = vandq_u32(mask_vec, condition);
mask_vec = vandq_u32(mask_vec, v_one);
- vst1q_u32(&mask32, mask_vec);
+ vst1q_u32(mask32, mask_vec);
mask0 = mask320;
mask1 = mask321;
mask_vec = vandq_u32(mask_vec, condition);
mask_vec = vandq_u32(mask_vec, v_one);
- vst1q_u32(&mask32, mask_vec);
+ vst1q_u32(mask32, mask_vec);
mask0 = mask320;
mask1 = mask321;
mask_vec = vandq_u32(mask_vec, condition);
mask_vec = vandq_u32(mask_vec, v_one);
- vst1q_u32(&mask32, mask_vec);
+ vst1q_u32(mask32, mask_vec);
mask0 = mask320;
mask1 = mask321;
1.9.0.tar.gz/libhb/templates/decomb_template.c -> 1.9.1.tar.gz/libhb/templates/decomb_template.c
Changed
result = vshrq_n_s32(result, 3);
uint32x4_t result_u32 = vreinterpretq_u32_s32(vaddq_s32(result, offset));
- vst1q_u32(&cr_table_vec, result_u32);
+ vst1q_u32(cr_table_vec, result_u32);
dstx+0 = crop_tablecr_table_vec0;
dstx+1 = crop_tablecr_table_vec1;
dstx+2 = crop_tablecr_table_vec2;
result = vshrq_n_s16(result, 3);
uint16x8_t result_u16 = vreinterpretq_u16_s16(vaddq_s16(result, offset));
- vst1q_u16(&cr_table_vec, result_u16);
+ vst1q_u16(cr_table_vec, result_u16);
dstx+0 = crop_tablecr_table_vec0;
dstx+1 = crop_tablecr_table_vec1;
dstx+2 = crop_tablecr_table_vec2;
1.9.0.tar.gz/libhb/work.c -> 1.9.1.tar.gz/libhb/work.c
Changed
#endif
}
+static enum AVPixelFormat match_pix_fmt(enum AVPixelFormat pix_fmt,
+ const enum AVPixelFormat *encoder_pix_fmts,
+ int keep_chroma,
+ int keep_depth)
+{
+ while (*encoder_pix_fmts != AV_PIX_FMT_NONE)
+ {
+ int match = 1;
+
+ const AVPixFmtDescriptor *input_desc = av_pix_fmt_desc_get(pix_fmt);
+ const AVPixFmtDescriptor *pix_fmt_desc = av_pix_fmt_desc_get(*encoder_pix_fmts);
+
+ if (keep_chroma)
+ {
+ match &= pix_fmt_desc->log2_chroma_w >= input_desc->log2_chroma_w &&
+ pix_fmt_desc->log2_chroma_h >= input_desc->log2_chroma_h;
+ }
+
+ if (keep_depth)
+ {
+ int input_depth = hb_get_bit_depth(pix_fmt);
+ int candidate_depth = hb_get_bit_depth(*encoder_pix_fmts);
+
+ match &= input_depth == candidate_depth;
+ }
+
+ if (match)
+ {
+ return *encoder_pix_fmts;
+ }
+
+ encoder_pix_fmts++;
+ }
+
+ return AV_PIX_FMT_NONE;
+}
+
static void sanitize_filter_list_post(hb_job_t *job)
{
#ifdef __APPLE__
{
// Some encoders require a specific input pixel format
// that could be different from the current pipeline format.
- const int *encoder_pix_fmts = hb_video_encoder_get_pix_fmts(job->vcodec, job->encoder_profile);
- int encoder_pix_fmt = *encoder_pix_fmts;
+ const enum AVPixelFormat *encoder_pix_fmts = hb_video_encoder_get_pix_fmts(job->vcodec,job->encoder_profile);
// Prefer a pixel format with the
- // same chroma subsampling
- while (*encoder_pix_fmts != AV_PIX_FMT_NONE)
+ // same chroma subsampling and depth
+ enum AVPixelFormat encoder_pix_fmt = match_pix_fmt(job->input_pix_fmt, encoder_pix_fmts, 1, 1);
+
+ if (encoder_pix_fmt == AV_PIX_FMT_NONE)
{
- const AVPixFmtDescriptor *input_desc = av_pix_fmt_desc_get(job->input_pix_fmt);
- const AVPixFmtDescriptor *pix_fmt_desc = av_pix_fmt_desc_get(*encoder_pix_fmts);
+ encoder_pix_fmt = match_pix_fmt(job->input_pix_fmt, encoder_pix_fmts, 1, 0);
+ }
- if (pix_fmt_desc->log2_chroma_w >= input_desc->log2_chroma_w &&
- pix_fmt_desc->log2_chroma_h >= input_desc->log2_chroma_h)
- {
- encoder_pix_fmt = *encoder_pix_fmts;
- break;
- }
- encoder_pix_fmts++;
+ if (encoder_pix_fmt == AV_PIX_FMT_NONE)
+ {
+ encoder_pix_fmt = match_pix_fmt(job->input_pix_fmt, encoder_pix_fmts, 0, 0);
}
hb_filter_object_t *filter = hb_filter_init(HB_FILTER_FORMAT);
1.9.0.tar.gz/macosx/HBTitleSelectionController.m -> 1.9.1.tar.gz/macosx/HBTitleSelectionController.m
Changed
@end
-@interface HBTitleSelectionController () <NSTableViewDataSource, NSTableViewDelegate>
+@interface HBTitleSelectionController () <NSTableViewDataSource, NSTableViewDelegate, NSMenuItemValidation>
@property (nonatomic, weak) IBOutlet HBTableView *tableView;
@property (nonatomic, weak) IBOutlet NSView *rangeView;
1.9.0.tar.gz/win/CS/HandBrake.App.Core/HandBrake.App.Core.csproj -> 1.9.1.tar.gz/win/CS/HandBrake.App.Core/HandBrake.App.Core.csproj
Changed
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
- <FileVersion>1.9.0.0</FileVersion>
- <Version>1.9.0</Version>
+ <FileVersion>1.9.1.0</FileVersion>
+ <Version>1.9.1</Version>
<Authors>HandBrake Team</Authors>
<Description>HandBrake is an open-source, GPL-licensed, multiplatform,video transcoder.</Description>
<Copyright>Copyright © 2003-2024 HandBrake Team</Copyright>
1.9.0.tar.gz/win/CS/HandBrake.Interop/HandBrake.Interop.csproj -> 1.9.1.tar.gz/win/CS/HandBrake.Interop/HandBrake.Interop.csproj
Changed
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
- <FileVersion>1.9.0.0</FileVersion>
- <Version>1.9.0</Version>
+ <FileVersion>1.9.1.0</FileVersion>
+ <Version>1.9.1</Version>
<Authors>HandBrake Team</Authors>
<Description>HandBrake is an open-source, GPL-licensed, multiplatform,video transcoder.</Description>
<Copyright>Copyright © 2003-2024 HandBrake Team</Copyright>
1.9.0.tar.gz/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBAudioEncoder.cs -> 1.9.1.tar.gz/win/CS/HandBrake.Interop/Interop/Interfaces/Model/Encoders/HBAudioEncoder.cs
Changed
return this.ShortName.Contains("flac"); // TODO Find a better way to do this.
}
}
+
+ protected bool Equals(HBAudioEncoder other)
+ {
+ return this.ShortName == other.ShortName;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj))
+ {
+ return false;
+ }
+
+ if (ReferenceEquals(this, obj))
+ {
+ return true;
+ }
+
+ if (obj.GetType() != this.GetType())
+ {
+ return false;
+ }
+
+ return Equals((HBAudioEncoder)obj);
+ }
+
+ public override int GetHashCode()
+ {
+ return (this.ShortName != null ? this.ShortName.GetHashCode() : 0);
+ }
}
}
1.9.0.tar.gz/win/CS/HandBrake.Nsis.Installer/Installer64.nsi -> 1.9.1.tar.gz/win/CS/HandBrake.Nsis.Installer/Installer64.nsi
Changed
It may be used under the terms of the GNU General Public License. */
!define PRODUCT_NAME "HandBrake"
-!define PRODUCT_VERSION "1.9.0"
-!define PRODUCT_VERSION_NUMBER "1.9.0"
+!define PRODUCT_VERSION "1.9.1"
+!define PRODUCT_VERSION_NUMBER "1.9.1"
!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"
1.9.0.tar.gz/win/CS/HandBrake.Worker/HandBrake.Worker.csproj -> 1.9.1.tar.gz/win/CS/HandBrake.Worker/HandBrake.Worker.csproj
Changed
<PackageProjectUrl>https://handbrake.fr</PackageProjectUrl>
<RepositoryUrl>https://github.com/HandBrake/HandBrake</RepositoryUrl>
<RepositoryType>git</RepositoryType>
- <AssemblyVersion>1.9.0.0</AssemblyVersion>
+ <AssemblyVersion>1.9.1.0</AssemblyVersion>
<Platforms>AnyCPU</Platforms>
<PlatformTarget>AnyCPU</PlatformTarget>
<ApplicationIcon>handbrakepineapple.ico</ApplicationIcon>
<AssemblyName>HandBrake.Worker</AssemblyName>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
- <FileVersion>1.9.0.0</FileVersion>
- <Version>1.9.0</Version>
+ <FileVersion>1.9.1.0</FileVersion>
+ <Version>1.9.1</Version>
</PropertyGroup>
<ItemGroup>
1.9.0.tar.gz/win/CS/HandBrakeWPF/HandBrakeWPF.csproj -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
Changed
<PackageProjectUrl>https://handbrake.fr</PackageProjectUrl>
<RepositoryUrl>https://github.com/HandBrake/HandBrake</RepositoryUrl>
<RepositoryType>git</RepositoryType>
- <AssemblyVersion>1.9.0.0</AssemblyVersion>
- <Version>1.9.0</Version>
+ <AssemblyVersion>1.9.1.0</AssemblyVersion>
+ <Version>1.9.1</Version>
<Platforms>AnyCPU</Platforms>
<PlatformTarget>AnyCPU</PlatformTarget>
<ApplicationIcon>handbrakepineapple.ico</ApplicationIcon>
1.9.0.tar.gz/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/Helpers/AutoNameHelper.cs
Changed
if (behaviour != AutonameFileCollisionBehaviour.AppendNumber)
{
- autoNamePath = Path.Combine(Path.GetDirectoryName(autoNamePath), prefix + filenameWithoutExt + postfix + extension);
-
- int counter = 0;
- while (File.Exists(autoNamePath))
+ if (File.Exists(autoNamePath))
{
- counter = counter + 1;
- string appendedNumber = string.Format("({0})", counter);
- autoNamePath = Path.Combine(Path.GetDirectoryName(autoNamePath), prefix + filenameWithoutExt + postfix + appendedNumber + extension);
+ autoNamePath = Path.Combine(Path.GetDirectoryName(autoNamePath), prefix + filenameWithoutExt + postfix + extension);
+
+ int counter = 0;
+ while (File.Exists(autoNamePath))
+ {
+ counter = counter + 1;
+ string appendedNumber = string.Format("({0})", counter);
+ autoNamePath = Path.Combine(Path.GetDirectoryName(autoNamePath), prefix + filenameWithoutExt + postfix + appendedNumber + extension);
+ }
}
}
else
1.9.0.tar.gz/win/CS/HandBrakeWPF/Model/ChangedOption.cs -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/Model/ChangedOption.cs
Changed
Chapters,
Dimensions,
Source,
- Preset
+ Preset,
+ Angle,
+ Title
}
}
1.9.0.tar.gz/win/CS/HandBrakeWPF/Services/SystemService.cs -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/Services/SystemService.cs
Changed
this.queueService.Pause(true);
this.storageLowPause = true;
}
+ else
+ {
+ this.storageLowPause = false;
+ }
}
}
1.9.0.tar.gz/win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/ViewModels/ChaptersViewModel.cs
Changed
List<TimeSpan> diffs = new List<TimeSpan>();
foreach (KeyValuePair<int, Tuple<string, TimeSpan>> import in importedChapters)
{
- ChapterMarker sourceMarker = this.Chaptersimport.Key - 1;
- TimeSpan source = sourceMarker.Duration;
+ int key = import.Key - 1;
- TimeSpan diff = source - import.Value.Item2;
- diffs.Add(diff);
+ if (key <= (this.Chapters.Count -1))
+ {
+ ChapterMarker sourceMarker = this.Chapterskey;
+ TimeSpan source = sourceMarker.Duration;
+ TimeSpan diff = source - import.Value.Item2;
+ diffs.Add(diff);
+ }
}
-
- // var diffs = importedChapters.Zip(this.Chapters, (import, source) => source.Duration - import.Value.Item2);
if (diffs.Count(diff => Math.Abs(diff.TotalSeconds) > 15) > 2)
{
if (this.errorService.ShowMessageBox(
1.9.0.tar.gz/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
Changed
bool is_execute = false;
- if ((autonameFormat.Contains(Constants.Source) || autonameFormat.Contains(Constants.SourcePath) || autonameFormat.Contains(Constants.SourceFolderName)) && option == ChangedOption.Source)
+ if ((autonameFormat.Contains(Constants.Source) || autonameFormat.Contains(Constants.SourcePath) || autonameFormat.Contains(Constants.SourceFolderName) || autonameFormat.Contains(Constants.Title)) && option == ChangedOption.Source)
{
is_execute = true;
}
this.windowsTaskbar.SetNoProgress();
this.ProgramStatusLabel = string.Format(Resources.Main_QueueMultiJobStatus, this.queueProcessor.CompletedCount, Environment.NewLine, queueJobStatuses.Count, this.queueProcessor.Count);
+ this.WindowTitle = Resources.HandBrake_Title; // Percentage is not available when multiple jobs are running.
+ this.windowsTaskbar.SetTaskBarProgress(0);
+
this.notifyIconService.SetTooltip(string.Format(Resources.TaskTrayStatusManyTitle, Resources.HandBrake_Title, queueJobStatuses.Count));
this.IsMultiProcess = true;
this.NotifyOfPropertyChange(() => this.IsMultiProcess);
}
- });
+ }
+ );
}
private void UserSettingServiceSettingChanged(object sender, SettingChangedEventArgs e)
1.9.0.tar.gz/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
Changed
this.NotifyOfPropertyChange(() => this.ParHeight);
this.NotifyOfPropertyChange(() => this.MaxWidth);
this.NotifyOfPropertyChange(() => this.MaxHeight);
+ this.NotifyOfPropertyChange(() => this.IsCustomCrop);
this.UpdateVisibleControls();
}
1.9.0.tar.gz/win/CS/HandBrakeWPF/app.manifest -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/app.manifest
Changed
•<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
- <assemblyIdentity version="1.9.0.0" name="HandBrake.app"/>
+ <assemblyIdentity version="1.9.1.0" name="HandBrake.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
1.9.0.tar.gz/win/CS/HandBrakeWPF/packages.lock.json -> 1.9.1.tar.gz/win/CS/HandBrakeWPF/packages.lock.json
Changed
"handbrake.app.core": {
"type": "Project",
"dependencies": {
- "HandBrake.Interop": "1.9.0, )"
+ "HandBrake.Interop": "1.9.1, )"
}
},
"handbrake.interop": {
"handbrake.worker": {
"type": "Project",
"dependencies": {
- "HandBrake.Interop": "1.9.0, )"
+ "HandBrake.Interop": "1.9.1, )"
}
}
}
version.txt
Changed
URL=https://github.com/HandBrake/HandBrake.git
-HASH=fa9154a20f3f64fdc183a097e6b63f7fd4bc6cab
-SHORTHASH=fa9154a20
-TAG=1.9.0
-TAG_HASH=fa9154a20f3f64fdc183a097e6b63f7fd4bc6cab
+HASH=3182fa5f64422d9e3a3a581210d81468bf43b568
+SHORTHASH=3182fa5f6
+TAG=1.9.1
+TAG_HASH=3182fa5f64422d9e3a3a581210d81468bf43b568
REV=0
BRANCH=
REMOTE=https://github.com/HandBrake/HandBrake.git
-DATE=2024-12-01 16:28:40 +0100
+DATE=2025-02-10 16:59:28 +0100
Request History
manfred-h created request 2 months ago
- Update to version 1.9.1:
* General
- Fixed FFV1 pixel format selection when an hardware decoder is used
(#6565)
- Fixed an issue that could happen when chapters titles are not UTF-8
(#6489)
- Fixed gcc14 aarch64 build failures (#6463)
* Subtitles
- Improved support for SRT files with overlapping subtitles (#6155)
* Audio
- Fixed AC3 and EAC3 extradata in MKV (#6582)
* Third-party libraries
- nv-codec-headers: Harden DLL loading so that it only uses system32 for
the search path on Windows (#6548)
- Updated libraries
- libdav1d 1.5.1 (AV1 video decoding)
- HarfBuzz 10.2.0 (subtitles)
- libjpeg-turbo 3.1.0 (preview image compression)
* Windows
- Fix an issue with the autoname function not updating when title is the
only option (#6517)
- Fix an issue where the audio encoder may not display correctly after a
queue has been imported and queue item edited. This may exhibit in other
scenarios as well (#6524)
- Fix an issue with titlebar / taskbar progress erroneously showing with
multi-instance encodes (#6477)
- Fix a crash when importing chapters where there is a chapter count
mis-match (#6514)
- Fixed an issue with autoname pre/postfix option where it would apply
regardless of file path collision.
- Fixed an issue where the crop controls would not enable correctly when
editing jobs (#6614)
- Rebuild Source1 download.tar.bz2
malcolmlewis accepted request 2 months ago
Looks OK to me,....