]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/error_resilience.c
error concealment: check that references are frames and not fields.
[ffmpeg] / libavcodec / error_resilience.c
index 7ddc5ac052383e259033a4d045bc0d366e98a5e4..01f74249044b15d236b74490a5b2e58f8af36f92 100644 (file)
@@ -66,6 +66,10 @@ static void decode_mb(MpegEncContext *s, int ref)
             av_log(s->avctx, AV_LOG_DEBUG, "Reference not available for error concealing\n");
             ref = 0;
         }
+        if ((h->ref_list[0][ref].f.reference&3) != 3) {
+            av_log(s->avctx, AV_LOG_DEBUG, "Reference invalid\n");
+            return;
+        }
         fill_rectangle(&s->current_picture.f.ref_index[0][4 * h->mb_xy],
                        2, 2, 2, ref, 1);
         fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, ref, 1);