diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-12-14 15:36:37 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-12-14 15:36:37 +0100 |
commit | 2f265d9087362c17920e4bce59b21653f3fffbfe (patch) | |
tree | 209ef39243b60e4f360646fd211d88e15f913418 /libavcodec/mpegvideo.c | |
parent | 86b4dc6277691781015000763563d1baf212cdc7 (diff) | |
parent | 6a27ae28f9bde981e85c82cf5bf42c5f43fb6f13 (diff) |
Merge commit '6a27ae28f9bde981e85c82cf5bf42c5f43fb6f13'
* commit '6a27ae28f9bde981e85c82cf5bf42c5f43fb6f13':
mpegvideo: treat delayed pictures as used
Conflicts:
libavcodec/h264.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r-- | libavcodec/mpegvideo.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index dc1fc6ca04..a3eafe42c7 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -971,9 +971,6 @@ static int free_context_frame(MpegEncContext *s) for (i = 0; i < 3; i++) av_freep(&s->visualization_buffer[i]); - if (!(s->avctx->active_thread_type & FF_THREAD_FRAME)) - avcodec_default_free_buffers(s->avctx); - return 0; } @@ -1093,6 +1090,9 @@ void ff_MPV_common_end(MpegEncContext *s) free_context_frame(s); + if (!(s->avctx->active_thread_type & FF_THREAD_FRAME)) + avcodec_default_free_buffers(s->avctx); + s->context_initialized = 0; s->last_picture_ptr = s->next_picture_ptr = @@ -1211,7 +1211,7 @@ static inline int pic_is_unused(MpegEncContext *s, Picture *pic) { if (pic->f.data[0] == NULL) return 1; - if (pic->needs_realloc) + if (pic->needs_realloc && !(pic->f.reference & DELAYED_PIC_REF)) if (!pic->owner2 || pic->owner2 == s) return 1; return 0; |