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 | 121 | if (st->codec->frame_size == 0) { |
| 122 | 122 | av_log(s1, AV_LOG_ERROR, "Cannot respect max delay: frame size = 0\n"); |
| 123 | 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 | 127 | if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { |