pthread: make ff_thread_release_buffer idempotent.
authorAnton Khirnov <anton@khirnov.net>
Fri, 28 Dec 2012 08:54:29 +0000 (09:54 +0100)
committerAnton Khirnov <anton@khirnov.net>
Tue, 29 Jan 2013 06:32:10 +0000 (07:32 +0100)
I.e. don't do anything on already released frames.

libavcodec/pthread.c

index 73d9da3..cd44b8c 100644 (file)
@@ -975,6 +975,9 @@ void ff_thread_release_buffer(AVCodecContext *avctx, AVFrame *f)
     PerThreadContext *p = avctx->thread_opaque;
     FrameThreadContext *fctx;
 
     PerThreadContext *p = avctx->thread_opaque;
     FrameThreadContext *fctx;
 
+    if (!f->data[0])
+        return;
+
     if (!(avctx->active_thread_type&FF_THREAD_FRAME)) {
         avctx->release_buffer(avctx, f);
         return;
     if (!(avctx->active_thread_type&FF_THREAD_FRAME)) {
         avctx->release_buffer(avctx, f);
         return;