diff options
author | oltolm <oleg.tolmatcev@gmail.com> | 2024-05-17 21:10:49 +0200 |
---|---|---|
committer | Haihao Xiang <haihao.xiang@intel.com> | 2024-05-21 16:57:46 +0800 |
commit | 45d31614bcc54c5ccbaabf07e7336ac477e2b424 (patch) | |
tree | 6f6aac1749b69c0a335ace599e70f7c35d3da457 | |
parent | 9a7458123446427eddb4be89f638518554b4c9b2 (diff) | |
download | ffmpeg-45d31614bcc54c5ccbaabf07e7336ac477e2b424.tar.gz |
avutil/hwcontext_qsv: fix GCC 14.1 warnings
Tested-by: Tong Wu <tong1.wu@intel.com>
Signed-off-by: oltolm <oleg.tolmatcev@gmail.com>
-rw-r--r-- | libavutil/hwcontext_qsv.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index 8b7b4dc501..f3d919daea 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -36,6 +36,7 @@ #include "hwcontext_d3d11va.h" #endif #if CONFIG_DXVA2 +#include <initguid.h> #include "hwcontext_dxva2.h" #endif @@ -904,9 +905,11 @@ static int qsv_d3d9_update_config(void *ctx, mfxHDL handle, mfxConfig cfg) #if CONFIG_DXVA2 mfxStatus sts; IDirect3DDeviceManager9* devmgr = handle; - IDirect3DDevice9Ex *device = NULL; + IDirect3DDevice9 *device = NULL; + IDirect3DDevice9Ex *device_ex = NULL; HANDLE device_handle = 0; IDirect3D9Ex *d3d9ex = NULL; + IDirect3D9 *d3d9 = NULL; LUID luid; D3DDEVICE_CREATION_PARAMETERS params; HRESULT hr; @@ -924,18 +927,31 @@ static int qsv_d3d9_update_config(void *ctx, mfxHDL handle, mfxConfig cfg) IDirect3DDeviceManager9_CloseDeviceHandle(devmgr, device_handle); goto fail; } + hr = IDirect3DDevice9_QueryInterface(device, &IID_IDirect3DDevice9Ex, (void **)&device_ex); + IDirect3DDevice9_Release(device); + if (FAILED(hr)) { + av_log(ctx, AV_LOG_ERROR, "Error IDirect3DDevice9_QueryInterface %d\n", hr); + goto unlock; + } - hr = IDirect3DDevice9Ex_GetCreationParameters(device, ¶ms); + hr = IDirect3DDevice9Ex_GetCreationParameters(device_ex, ¶ms); if (FAILED(hr)) { av_log(ctx, AV_LOG_ERROR, "Error IDirect3DDevice9_GetCreationParameters %d\n", hr); - IDirect3DDevice9Ex_Release(device); + IDirect3DDevice9Ex_Release(device_ex); goto unlock; } - hr = IDirect3DDevice9Ex_GetDirect3D(device, &d3d9ex); + hr = IDirect3DDevice9Ex_GetDirect3D(device_ex, &d3d9); if (FAILED(hr)) { - av_log(ctx, AV_LOG_ERROR, "Error IDirect3DDevice9Ex_GetAdapterLUID %d\n", hr); - IDirect3DDevice9Ex_Release(device); + av_log(ctx, AV_LOG_ERROR, "Error IDirect3DDevice9Ex_GetDirect3D %d\n", hr); + IDirect3DDevice9Ex_Release(device_ex); + goto unlock; + } + hr = IDirect3D9_QueryInterface(d3d9, &IID_IDirect3D9Ex, (void **)&d3d9ex); + IDirect3D9_Release(d3d9); + if (FAILED(hr)) { + av_log(ctx, AV_LOG_ERROR, "Error IDirect3D9_QueryInterface3D %d\n", hr); + IDirect3DDevice9Ex_Release(device_ex); goto unlock; } @@ -959,7 +975,7 @@ static int qsv_d3d9_update_config(void *ctx, mfxHDL handle, mfxConfig cfg) release: IDirect3D9Ex_Release(d3d9ex); - IDirect3DDevice9Ex_Release(device); + IDirect3DDevice9Ex_Release(device_ex); unlock: IDirect3DDeviceManager9_UnlockDevice(devmgr, device_handle, FALSE); @@ -1519,8 +1535,9 @@ static int qsv_frames_derive_from(AVHWFramesContext *dst_ctx, case AV_HWDEVICE_TYPE_D3D11VA: { D3D11_TEXTURE2D_DESC texDesc; + AVD3D11VAFramesContext *dst_hwctx; dst_ctx->initial_pool_size = src_ctx->initial_pool_size; - AVD3D11VAFramesContext *dst_hwctx = dst_ctx->hwctx; + dst_hwctx = dst_ctx->hwctx; dst_hwctx->texture_infos = av_calloc(src_hwctx->nb_surfaces, sizeof(*dst_hwctx->texture_infos)); if (!dst_hwctx->texture_infos) |