OSDN Git Service

threads: restore has_b_frames in frame_thread_free
authorJanne Grunau <janne-libav@jannau.net>
Wed, 26 Oct 2011 13:28:29 +0000 (15:28 +0200)
committerJanne Grunau <janne-libav@jannau.net>
Wed, 26 Oct 2011 14:55:54 +0000 (16:55 +0200)
Otherwise the delay expressed in has_b_frames increases with every
avcodec_close/avcodec_open.
Fixes fate-ea-dct with more than 1 thread.

libavcodec/pthread.c

index d5129dc..7557e68 100644 (file)
@@ -681,6 +681,7 @@ static void frame_thread_free(AVCodecContext *avctx, int thread_count)
     av_freep(&fctx->threads);
     pthread_mutex_destroy(&fctx->buffer_mutex);
     av_freep(&avctx->thread_opaque);
+    avctx->has_b_frames -= avctx->thread_count - 1;
 }
 
 static int frame_thread_init(AVCodecContext *avctx)