vlc | branch: master | Steve Lhomme <[email protected]> | 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) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
