[vlc-devel] [PATCH 2/9] ffmpeg_ReleaseFrameBuf: simplify
Rafaël Carré
funman at videolan.org
Mon May 27 09:18:56 CEST 2013
---
modules/codec/avcodec/video.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
index 933cd96..bffce38 100644
--- a/modules/codec/avcodec/video.c
+++ b/modules/codec/avcodec/video.c
@@ -1032,24 +1032,16 @@ static void ffmpeg_ReleaseFrameBuf( struct AVCodecContext *p_context,
decoder_sys_t *p_sys = p_dec->p_sys;
if( p_sys->p_va )
- {
vlc_va_Release( p_sys->p_va, p_ff_pic );
- }
- else if( !p_ff_pic->opaque )
- {
+ else if( p_ff_pic->opaque )
+ decoder_UnlinkPicture( p_dec, (picture_t*)p_ff_pic->opaque);
+ else if( p_ff_pic->type == FF_BUFFER_TYPE_INTERNAL )
/* We can end up here without the AVFrame being allocated by
* avcodec_default_get_buffer() if VA is used and the frame is
* released when the decoder is closed
*/
- if( p_ff_pic->type == FF_BUFFER_TYPE_INTERNAL )
- avcodec_default_release_buffer( p_context, p_ff_pic );
- }
- else
- {
- picture_t *p_pic = (picture_t*)p_ff_pic->opaque;
+ avcodec_default_release_buffer( p_context, p_ff_pic );
- decoder_UnlinkPicture( p_dec, p_pic );
- }
for( int i = 0; i < 4; i++ )
p_ff_pic->data[i] = NULL;
}
--
1.8.1.2
More information about the vlc-devel
mailing list