This avoids overflow if frame_size is over 2147, since both frame_size and AV_TIME_BASE are plain integers.
Unified · Split
| @@ -121,7 +121,7 @@ static int rtp_write_header(AVFormatContext *s1) · 120 unmodified lines | |||
| 121 | if (st->codec->frame_size == 0) { | 121 | if (st->codec->frame_size == 0) { |
| 122 | av_log(s1, AV_LOG_ERROR, "Cannot respect max delay: frame size = 0\n"); | 122 | av_log(s1, AV_LOG_ERROR, "Cannot respect max delay: frame size = 0\n"); |
| 123 | } else { | 123 | } else { |
| 124 | s->max_frames_per_packet = av_rescale_rnd(s1->max_delay, st->codec->sample_rate, AV_TIME_BASE * st->codec->frame_size, AV_ROUND_DOWN); | 124 | s->max_frames_per_packet = av_rescale_rnd(s1->max_delay, st->codec->sample_rate, AV_TIME_BASE * (int64_t)st->codec->frame_size, AV_ROUND_DOWN); |
| 125 | } | 125 | } |
| 126 | } | 126 | } |
| 127 | if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { | 127 | if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { |