Commit 903ccf71 authored by Michael Niedermayer's avatar Michael Niedermayer

error_concealment: Check that the reference is not NULL

In normal picture decoding this does not need to be checked but as
error concealment is run in the case of errors the availability of
references is less certain. This may be fixed differently at some
point so that all references are always filled in before the EC
code, in which case this should then be changed to an assert()

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent b0660460
...@@ -60,6 +60,10 @@ static void decode_mb(MpegEncContext *s, int ref) ...@@ -60,6 +60,10 @@ static void decode_mb(MpegEncContext *s, int ref)
* practice then correct remapping should be added. */ * practice then correct remapping should be added. */
if (ref >= h->ref_count[0]) if (ref >= h->ref_count[0])
ref = 0; ref = 0;
if (!h->ref_list[0][ref].f.data[0]) {
av_log(s->avctx, AV_LOG_DEBUG, "Reference not available for error concealing\n");
ref = 0;
}
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