[vlc-commits] dxva2: avoid redundant storage with the lavc structure
Steve Lhomme
git at videolan.org
Mon Sep 2 15:43:19 CEST 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Mon Sep 2 09:58:25 2019 +0200| [e7c103edd934e6b5caa503657d77d27af184cd8b] | committer: Steve Lhomme
dxva2: avoid redundant storage with the lavc structure
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e7c103edd934e6b5caa503657d77d27af184cd8b
---
modules/codec/avcodec/dxva2.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index f2136f71fc..44a12ad10a 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -126,7 +126,6 @@ struct vlc_va_sys_t
DXVA2_ConfigPictureDecode cfg;
GUID decoder_guid;
IDirectXVideoDecoderService *d3ddec;
- IDirectXVideoDecoder *dxdecoder;
/* pool */
IDirect3DSurface9 *hw_surface[MAX_SURFACE_COUNT];
@@ -149,7 +148,6 @@ static void DxDestroyVideoDecoder(vlc_va_sys_t *);
static void SetupAVCodecContext(vlc_va_sys_t *sys, unsigned surfaces)
{
- sys->hw.decoder = sys->dxdecoder;
sys->hw.cfg = &sys->cfg;
sys->hw.surface_count = surfaces;
sys->hw.surface = sys->hw_surface;
@@ -198,7 +196,7 @@ static struct va_pic_context *CreatePicContext(IDirect3DSurface9 *surface, IDire
static struct va_pic_context* NewSurfacePicContext(vlc_va_t *va, int surface_index)
{
vlc_va_sys_t *sys = va->sys;
- struct va_pic_context *pic_ctx = CreatePicContext(sys->hw_surface[surface_index], sys->dxdecoder);
+ struct va_pic_context *pic_ctx = CreatePicContext(sys->hw_surface[surface_index], sys->hw.decoder);
if (unlikely(pic_ctx==NULL))
return NULL;
/* all the resources are acquired during surfaces init, and a second time in
@@ -657,8 +655,8 @@ static void DxDestroyVideoDecoder(vlc_va_sys_t *sys)
{
directx_sys_t *dx_sys = &sys->dx_sys;
/* releases a reference on each decoder surface */
- if (sys->dxdecoder)
- IDirectXVideoDecoder_Release(sys->dxdecoder);
+ if (sys->hw.decoder)
+ IDirectXVideoDecoder_Release(sys->hw.decoder);
for (unsigned i = 0; i < dx_sys->va_pool.surface_count; i++)
IDirect3DSurface9_Release(sys->hw_surface[i]);
}
More information about the vlc-commits
mailing list