]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/wmaprodec.c
dirac_parser: add exceptions for Dirac inter parse codes
[ffmpeg] / libavcodec / wmaprodec.c
index f8f901c22497c2a26bcfffd519861d3678ffc223..2ea59e9251e4a254bd2c5d0cf07ae498907d7fd4 100644 (file)
@@ -89,6 +89,7 @@
 #include <inttypes.h>
 
 #include "libavutil/float_dsp.h"
+#include "libavutil/internal.h"
 #include "libavutil/intfloat.h"
 #include "libavutil/intreadwrite.h"
 #include "avcodec.h"
@@ -1221,7 +1222,7 @@ static int decode_subframe(WMAProDecodeCtx *s)
         int num_fill_bits;
         if (!(num_fill_bits = get_bits(&s->gb, 2))) {
             int len = get_bits(&s->gb, 4);
-            num_fill_bits = (len ? get_bits(&s->gb, len) : 0) + 1;
+            num_fill_bits = get_bitsz(&s->gb, len) + 1;
         }
 
         if (num_fill_bits >= 0) {
@@ -1350,7 +1351,7 @@ static int decode_subframe(WMAProDecodeCtx *s)
                 const int exp = s->channel[c].quant_step -
                             (s->channel[c].max_scale_factor - *sf++) *
                             s->channel[c].scale_factor_step;
-                const float quant = pow(10.0, exp / 20.0);
+                const float quant = ff_exp10(exp / 20.0);
                 int start = s->cur_sfb_offsets[b];
                 s->fdsp->vector_fmul_scalar(s->tmp + start,
                                            s->channel[c].coeffs + start,