|
|
@ -143,8 +143,6 @@ static av_cold int che_configure(AACContext *ac, |
|
|
|
enum ChannelPosition che_pos, |
|
|
|
enum ChannelPosition che_pos, |
|
|
|
int type, int id, int *channels) |
|
|
|
int type, int id, int *channels) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (*channels >= MAX_CHANNELS) |
|
|
|
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
|
|
|
if (che_pos) { |
|
|
|
if (che_pos) { |
|
|
|
if (!ac->che[type][id]) { |
|
|
|
if (!ac->che[type][id]) { |
|
|
|
if (!(ac->che[type][id] = av_mallocz(sizeof(ChannelElement)))) |
|
|
|
if (!(ac->che[type][id] = av_mallocz(sizeof(ChannelElement)))) |
|
|
@ -152,6 +150,8 @@ static av_cold int che_configure(AACContext *ac, |
|
|
|
ff_aac_sbr_ctx_init(ac, &ac->che[type][id]->sbr); |
|
|
|
ff_aac_sbr_ctx_init(ac, &ac->che[type][id]->sbr); |
|
|
|
} |
|
|
|
} |
|
|
|
if (type != TYPE_CCE) { |
|
|
|
if (type != TYPE_CCE) { |
|
|
|
|
|
|
|
if (*channels >= MAX_CHANNELS - 2) |
|
|
|
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
ac->output_element[(*channels)++] = &ac->che[type][id]->ch[0]; |
|
|
|
ac->output_element[(*channels)++] = &ac->che[type][id]->ch[0]; |
|
|
|
if (type == TYPE_CPE || |
|
|
|
if (type == TYPE_CPE || |
|
|
|
(type == TYPE_SCE && ac->oc[1].m4ac.ps == 1)) { |
|
|
|
(type == TYPE_SCE && ac->oc[1].m4ac.ps == 1)) { |
|
|
|