summaryrefslogtreecommitdiff
path: root/libavcodec/ac3enc.c
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2011-03-12 22:16:49 +0000
committerMans Rullgard <mans@mansr.com>2011-04-04 18:27:22 +0100
commit2310ee4b1cca48609d06774b7c3c70a5f38f3473 (patch)
tree961af13445c83097865689c06747b0487dc532cd /libavcodec/ac3enc.c
parent727c7aa02642c97b68356d40d1a8e9e835ba1a69 (diff)
ac3enc: move extract_exponents inner loop to ac3dsp
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/ac3enc.c')
-rw-r--r--libavcodec/ac3enc.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index e0806b3081..04e8b4fb0b 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -562,28 +562,13 @@ static av_cold void exponent_init(AC3EncodeContext *s)
*/
static void extract_exponents(AC3EncodeContext *s)
{
- int blk, ch, i;
+ int blk, ch;
for (ch = 0; ch < s->channels; ch++) {
for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) {
AC3Block *block = &s->blocks[blk];
- uint8_t *exp = block->exp[ch];
- int32_t *coef = block->fixed_coef[ch];
- for (i = 0; i < AC3_MAX_COEFS; i++) {
- int e;
- int v = abs(coef[i]);
- if (v == 0)
- e = 24;
- else {
- e = 23 - av_log2(v);
- if (e >= 24) {
- e = 24;
- coef[i] = 0;
- }
- av_assert2(e >= 0);
- }
- exp[i] = e;
- }
+ s->ac3dsp.extract_exponents(block->exp[ch], block->fixed_coef[ch],
+ AC3_MAX_COEFS);
}
}
}