From 3513ccccb650a920ea7da964f0415476c6525fb0 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sun, 17 Nov 2024 23:01:37 -0300 Subject: [PATCH] avformat/movenc: don't write a calculated avgBitrate when the provided one is unset avgBitrate == 0 is used to signal a VBR track, so if that value is propagated by an encoder, don't overwrite it with a calculated value based on track size. Part of a fix for ticket #11303. Signed-off-by: James Almer (cherry picked from commit 944212acad7c2254d9dc14764b29e0023aaa645a) --- libavformat/movenc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index d20e45cf81..a365ebe921 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -737,6 +737,9 @@ static struct mpeg4_bit_rate_values calculate_mpeg4_bit_rates(MOVTrack *track) // utilize values from properties if we have them available if (props) { + // no avg_bitrate signals that the track is VBR + if (!props->avg_bitrate) + bit_rates.avg_bit_rate = props->avg_bitrate; bit_rates.max_bit_rate = FFMAX(bit_rates.max_bit_rate, props->max_bitrate); bit_rates.buffer_size = props->buffer_size / 8;