aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroltolm <oleg.tolmatcev@gmail.com>2024-05-17 21:10:49 +0200
committerHaihao Xiang <haihao.xiang@intel.com>2024-05-21 16:57:46 +0800
commit45d31614bcc54c5ccbaabf07e7336ac477e2b424 (patch)
tree6f6aac1749b69c0a335ace599e70f7c35d3da457
parent9a7458123446427eddb4be89f638518554b4c9b2 (diff)
downloadffmpeg-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.c33
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, &params);
+ hr = IDirect3DDevice9Ex_GetCreationParameters(device_ex, &params);
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)