mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-01 07:51:54 +01:00
update deinterlace param
This commit is contained in:
@@ -799,13 +799,12 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
|
||||
if (videoStream.IsInterlaced)
|
||||
{
|
||||
if (state.DeInterlace(videoStream.Codec))
|
||||
if (state.DeInterlace(videoStream.Codec, false))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (videoStream.IsAnamorphic ?? false)
|
||||
{
|
||||
if (request.RequireNonAnamorphic)
|
||||
@@ -1365,7 +1364,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
filters.Add("hwupload");
|
||||
}
|
||||
|
||||
if (state.DeInterlace("h264") && !string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
|
||||
if (state.DeInterlace("h264", true) && !string.Equals(outputVideoCodec, "h264_vaapi", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// If it is already 60fps then it will create an output framerate that is much too high for roku and others to handle
|
||||
if (string.Equals(options.DeinterlaceMethod, "bobandweave", StringComparison.OrdinalIgnoreCase) && (state.VideoStream.RealFrameRate ?? 60) <= 30)
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
public int? OutputAudioBitrate;
|
||||
public int? OutputAudioChannels;
|
||||
|
||||
public bool DeInterlace(string videoCodec)
|
||||
public bool DeInterlace(string videoCodec, bool forceDeinterlaceIfSourceIsInterlaced)
|
||||
{
|
||||
// Support general param
|
||||
if (BaseRequest.DeInterlace)
|
||||
@@ -177,6 +177,15 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
}
|
||||
}
|
||||
|
||||
if (forceDeinterlaceIfSourceIsInterlaced)
|
||||
{
|
||||
var videoStream = VideoStream;
|
||||
if (videoStream != null && videoStream.IsInterlaced)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -559,7 +568,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
||||
}
|
||||
|
||||
if (DeInterlace(ActualOutputVideoCodec))
|
||||
if (DeInterlace(ActualOutputVideoCodec, true))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user