vlc | branch: master | Steve Lhomme <[email protected]> | Fri Oct 25 08:42:51 2019 +0200| [f8d218a0b2e1fc0ffe071b1e145361a27b6c2b2b] | committer: Steve Lhomme
dxva2: only use the module with a compatible decoder device > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f8d218a0b2e1fc0ffe071b1e145361a27b6c2b2b --- modules/codec/avcodec/dxva2.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c index 6e661a0707..5294472c43 100644 --- a/modules/codec/avcodec/dxva2.c +++ b/modules/codec/avcodec/dxva2.c @@ -257,14 +257,16 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *des if (pix_fmt != AV_PIX_FMT_DXVA2_VLD) return VLC_EGENERIC; + d3d9_decoder_device_t *d3d9_decoder = GetD3D9OpaqueDevice( dec_device ); + if ( d3d9_decoder == NULL ) + return VLC_EGENERIC; + ctx->hwaccel_context = NULL; vlc_va_sys_t *sys = calloc(1, sizeof (*sys)); if (unlikely(sys == NULL)) return VLC_ENOMEM; /* Load dll*/ - d3d9_decoder_device_t *d3d9_decoder = GetD3D9OpaqueDevice( dec_device ); - if ( d3d9_decoder != NULL ) { D3D9_CloneExternal(&sys->hd3d, d3d9_decoder->device); HRESULT hr = D3D9_CreateDevice(va, &sys->hd3d, d3d9_decoder->adapter, &sys->d3d_dev); @@ -287,21 +289,9 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *des octx->dev = sys->d3d_dev.dev; IDirect3DDevice9_AddRef(octx->dev); } - else if (D3D9_Create(va, &sys->hd3d) != VLC_SUCCESS) { - msg_Warn(va, "cannot load d3d9.dll"); - free( sys ); - return VLC_EGENERIC; - } va->sys = sys; - if (sys->vctx == NULL) - { - msg_Dbg(va, "no video context"); - err = VLC_EGENERIC; - goto error; - } - /* Load dll*/ sys->dxva2_dll = LoadLibrary(TEXT("DXVA2.DLL")); if (!sys->dxva2_dll) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
