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 }