aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2024-08-31 14:32:02 -0300
committerJames Almer <jamrial@gmail.com>2024-08-31 14:51:32 -0300
commitfa5d3cc65309052402c6e3223d127b930b9e5699 (patch)
tree8621ed90e3d72483c382581680b28a6bf915094c
parent9c0e0c0b3faf808145697ed44c1fff6ff03c0f23 (diff)
downloadffmpeg-fa5d3cc65309052402c6e3223d127b930b9e5699.tar.gz
avformat/iamf_parse: use get_bits_long() to read the remaining AAC extradata bits
The output of put_bits_left() here can be as big as 27, which is a bit count not supported by get_bits(). Fixes fate-iamf-stereo-demux when using --assert-level=2 Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavformat/iamf_parse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c
index 0dd0649de6..f13e76b147 100644
--- a/libavformat/iamf_parse.c
+++ b/libavformat/iamf_parse.c
@@ -305,10 +305,10 @@ static int update_extradata(AVCodecParameters *codecpar)
skip_bits(&gb, 4);
put_bits(&pb, 4, codecpar->ch_layout.nb_channels); // set channel config
ret = put_bits_left(&pb);
- put_bits(&pb, ret, get_bits(&gb, ret));
+ put_bits(&pb, ret, get_bits_long(&gb, ret));
flush_put_bits(&pb);
- memcpy(codecpar->extradata, buf, sizeof(buf));
+ memcpy(codecpar->extradata, buf, put_bytes_output(&pb));
break;
}
case AV_CODEC_ID_FLAC: {