diff options
author | James Almer <jamrial@gmail.com> | 2022-10-27 02:11:04 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-11-04 15:14:51 +0300 |
commit | fe2d8f1872ac40d3046c6d104d73c5244e251703 (patch) | |
tree | 842c28a4f36e85c36b0bdc9dbe214615c0eb8239 | |
parent | f5455889fd2a879e1bfeecb7e81c2fd52ebd4baa (diff) |
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 | 6 |
2 files changed, 4 insertions, 6 deletions
diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 10fba3d3b2..7e02f8f8a8 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -730,9 +730,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 e03026806d..01fd18cd23 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 }, }, @@ -84,7 +84,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, @@ -103,7 +103,7 @@ static const AVChannelLayout aac_ch_layout[16] = { { 0 }, { 0 }, { 0 }, - AV_CHANNEL_LAYOUT_6POINT1, + AV_CHANNEL_LAYOUT_6POINT1_BACK, AV_CHANNEL_LAYOUT_7POINT1, AV_CHANNEL_LAYOUT_22POINT2, { 0 }, |