[FFmpeg-devel] [PATCH 1/2] avformat/movenc: don't write a calculated avgBitrate when the provided one is unset

James Almer jamrial at gmail.com
Mon Nov 18 04:01:37 EET 2024


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 <jamrial at gmail.com>
---
 libavformat/movenc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 7563ff2628..8300f49383 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;
-- 
2.47.0



More information about the ffmpeg-devel mailing list