diff options
author | Humberto Ribeiro <mont3z.claro5@gmail.com> | 2018-01-03 15:22:15 -0800 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2018-01-04 18:20:43 -0300 |
commit | 7c3d519df90f36ffb48436861e8b8028199ee0a8 (patch) | |
tree | a3a4aba4a9baea457d1275e273e6385ae003fe05 | |
parent | d8104977bbfaa91743bf983ff620f75f8c7684bc (diff) | |
download | ffmpeg-7c3d519df90f36ffb48436861e8b8028199ee0a8.tar.gz |
libavutil/hwcontext_dxva2: Add check for possible errors from GetAdapterDisplayModeEx
This prevents a possible crash in CreateDeviceEx when using faulty
response from GetAdapterDisplayModeEx and allows ffmpeg to fallback to
classic d3d9.
Signed-off-by: wm4 <nfxjfg@googlemail.com>
(cherry picked from commit 59b126f92225316e0cd77bb952d630553801dc85)
-rw-r--r-- | libavutil/hwcontext_dxva2.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libavutil/hwcontext_dxva2.c b/libavutil/hwcontext_dxva2.c index 2ddd4be7b1..44ebdbca95 100644 --- a/libavutil/hwcontext_dxva2.c +++ b/libavutil/hwcontext_dxva2.c @@ -485,7 +485,11 @@ static int dxva2_device_create9ex(AVHWDeviceContext *ctx, UINT adapter) if (FAILED(hr)) return AVERROR_UNKNOWN; - IDirect3D9Ex_GetAdapterDisplayModeEx(d3d9ex, adapter, &modeex, NULL); + hr = IDirect3D9Ex_GetAdapterDisplayModeEx(d3d9ex, adapter, &modeex, NULL); + if (FAILED(hr)) { + IDirect3D9Ex_Release(d3d9ex); + return AVERROR_UNKNOWN; + } d3dpp.BackBufferFormat = modeex.Format; |