Fixes Division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
... | ... |
@@ -415,13 +415,15 @@ static int rv20_decode_picture_header(RVDecContext *rv) |
415 | 415 |
}else{ |
416 | 416 |
s->time= seq; |
417 | 417 |
s->pb_time= s->pp_time - (s->last_non_b_time - s->time); |
418 |
- if(s->pp_time <=s->pb_time || s->pp_time <= s->pp_time - s->pb_time || s->pp_time<=0){ |
|
419 |
- av_log(s->avctx, AV_LOG_DEBUG, "messed up order, possible from seeking? skipping current b frame\n"); |
|
420 |
- return FRAME_SKIPPED; |
|
421 |
- } |
|
422 |
- ff_mpeg4_init_direct_mv(s); |
|
423 | 418 |
} |
424 | 419 |
} |
420 |
+ if (s->pict_type==AV_PICTURE_TYPE_B) { |
|
421 |
+ if(s->pp_time <=s->pb_time || s->pp_time <= s->pp_time - s->pb_time || s->pp_time<=0){ |
|
422 |
+ av_log(s->avctx, AV_LOG_DEBUG, "messed up order, possible from seeking? skipping current b frame\n"); |
|
423 |
+ return FRAME_SKIPPED; |
|
424 |
+ } |
|
425 |
+ ff_mpeg4_init_direct_mv(s); |
|
426 |
+ } |
|
425 | 427 |
|
426 | 428 |
s->no_rounding= get_bits1(&s->gb); |
427 | 429 |
|