From 04392778932f7e6f424039f30d775ac4e1fd7b2b Mon Sep 17 00:00:00 2001 From: sr55 Date: Sun, 11 Jan 2015 18:12:28 +0000 Subject: [PATCH] WinGui: Make LibHB a first class citizen for encoding. (Now on by default). Update for JSON API changes. Bug fixes in subtitles and twopass encoding. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6732 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- .../Utilities/InteropModelCreator.cs | 3 ++- .../HandBrakeInterop/Json/Encode/Video.cs | 6 +++-- .../Json/Factories/EncodeFactory.cs | 27 ++++++++++++------- win/CS/HandBrakeWPF/App.xaml.cs | 2 +- win/CS/HandBrakeWPF/AppArguments.cs | 2 +- .../Services/EncodeServiceWrapper.cs | 3 +-- win/CS/HandBrakeWPF/UserSettingConstants.cs | 2 +- .../ViewModels/OptionsViewModel.cs | 4 +-- win/CS/HandBrakeWPF/Views/OptionsView.xaml | 12 +++++++-- win/CS/HandBrakeWPF/defaultsettings.xml | 4 +-- 10 files changed, 41 insertions(+), 24 deletions(-) diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/InteropModelCreator.cs b/win/CS/HandBrake.ApplicationServices/Utilities/InteropModelCreator.cs index d7b018145..91eaa28f3 100644 --- a/win/CS/HandBrake.ApplicationServices/Utilities/InteropModelCreator.cs +++ b/win/CS/HandBrake.ApplicationServices/Utilities/InteropModelCreator.cs @@ -230,7 +230,8 @@ namespace HandBrake.ApplicationServices.Utilities Default = track.Default, FileName = track.SrtFileName, LanguageCode = track.SrtLang, - Offset = track.SrtOffset + Offset = track.SrtOffset, + BurnedIn = track.Burned }); } else diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Encode/Video.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Encode/Video.cs index a92253d7b..461397eb2 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Encode/Video.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Encode/Video.cs @@ -9,6 +9,8 @@ namespace HandBrake.Interop.Json.Encode { + using System; + /// /// The video. /// @@ -30,9 +32,9 @@ namespace HandBrake.Interop.Json.Encode public int Bitrate { get; set; } /// - /// Gets or sets the number of passes + /// Gets or sets a value indicating whether two pass. /// - public int pass { get; set; } + public bool TwoPass { get; set; } /// /// Gets or sets Turbo First Pass. For x264/5 diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Factories/EncodeFactory.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Factories/EncodeFactory.cs index 88bae4116..ebfee5c21 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Factories/EncodeFactory.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Json/Factories/EncodeFactory.cs @@ -170,24 +170,29 @@ namespace HandBrake.Interop.Json.Factories foreach (SourceSubtitle item in job.Subtitles.SourceSubtitles) { - SubtitleList track = new SubtitleList - { - Burn = item.BurnedIn, - Default = item.Default, - Force = item.Forced, - ID = item.TrackNumber, - Track = item.TrackNumber - }; - - subtitle.SubtitleList.Add(track); + // Handle Foreign Audio Search + if (item.TrackNumber == 0) + { + subtitle.Search.Enable = true; + subtitle.Search.Burn = item.BurnedIn; + subtitle.Search.Default = item.Default; + subtitle.Search.Forced = item.Forced; + } + else + { + SubtitleList track = new SubtitleList { Burn = item.BurnedIn, Default = item.Default, Force = item.Forced, ID = item.TrackNumber, Track = item.TrackNumber }; + subtitle.SubtitleList.Add(track); + } } foreach (SrtSubtitle item in job.Subtitles.SrtSubtitles) { SubtitleList track = new SubtitleList { + Track = -1, // Indicates SRT Default = item.Default, Offset = item.Offset, + Burn = item.BurnedIn, SRT = new SRT { @@ -223,6 +228,8 @@ namespace HandBrake.Interop.Json.Factories video.Codec = videoEncoder.Id; } + video.TwoPass = job.EncodingProfile.TwoPass; + video.Turbo = job.EncodingProfile.TurboFirstPass; video.Level = job.EncodingProfile.VideoLevel; video.Options = job.EncodingProfile.VideoOptions; video.Preset = job.EncodingProfile.VideoPreset; diff --git a/win/CS/HandBrakeWPF/App.xaml.cs b/win/CS/HandBrakeWPF/App.xaml.cs index a744d859c..ce13693ab 100644 --- a/win/CS/HandBrakeWPF/App.xaml.cs +++ b/win/CS/HandBrakeWPF/App.xaml.cs @@ -68,7 +68,7 @@ namespace HandBrakeWPF if (e.Args.Any(f => f.Equals("--enable-libhb"))) { - AppArguments.EnableLibHB = true; + AppArguments.UseLibHb = true; } base.OnStartup(e); diff --git a/win/CS/HandBrakeWPF/AppArguments.cs b/win/CS/HandBrakeWPF/AppArguments.cs index 107eb7e5c..ecd47fb35 100644 --- a/win/CS/HandBrakeWPF/AppArguments.cs +++ b/win/CS/HandBrakeWPF/AppArguments.cs @@ -22,6 +22,6 @@ namespace HandBrakeWPF /// /// Gets or sets a value indicating whether enable lib hb. /// - public static bool EnableLibHB { get; set; } + public static bool UseLibHb { get; set; } } } diff --git a/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs b/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs index 7c679d033..b63cd3d68 100644 --- a/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs +++ b/win/CS/HandBrakeWPF/Services/EncodeServiceWrapper.cs @@ -49,7 +49,7 @@ namespace HandBrakeWPF.Services /// public EncodeServiceWrapper(IUserSettingService userSettingService) { - var useLibHb = AppArguments.EnableLibHB ? AppArguments.EnableLibHB : userSettingService.GetUserSetting(UserSettingConstants.EnableLibHb); + var useLibHb = AppArguments.UseLibHb ? AppArguments.UseLibHb : userSettingService.GetUserSetting(UserSettingConstants.UseLibHb); var useProcessIsolation = userSettingService.GetUserSetting(UserSettingConstants.EnableProcessIsolation); var port = userSettingService.GetUserSetting(UserSettingConstants.ServerPort); @@ -70,7 +70,6 @@ namespace HandBrakeWPF.Services catch (Exception exc) { // Try to recover from errors. - userSettingService.SetUserSetting(UserSettingConstants.EnableLibHb, false); throw new GeneralApplicationException( "Unable to initialise LibHB or Background worker service", "Falling back to using HandBrakeCLI.exe. Setting has been reset", diff --git a/win/CS/HandBrakeWPF/UserSettingConstants.cs b/win/CS/HandBrakeWPF/UserSettingConstants.cs index 18a410bb3..e2e258c00 100644 --- a/win/CS/HandBrakeWPF/UserSettingConstants.cs +++ b/win/CS/HandBrakeWPF/UserSettingConstants.cs @@ -109,7 +109,7 @@ namespace HandBrakeWPF /// /// Enable the use of LibHb instead of HandBrakeCLI /// - public const string EnableLibHb = "EnableLibHb"; + public const string UseLibHb = "UseLibHb"; /// /// Growl Encodes diff --git a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs index 38c1dcd55..51e30fdb1 100644 --- a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs @@ -1567,7 +1567,7 @@ namespace HandBrakeWPF.ViewModels int.TryParse(userSettingService.GetUserSetting(UserSettingConstants.ServerPort), out port); this.ServerPort = port; this.EnableProcessIsolation = userSettingService.GetUserSetting(UserSettingConstants.EnableProcessIsolation); - this.EnableLibHb = userSettingService.GetUserSetting(UserSettingConstants.EnableLibHb); + this.EnableLibHb = userSettingService.GetUserSetting(UserSettingConstants.UseLibHb); } /// @@ -1630,7 +1630,7 @@ namespace HandBrakeWPF.ViewModels userSettingService.SetUserSetting(UserSettingConstants.DisableLibDvdNav, this.DisableLibdvdNav); userSettingService.SetUserSetting(UserSettingConstants.EnableProcessIsolation, this.EnableProcessIsolation); userSettingService.SetUserSetting(UserSettingConstants.ServerPort, this.ServerPort.ToString(CultureInfo.InvariantCulture)); - userSettingService.SetUserSetting(UserSettingConstants.EnableLibHb, this.EnableLibHb); + userSettingService.SetUserSetting(UserSettingConstants.UseLibHb, this.EnableLibHb); } /// diff --git a/win/CS/HandBrakeWPF/Views/OptionsView.xaml b/win/CS/HandBrakeWPF/Views/OptionsView.xaml index 900a7af7d..f2fe2fa02 100644 --- a/win/CS/HandBrakeWPF/Views/OptionsView.xaml +++ b/win/CS/HandBrakeWPF/Views/OptionsView.xaml @@ -328,11 +328,19 @@ - + - + + + + + + + diff --git a/win/CS/HandBrakeWPF/defaultsettings.xml b/win/CS/HandBrakeWPF/defaultsettings.xml index 5525a2e05..afffb4c8a 100644 --- a/win/CS/HandBrakeWPF/defaultsettings.xml +++ b/win/CS/HandBrakeWPF/defaultsettings.xml @@ -386,10 +386,10 @@ - EnableLibHb + UseLibHb - false + true -- 2.40.0