[FFmpeg-devel] [PATCH] rtpdec_mpeg4: Add fmtp parsing of bitrate value

Marvin Scholz epirat07 at gmail.com
Fri Mar 21 06:08:55 EET 2025


According to RFC 6416 the audio stream sender can pass the data rate
for the audio bitstream as "bitrate=" media format parameter.

Signed-off-by: Marvin Scholz <epirat07 at gmail.com>
---
 libavformat/rtpdec_mpeg4.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c
index 6531632b2d..06c96b38cb 100644
--- a/libavformat/rtpdec_mpeg4.c
+++ b/libavformat/rtpdec_mpeg4.c
@@ -38,6 +38,7 @@
 
 /** Structure listing useful vars to parse RTP packet payload */
 struct PayloadContext {
+    int bitrate;
     int sizelength;
     int indexlength;
     int indexdeltalength;
@@ -83,6 +84,9 @@ typedef struct AttrNameMap {
 #define ATTR_NAME_TYPE_INT 0
 #define ATTR_NAME_TYPE_STR 1
 static const AttrNameMap attr_names[] = {
+    { "bitrate",       ATTR_NAME_TYPE_INT,
+      offsetof(PayloadContext, bitrate),
+      {0, INT32_MAX} },
     { "SizeLength",       ATTR_NAME_TYPE_INT,
       offsetof(PayloadContext, sizelength),
       {0, 32} }, // SizeLength number of bits used to encode AU-size integer value
@@ -332,6 +336,9 @@ static int parse_fmtp(AVFormatContext *s,
                 }
             }
         }
+        if (!strcmp(attr, "bitrate")) {
+            par->bit_rate = data->bitrate;
+        }
     }
     return 0;
 }

base-commit: 0ce405afb8df221b3a975a30b5c229449c8ed7da
-- 
2.39.5 (Apple Git-154)


More information about the ffmpeg-devel mailing list