Gui: cli: libhb: generalize the mp4optimize option and enable it for mkv/webm to move cues to the front.

This commit is contained in:
Damiano Galassi 2023-08-15 08:29:18 +02:00 committed by Damiano Galassi
parent c9fc5c3636
commit ef40f60e00
32 changed files with 9519 additions and 9522 deletions

View File

@ -1268,7 +1268,6 @@ void ghb_show_container_options(signal_user_data_t *ud)
{
GtkWidget *w1, *w2, *w3;
w1 = GHB_WIDGET(ud->builder, "AlignAVStart");
w2 = GHB_WIDGET(ud->builder, "Mp4HttpOptimize");
w3 = GHB_WIDGET(ud->builder, "Mp4iPodCompatible");
const char *mux_id;
@ -1280,7 +1279,6 @@ void ghb_show_container_options(signal_user_data_t *ud)
gint enc = ghb_settings_video_encoder_codec(ud->settings, "VideoEncoder");
gtk_widget_set_visible(w1, (mux->format & HB_MUX_MASK_MP4));
gtk_widget_set_visible(w2, (mux->format & HB_MUX_MASK_MP4));
gtk_widget_set_visible(w3, (mux->format & HB_MUX_MASK_MP4) &&
(enc == HB_VCODEC_X264_8BIT));
}

View File

@ -2899,7 +2899,7 @@ Modifications will be discarded.</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="Mp4HttpOptimize">
<object class="GtkCheckButton" id="Optimize">
<property name="label" translatable="yes">Web Optimized</property>
<property name="visible">True</property>
<property name="can-focus">True</property>

View File

@ -2516,12 +2516,12 @@ Modifications will be discarded.</property>
</object>
</child>
<child>
<object class="GtkCheckButton" id="Mp4HttpOptimize">
<object class="GtkCheckButton" id="Optimize">
<property name="label" translatable="yes">Web Optimized</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Optimize the layout of the MP4 file for progressive download.
<property name="tooltip_text" translatable="yes">Optimize the layout of the file for progressive download.
This allows a player to initiate playback before downloading the entire file.</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>

View File

@ -60,16 +60,16 @@ GhbValue* ghb_get_job_chapter_list(GhbValue *settings)
return chapters;
}
GhbValue* ghb_get_job_mp4_settings(GhbValue *settings)
GhbValue* ghb_get_job_container_settings(GhbValue *settings)
{
GhbValue *dest = ghb_get_job_dest_settings(settings);
GhbValue *mp4 = ghb_dict_get(dest, "Mp4Options");
if (mp4 == NULL)
GhbValue *options = ghb_dict_get(dest, "Options");
if (options == NULL)
{
mp4 = ghb_dict_new();
ghb_dict_set(dest, "Mp4Options", mp4);
options = ghb_dict_new();
ghb_dict_set(dest, "Options", options);
}
return mp4;
return options;
}
GhbValue* ghb_get_job_source_settings(GhbValue *settings)

View File

@ -34,7 +34,7 @@ GhbValue* ghb_get_job_dest_settings(GhbValue *settings);
GhbValue* ghb_get_job_video_settings(GhbValue *settings);
GhbValue* ghb_get_job_metadata_settings(GhbValue *settings);
GhbValue* ghb_get_job_chapter_list(GhbValue *settings);
GhbValue* ghb_get_job_mp4_settings(GhbValue *settings);
GhbValue* ghb_get_job_container_settings(GhbValue *settings);
GhbValue* ghb_get_job_audio_settings(GhbValue *settings);
GhbValue* ghb_get_job_audio_list(GhbValue *settings);
GhbValue* ghb_get_job_subtitle_settings(GhbValue *settings);

View File

@ -267,7 +267,7 @@ static void queue_update_summary (GhbValue * queueDict, signal_user_data_t *ud)
if (container->format & HB_MUX_MASK_MP4)
{
ipod = ghb_dict_get_bool(uiDict, "Mp4iPodCompatible");
http = ghb_dict_get_bool(uiDict, "Mp4HttpOptimize");
http = ghb_dict_get_bool(uiDict, "Optimize");
}
sep = "\n";

View File

@ -793,7 +793,7 @@ struct hb_job_s
// faithful reproduction of the source
// stream and may have blank frames
// added or initial frames dropped.
int mp4_optimize;
int optimize;
int ipod_atom;
int indepth_scan;

File diff suppressed because it is too large Load Diff

View File

@ -656,13 +656,13 @@ hb_dict_t* hb_job_to_dict( const hb_job_t * job )
{
hb_dict_set(dest_dict, "File", hb_value_string(job->file));
}
if (job->mux & HB_MUX_MASK_MP4)
if (job->mux)
{
hb_dict_t *mp4_dict;
mp4_dict = json_pack_ex(&error, 0, "{s:o, s:o}",
"Mp4Optimize", hb_value_bool(job->mp4_optimize),
hb_dict_t *options_dict;
options_dict = json_pack_ex(&error, 0, "{s:o, s:o}",
"Optimize", hb_value_bool(job->optimize),
"IpodAtom", hb_value_bool(job->ipod_atom));
hb_dict_set(dest_dict, "Mp4Options", mp4_dict);
hb_dict_set(dest_dict, "Options", options_dict);
}
hb_dict_t *source_dict = hb_dict_get(dict, "Source");
hb_dict_t *range_dict;
@ -1122,7 +1122,7 @@ hb_job_t* hb_dict_to_job( hb_handle_t * h, hb_dict_t *dict )
"s:i,"
// Destination {File, Mux, InlineParameterSets, AlignAVStart,
// ChapterMarkers, ChapterList,
// Mp4Options {Mp4Optimize, IpodAtom}}
// Options {Optimize, IpodAtom}}
"s:{s?s, s:o, s?b, s?b, s:b, s?o s?{s?b, s?b}},"
// Source {Angle, Range {Type, Start, End, SeekPoints}}
"s:{s?i, s?{s:s, s?I, s?I, s?I}},"
@ -1165,8 +1165,8 @@ hb_job_t* hb_dict_to_job( hb_handle_t * h, hb_dict_t *dict )
"AlignAVStart", unpack_b(&job->align_av_start),
"ChapterMarkers", unpack_b(&job->chapter_markers),
"ChapterList", unpack_o(&chapter_list),
"Mp4Options",
"Mp4Optimize", unpack_b(&job->mp4_optimize),
"Options",
"Optimize", unpack_b(&job->optimize),
"IpodAtom", unpack_b(&job->ipod_atom),
"Source",
"Angle", unpack_i(&job->angle),

View File

@ -185,7 +185,7 @@ static int avformatInit( hb_mux_object_t * m )
av_dict_set(&av_opts, "brand", "mp42", 0);
av_dict_set(&av_opts, "strict", "experimental", 0);
if (job->mp4_optimize)
if (job->optimize)
av_dict_set(&av_opts, "movflags", "faststart+disable_chpl+write_colr", 0);
else
av_dict_set(&av_opts, "movflags", "+disable_chpl+write_colr", 0);
@ -199,6 +199,10 @@ static int avformatInit( hb_mux_object_t * m )
muxer_name = "matroska";
meta_mux = META_MUX_MKV;
av_dict_set(&av_opts, "default_mode", "passthrough", 0);
if (job->optimize)
{
av_dict_set(&av_opts, "cues_to_front", "1", 0);
}
break;
case HB_MUX_AV_WEBM:
@ -209,6 +213,10 @@ static int avformatInit( hb_mux_object_t * m )
muxer_name = "webm";
meta_mux = META_MUX_WEBM;
av_dict_set(&av_opts, "default_mode", "passthrough", 0);
if (job->optimize)
{
av_dict_set(&av_opts, "cues_to_front", "1", 0);
}
break;
default:

View File

@ -1955,16 +1955,16 @@ int hb_preset_apply_mux(const hb_dict_t *preset, hb_dict_t *job_dict)
hb_dict_set(dest_dict, "InlineParameterSets",
hb_value_xform(hb_dict_get(preset, "InlineParameterSets"),
HB_VALUE_TYPE_BOOL));
if (mux & HB_MUX_MASK_MP4)
if (mux)
{
hb_dict_t *mp4_dict = hb_dict_init();
hb_dict_set(mp4_dict, "Mp4Optimize",
hb_value_xform(hb_dict_get(preset, "Mp4HttpOptimize"),
hb_dict_t *options_dict = hb_dict_init();
hb_dict_set(options_dict, "Optimize",
hb_value_xform(hb_dict_get(preset, "Optimize"),
HB_VALUE_TYPE_BOOL));
hb_dict_set(mp4_dict, "IpodAtom",
hb_dict_set(options_dict, "IpodAtom",
hb_value_xform(hb_dict_get(preset, "Mp4iPodCompatible"),
HB_VALUE_TYPE_BOOL));
hb_dict_set(dest_dict, "Mp4Options", mp4_dict);
hb_dict_set(dest_dict, "Options", options_dict);
}
return 0;
@ -2795,6 +2795,12 @@ static void und_to_any(hb_value_array_t * list)
}
}
static void import_container_settings_51_0_0(hb_value_t *preset)
{
int optimize = hb_dict_get_bool(preset, "Mp4HttpOptimize");
hb_dict_set_bool(preset, "Optimize", optimize);
}
static void import_video_pass_settings_50_0_0(hb_value_t *preset)
{
int two_pass = hb_dict_get_bool(preset, "VideoTwoPass");
@ -3499,6 +3505,11 @@ static void import_video_0_0_0(hb_value_t *preset)
}
}
static void import_51_0_0(hb_value_t *preset)
{
import_container_settings_51_0_0(preset);
}
static void import_50_0_0(hb_value_t *preset)
{
import_video_pass_settings_50_0_0(preset);
@ -3667,6 +3678,11 @@ static int preset_import(hb_value_t *preset, int major, int minor, int micro)
import_50_0_0(preset);
result = 1;
}
else if (cmpVersion(major, minor, micro, 51, 0, 0) <= 0)
{
import_51_0_0(preset);
result = 1;
}
preset_clean(preset, hb_preset_template);
}

View File

@ -433,12 +433,16 @@ void hb_display_job_info(hb_job_t *job)
switch (job->mux)
{
case HB_MUX_AV_MP4:
if (job->mp4_optimize)
if (job->optimize)
hb_log(" + optimized for HTTP streaming (fast start)");
if (job->ipod_atom)
hb_log(" + compatibility atom for iPod 5G");
break;
case HB_MUX_AV_MKV:
case HB_MUX_AV_WEBM:
if (job->optimize)
hb_log(" + optimized for HTTP streaming (cues to the front)");
break;
default:
break;
}

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="18122" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22152" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="18122"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22152"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
@ -33,7 +33,7 @@
<stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Vuy-Er-bln">
<rect key="frame" x="0.0" y="80" width="218" height="16"/>
<subviews>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bpr-UY-4al" userLabel="Format">
<textField focusRingType="none" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bpr-UY-4al" userLabel="Format">
<rect key="frame" x="-2" y="1" width="45" height="14"/>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Format:" id="RXJ-DZ-4mh">
<font key="font" metaFont="smallSystem"/>
@ -46,9 +46,6 @@
</textField>
<popUpButton toolTip="Container format. Video, audio, and other tracks are combined into a single file of this type. Affects compatibility." verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="txV-1R-WoD">
<rect key="frame" x="45" y="-4" width="177" height="22"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="140" id="em9-IL-zmS"/>
</constraints>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="clipping" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="4NR-1i-weK" id="tqd-2J-YTU">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -58,6 +55,9 @@
</items>
</menu>
</popUpButtonCell>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="140" id="em9-IL-zmS"/>
</constraints>
<connections>
<accessibilityConnection property="title" destination="bpr-UY-4al" id="2Lk-cn-fRD"/>
<binding destination="-2" name="enabled" keyPath="self.job" id="vIZ-WQ-JdM">
@ -103,7 +103,7 @@
</button>
<button translatesAutoresizingMaskIntoConstraints="NO" id="lUi-Oc-208">
<rect key="frame" x="-1" y="39" width="102" height="16"/>
<string key="toolTip">Optimize MP4 for progressive download. After encoding, data is reorganized and rewritten to allow immediate playback over a network, without needing to download the entire file.</string>
<string key="toolTip">Optimize for progressive download. After encoding, data is reorganized and rewritten to allow immediate playback over a network, without needing to download the entire file.</string>
<buttonCell key="cell" type="check" title="Web Optimized" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" inset="2" id="wcc-5d-Dgj">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -114,12 +114,7 @@
<string key="NSValueTransformerName">NSIsNotNil</string>
</dictionary>
</binding>
<binding destination="-2" name="value" keyPath="self.job.mp4HttpOptimize" id="LYj-Km-ze0"/>
<binding destination="-2" name="hidden" keyPath="self.job.mp4OptionsEnabled" previousBinding="IF3-Zz-8Fc" id="PQl-de-g6C">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="-2" name="value" keyPath="self.job.optimize" id="E5v-QJ-Bhj"/>
</connections>
</button>
<button translatesAutoresizingMaskIntoConstraints="NO" id="fPv-Vw-I89">
@ -194,7 +189,7 @@
<stackView distribution="fill" orientation="horizontal" alignment="top" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="u22-zk-2gT">
<rect key="frame" x="0.0" y="54" width="259" height="14"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GCn-2c-Fql" userLabel="Tracks">
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GCn-2c-Fql" userLabel="Tracks">
<rect key="frame" x="-2" y="0.0" width="45" height="14"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Tracks:" id="3mF-Bb-Gon">
<font key="font" metaFont="smallSystem"/>
@ -205,7 +200,7 @@
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="oGS-ya-5m8"/>
</connections>
</textField>
<textField horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="yRE-5c-FhX">
<textField focusRingType="none" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="yRE-5c-FhX">
<rect key="frame" x="47" y="0.0" width="214" height="14"/>
<constraints>
<constraint firstAttribute="width" constant="210" id="gqV-xA-TUl"/>
@ -233,7 +228,7 @@
<stackView distribution="fill" orientation="horizontal" alignment="top" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PVH-BQ-dOC">
<rect key="frame" x="0.0" y="27" width="259" height="14"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0kh-Uy-Yo3" userLabel="Filters">
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0kh-Uy-Yo3" userLabel="Filters">
<rect key="frame" x="-2" y="0.0" width="45" height="14"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Filters:" id="OCw-f6-uA0">
<font key="font" metaFont="smallSystem"/>
@ -244,7 +239,7 @@
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="Y59-Gp-EZi"/>
</connections>
</textField>
<textField horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="BHq-Mt-3eA">
<textField focusRingType="none" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="BHq-Mt-3eA">
<rect key="frame" x="47" y="0.0" width="214" height="14"/>
<textFieldCell key="cell" controlSize="mini" selectable="YES" sendsActionOnEndEditing="YES" title="None" id="RIB-ME-Yhh">
<font key="font" metaFont="smallSystem"/>
@ -269,7 +264,7 @@
<stackView distribution="fill" orientation="horizontal" alignment="top" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8JZ-RV-cxj">
<rect key="frame" x="0.0" y="0.0" width="259" height="14"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jgq-K8-z3W" userLabel="Size">
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jgq-K8-z3W" userLabel="Size">
<rect key="frame" x="-2" y="0.0" width="45" height="14"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Size:" id="B4a-co-0ly">
<font key="font" metaFont="smallSystem"/>
@ -280,7 +275,7 @@
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="EMw-0U-JBu"/>
</connections>
</textField>
<textField horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Jaw-pH-rhf">
<textField focusRingType="none" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Jaw-pH-rhf">
<rect key="frame" x="47" y="0.0" width="214" height="14"/>
<textFieldCell key="cell" controlSize="mini" selectable="YES" sendsActionOnEndEditing="YES" title="None" id="xmy-Jl-mR4">
<font key="font" metaFont="smallSystem"/>
@ -346,28 +341,5 @@
</constraints>
<point key="canvasLocation" x="-88.5" y="-145"/>
</customView>
<button id="JNB-kV-52S">
<rect key="frame" x="0.0" y="0.0" width="102" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<string key="toolTip">Optimize MP4 for progressive download. After encoding, data is reorganized and rewritten to allow immediate playback over a network, without needing to download the entire file.</string>
<buttonCell key="cell" type="check" title="Web Optimized" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" inset="2" id="ma8-UR-dx2">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
<connections>
<binding destination="-2" name="enabled" keyPath="self.job" id="GM1-ep-4mM">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNotNil</string>
</dictionary>
</binding>
<binding destination="-2" name="value" keyPath="self.job.mp4HttpOptimize" id="oQw-Gl-n8O"/>
<binding destination="-2" name="hidden" keyPath="self.job.mp4OptionsEnabled" previousBinding="GM1-ep-4mM" id="JOB-2s-UOH">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
</connections>
<point key="canvasLocation" x="-211" y="-402"/>
</button>
</objects>
</document>

View File

@ -101,7 +101,7 @@
job->mux = self.container;
job->vcodec = self.video.encoder;
job->mp4_optimize = self.mp4HttpOptimize;
job->optimize = self.optimize;
if (self.container & HB_MUX_MASK_MP4)
{

View File

@ -248,7 +248,7 @@ static HBMixdownTransformer *mixdownTransformer;
[options appendString:HBKitLocalizedString(@", Chapter Markers", @"Format description")];
}
if ((self.container & HB_MUX_MASK_MP4) && self.mp4HttpOptimize)
if (self.optimize)
{
[options appendString:HBKitLocalizedString(@", Web Optimized", @"Format description")];
}

View File

@ -62,7 +62,7 @@ typedef NS_ENUM(NSUInteger, HBJobHardwareDecoderUsage) {
@property (nonatomic, readwrite) int angle;
// Container options
@property (nonatomic, readwrite) BOOL mp4HttpOptimize;
@property (nonatomic, readwrite) BOOL optimize;
@property (nonatomic, readwrite) BOOL mp4iPodCompatible;
@property (nonatomic, readwrite) BOOL alignAVStart;

View File

@ -98,7 +98,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
self.container = hb_container_get_from_name([preset[@"FileFormat"] UTF8String]);
// MP4 specifics options.
self.mp4HttpOptimize = [preset[@"Mp4HttpOptimize"] boolValue];
self.optimize = [preset[@"Optimize"] boolValue];
self.mp4iPodCompatible = [preset[@"Mp4iPodCompatible"] boolValue];
self.alignAVStart = [preset[@"AlignAVStart"] boolValue];
@ -133,7 +133,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
preset[@"FileFormat"] = @(hb_container_get_short_name(self.container));
// MP4 specifics options.
preset[@"Mp4HttpOptimize"] = @(self.mp4HttpOptimize);
preset[@"Optimize"] = @(self.optimize);
preset[@"AlignAVStart"] = @(self.alignAVStart);
preset[@"Mp4iPodCompatible"] = @(self.mp4iPodCompatible);
@ -262,13 +262,13 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
self.range.title = title;
}
- (void)setMp4HttpOptimize:(BOOL)mp4HttpOptimize
- (void)setOptimize:(BOOL)optimize
{
if (mp4HttpOptimize != _mp4HttpOptimize)
if (optimize != _optimize)
{
[[self.undo prepareWithInvocationTarget:self] setMp4HttpOptimize:_mp4HttpOptimize];
[[self.undo prepareWithInvocationTarget:self] setOptimize:_optimize];
}
_mp4HttpOptimize = mp4HttpOptimize;
_optimize = optimize;
[[NSNotificationCenter defaultCenter] postNotificationName:HBContainerChangedNotification object:self];
}
@ -393,7 +393,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
copy->_container = _container;
copy->_angle = _angle;
copy->_mp4HttpOptimize = _mp4HttpOptimize;
copy->_optimize = _optimize;
copy->_mp4iPodCompatible = _mp4iPodCompatible;
copy->_alignAVStart = _alignAVStart;
@ -462,7 +462,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
encodeInt(_container);
encodeInt(_angle);
encodeBool(_mp4HttpOptimize);
encodeBool(_optimize);
encodeBool(_mp4iPodCompatible);
encodeBool(_alignAVStart);
@ -502,7 +502,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
decodeInt(_container); if (_container != HB_MUX_MP4 && _container != HB_MUX_MKV && _container != HB_MUX_WEBM) { goto fail; }
decodeInt(_angle); if (_angle < 0) { goto fail; }
decodeBool(_mp4HttpOptimize);
decodeBool(_optimize);
decodeBool(_mp4iPodCompatible);
decodeBool(_alignAVStart);

View File

@ -105,7 +105,7 @@
XCTAssertEqualObjects(self.job.presetName, self.modifiedJob.presetName);
XCTAssertEqual(self.job.container, self.modifiedJob.container);
XCTAssertEqual(self.job.mp4HttpOptimize, self.modifiedJob.mp4HttpOptimize);
XCTAssertEqual(self.job.optimize, self.modifiedJob.optimize);
XCTAssertEqual(self.job.mp4iPodCompatible, self.modifiedJob.mp4iPodCompatible);
XCTAssertEqual(self.job.angle, self.modifiedJob.angle);

View File

@ -34,7 +34,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -144,7 +144,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -254,7 +254,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -363,7 +363,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -472,7 +472,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -581,7 +581,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -690,7 +690,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -800,7 +800,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -910,7 +910,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1019,7 +1019,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1128,7 +1128,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1237,7 +1237,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1359,7 +1359,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1482,7 +1482,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1606,7 +1606,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1729,7 +1729,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1852,7 +1852,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -1975,7 +1975,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2098,7 +2098,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2222,7 +2222,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2346,7 +2346,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2469,7 +2469,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2592,7 +2592,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2715,7 +2715,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2831,7 +2831,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -2940,7 +2940,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3049,7 +3049,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3158,7 +3158,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3267,7 +3267,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3376,7 +3376,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3485,7 +3485,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3594,7 +3594,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3703,7 +3703,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3812,7 +3812,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -3921,7 +3921,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4051,7 +4051,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4174,7 +4174,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4283,7 +4283,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4392,7 +4392,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4501,7 +4501,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4610,7 +4610,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4719,7 +4719,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4842,7 +4842,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -4965,7 +4965,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5088,7 +5088,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5211,7 +5211,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5334,7 +5334,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5457,7 +5457,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5580,7 +5580,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5703,7 +5703,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": true,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5824,7 +5824,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -5947,7 +5947,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6056,7 +6056,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6165,7 +6165,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6291,7 +6291,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6414,7 +6414,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6537,7 +6537,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6646,7 +6646,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6755,7 +6755,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6878,7 +6878,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -6993,7 +6993,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7102,7 +7102,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7211,7 +7211,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7320,7 +7320,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7429,7 +7429,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7538,7 +7538,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7647,7 +7647,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7756,7 +7756,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7865,7 +7865,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -7974,7 +7974,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8083,7 +8083,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8191,7 +8191,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8299,7 +8299,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8407,7 +8407,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8515,7 +8515,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8623,7 +8623,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
@ -8739,7 +8739,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -8848,7 +8848,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -8957,7 +8957,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9066,7 +9066,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9175,7 +9175,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9284,7 +9284,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9393,7 +9393,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9502,7 +9502,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9611,7 +9611,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9727,7 +9727,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9836,7 +9836,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -9945,7 +9945,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,
@ -10054,7 +10054,7 @@
"Folder": false,
"FolderOpen": false,
"InlineParameterSets": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 2,
"PictureBottomCrop": 0,

View File

@ -1,6 +1,6 @@
<resources>
<section name="PresetTemplate">
<integer name="VersionMajor" value="51" />
<integer name="VersionMajor" value="52" />
<integer name="VersionMinor" value="0" />
<integer name="VersionMicro" value="0" />
<json name="Preset" file="preset_template.json" />

View File

@ -39,7 +39,7 @@
"FileFormat": "mp4",
"Folder": false,
"FolderOpen": false,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,

View File

@ -40,7 +40,7 @@
"FolderOpen": false,
"InlineParameterSets": false,
"MetadataPassthrough": true,
"Mp4HttpOptimize": false,
"Optimize": false,
"Mp4iPodCompatible": false,
"PictureAllowUpscaling": false,
"PictureUseMaximumSize": true,

View File

@ -192,7 +192,7 @@ static char * preset_export_file = NULL;
static char * preset_name = NULL;
static char * queue_import_name = NULL;
static int cfr = -1;
static int mp4_optimize = -1;
static int optimize = -1;
static int ipod_atom = -1;
static int color_matrix_code = -1;
static int preview_count = 10;
@ -1387,8 +1387,8 @@ static void ShowHelp(void)
" default: auto-detected from destination file name)\n"
" -m, --markers Add chapter markers\n"
" --no-markers Disable preset chapter markers\n"
" -O, --optimize Optimize MP4 files for HTTP streaming (fast start,\n"
" s.s. rewrite file to place MOOV atom at beginning)\n"
" -O, --optimize Optimize files for HTTP streaming (fast start,\n"
" s.s. rewrite file to place MOOV atom or cues at beginning)\n"
" --no-optimize Disable preset 'optimize'\n"
" -I, --ipod-atom Add iPod 5G compatibility atom to MP4 container\n"
" --no-ipod-atom Disable iPod 5G atom\n"
@ -2247,7 +2247,7 @@ static int ParseOptions( int argc, char ** argv )
{ "input", required_argument, NULL, 'i' },
{ "output", required_argument, NULL, 'o' },
{ "optimize", no_argument, NULL, 'O' },
{ "no-optimize", no_argument, &mp4_optimize, 0 },
{ "no-optimize", no_argument, &optimize, 0 },
{ "ipod-atom", no_argument, NULL, 'I' },
{ "no-ipod-atom",no_argument, &ipod_atom, 0 },
@ -2527,7 +2527,7 @@ static int ParseOptions( int argc, char ** argv )
output = strdup( optarg );
break;
case 'O':
mp4_optimize = 1;
optimize = 1;
break;
case 'I':
ipod_atom = 1;
@ -3715,9 +3715,9 @@ static hb_dict_t * PreparePreset(const char *preset_name)
{
hb_dict_set(preset, "FileFormat", hb_value_string(format));
}
if (mp4_optimize != -1)
if (optimize != -1)
{
hb_dict_set(preset, "Mp4HttpOptimize", hb_value_bool(mp4_optimize));
hb_dict_set(preset, "Optimize", hb_value_bool(optimize));
}
if (ipod_atom != -1)
{

View File

@ -37,9 +37,9 @@ namespace HandBrake.Interop.Interop.Json.Encode
public string File { get; set; }
/// <summary>
/// Gets or sets the mp 4 options.
/// Gets or sets the options.
/// </summary>
public Mp4Options Mp4Options { get; set; }
public Options Options { get; set; }
/// <summary>
/// Gets or sets the mux.

View File

@ -1,5 +1,5 @@
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Mp4Options.cs" company="HandBrake Project (https://handbrake.fr)">
// <copyright file="Options.cs" company="HandBrake Project (https://handbrake.fr)">
// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
// </copyright>
// <summary>
@ -10,9 +10,9 @@
namespace HandBrake.Interop.Interop.Json.Encode
{
/// <summary>
/// The mp 4 options.
/// The options.
/// </summary>
public class Mp4Options
public class Options
{
/// <summary>
/// Gets or sets a value indicating whether ipod atom.
@ -20,8 +20,8 @@ namespace HandBrake.Interop.Interop.Json.Encode
public bool IpodAtom { get; set; }
/// <summary>
/// Gets or sets a value indicating whether mp 4 optimize.
/// Gets or sets a value indicating whether optimize.
/// </summary>
public bool Mp4Optimize { get; set; }
public bool Optimize { get; set; }
}
}

View File

@ -77,9 +77,9 @@ namespace HandBrake.Interop.Interop.Json.Presets
public bool FolderOpen { get; set; }
/// <summary>
/// Gets or sets a value indicating whether mp 4 http optimize.
/// Gets or sets a value indicating whether optimize.
/// </summary>
public bool Mp4HttpOptimize { get; set; }
public bool Optimize { get; set; }
/// <summary>
/// Gets or sets a value indicating whether mp 4 i pod compatible.

View File

@ -428,7 +428,7 @@ namespace HandBrakeWPF.Properties {
}
/// <summary>
/// Looks up a localized string similar to Optimize MP4 for progressive download. After encoding, data is reorganized and rewritten to allow immediate playback over a network, without needing to download the entire file..
/// Looks up a localized string similar to Optimize for progressive download. After encoding, data is reorganized and rewritten to allow immediate playback over a network, without needing to download the entire file..
/// </summary>
public static string MainView_Optimise {
get {

View File

@ -111,10 +111,10 @@ namespace HandBrakeWPF.Services.Encode.Factories
Destination destination = new Destination
{
File = job.Destination,
Mp4Options = new Mp4Options
Options = new Options
{
IpodAtom = job.VideoEncoder.IsH264 ? job.IPod5GSupport : false,
Mp4Optimize = job.OptimizeMP4
Optimize = job.Optimize
},
ChapterMarkers = job.IncludeChapterMarkers,
AlignAVStart = job.AlignAVStart,

View File

@ -148,7 +148,7 @@ namespace HandBrakeWPF.Services.Encode.Model
/* Container */
this.IPod5GSupport = task.IPod5GSupport;
this.OutputFormat = task.OutputFormat;
this.OptimizeMP4 = task.OptimizeMP4;
this.Optimize = task.Optimize;
this.AlignAVStart = task.AlignAVStart;
/* Other */
@ -177,7 +177,7 @@ namespace HandBrakeWPF.Services.Encode.Model
public OutputFormat OutputFormat { get; set; }
public bool OptimizeMP4 { get; set; }
public bool Optimize { get; set; }
public bool IPod5GSupport { get; set; }

View File

@ -56,7 +56,7 @@ namespace HandBrakeWPF.Services.Presets.Factories
// Step 1, Create the EncodeTask Object that can be loaded into the UI.
/* Output Settings */
preset.Task.OptimizeMP4 = importedPreset.Mp4HttpOptimize;
preset.Task.Optimize = importedPreset.Optimize;
preset.Task.IPod5GSupport = importedPreset.Mp4iPodCompatible;
preset.Task.OutputFormat = GetFileFormat(importedPreset.FileFormat.Replace("file", string.Empty).Trim());
preset.Task.AlignAVStart = importedPreset.AlignAVStart;
@ -541,7 +541,7 @@ namespace HandBrakeWPF.Services.Presets.Factories
// Output Settings
preset.FileFormat = EnumHelper<OutputFormat>.GetShortName(export.Task.OutputFormat);
preset.Mp4HttpOptimize = export.Task.OptimizeMP4;
preset.Optimize = export.Task.Optimize;
preset.Mp4iPodCompatible = export.Task.IPod5GSupport;
preset.AlignAVStart = export.Task.AlignAVStart;
preset.MetadataPassthrough = export.Task.MetaData?.PassthruMetadataEnabled ?? false;

View File

@ -264,22 +264,22 @@ namespace HandBrakeWPF.ViewModels
}
/// <summary>
/// Optimise MP4 Checkbox
/// Optimise Checkbox
/// </summary>
public bool OptimizeMP4
public bool Optimize
{
get
{
return this.Task?.OptimizeMP4 ?? false;
return this.Task?.Optimize ?? false;
}
set
{
if (value == this.Task.OptimizeMP4)
if (value == this.Task.Optimize)
{
return;
}
this.Task.OptimizeMP4 = value;
this.NotifyOfPropertyChange(() => this.OptimizeMP4);
this.Task.Optimize = value;
this.NotifyOfPropertyChange(() => this.Optimize);
this.OnTabStatusChanged(null);
}
}
@ -363,7 +363,7 @@ namespace HandBrakeWPF.ViewModels
this.NotifyOfPropertyChange(() => this.IsMkvOrWebm);
this.NotifyOfPropertyChange(() => this.IsIpodAtomVisible);
this.NotifyOfPropertyChange(() => this.OptimizeMP4);
this.NotifyOfPropertyChange(() => this.Optimize);
this.NotifyOfPropertyChange(() => this.IPod5GSupport);
this.NotifyOfPropertyChange(() => this.AlignAVStart);
this.NotifyOfPropertyChange(() => this.MetadataPassthru);
@ -376,7 +376,7 @@ namespace HandBrakeWPF.ViewModels
return false;
}
if (preset.Task.OptimizeMP4 != this.OptimizeMP4)
if (preset.Task.Optimize != this.Optimize)
{
return false;
}
@ -478,7 +478,7 @@ namespace HandBrakeWPF.ViewModels
{
// Main Window Settings
this.SelectedOutputFormat = selectedPreset.Task.OutputFormat;
this.OptimizeMP4 = selectedPreset.Task.OptimizeMP4;
this.Optimize = selectedPreset.Task.Optimize;
this.IPod5GSupport = selectedPreset.Task.IPod5GSupport;
this.AlignAVStart = selectedPreset.Task.AlignAVStart;
this.MetadataPassthru = selectedPreset.Task?.MetaData.PassthruMetadataEnabled ?? false;
@ -503,7 +503,6 @@ namespace HandBrakeWPF.ViewModels
// Now disable controls that are not required. The Following are for MP4 only!
if (newExtension == ".mkv" || newExtension == ".webm")
{
this.OptimizeMP4 = false;
this.IPod5GSupport = false;
this.AlignAVStart = false;
}

View File

@ -61,7 +61,7 @@
<StackPanel Orientation="Vertical" Grid.Row="1" Grid.Column="1">
<CheckBox Name="WebOptimized" VerticalAlignment="Center" HorizontalAlignment="Left"
Content="{x:Static Properties:Resources.MainView_WebOptimized}"
IsChecked="{Binding Path=OptimizeMP4}"
IsChecked="{Binding Path=Optimize}"
ToolTip="{x:Static Properties:ResourcesTooltips.MainView_Optimise}"
Visibility="{Binding IsMkvOrWebm, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
<CheckBox Name="AlignAVStart" VerticalAlignment="Center" HorizontalAlignment="Left"