Commit 6cd81d68 authored by Michael Niedermayer's avatar Michael Niedermayer

libavcodec/rv34: error out earlier on missing references

Fixes visual corruption on seeking

Fixes: downloadTest_clip_24M.rmvb
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 6261ef42
...@@ -1585,7 +1585,7 @@ int ff_rv34_decode_update_thread_context(AVCodecContext *dst, const AVCodecConte ...@@ -1585,7 +1585,7 @@ int ff_rv34_decode_update_thread_context(AVCodecContext *dst, const AVCodecConte
// Do no call ff_mpeg_update_thread_context on a partially initialized // Do no call ff_mpeg_update_thread_context on a partially initialized
// decoder context. // decoder context.
if (!s1->linesize) if (!s1->context_initialized)
return 0; return 0;
return ff_mpeg_update_thread_context(dst, src); return ff_mpeg_update_thread_context(dst, src);
...@@ -1733,6 +1733,8 @@ int ff_rv34_decode_frame(AVCodecContext *avctx, ...@@ -1733,6 +1733,8 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
if ((err = rv34_decoder_realloc(r)) < 0) if ((err = rv34_decoder_realloc(r)) < 0)
return err; return err;
} }
if (faulty_b)
return AVERROR_INVALIDDATA;
s->pict_type = si.type ? si.type : AV_PICTURE_TYPE_I; s->pict_type = si.type ? si.type : AV_PICTURE_TYPE_I;
if (ff_mpv_frame_start(s, s->avctx) < 0) if (ff_mpv_frame_start(s, s->avctx) < 0)
return -1; return -1;
...@@ -1786,8 +1788,6 @@ int ff_rv34_decode_frame(AVCodecContext *avctx, ...@@ -1786,8 +1788,6 @@ int ff_rv34_decode_frame(AVCodecContext *avctx,
"multithreading mode (start MB is %d).\n", si.start); "multithreading mode (start MB is %d).\n", si.start);
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
if (faulty_b)
return AVERROR_INVALIDDATA;
for(i = 0; i < slice_count; i++){ for(i = 0; i < slice_count; i++){
int offset = get_slice_offset(avctx, slices_hdr, i , slice_count, buf_size); int offset = get_slice_offset(avctx, slices_hdr, i , slice_count, buf_size);
......
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