Mercurial > libavcodec.hg
comparison vp3.c @ 3512:feace06d4184 libavcodec
Do not crash when the first frame is not a keyframe (and thus none of the
necessary initialization has been done yet).
author | reimar |
---|---|
date | Sun, 23 Jul 2006 18:22:29 +0000 |
parents | 47c9a225c4d4 |
children | 6506f95498dc |
comparison
equal
deleted
inserted
replaced
3511:f88787aeed6b | 3512:feace06d4184 |
---|---|
2233 { | 2233 { |
2234 if (!s->flipped_image) | 2234 if (!s->flipped_image) |
2235 vp3_calculate_pixel_addresses(s); | 2235 vp3_calculate_pixel_addresses(s); |
2236 else | 2236 else |
2237 theora_calculate_pixel_addresses(s); | 2237 theora_calculate_pixel_addresses(s); |
2238 s->pixel_addresses_inited = 1; | |
2238 } | 2239 } |
2239 } else { | 2240 } else { |
2240 /* allocate a new current frame */ | 2241 /* allocate a new current frame */ |
2241 s->current_frame.reference = 3; | 2242 s->current_frame.reference = 3; |
2243 if (!s->pixel_addresses_inited) { | |
2244 av_log(s->avctx, AV_LOG_ERROR, "vp3: first frame not a keyframe\n"); | |
2245 return -1; | |
2246 } | |
2242 if(avctx->get_buffer(avctx, &s->current_frame) < 0) { | 2247 if(avctx->get_buffer(avctx, &s->current_frame) < 0) { |
2243 av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n"); | 2248 av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n"); |
2244 return -1; | 2249 return -1; |
2245 } | 2250 } |
2246 } | 2251 } |