h264: wait for missing slices only on frames
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 9 Apr 2013 21:11:06 +0000 (23:11 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 9 Apr 2013 21:12:24 +0000 (23:12 +0200)
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@gmx.at>
libavcodec/h264.c

index 35387fa..9298890 100644 (file)
@@ -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]];