---
 libavcodec/ac3dec.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index d0628ab..609fcb5 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -475,6 +475,7 @@ static void ac3_decode_transform_coeffs_ch(AC3DecodeContext 
*s, int ch_index, ma
     for (freq = start_freq; freq < end_freq; freq++) {
         int bap = baps[freq];
         int mantissa;
+        bitstream_prefetch(&bc, 7);
         switch (bap) {
         case 0:
             /* random noise with approximate range of -0.707 to 0.707 */
@@ -488,7 +489,7 @@ static void ac3_decode_transform_coeffs_ch(AC3DecodeContext 
*s, int ch_index, ma
                 m->b1--;
                 mantissa = m->b1_mant[m->b1];
             } else {
-                int bits      = bitstream_read(&bc, 5);
+                int bits      = bitstream_read_cache(&bc, 5);
                 mantissa      = b1_mantissas[bits][0];
                 m->b1_mant[1] = b1_mantissas[bits][1];
                 m->b1_mant[0] = b1_mantissas[bits][2];
@@ -500,7 +501,7 @@ static void ac3_decode_transform_coeffs_ch(AC3DecodeContext 
*s, int ch_index, ma
                 m->b2--;
                 mantissa = m->b2_mant[m->b2];
             } else {
-                int bits      = bitstream_read(&bc, 7);
+                int bits      = bitstream_read_cache(&bc, 7);
                 mantissa      = b2_mantissas[bits][0];
                 m->b2_mant[1] = b2_mantissas[bits][1];
                 m->b2_mant[0] = b2_mantissas[bits][2];
@@ -508,21 +509,21 @@ static void 
ac3_decode_transform_coeffs_ch(AC3DecodeContext *s, int ch_index, ma
             }
             break;
         case 3:
-            mantissa = b3_mantissas[bitstream_read(&bc, 3)];
+            mantissa = b3_mantissas[bitstream_read_cache(&bc, 3)];
             break;
         case 4:
             if (m->b4) {
                 m->b4 = 0;
                 mantissa = m->b4_mant;
             } else {
-                int bits   = bitstream_read(&bc, 7);
+                int bits   = bitstream_read_cache(&bc, 7);
                 mantissa   = b4_mantissas[bits][0];
                 m->b4_mant = b4_mantissas[bits][1];
                 m->b4      = 1;
             }
             break;
         case 5:
-            mantissa = b5_mantissas[bitstream_read(&bc, 4)];
+            mantissa = b5_mantissas[bitstream_read_cache(&bc, 4)];
             break;
         default: /* 6 to 15 */
             /* Shift mantissa and sign-extend it. */
-- 
2.6.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to