Default = track.Default,\r
FileName = track.SrtFileName,\r
LanguageCode = track.SrtLang,\r
- Offset = track.SrtOffset\r
+ Offset = track.SrtOffset,\r
+ BurnedIn = track.Burned\r
});\r
}\r
else\r
\r
namespace HandBrake.Interop.Json.Encode\r
{\r
+ using System;\r
+\r
/// <summary>\r
/// The video.\r
/// </summary>\r
public int Bitrate { get; set; }\r
\r
/// <summary>\r
- /// Gets or sets the number of passes\r
+ /// Gets or sets a value indicating whether two pass.\r
/// </summary>\r
- public int pass { get; set; }\r
+ public bool TwoPass { get; set; }\r
\r
/// <summary>\r
/// Gets or sets Turbo First Pass. For x264/5\r
\r
foreach (SourceSubtitle item in job.Subtitles.SourceSubtitles)\r
{\r
- SubtitleList track = new SubtitleList\r
- {\r
- Burn = item.BurnedIn, \r
- Default = item.Default, \r
- Force = item.Forced, \r
- ID = item.TrackNumber, \r
- Track = item.TrackNumber\r
- };\r
-\r
- subtitle.SubtitleList.Add(track);\r
+ // Handle Foreign Audio Search\r
+ if (item.TrackNumber == 0)\r
+ {\r
+ subtitle.Search.Enable = true;\r
+ subtitle.Search.Burn = item.BurnedIn;\r
+ subtitle.Search.Default = item.Default;\r
+ subtitle.Search.Forced = item.Forced;\r
+ }\r
+ else\r
+ {\r
+ SubtitleList track = new SubtitleList { Burn = item.BurnedIn, Default = item.Default, Force = item.Forced, ID = item.TrackNumber, Track = item.TrackNumber };\r
+ subtitle.SubtitleList.Add(track);\r
+ }\r
}\r
\r
foreach (SrtSubtitle item in job.Subtitles.SrtSubtitles)\r
{\r
SubtitleList track = new SubtitleList\r
{\r
+ Track = -1, // Indicates SRT\r
Default = item.Default, \r
Offset = item.Offset, \r
+ Burn = item.BurnedIn,\r
SRT =\r
new SRT\r
{\r
video.Codec = videoEncoder.Id;\r
}\r
\r
+ video.TwoPass = job.EncodingProfile.TwoPass;\r
+ video.Turbo = job.EncodingProfile.TurboFirstPass;\r
video.Level = job.EncodingProfile.VideoLevel;\r
video.Options = job.EncodingProfile.VideoOptions;\r
video.Preset = job.EncodingProfile.VideoPreset;\r
\r
if (e.Args.Any(f => f.Equals("--enable-libhb")))\r
{\r
- AppArguments.EnableLibHB = true;\r
+ AppArguments.UseLibHb = true;\r
}\r
\r
base.OnStartup(e);\r
/// <summary>\r
/// Gets or sets a value indicating whether enable lib hb.\r
/// </summary>\r
- public static bool EnableLibHB { get; set; }\r
+ public static bool UseLibHb { get; set; }\r
}\r
}\r
/// </param>\r
public EncodeServiceWrapper(IUserSettingService userSettingService)\r
{\r
- var useLibHb = AppArguments.EnableLibHB ? AppArguments.EnableLibHB : userSettingService.GetUserSetting<bool>(UserSettingConstants.EnableLibHb);\r
+ var useLibHb = AppArguments.UseLibHb ? AppArguments.UseLibHb : userSettingService.GetUserSetting<bool>(UserSettingConstants.UseLibHb);\r
var useProcessIsolation =\r
userSettingService.GetUserSetting<bool>(UserSettingConstants.EnableProcessIsolation);\r
var port = userSettingService.GetUserSetting<string>(UserSettingConstants.ServerPort);\r
catch (Exception exc)\r
{\r
// Try to recover from errors.\r
- userSettingService.SetUserSetting(UserSettingConstants.EnableLibHb, false);\r
throw new GeneralApplicationException(\r
"Unable to initialise LibHB or Background worker service",\r
"Falling back to using HandBrakeCLI.exe. Setting has been reset",\r
/// <summary>\r
/// Enable the use of LibHb instead of HandBrakeCLI\r
/// </summary>\r
- public const string EnableLibHb = "EnableLibHb";\r
+ public const string UseLibHb = "UseLibHb";\r
\r
/// <summary>\r
/// Growl Encodes\r
int.TryParse(userSettingService.GetUserSetting<string>(UserSettingConstants.ServerPort), out port);\r
this.ServerPort = port;\r
this.EnableProcessIsolation = userSettingService.GetUserSetting<bool>(UserSettingConstants.EnableProcessIsolation);\r
- this.EnableLibHb = userSettingService.GetUserSetting<bool>(UserSettingConstants.EnableLibHb);\r
+ this.EnableLibHb = userSettingService.GetUserSetting<bool>(UserSettingConstants.UseLibHb);\r
}\r
\r
/// <summary>\r
userSettingService.SetUserSetting(UserSettingConstants.DisableLibDvdNav, this.DisableLibdvdNav);\r
userSettingService.SetUserSetting(UserSettingConstants.EnableProcessIsolation, this.EnableProcessIsolation);\r
userSettingService.SetUserSetting(UserSettingConstants.ServerPort, this.ServerPort.ToString(CultureInfo.InvariantCulture));\r
- userSettingService.SetUserSetting(UserSettingConstants.EnableLibHb, this.EnableLibHb);\r
+ userSettingService.SetUserSetting(UserSettingConstants.UseLibHb, this.EnableLibHb);\r
}\r
\r
/// <summary>\r
\r
<StackPanel Orientation="Vertical" Margin="0,10,0,20" Visibility="Visible">\r
\r
- <TextBlock Text="Alpha Features" FontSize="14" Margin="0,0,0,10"/>\r
+ <TextBlock Text="Encode Engine" FontSize="14" Margin="0,0,0,10"/>\r
\r
<StackPanel Orientation="Vertical" Margin="20,0,0,0">\r
\r
- <CheckBox Content="Use LibHB for Encoding (uses hb.dll instead of HandBrakeCLI.exe)" Margin="0,5,0,0" IsChecked="{Binding EnableLibHb}" />\r
+ <CheckBox Content="Use LibHB instead of HandBrakeCLI.exe for encoding." Margin="0,5,0,5" IsChecked="{Binding EnableLibHb}" />\r
+ <TextBlock Text="LibHB" FontWeight="Bold" />\r
+ <TextBlock Text="Accessing LibHB directly, allows the app to pause and restart encodes. Process isolation is not currently supported, so a crash will prevent the rest of the queue from completing."\r
+ TextWrapping="Wrap" Margin="10,0,10,5"/>\r
+ <TextBlock Text="HandBrakeCLI.exe" FontWeight="Bold" />\r
+ <TextBlock Text="Using HandBrakeCLI.exe provides process isolation so a crash during an encode won't prevent the rest of the queue from completing. You won't however be able to pause encodes."\r
+ TextWrapping="Wrap" Margin="10,0,10,5"/>\r
+ \r
+ \r
<CheckBox Content="Enable Process Isolation (Run Encodes via an intermediate service)" Margin="20,10,0,0" IsChecked="{Binding EnableProcessIsolation}" Visibility="Collapsed" />\r
<StackPanel Orientation="Horizontal" Margin="0,10,0,0" Visibility="Collapsed">\r
<TextBlock Text="Server Port:" VerticalAlignment="Center" />\r
</item>\r
<item>\r
<key>\r
- <string>EnableLibHb</string>\r
+ <string>UseLibHb</string>\r
</key>\r
<value>\r
- <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>\r
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>\r
</value>\r
</item>\r
<item>\r