mirror of https://git.ffmpeg.org/ffmpeg.git
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>
This commit is contained in:
parent
e27bef9a56
commit
8c7d3b43cc
|
@ -731,9 +731,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];
|
return ac->tag_che_map[TYPE_CPE][elem_id] = ac->che[TYPE_CPE][2];
|
||||||
}
|
}
|
||||||
case 11:
|
case 11:
|
||||||
if (ac->tags_mapped == 2 &&
|
if (ac->tags_mapped == 3 && type == TYPE_SCE) {
|
||||||
ac->oc[1].m4ac.chan_config == 11 &&
|
|
||||||
type == TYPE_SCE) {
|
|
||||||
ac->tags_mapped++;
|
ac->tags_mapped++;
|
||||||
return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][1];
|
return ac->tag_che_map[TYPE_SCE][elem_id] = ac->che[TYPE_SCE][1];
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#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] = {
|
static const uint8_t aac_channel_layout_map[16][16][3] = {
|
||||||
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, },
|
{ { TYPE_SCE, 0, AAC_CHANNEL_FRONT }, },
|
||||||
|
@ -81,7 +81,7 @@ static const uint64_t aac_channel_layout[] = {
|
||||||
AV_CH_LAYOUT_5POINT0_BACK,
|
AV_CH_LAYOUT_5POINT0_BACK,
|
||||||
AV_CH_LAYOUT_5POINT1_BACK,
|
AV_CH_LAYOUT_5POINT1_BACK,
|
||||||
AV_CH_LAYOUT_7POINT1_WIDE_BACK,
|
AV_CH_LAYOUT_7POINT1_WIDE_BACK,
|
||||||
AV_CH_LAYOUT_6POINT1,
|
AV_CH_LAYOUT_6POINT1_BACK,
|
||||||
AV_CH_LAYOUT_7POINT1,
|
AV_CH_LAYOUT_7POINT1,
|
||||||
AV_CH_LAYOUT_22POINT2,
|
AV_CH_LAYOUT_22POINT2,
|
||||||
0,
|
0,
|
||||||
|
@ -97,7 +97,7 @@ static const AVChannelLayout aac_ch_layout[] = {
|
||||||
AV_CHANNEL_LAYOUT_5POINT0_BACK,
|
AV_CHANNEL_LAYOUT_5POINT0_BACK,
|
||||||
AV_CHANNEL_LAYOUT_5POINT1_BACK,
|
AV_CHANNEL_LAYOUT_5POINT1_BACK,
|
||||||
AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK,
|
AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK,
|
||||||
AV_CHANNEL_LAYOUT_6POINT1,
|
AV_CHANNEL_LAYOUT_6POINT1_BACK,
|
||||||
AV_CHANNEL_LAYOUT_7POINT1,
|
AV_CHANNEL_LAYOUT_7POINT1,
|
||||||
AV_CHANNEL_LAYOUT_22POINT2,
|
AV_CHANNEL_LAYOUT_22POINT2,
|
||||||
{ 0 },
|
{ 0 },
|
||||||
|
|
Loading…
Reference in New Issue