diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-14 18:31:03 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-18 14:52:26 +0200 |
commit | 5b9fab0f077d0ccc5ccf2553ce167bd9f9b74d0f (patch) | |
tree | 8a98be10b3a12b2b0533af87572ce0eb3fd024a7 /libavcodec | |
parent | 79d1814b719a0f7efe99850b1adee5d1503e27f5 (diff) | |
download | ffmpeg-5b9fab0f077d0ccc5ccf2553ce167bd9f9b74d0f.tar.gz |
avcodec/ac3enc: Combine loops
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/ac3enc.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 1ef670622a..eb878afc7b 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2459,6 +2459,10 @@ static av_cold int allocate_buffers(AC3EncodeContext *s) !FF_ALLOC_TYPED_ARRAY(s->qmant_buffer, total_coefs)) return AVERROR(ENOMEM); + if (!s->fixed_point) { + if (!FF_ALLOCZ_TYPED_ARRAY(s->fixed_coef_buffer, total_coefs)) + return AVERROR(ENOMEM); + } if (s->cpl_enabled) { if (!FF_ALLOC_TYPED_ARRAY(s->cpl_coord_exp_buffer, channel_blocks * 16) || !FF_ALLOC_TYPED_ARRAY(s->cpl_coord_mant_buffer, channel_blocks * 16)) @@ -2482,24 +2486,10 @@ static av_cold int allocate_buffers(AC3EncodeContext *s) /* arrangement: channel, block, coeff */ block->exp[ch] = &s->exp_buffer [AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; block->mdct_coef[ch] = &s->mdct_coef_buffer [AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; - } - } - - if (!s->fixed_point) { - if (!FF_ALLOCZ_TYPED_ARRAY(s->fixed_coef_buffer, total_coefs)) - return AVERROR(ENOMEM); - for (blk = 0; blk < s->num_blocks; blk++) { - AC3Block *block = &s->blocks[blk]; - - for (ch = 0; ch < channels; ch++) - block->fixed_coef[ch] = &s->fixed_coef_buffer[AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; - } - } else { - for (blk = 0; blk < s->num_blocks; blk++) { - AC3Block *block = &s->blocks[blk]; - - for (ch = 0; ch < channels; ch++) + if (s->fixed_point) block->fixed_coef[ch] = (int32_t *)block->mdct_coef[ch]; + else + block->fixed_coef[ch] = &s->fixed_coef_buffer[AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; } } |