Merge palette-only header with actual video frame.

This fixes the video frame pts (off by one for each MVIh)
and makes the "key frames" decode stand-alone (MVIh
contains only palette, such a palette-only frame being
marked as key frame is not really correct).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This commit is contained in:
Reimar Döffinger
2012-01-22 13:17:53 +01:00
parent 0b378e8aa9
commit a0eb8de5e0
2 changed files with 22 additions and 5 deletions

View File

@ -162,8 +162,11 @@ static int cmv_decode_frame(AVCodecContext *avctx,
return AVERROR_INVALIDDATA;
if (AV_RL32(buf)==MVIh_TAG||AV_RB32(buf)==MVIh_TAG) {
unsigned size = AV_RL32(buf + 4);
cmv_process_header(s, buf+EA_PREAMBLE_SIZE, buf_end);
return buf_size;
if (size > buf_end - buf - EA_PREAMBLE_SIZE)
return -1;
buf += size;
}
if (av_image_check_size(s->width, s->height, 0, s->avctx))