vlc | branch: master | Steve Lhomme <[email protected]> | Wed May 17 14:30:22 2017 +0200| [5f6a6f47a6d0cf475fd965a93f3ae53c4b76e283] | committer: Jean-Baptiste Kempf
d3d11va: fix the internal pool use with direct decode builds ie builds with recent libavcodec There is still an issue with the internal pool as the ouput picture in Extract may not be allocated by the proper vout and therefore lack the proper picture_sys_t data. Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5f6a6f47a6d0cf475fd965a93f3ae53c4b76e283 --- modules/codec/avcodec/d3d11va.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c index a5ca9e5e91..cfec0e0ed8 100644 --- a/modules/codec/avcodec/d3d11va.c +++ b/modules/codec/avcodec/d3d11va.c @@ -293,6 +293,12 @@ static int Get(vlc_va_t *va, picture_t *pic, uint8_t **data) { #if D3D11_DIRECT_DECODE picture_sys_t *p_sys = pic->p_sys; + if (p_sys == NULL) + { + assert(!va->sys->b_extern_pool); + return directx_va_Get(va, &va->sys->dx_sys, pic, data); + } + if (p_sys->decoder == NULL) { HRESULT hr; @@ -439,7 +445,7 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt, va->setup = Setup; va->get = Get; #if D3D11_DIRECT_DECODE - va->release = NULL; + va->release = sys->b_extern_pool ? NULL : directx_va_Release; #else va->release = directx_va_Release; #endif _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
