vlc | branch: master | Steve Lhomme <[email protected]> | Thu May 28 16:27:44 2015 +0200| [3071e1858a3027608896f026c10d07dc798fae71] | committer: Jean-Baptiste Kempf
dxva2: let the decoder handle the device referencing Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3071e1858a3027608896f026c10d07dc798fae71 --- modules/codec/avcodec/directx_va.c | 14 +++++--------- modules/codec/avcodec/dxva2.c | 6 ++++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/codec/avcodec/directx_va.c b/modules/codec/avcodec/directx_va.c index 327b5cc..45644e6 100644 --- a/modules/codec/avcodec/directx_va.c +++ b/modules/codec/avcodec/directx_va.c @@ -423,16 +423,12 @@ int directx_va_Open(vlc_va_t *va, directx_sys_t *dx_sys, } msg_Dbg(va, "DLLs loaded"); - if (dx_sys->d3ddev) { - msg_Dbg(va, "Reusing DirectX device"); - } else { - /* */ - if (dx_sys->pf_create_device(va)) { - msg_Err(va, "Failed to create DirectX device"); - goto error; - } - msg_Dbg(va, "CreateDevice succeed"); + /* */ + if (dx_sys->pf_create_device(va)) { + msg_Err(va, "Failed to create DirectX device"); + goto error; } + msg_Dbg(va, "CreateDevice succeed"); if (dx_sys->pf_create_device_manager(va)) { msg_Err(va, "D3dCreateDeviceManager failed"); diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c index 7ab4c9d..9b002c3 100644 --- a/modules/codec/avcodec/dxva2.c +++ b/modules/codec/avcodec/dxva2.c @@ -315,6 +315,12 @@ static int D3dCreateDevice(vlc_va_t *va) { vlc_va_sys_t *sys = va->sys; + if (sys->dx_sys.d3ddev) { + msg_Dbg(va, "Reusing Direct3D9 device"); + IDirect3DDevice9_AddRef(sys->dx_sys.d3ddev); + return VLC_SUCCESS; + } + /* */ LPDIRECT3D9 (WINAPI *Create9)(UINT SDKVersion); Create9 = (void *)GetProcAddress(sys->hd3d9_dll, "Direct3DCreate9"); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
