From 09a83e095d84fe91223a1cd309dc6ed221baa8e1 Mon Sep 17 00:00:00 2001 From: Erik Linge Date: Mon, 26 Sep 2022 21:24:25 +0200 Subject: [PATCH] rtpdec_mpeg4: Add fmtp parsing of bitrate value 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 --- libavformat/rtpdec_mpeg4.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c index c506bcbed1..80e89bda70 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; }