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

Reply via email to