vlc | branch: master | Steve Lhomme <[email protected]> | Fri Jun 2 11:07:32 2017 +0200| [5e19718054ddf7830298b1bc0132c74f2658f8b3] | committer: Jean-Baptiste Kempf
directx_va: release the d3ddev in pf_destroy_device() And make the release strongly typed Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5e19718054ddf7830298b1bc0132c74f2658f8b3 --- modules/codec/avcodec/d3d11va.c | 3 +++ modules/codec/avcodec/directx_va.c | 2 -- modules/codec/avcodec/dxva2.c | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c index b3efb174fa..e049773bc9 100644 --- a/modules/codec/avcodec/d3d11va.c +++ b/modules/codec/avcodec/d3d11va.c @@ -530,10 +530,13 @@ static int D3dCreateDevice(vlc_va_t *va) */ static void D3dDestroyDevice(vlc_va_t *va) { + directx_sys_t *dx_sys = &va->sys->dx_sys; if (va->sys->d3dvidctx) ID3D11VideoContext_Release(va->sys->d3dvidctx); if (va->sys->d3dctx) ID3D11DeviceContext_Release(va->sys->d3dctx); + if (dx_sys->d3ddev) + ID3D11Device_Release(dx_sys->d3ddev); } /** * It describes our Direct3D object diff --git a/modules/codec/avcodec/directx_va.c b/modules/codec/avcodec/directx_va.c index e7ca04cfc8..90c85d8499 100644 --- a/modules/codec/avcodec/directx_va.c +++ b/modules/codec/avcodec/directx_va.c @@ -438,8 +438,6 @@ void directx_va_Close(vlc_va_t *va, directx_sys_t *dx_sys) if (dx_sys->pf_destroy_device_manager) dx_sys->pf_destroy_device_manager(va); dx_sys->pf_destroy_device(va); - if (dx_sys->d3ddev) - IUnknown_Release( dx_sys->d3ddev ); if (dx_sys->hdecoder_dll) FreeLibrary(dx_sys->hdecoder_dll); diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c index 0ebe2df0b9..10a8608b45 100644 --- a/modules/codec/avcodec/dxva2.c +++ b/modules/codec/avcodec/dxva2.c @@ -430,8 +430,11 @@ static int D3dCreateDevice(vlc_va_t *va) */ static void D3dDestroyDevice(vlc_va_t *va) { + directx_sys_t *dx_sys = &va->sys->dx_sys; if (va->sys->d3dobj) IDirect3D9_Release(va->sys->d3dobj); + if (dx_sys->d3ddev) + IDirect3DDevice9_Release(dx_sys->d3ddev); } /** * It describes our Direct3D object _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
