[FFmpeg-devel] [PATCH 2/2] rv34: call ff_thread_report_progress() at the end even without a slice end.

Michael Niedermayer michaelni at gmx.at
Sun Jan 22 23:08:55 CET 2012


This fixes the deadlock for bug125.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
---
 libavcodec/rv34.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index e09d5dc..88beb8b 100644
--- a/libavcodec/rv34.c
+++ b/libavcodec/rv34.c
@@ -1729,6 +1729,12 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
         }
         s->current_picture_ptr = NULL; //so we can detect if frame_end wasnt called (find some nicer solution...)
     }
+    if (HAVE_THREADS && !last && s->current_picture_ptr && (s->avctx->active_thread_type & FF_THREAD_FRAME)) {
+        ff_thread_report_progress(&s->current_picture_ptr->f,
+                                    s->mb_height - 1, 0);
+            av_log(avctx, AV_LOG_WARNING, "Frame end missing\n");
+    }
+
     return avpkt->size;
 }
 
-- 
1.7.5.4



More information about the ffmpeg-devel mailing list