Commit e8fed4d3 authored by Michael Niedermayer's avatar Michael Niedermayer

error concealment: check that references are frames and not fields.

frames cant have field references.
Fixes a deadlock

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 8a03a60b
...@@ -66,6 +66,10 @@ static void decode_mb(MpegEncContext *s, int ref) ...@@ -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"); av_log(s->avctx, AV_LOG_DEBUG, "Reference not available for error concealing\n");
ref = 0; 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], fill_rectangle(&s->current_picture.f.ref_index[0][4 * h->mb_xy],
2, 2, 2, ref, 1); 2, 2, 2, ref, 1);
fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, ref, 1); fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, ref, 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment