vlc | branch: master | Steve Lhomme <[email protected]> | Tue Aug 29 10:06:10 2017 +0200| [2801db6f37e09f71b356990c87e5c7b399cce4a2] | committer: Jean-Baptiste Kempf
d3d11_deinterlace: fix decoder config mismatching This is similar to what is done in DXVA2 already. Fix #18632 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2801db6f37e09f71b356990c87e5c7b399cce4a2 --- modules/video_output/win32/d3d11_deinterlace.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/video_output/win32/d3d11_deinterlace.c b/modules/video_output/win32/d3d11_deinterlace.c index 4d19b6152f..a41c69bead 100644 --- a/modules/video_output/win32/d3d11_deinterlace.c +++ b/modules/video_output/win32/d3d11_deinterlace.c @@ -386,9 +386,9 @@ static int Open(vlc_object_t *obj) if (strcmp(p_mode->psz_mode, psz_mode)) msg_Dbg(filter, "using %s deinterlacing mode", p_mode->psz_mode); + D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS rateCaps; for (UINT type = 0; type < processorCaps.RateConversionCapsCount; ++type) { - D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS rateCaps; ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(processorEnumerator, type, &rateCaps); if (!(rateCaps.ProcessorCaps & p_mode->i_mode)) continue; @@ -405,7 +405,6 @@ static int Open(vlc_object_t *obj) msg_Dbg(filter, "mode %s not available, trying bob", psz_mode); for (UINT type = 0; type < processorCaps.RateConversionCapsCount; ++type) { - D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS rateCaps; ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(processorEnumerator, type, &rateCaps); if (!(rateCaps.ProcessorCaps & D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB)) continue; @@ -466,6 +465,10 @@ static int Open(vlc_object_t *obj) InitDeinterlacingContext( &sys->context ); sys->context.settings = p_mode->settings; + sys->context.settings.b_use_frame_history = rateCaps.PastFrames != 0 || + rateCaps.FutureFrames != 0; + if (sys->context.settings.b_use_frame_history != p_mode->settings.b_use_frame_history) + msg_Dbg(filter, "deinterlacing not using frame history as requested"); if (sys->context.settings.b_double_rate) sys->context.pf_render_ordered = RenderPic; else _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
