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:
parent
22ffac707e
commit
bc185f72c0
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user