[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