/// </summary>\r
public bool ChapterMarkers { get; set; }\r
\r
+ /// <summary>\r
+ /// Use Legacy A/V Alignment rather than Edit Lists.\r
+ /// </summary>\r
+ public bool AlignAVStart { get; set; }\r
+\r
/// <summary>\r
/// Gets or sets the file.\r
/// </summary>\r
/// </summary>\r
public class HBPreset\r
{\r
+ public bool AlignAVStart { get; set; }\r
+\r
/// <summary>\r
/// Gets or sets the audio copy mask.\r
/// </summary>\r
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to Aligns the initial timestamps of all audio and video streams by inserting blank frames or dropping frames. May improve audio/video sync for broken players that do not honor MP4 edit lists..\r
+ /// </summary>\r
+ public static string MainView_AlignAVStart {\r
+ get {\r
+ return ResourceManager.GetString("MainView_AlignAVStart", resourceCulture);\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized string similar to Video angle to encode. Only applicable to multi-angle DVD and Blu-ray..\r
/// </summary>\r
\r
Lapsharp's Sprite tune is useful for 1-/4-/8-/16-bit 2-dimensional games. Sprite uses a 4-neighbor Laplacian kernel that enhances vertical and horizontal edges more than diagonal edges.</value>\r
</data>\r
+ <data name="MainView_AlignAVStart" xml:space="preserve">\r
+ <value>Aligns the initial timestamps of all audio and video streams by inserting blank frames or dropping frames. May improve audio/video sync for broken players that do not honor MP4 edit lists.</value>\r
+ </data>\r
</root>
\ No newline at end of file
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to Align A/V Start.\r
+ /// </summary>\r
+ public static string MainView_AlignAVStart {\r
+ get {\r
+ return ResourceManager.GetString("MainView_AlignAVStart", resourceCulture);\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized string similar to Angle.\r
/// </summary>\r
<data name="FiltersView_Sharpen" xml:space="preserve">\r
<value>Sharpen</value>\r
</data>\r
+ <data name="MainView_AlignAVStart" xml:space="preserve">\r
+ <value>Align A/V Start</value>\r
+ </data>\r
</root>
\ No newline at end of file
Mp4Optimize = job.OptimizeMP4
},
ChapterMarkers = job.IncludeChapterMarkers,
+ AlignAVStart = job.AlignAVStart,
Mux = HBFunctions.hb_container_get_from_name(job.OutputFormat == OutputFormat.Mp4 ? "av_mp4" : "av_mkv"), // TODO tidy up.
ChapterList = new List<Chapter>()
};
this.ChapterNames.Add(new ChapterMarker(track));
}
+ this.AlignAVStart = task.AlignAVStart;
this.ChapterMarkersFilePath = task.ChapterMarkersFilePath;
this.Cropping = new Cropping(task.Cropping);
this.CustomDecomb = task.CustomDecomb;
/// </summary>
public bool IPod5GSupport { get; set; }
+ public bool AlignAVStart { get; set; }
+
#endregion
#region Picture
preset.Task.OptimizeMP4 = importedPreset.Mp4HttpOptimize;\r
preset.Task.IPod5GSupport = importedPreset.Mp4iPodCompatible;\r
preset.Task.OutputFormat = GetFileFormat(importedPreset.FileFormat.Replace("file", string.Empty).Trim()); // TOOD null check.\r
+ preset.Task.AlignAVStart = importedPreset.AlignAVStart;\r
\r
/* Picture Settings */\r
preset.PictureSettingsMode = (PresetPictureSettingsMode)importedPreset.UsesPictureSettings;\r
preset.FileFormat = EnumHelper<OutputFormat>.GetShortName(export.Task.OutputFormat);\r
preset.Mp4HttpOptimize = export.Task.OptimizeMP4;\r
preset.Mp4iPodCompatible = export.Task.IPod5GSupport;\r
+ preset.AlignAVStart = export.Task.AlignAVStart;\r
\r
// Picture Settings\r
preset.PictureForceHeight = 0; // TODO\r
this.OptimizeMP4 = selectedPreset.Task.OptimizeMP4;\r
this.IPod5GSupport = selectedPreset.Task.IPod5GSupport;\r
this.SelectedOutputFormat = selectedPreset.Task.OutputFormat;\r
+ this.AlignAVStart = selectedPreset.Task.AlignAVStart;\r
\r
// Tab Settings\r
this.PictureSettingsViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
}\r
}\r
\r
+ public bool AlignAVStart\r
+ {\r
+ get\r
+ {\r
+ return this.CurrentTask.AlignAVStart;\r
+ }\r
+ set\r
+ {\r
+ if (value == this.CurrentTask.AlignAVStart)\r
+ {\r
+ return;\r
+ }\r
+ this.CurrentTask.AlignAVStart = value;\r
+ this.NotifyOfPropertyChange(() => this.AlignAVStart);\r
+ }\r
+ }\r
+\r
/// <summary>\r
/// Gets or sets The Current Encode Task that the user is building\r
/// </summary>\r
this.IsMkv = true;\r
this.CurrentTask.OptimizeMP4 = false;\r
this.CurrentTask.IPod5GSupport = false;\r
+ this.CurrentTask.AlignAVStart = false;\r
\r
this.NotifyOfPropertyChange(() => this.OptimizeMP4);\r
this.NotifyOfPropertyChange(() => this.IPod5GSupport);\r
+ this.NotifyOfPropertyChange(() => this.AlignAVStart); \r
}\r
\r
// Update The browse file extension display\r
IsChecked="{Binding Path=IPod5GSupport}"\r
Visibility="{Binding IsMkv,\r
Converter={StaticResource boolToVisConverter},\r
- ConverterParameter=true}"\r
- />\r
+ ConverterParameter=true}" />\r
+\r
+ <CheckBox Name="AlignAVStart"\r
+ Margin="8,0,0,0"\r
+ VerticalAlignment="Center"\r
+ Content="{x:Static Properties:ResourcesUI.MainView_AlignAVStart}"\r
+ ToolTip="{x:Static Properties:ResourcesTooltips.MainView_AlignAVStart}"\r
+ IsChecked="{Binding Path=AlignAVStart}"\r
+ Visibility="{Binding IsMkv,\r
+ Converter={StaticResource boolToVisConverter},\r
+ ConverterParameter=true}" />\r
</StackPanel>\r
</StackPanel>\r
\r