mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avcodec/mpeg4videodec: set field durations to safe values when they are invalid
Fixes division by 0 Fixes: 3c980274cecaca6ca5d6e517c0c1983e-signal_sigabrt_7ffff7125425_410_cov_3621042467_2_audio_streams.avi Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b9936e59e8
commit
36fb07d1ab
@ -2297,8 +2297,10 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb)
|
|||||||
ROUNDED_DIV(s->last_non_b_time - s->pp_time, ctx->t_frame)) * 2;
|
ROUNDED_DIV(s->last_non_b_time - s->pp_time, ctx->t_frame)) * 2;
|
||||||
s->pb_field_time = (ROUNDED_DIV(s->time, ctx->t_frame) -
|
s->pb_field_time = (ROUNDED_DIV(s->time, ctx->t_frame) -
|
||||||
ROUNDED_DIV(s->last_non_b_time - s->pp_time, ctx->t_frame)) * 2;
|
ROUNDED_DIV(s->last_non_b_time - s->pp_time, ctx->t_frame)) * 2;
|
||||||
if (!s->progressive_sequence) {
|
if (s->pp_field_time <= s->pb_field_time || s->pb_field_time <= 1) {
|
||||||
if (s->pp_field_time <= s->pb_field_time || s->pb_field_time <= 1)
|
s->pb_field_time = 2;
|
||||||
|
s->pp_field_time = 4;
|
||||||
|
if (!s->progressive_sequence)
|
||||||
return FRAME_SKIPPED;
|
return FRAME_SKIPPED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user