Use average frame rate when determining deinterlace mode

This commit is contained in:
Orry Verducci 2021-02-13 15:27:19 +00:00
parent 6616add8c8
commit b718eed314

View File

@ -2530,7 +2530,7 @@ namespace MediaBrowser.Controller.MediaEncoding
var hasGraphicalSubs = state.SubtitleStream != null && !state.SubtitleStream.IsTextSubtitleStream && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode; var hasGraphicalSubs = state.SubtitleStream != null && !state.SubtitleStream.IsTextSubtitleStream && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode;
// If double rate deinterlacing is enabled and the input framerate is 30fps or below, otherwise the output framerate will be too high for many devices // If double rate deinterlacing is enabled and the input framerate is 30fps or below, otherwise the output framerate will be too high for many devices
var doubleRateDeinterlace = options.DeinterlaceDoubleRate && (videoStream?.RealFrameRate ?? 60) <= 30; var doubleRateDeinterlace = options.DeinterlaceDoubleRate && (videoStream?.AverageFrameRate ?? 60) <= 30;
var isScalingInAdvance = false; var isScalingInAdvance = false;
var isCudaDeintInAdvance = false; var isCudaDeintInAdvance = false;
@ -3080,7 +3080,7 @@ namespace MediaBrowser.Controller.MediaEncoding
{ {
inputModifier += " -deint 1"; inputModifier += " -deint 1";
if (!encodingOptions.DeinterlaceDoubleRate || (videoStream?.RealFrameRate ?? 60) > 30) if (!encodingOptions.DeinterlaceDoubleRate || (videoStream?.AverageFrameRate ?? 60) > 30)
{ {
inputModifier += " -drop_second_field 1"; inputModifier += " -drop_second_field 1";
} }