---
 libavcodec/ac3dsp.c |   16 +++-------------
 libavcodec/ac3enc.c |    4 ++++
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/libavcodec/ac3dsp.c b/libavcodec/ac3dsp.c
index 8ce5f8d..858e1b8 100644
--- a/libavcodec/ac3dsp.c
+++ b/libavcodec/ac3dsp.c
@@ -164,21 +164,11 @@ static void ac3_extract_exponents_c(uint8_t *exp, int32_t *coef, int nb_coefs)
     int i;
 
     for (i = 0; i < nb_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;
-            } else if (e < 0) {
-                e = 0;
-                coef[i] = av_clip(coef[i], -16777215, 16777215);
-            }
-        }
-        exp[i] = e;
+            exp[i] = 24;
+        else
+            exp[i] = 23 - av_log2(v);
     }
 }
 
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 53f6251..8eaec00 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -707,6 +707,8 @@ static void apply_channel_coupling(AC3EncodeContext *s)
         s->ac3dsp.float_to_fixed24(fixed_cpl_coords[blk][1],
                                    cpl_coords[blk][1],
                                    s->fbw_channels * 16);
+        s->dsp.vector_clip_int32(fixed_cpl_coords[blk][1], fixed_cpl_coords[blk][1],
+                                 -16777215, 16777215, s->fbw_channels * 16);
         s->ac3dsp.extract_exponents(block->cpl_coord_exp[1],
                                     fixed_cpl_coords[blk][1],
                                     s->fbw_channels * 16);
@@ -904,6 +906,8 @@ static void extract_exponents(AC3EncodeContext *s)
     int chan_size = AC3_MAX_COEFS * AC3_MAX_BLOCKS * (s->channels - ch + 1);
     AC3Block *block = &s->blocks[0];
 
+    s->dsp.vector_clip_int32(block->fixed_coef[ch], block->fixed_coef[ch],
+                             -16777215, 16777215, chan_size);
     s->ac3dsp.extract_exponents(block->exp[ch], block->fixed_coef[ch], chan_size);
 }
 
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to