1
mirror of https://git.videolan.org/git/ffmpeg.git synced 2024-10-11 03:16:59 +02:00

Do not crash when the first frame is not a keyframe (and thus none of the

necessary initialization has been done yet).

Originally committed as revision 5815 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Reimar Döffinger 2006-07-23 18:22:29 +00:00
parent 22ffac707e
commit bc185f72c0

View File

@ -2235,10 +2235,15 @@ static int vp3_decode_frame(AVCodecContext *avctx,
vp3_calculate_pixel_addresses(s); vp3_calculate_pixel_addresses(s);
else else
theora_calculate_pixel_addresses(s); theora_calculate_pixel_addresses(s);
s->pixel_addresses_inited = 1;
} }
} else { } else {
/* allocate a new current frame */ /* allocate a new current frame */
s->current_frame.reference = 3; s->current_frame.reference = 3;
if (!s->pixel_addresses_inited) {
av_log(s->avctx, AV_LOG_ERROR, "vp3: first frame not a keyframe\n");
return -1;
}
if(avctx->get_buffer(avctx, &s->current_frame) < 0) { if(avctx->get_buffer(avctx, &s->current_frame) < 0) {
av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n"); av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n");
return -1; return -1;