diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-02-18 01:58:00 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-02-18 01:58:00 +0000 |
commit | bb6f51aeab88a252cf08f5a0ec26ab41ae2d74a2 (patch) | |
tree | 730bbf3a1c3d95539e0e6beef2f606c9e913db9d /libavcodec/mpeg12.c | |
parent | 3696d2bb83ea19436eb3165c66482e61470c3ee0 (diff) | |
download | ffmpeg-bb6f51aeab88a252cf08f5a0ec26ab41ae2d74a2.tar.gz |
avoid overflow of picturenumber*fps*10000
bug found by Lennert Buytenhek <buytenh@gnu.org>
Originally committed as revision 302 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpeg12.c')
-rw-r--r-- | libavcodec/mpeg12.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index b7af9262d7..41bf524e4a 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -106,7 +106,7 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) /* time code : we must convert from the real frame rate to a fake mpeg frame rate in case of low frame rate */ fps = frame_rate_tab[s->frame_rate_index]; - time_code = s->fake_picture_number * FRAME_RATE_BASE; + time_code = (INT64)s->fake_picture_number * FRAME_RATE_BASE; s->gop_picture_number = s->fake_picture_number; put_bits(&s->pb, 5, (UINT32)((time_code / (fps * 3600)) % 24)); put_bits(&s->pb, 6, (UINT32)((time_code / (fps * 60)) % 60)); @@ -121,7 +121,7 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) /* insert empty P pictures to slow down to the desired frame rate. Each fake pictures takes about 20 bytes */ fps = frame_rate_tab[s->frame_rate_index]; - n = ((s->picture_number * fps) / s->frame_rate) - 1; + n = (((INT64)s->picture_number * fps) / s->frame_rate) - 1; while (s->fake_picture_number < n) { mpeg1_skip_picture(s, s->fake_picture_number - s->gop_picture_number); |