aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-17 02:42:23 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-17 02:42:23 -0400
commit1f12ab66580a8cda5a4a5e1f44f469baeed07f16 (patch)
tree87eeb2f6dc39d3fb3b1937fdbe8926839ac79c91
parent3a1efe9edc92c1bbe7f280e636339bc0aceb0629 (diff)
add yadif setting
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs11
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs25
-rw-r--r--MediaBrowser.Model/Configuration/EncodingOptions.cs1
3 files changed, 23 insertions, 14 deletions
diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
index 48eba4117..149f69e5b 100644
--- a/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
@@ -284,8 +284,15 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
protected string GetOutputSizeParam()
{
var filters = new List<string>();
-
- filters.Add("yadif=0:-1:0");
+
+ if (string.Equals(GetEncodingOptions().DeinterlaceMethod, "bobandweave", StringComparison.OrdinalIgnoreCase))
+ {
+ filters.Add("yadif=1:-1:0");
+ }
+ else
+ {
+ filters.Add("yadif=0:-1:0");
+ }
var output = string.Empty;
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index 6b7b40853..a10a0bec8 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -1288,10 +1288,7 @@ namespace MediaBrowser.Controller.MediaEncoding
/// <summary>
/// Gets the internal graphical subtitle param.
/// </summary>
- /// <param name="state">The state.</param>
- /// <param name="outputVideoCodec">The output video codec.</param>
- /// <returns>System.String.</returns>
- public string GetGraphicalSubtitleParam(EncodingJobInfo state, string outputVideoCodec)
+ public string GetGraphicalSubtitleParam(EncodingJobInfo state, EncodingOptions options, string outputVideoCodec)
{
var outputSizeParam = string.Empty;
@@ -1300,7 +1297,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// Add resolution params, if specified
if (request.Width.HasValue || request.Height.HasValue || request.MaxHeight.HasValue || request.MaxWidth.HasValue)
{
- outputSizeParam = GetOutputSizeParam(state, outputVideoCodec).TrimEnd('"');
+ outputSizeParam = GetOutputSizeParam(state, options, outputVideoCodec).TrimEnd('"');
if (string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
{
@@ -1343,11 +1340,8 @@ namespace MediaBrowser.Controller.MediaEncoding
/// <summary>
/// If we're going to put a fixed size on the command line, this will calculate it
/// </summary>
- /// <param name="state">The state.</param>
- /// <param name="outputVideoCodec">The output video codec.</param>
- /// <param name="allowTimeStampCopy">if set to <c>true</c> [allow time stamp copy].</param>
- /// <returns>System.String.</returns>
public string GetOutputSizeParam(EncodingJobInfo state,
+ EncodingOptions options,
string outputVideoCodec,
bool allowTimeStampCopy = true)
{
@@ -1365,7 +1359,14 @@ namespace MediaBrowser.Controller.MediaEncoding
if (state.DeInterlace && !string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
{
- filters.Add("yadif=0:-1:0");
+ if (string.Equals(options.DeinterlaceMethod, "bobandweave", StringComparison.OrdinalIgnoreCase))
+ {
+ filters.Add("yadif=1:-1:0");
+ }
+ else
+ {
+ filters.Add("yadif=0:-1:0");
+ }
}
if (string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
@@ -2092,7 +2093,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// Add resolution params, if specified
if (!hasGraphicalSubs)
{
- var outputSizeParam = GetOutputSizeParam(state, videoCodec);
+ var outputSizeParam = GetOutputSizeParam(state, encodingOptions, videoCodec);
args += outputSizeParam;
hasCopyTs = outputSizeParam.IndexOf("copyts", StringComparison.OrdinalIgnoreCase) != -1;
}
@@ -2116,7 +2117,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// This is for internal graphical subs
if (hasGraphicalSubs)
{
- args += GetGraphicalSubtitleParam(state, videoCodec);
+ args += GetGraphicalSubtitleParam(state, encodingOptions, videoCodec);
}
if (!state.RunTimeTicks.HasValue)
diff --git a/MediaBrowser.Model/Configuration/EncodingOptions.cs b/MediaBrowser.Model/Configuration/EncodingOptions.cs
index b093d82e3..a143bb9e3 100644
--- a/MediaBrowser.Model/Configuration/EncodingOptions.cs
+++ b/MediaBrowser.Model/Configuration/EncodingOptions.cs
@@ -13,6 +13,7 @@ namespace MediaBrowser.Model.Configuration
public string VaapiDevice { get; set; }
public int H264Crf { get; set; }
public string H264Preset { get; set; }
+ public string DeinterlaceMethod { get; set; }
public bool EnableHardwareEncoding { get; set; }
public bool EnableSubtitleExtraction { get; set; }