/// </summary>\r
public bool DisableQuickSyncDecoding { get; set; }\r
\r
+ /// <summary>\r
+ /// Gets or sets a value indicating whether use qsv decode for non qsv enc.\r
+ /// </summary>\r
+ public bool UseQSVDecodeForNonQSVEnc { get; set; }\r
+\r
/// <summary>\r
/// Gets or sets the scaling mode.\r
/// </summary>\r
{\r
IsDvdNavDisabled = UserSettingService.GetUserSetting<bool>(UserSettingConstants.DisableLibDvdNav), \r
DisableQuickSyncDecoding = UserSettingService.GetUserSetting<bool>(UserSettingConstants.DisableQuickSyncDecoding), \r
+ UseQSVDecodeForNonQSVEnc = UserSettingService.GetUserSetting<bool>(UserSettingConstants.UseQSVDecodeForNonQSVEnc),\r
ScalingMode = UserSettingService.GetUserSetting<VideoScaler>(UserSettingConstants.ScalingMode), \r
PreviewScanCount = UserSettingService.GetUserSetting<int>(UserSettingConstants.PreviewScanCount), \r
Verbosity = UserSettingService.GetUserSetting<int>(UserSettingConstants.Verbosity), \r
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to Use QSV Decoding for non QSV encoders..\r
+ /// </summary>\r
+ public static string Options_QsvDecodeForNonFullPath {\r
+ get {\r
+ return ResourceManager.GetString("Options_QsvDecodeForNonFullPath", resourceCulture);\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized string similar to Remove common punctuation.\r
/// </summary>\r
<data name="ManagePresetView_ManagePreset" xml:space="preserve">\r
<value>Manage Preset</value>\r
</data>\r
+ <data name="Options_QsvDecodeForNonFullPath" xml:space="preserve">\r
+ <value>Use QSV Decoding for non QSV encoders.</value>\r
+ </data>\r
</root>
\ No newline at end of file
video.QSV.Decode = SystemInfo.IsQsvAvailable && !configuration.DisableQuickSyncDecoding;
+ // The use of the QSV decoder is configurable for non QSV encoders.
+ if (video.QSV.Decode && job.VideoEncoder != VideoEncoder.QuickSync && job.VideoEncoder != VideoEncoder.QuickSyncH265)
+ {
+ video.QSV.Decode = configuration.UseQSVDecodeForNonQSVEnc;
+ }
+
return video;
}
/// </summary>\r
public const string DisableQuickSyncDecoding = "DisableQuickSyncDecoding";\r
\r
+ /// <summary>\r
+ /// Setting indicating whether to use qsv decode for non qsv encoders\r
+ /// </summary>\r
+ public const string UseQSVDecodeForNonQSVEnc = "UseQSVDecodeForNonQSVEnc";\r
+\r
/// <summary>\r
/// The scaling mode.\r
/// </summary>\r
private bool showQueueInline;\r
private bool pauseOnLowDiskspace;\r
\r
+ private bool useQsvDecodeForNonQsvEnc;\r
+\r
#endregion\r
\r
#region Constructors and Destructors\r
}\r
this.disableQuickSyncDecoding = value;\r
this.NotifyOfPropertyChange(() => this.DisableQuickSyncDecoding);\r
+ this.NotifyOfPropertyChange(() => this.IsUseQsvDecAvailable);\r
}\r
}\r
\r
}\r
}\r
\r
+ /// <summary>\r
+ /// Gets a value indicating whether is use qsv dec available.\r
+ /// </summary>\r
+ public bool IsUseQsvDecAvailable\r
+ {\r
+ get\r
+ {\r
+ return IsQuickSyncAvailable && !this.DisableQuickSyncDecoding;\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// Gets or sets a value indicating whether to use qsv decode for non qsv encoders\r
+ /// </summary>\r
+ public bool UseQSVDecodeForNonQSVEnc\r
+ {\r
+ get\r
+ {\r
+ return this.useQsvDecodeForNonQsvEnc;\r
+ }\r
+ set\r
+ {\r
+ if (value == this.useQsvDecodeForNonQsvEnc) return;\r
+ this.useQsvDecodeForNonQsvEnc = value;\r
+ this.NotifyOfPropertyChange(() => this.UseQSVDecodeForNonQSVEnc);\r
+ }\r
+ }\r
+\r
/// <summary>\r
/// Gets the scaling options.\r
/// </summary>\r
// #############################\r
this.DisableQuickSyncDecoding = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.DisableQuickSyncDecoding);\r
this.SelectedScalingMode = this.userSettingService.GetUserSetting<VideoScaler>(UserSettingConstants.ScalingMode);\r
+ this.UseQSVDecodeForNonQSVEnc = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.UseQSVDecodeForNonQSVEnc);\r
\r
// #############################\r
// CLI\r
/* Video */\r
this.userSettingService.SetUserSetting(UserSettingConstants.DisableQuickSyncDecoding, this.DisableQuickSyncDecoding);\r
this.userSettingService.SetUserSetting(UserSettingConstants.ScalingMode, this.SelectedScalingMode);\r
+ this.userSettingService.SetUserSetting(UserSettingConstants.UseQSVDecodeForNonQSVEnc, this.UseQSVDecodeForNonQSVEnc);\r
\r
/* System and Logging */\r
userSettingService.SetUserSetting(UserSettingConstants.ProcessPriority, this.SelectedPriority);\r
\r
<StackPanel Orientation="Vertical" Margin="20,10,0,0">\r
<CheckBox Content="{x:Static Properties:ResourcesUI.Options_QsvDecode}" IsEnabled="{Binding IsQuickSyncAvailable}" IsChecked="{Binding DisableQuickSyncDecoding}" />\r
+ <CheckBox Content="{x:Static Properties:ResourcesUI.Options_QsvDecodeForNonFullPath}" IsEnabled="{Binding IsUseQsvDecAvailable}" IsChecked="{Binding UseQSVDecodeForNonQSVEnc}" />\r
<TextBlock Text="{x:Static Properties:Resources.Video_QuickSyncNotAvailable}" Margin="17,2,0,0" TextWrapping="Wrap"\r
Visibility="{Binding IsQuickSyncAvailable, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />\r
</StackPanel>\r
<anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">3</anyType>\r
</value>\r
</item>\r
+ <item>\r
+ <key>\r
+ <string>UseQSVDecodeForNonQSVEnc</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
+ </value>\r
+ </item> \r
</dictionary>
\ No newline at end of file