mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2025-01-06 03:09:14 +00:00
aacdec: Refactor aac_er_decode_frame.
This commit is contained in:
parent
82bd8a5769
commit
edd9ea3ffb
@ -2703,11 +2703,12 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
|
|||||||
int *got_frame_ptr, GetBitContext *gb)
|
int *got_frame_ptr, GetBitContext *gb)
|
||||||
{
|
{
|
||||||
AACContext *ac = avctx->priv_data;
|
AACContext *ac = avctx->priv_data;
|
||||||
|
const MPEG4AudioConfig *const m4ac = &ac->oc[1].m4ac;
|
||||||
ChannelElement *che;
|
ChannelElement *che;
|
||||||
int err, i;
|
int err, i;
|
||||||
int samples = 1024;
|
int samples = 1024;
|
||||||
int chan_config = ac->oc[1].m4ac.chan_config;
|
int chan_config = m4ac->chan_config;
|
||||||
int aot = ac->oc[1].m4ac.object_type;
|
int aot = m4ac->object_type;
|
||||||
|
|
||||||
if (aot == AOT_ER_AAC_LD || aot == AOT_ER_AAC_ELD)
|
if (aot == AOT_ER_AAC_LD || aot == AOT_ER_AAC_ELD)
|
||||||
samples >>= 1;
|
samples >>= 1;
|
||||||
@ -2719,13 +2720,13 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
|
|||||||
|
|
||||||
// The FF_PROFILE_AAC_* defines are all object_type - 1
|
// The FF_PROFILE_AAC_* defines are all object_type - 1
|
||||||
// This may lead to an undefined profile being signaled
|
// This may lead to an undefined profile being signaled
|
||||||
ac->avctx->profile = ac->oc[1].m4ac.object_type - 1;
|
ac->avctx->profile = aot - 1;
|
||||||
|
|
||||||
ac->tags_mapped = 0;
|
ac->tags_mapped = 0;
|
||||||
|
|
||||||
if (chan_config < 0 || chan_config >= 8) {
|
if (chan_config < 0 || chan_config >= 8) {
|
||||||
avpriv_request_sample(avctx, "Unknown ER channel configuration %d",
|
avpriv_request_sample(avctx, "Unknown ER channel configuration %d",
|
||||||
ac->oc[1].m4ac.chan_config);
|
chan_config);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
for (i = 0; i < tags_per_config[chan_config]; i++) {
|
for (i = 0; i < tags_per_config[chan_config]; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user