diff options
author | James Almer <jamrial@gmail.com> | 2022-10-26 20:11:04 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-11-04 09:04:41 -0300 |
commit | c351fdc0c6bd1a6d7b0d66374607cc64ca6554df (patch) | |
tree | ffd6dc77e51b23e7194e441927155027351822c1 | |
parent | 1a8defb281ac2d1d04ee1e96e667861cd005dd2d (diff) | |
download | ffmpeg-c351fdc0c6bd1a6d7b0d66374607cc64ca6554df.tar.gz |
avcodec/aacdec: fix parsing streams with channel configuration 11
Set the correct amount of tags in tags_per_config[].
Also, there are no channels that correspond to a side element in this
configuration, so reflect this in the list of known/supported channel layouts.
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 8c7d3b43cc1e41de62733eb90dda7e061778f390)
-rw-r--r-- | libavcodec/aacdec_template.c | 4 | ||||
-rw-r--r-- | libavcodec/aacdectab.h | 4 |
2 files changed, 3 insertions, 5 deletions
diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 7149b331ae..f972f1d590 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -716,9 +716,7 @@ static ChannelElement *get_che(AACContext *ac, int type, int elem_id) return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][2]; } case 11: - if (ac->tags_mapped == 2 && - ac->oc[1].m4ac.chan_config == 11 && - type == TYPE_SCE) { + if (ac->tags_mapped == 3 && type == TYPE_SCE) { ac->tags_mapped++; return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][1]; } diff --git a/libavcodec/aacdectab.h b/libavcodec/aacdectab.h index c54a3eb943..14851b23e2 100644 --- a/libavcodec/aacdectab.h +++ b/libavcodec/aacdectab.h @@ -35,7 +35,7 @@ #include <stdint.h> -static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 4, 5, 16, 5, 0 }; +static const int8_t tags_per_config[16] = { 0, 1, 1, 2, 3, 3, 4, 5, 0, 0, 0, 5, 5, 16, 5, 0 }; static const uint8_t aac_channel_layout_map[16][16][3] = { { { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, }, @@ -83,7 +83,7 @@ static const uint64_t aac_channel_layout[16] = { 0, 0, 0, - AV_CH_LAYOUT_6POINT1, + AV_CH_LAYOUT_6POINT1_BACK, AV_CH_LAYOUT_7POINT1, AV_CH_LAYOUT_22POINT2, 0, |