aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-04-14 18:31:03 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-04-18 14:52:26 +0200
commit5b9fab0f077d0ccc5ccf2553ce167bd9f9b74d0f (patch)
tree8a98be10b3a12b2b0533af87572ce0eb3fd024a7 /libavcodec
parent79d1814b719a0f7efe99850b1adee5d1503e27f5 (diff)
downloadffmpeg-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.c24
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)];
}
}