[FFmpeg-cvslog] h264: wait for missing slices only on frames

Michael Niedermayer git at videolan.org
Tue Apr 9 23:22:27 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Apr  9 23:11:06 2013 +0200| [62a1181015c2bd90adfadcd8c9ababba44665db2] | committer: Michael Niedermayer

h264: wait for missing slices only on frames

The EC code does not support fields currently thus it makes no
sense to wait for these cases (which also the check doesnt handle
correctly)

Fixes Ticket 2454

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=62a1181015c2bd90adfadcd8c9ababba44665db2
---

 libavcodec/h264.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 35387fa..9298890 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -4248,7 +4248,7 @@ static int decode_slice(struct AVCodecContext *avctx, void *arg)
                     avctx->codec_id != AV_CODEC_ID_H264 ||
                     (CONFIG_GRAY && (h->flags & CODEC_FLAG_GRAY));
 
-    if (!(h->avctx->active_thread_type & FF_THREAD_SLICE)) {
+    if (!(h->avctx->active_thread_type & FF_THREAD_SLICE) && h->picture_structure == PICT_FRAME) {
         const int start_i  = av_clip(h->resync_mb_x + h->resync_mb_y * h->mb_width, 0, h->mb_num - 1);
         if (start_i) {
             int prev_status = h->er.error_status_table[h->er.mb_index2xy[start_i - 1]];



More information about the ffmpeg-cvslog mailing list