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