[vlc-commits] hw:d3d11: use d3d11_processor_t instead of local variables

Steve Lhomme git at videolan.org
Mon May 28 13:24:55 CEST 2018


vlc | branch: master | Steve Lhomme <robux4 at videolabs.io> | Thu Nov 30 09:52:35 2017 +0100| [f35f8b496ebf13339edc0c3c7eafb0f4cbc117ee] | committer: Steve Lhomme

hw:d3d11: use d3d11_processor_t instead of local variables

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f35f8b496ebf13339edc0c3c7eafb0f4cbc117ee
---

 modules/hw/d3d11/d3d11_deinterlace.c | 27 ++++++++++++---------------
 modules/hw/d3d11/d3d11_filters.c     | 31 ++++++++++++++-----------------
 modules/hw/d3d11/d3d11_surface.c     | 22 ++++++++++------------
 3 files changed, 36 insertions(+), 44 deletions(-)

diff --git a/modules/hw/d3d11/d3d11_deinterlace.c b/modules/hw/d3d11/d3d11_deinterlace.c
index 076d9396ee..fbe473d7f2 100644
--- a/modules/hw/d3d11/d3d11_deinterlace.c
+++ b/modules/hw/d3d11/d3d11_deinterlace.c
@@ -344,7 +344,6 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
 {
     filter_t *filter = (filter_t *)obj;
     HRESULT hr;
-    ID3D11VideoProcessorEnumerator *processorEnumerator = NULL;
 
     if (!is_d3d11_opaque(filter->fmt_in.video.i_chroma))
         return VLC_EGENERIC;
@@ -398,8 +397,8 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
         },
         .Usage = D3D11_VIDEO_USAGE_PLAYBACK_NORMAL,
     };
-    hr = ID3D11VideoDevice_CreateVideoProcessorEnumerator(sys->d3d_proc.d3dviddev, &processorDesc, &processorEnumerator);
-    if ( processorEnumerator == NULL )
+    hr = ID3D11VideoDevice_CreateVideoProcessorEnumerator(sys->d3d_proc.d3dviddev, &processorDesc, &sys->d3d_proc.procEnumerator);
+    if ( sys->d3d_proc.procEnumerator == NULL )
     {
         msg_Dbg(filter, "Can't get a video processor for the video.");
         goto error;
@@ -407,9 +406,9 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
 
     UINT flags;
 #ifndef NDEBUG
-    D3D11_LogProcessorSupport(filter, processorEnumerator);
+    D3D11_LogProcessorSupport(filter, sys->d3d_proc.procEnumerator);
 #endif
-    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(processorEnumerator, dstDesc.Format, &flags);
+    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(sys->d3d_proc.procEnumerator, dstDesc.Format, &flags);
     if (!SUCCEEDED(hr))
     {
         msg_Dbg(filter, "can't read processor support for %s", DxgiFormatToStr(dstDesc.Format));
@@ -423,7 +422,7 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
     }
 
     D3D11_VIDEO_PROCESSOR_CAPS processorCaps;
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(processorEnumerator, &processorCaps);
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(sys->d3d_proc.procEnumerator, &processorCaps);
     if (FAILED(hr))
         goto error;
 
@@ -440,12 +439,12 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
     D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS rateCaps;
     for (UINT type = 0; type < processorCaps.RateConversionCapsCount; ++type)
     {
-        ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(processorEnumerator, type, &rateCaps);
+        ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(sys->d3d_proc.procEnumerator, type, &rateCaps);
         if (!(rateCaps.ProcessorCaps & p_mode->i_mode))
             continue;
 
         hr = ID3D11VideoDevice_CreateVideoProcessor(sys->d3d_proc.d3dviddev,
-                                                    processorEnumerator, type, &sys->d3d_proc.videoProcessor);
+                                                    sys->d3d_proc.procEnumerator, type, &sys->d3d_proc.videoProcessor);
         if (SUCCEEDED(hr))
             break;
         sys->d3d_proc.videoProcessor = NULL;
@@ -457,12 +456,12 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
         p_mode = GetFilterMode("bob");
         for (UINT type = 0; type < processorCaps.RateConversionCapsCount; ++type)
         {
-            ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(processorEnumerator, type, &rateCaps);
+            ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(sys->d3d_proc.procEnumerator, type, &rateCaps);
             if (!(rateCaps.ProcessorCaps & D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB))
                 continue;
 
             hr = ID3D11VideoDevice_CreateVideoProcessor(sys->d3d_proc.d3dviddev,
-                                                        processorEnumerator, type, &sys->d3d_proc.videoProcessor);
+                                                        sys->d3d_proc.procEnumerator, type, &sys->d3d_proc.videoProcessor);
             if (SUCCEEDED(hr))
                 break;
             sys->d3d_proc.videoProcessor = NULL;
@@ -501,7 +500,7 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
 
     hr = ID3D11VideoDevice_CreateVideoProcessorOutputView(sys->d3d_proc.d3dviddev,
                                                          sys->outResource,
-                                                         processorEnumerator,
+                                                         sys->d3d_proc.procEnumerator,
                                                          &outDesc,
                                                          &sys->processorOutput);
     if (FAILED(hr))
@@ -510,8 +509,6 @@ int D3D11OpenDeinterlace(vlc_object_t *obj)
         goto error;
     }
 
-    sys->d3d_proc.procEnumerator  = processorEnumerator;
-
     InitDeinterlacingContext( &sys->context );
 
     sys->context.settings = p_mode->settings;
@@ -547,8 +544,8 @@ error:
         ID3D11Texture2D_Release(sys->outTexture);
     if (sys->d3d_proc.videoProcessor)
         ID3D11VideoProcessor_Release(sys->d3d_proc.videoProcessor);
-    if (processorEnumerator)
-        ID3D11VideoProcessorEnumerator_Release(processorEnumerator);
+    if (sys->d3d_proc.procEnumerator)
+        ID3D11VideoProcessorEnumerator_Release(sys->d3d_proc.procEnumerator);
     if (sys->d3d_proc.d3dvidctx)
         ID3D11VideoContext_Release(sys->d3d_proc.d3dvidctx);
     if (sys->d3d_proc.d3dviddev)
diff --git a/modules/hw/d3d11/d3d11_filters.c b/modules/hw/d3d11/d3d11_filters.c
index dc0556ffd4..0d45c19b29 100644
--- a/modules/hw/d3d11/d3d11_filters.c
+++ b/modules/hw/d3d11/d3d11_filters.c
@@ -344,7 +344,6 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
 {
     filter_t *filter = (filter_t *)obj;
     HRESULT hr;
-    ID3D11VideoProcessorEnumerator *processorEnumerator = NULL;
 
     if (!is_d3d11_opaque(filter->fmt_in.video.i_chroma))
         return VLC_EGENERIC;
@@ -395,8 +394,8 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
         },
         .Usage = D3D11_VIDEO_USAGE_PLAYBACK_NORMAL,
     };
-    hr = ID3D11VideoDevice_CreateVideoProcessorEnumerator(sys->d3d_proc.d3dviddev, &processorDesc, &processorEnumerator);
-    if ( processorEnumerator == NULL )
+    hr = ID3D11VideoDevice_CreateVideoProcessorEnumerator(sys->d3d_proc.d3dviddev, &processorDesc, &sys->d3d_proc.procEnumerator);
+    if ( sys->d3d_proc.procEnumerator == NULL )
     {
         msg_Dbg(filter, "Can't get a video processor for the video.");
         goto error;
@@ -404,9 +403,9 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
 
     UINT flags;
 #ifndef NDEBUG
-    D3D11_LogProcessorSupport(filter, processorEnumerator);
+    D3D11_LogProcessorSupport(filter, sys->d3d_proc.procEnumerator);
 #endif
-    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(processorEnumerator, dstDesc.Format, &flags);
+    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(sys->d3d_proc.procEnumerator, dstDesc.Format, &flags);
     if (!SUCCEEDED(hr))
     {
         msg_Dbg(filter, "can't read processor support for %s", DxgiFormatToStr(dstDesc.Format));
@@ -420,7 +419,7 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
     }
 
     D3D11_VIDEO_PROCESSOR_CAPS processorCaps;
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(processorEnumerator, &processorCaps);
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(sys->d3d_proc.procEnumerator, &processorCaps);
     if (FAILED(hr))
         goto error;
 
@@ -434,25 +433,25 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
         goto error;
     }
 
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(processorEnumerator,
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(sys->d3d_proc.procEnumerator,
                                                                      D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS,
                                                                      &sys->Brightness.Range);
     if (FAILED(hr))
         goto error;
 
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(processorEnumerator,
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(sys->d3d_proc.procEnumerator,
                                                                      D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST,
                                                                      &sys->Contrast.Range);
     if (FAILED(hr))
         goto error;
 
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(processorEnumerator,
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(sys->d3d_proc.procEnumerator,
                                                                      D3D11_VIDEO_PROCESSOR_FILTER_HUE,
                                                                      &sys->Hue.Range);
     if (FAILED(hr))
         goto error;
 
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(processorEnumerator,
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(sys->d3d_proc.procEnumerator,
                                                                      D3D11_VIDEO_PROCESSOR_FILTER_SATURATION,
                                                                      &sys->Saturation.Range);
     if (FAILED(hr))
@@ -479,7 +478,7 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
                                              AdjustCallback, sys );
 
     hr = ID3D11VideoDevice_CreateVideoProcessor(sys->d3d_proc.d3dviddev,
-                                                processorEnumerator, 0,
+                                                sys->d3d_proc.procEnumerator, 0,
                                                 &sys->d3d_proc.videoProcessor);
     if (FAILED(hr) || sys->d3d_proc.videoProcessor == NULL)
     {
@@ -527,7 +526,7 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
     {
         hr = ID3D11VideoDevice_CreateVideoProcessorOutputView(sys->d3d_proc.d3dviddev,
                                                              sys->out[i].resource,
-                                                             processorEnumerator,
+                                                             sys->d3d_proc.procEnumerator,
                                                              &outDesc,
                                                              &sys->procOutput[i]);
         if (FAILED(hr))
@@ -538,7 +537,7 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
 
         hr = ID3D11VideoDevice_CreateVideoProcessorInputView(sys->d3d_proc.d3dviddev,
                                                              sys->out[0].resource,
-                                                             processorEnumerator,
+                                                             sys->d3d_proc.procEnumerator,
                                                              &inDesc,
                                                              &sys->procInput[i]);
 
@@ -549,8 +548,6 @@ static int D3D11OpenAdjust(vlc_object_t *obj)
         }
     }
 
-    sys->d3d_proc.procEnumerator  = processorEnumerator;
-
     filter->pf_video_filter = Filter;
     filter->p_sys = sys;
 
@@ -570,8 +567,8 @@ error:
         ID3D11Texture2D_Release(sys->out[1].texture);
     if (sys->d3d_proc.videoProcessor)
         ID3D11VideoProcessor_Release(sys->d3d_proc.videoProcessor);
-    if (processorEnumerator)
-        ID3D11VideoProcessorEnumerator_Release(processorEnumerator);
+    if (sys->d3d_proc.procEnumerator)
+        ID3D11VideoProcessorEnumerator_Release(sys->d3d_proc.procEnumerator);
     if (sys->d3d_proc.d3dvidctx)
         ID3D11VideoContext_Release(sys->d3d_proc.d3dvidctx);
     if (sys->d3d_proc.d3dviddev)
diff --git a/modules/hw/d3d11/d3d11_surface.c b/modules/hw/d3d11/d3d11_surface.c
index dcc88db0ff..1dbf14d0d1 100644
--- a/modules/hw/d3d11/d3d11_surface.c
+++ b/modules/hw/d3d11/d3d11_surface.c
@@ -84,7 +84,6 @@ static int SetupProcessor(filter_t *p_filter, d3d11_device_t *d3d_dev,
 {
     filter_sys_t *sys = p_filter->p_sys;
     HRESULT hr;
-    ID3D11VideoProcessorEnumerator *processorEnumerator = NULL;
 
     hr = ID3D11DeviceContext_QueryInterface(d3d_dev->d3dcontext, &IID_ID3D11VideoContext, (void **)&sys->d3d_proc.d3dvidctx);
     if (unlikely(FAILED(hr)))
@@ -107,8 +106,8 @@ static int SetupProcessor(filter_t *p_filter, d3d11_device_t *d3d_dev,
         .OutputHeight = fmt->i_height,
         .Usage = D3D11_VIDEO_USAGE_PLAYBACK_NORMAL,
     };
-    hr = ID3D11VideoDevice_CreateVideoProcessorEnumerator(sys->d3d_proc.d3dviddev, &processorDesc, &processorEnumerator);
-    if ( processorEnumerator == NULL )
+    hr = ID3D11VideoDevice_CreateVideoProcessorEnumerator(sys->d3d_proc.d3dviddev, &processorDesc, &sys->d3d_proc.procEnumerator);
+    if ( sys->d3d_proc.procEnumerator == NULL )
     {
         msg_Dbg(p_filter, "Can't get a video processor for the video.");
         goto error;
@@ -116,16 +115,16 @@ static int SetupProcessor(filter_t *p_filter, d3d11_device_t *d3d_dev,
 
     UINT flags;
 #ifndef NDEBUG
-    D3D11_LogProcessorSupport(p_filter, processorEnumerator);
+    D3D11_LogProcessorSupport(p_filter, sys->d3d_proc.procEnumerator);
 #endif
     /* shortcut for the rendering output */
-    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(processorEnumerator, srcFormat, &flags);
+    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(sys->d3d_proc.procEnumerator, srcFormat, &flags);
     if (FAILED(hr) || !(flags & D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT))
     {
         msg_Dbg(p_filter, "processor format %s not supported for output", DxgiFormatToStr(srcFormat));
         goto error;
     }
-    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(processorEnumerator, dstFormat, &flags);
+    hr = ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(sys->d3d_proc.procEnumerator, dstFormat, &flags);
     if (FAILED(hr) || !(flags & D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT))
     {
         msg_Dbg(p_filter, "processor format %s not supported for input", DxgiFormatToStr(dstFormat));
@@ -133,11 +132,11 @@ static int SetupProcessor(filter_t *p_filter, d3d11_device_t *d3d_dev,
     }
 
     D3D11_VIDEO_PROCESSOR_CAPS processorCaps;
-    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(processorEnumerator, &processorCaps);
+    hr = ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(sys->d3d_proc.procEnumerator, &processorCaps);
     for (UINT type = 0; type < processorCaps.RateConversionCapsCount; ++type)
     {
         hr = ID3D11VideoDevice_CreateVideoProcessor(sys->d3d_proc.d3dviddev,
-                                                    processorEnumerator, type, &sys->d3d_proc.videoProcessor);
+                                                    sys->d3d_proc.procEnumerator, type, &sys->d3d_proc.videoProcessor);
         if (SUCCEEDED(hr))
         {
             D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC outDesc = {
@@ -146,14 +145,13 @@ static int SetupProcessor(filter_t *p_filter, d3d11_device_t *d3d_dev,
 
             hr = ID3D11VideoDevice_CreateVideoProcessorOutputView(sys->d3d_proc.d3dviddev,
                                                              sys->procOutResource,
-                                                             processorEnumerator,
+                                                             sys->d3d_proc.procEnumerator,
                                                              &outDesc,
                                                              &sys->processorOutput);
             if (FAILED(hr))
                 msg_Err(p_filter, "Failed to create the processor output. (hr=0x%lX)", hr);
             else
             {
-                sys->d3d_proc.procEnumerator  = processorEnumerator;
                 return VLC_SUCCESS;
             }
         }
@@ -165,8 +163,8 @@ static int SetupProcessor(filter_t *p_filter, d3d11_device_t *d3d_dev,
     }
 
 error:
-    if (processorEnumerator)
-        ID3D11VideoProcessorEnumerator_Release(processorEnumerator);
+    if (sys->d3d_proc.procEnumerator)
+        ID3D11VideoProcessorEnumerator_Release(sys->d3d_proc.procEnumerator);
     if (sys->d3d_proc.d3dvidctx)
         ID3D11VideoContext_Release(sys->d3d_proc.d3dvidctx);
     if (sys->d3d_proc.d3dviddev)



More information about the vlc-commits mailing list