Make wmadec_cleanup() return void.
[paraslash.git] / wmadec_filter.c
index 3a88cdc02a247b49da519fb360abbba0b1dddce2..9b103f9f80aa71b187602a54c46056f5a5d96a0c 100644 (file)
@@ -9,7 +9,7 @@
  * For licencing details see COPYING.LIB.
  */
 
-/** * \file wmadec_filter.c paraslash's WMA decoder.  */
+/** \file wmadec_filter.c paraslash's WMA decoder. */
 
 /*
  * This decoder handles Microsoft Windows Media Audio data version 2.
@@ -123,13 +123,13 @@ struct private_wmadec_data {
 };
 
 #define EXPVLCBITS 8
-#define EXPMAX ((19+EXPVLCBITS-1)/EXPVLCBITS)
+#define EXPMAX ((19 + EXPVLCBITS - 1) / EXPVLCBITS)
 
 #define HGAINVLCBITS 9
-#define HGAINMAX ((13+HGAINVLCBITS-1)/HGAINVLCBITS)
+#define HGAINMAX ((13 + HGAINVLCBITS - 1) / HGAINVLCBITS)
 
 #define VLCBITS 9
-#define VLCMAX ((22+VLCBITS-1)/VLCBITS)
+#define VLCMAX ((22 + VLCBITS - 1) / VLCBITS)
 
 DECLARE_ALIGNED(16, float, ff_sine_128[128]);
 DECLARE_ALIGNED(16, float, ff_sine_256[256]);
@@ -152,13 +152,12 @@ static void sine_window_init(float *window, int n)
                window[i] = sinf((i + 0.5) * (M_PI / (2.0 * n)));
 }
 
-static int wmadec_cleanup(struct private_wmadec_data *s)
+static void wmadec_cleanup(struct private_wmadec_data *s)
 {
        int i;
 
        for (i = 0; i < s->nb_block_sizes; i++)
                imdct_end(s->mdct_ctx[i]);
-
        if (s->use_exp_vlc)
                free_vlc(&s->exp_vlc);
        if (s->use_noise_coding)
@@ -169,7 +168,6 @@ static int wmadec_cleanup(struct private_wmadec_data *s)
                free(s->level_table[i]);
                free(s->int_table[i]);
        }
-       return 0;
 }
 
 /* XXX: use same run/length optimization as mpeg decoders */
@@ -309,9 +307,8 @@ static int wma_init(struct private_wmadec_data *s, int flags2, struct asf_header
                if (nb > nb_max)
                        nb = nb_max;
                s->nb_block_sizes = nb + 1;
-       } else {
+       } else
                s->nb_block_sizes = 1;
-       }
 
        /* init rate dependent parameters */
        s->use_noise_coding = 1;
@@ -629,18 +626,21 @@ static int decode_exp_vlc(struct private_wmadec_data *s, int ch)
        return 0;
 }
 
-static void vector_fmul_add(float *dst, const float *src0, const float *src1,
-               const float *src2, int src3, int len)
+/* compute src0 * src1 + src2 */
+static inline void vector_mult_add(float *dst, const float *src0, const float *src1,
+               const float *src2, int len)
 {
        int i;
+
        for (i = 0; i < len; i++)
-               dst[i] = src0[i] * src1[i] + src2[i] + src3;
+               dst[i] = src0[i] * src1[i] + src2[i];
 }
 
-static void vector_fmul_reverse_c(float *dst, const float *src0,
+static inline void vector_mult_reverse(float *dst, const float *src0,
                const float *src1, int len)
 {
        int i;
+
        src1 += len - 1;
        for (i = 0; i < len; i++)
                dst[i] = src0[i] * src1[-i];
@@ -661,42 +661,30 @@ static void wma_window(struct private_wmadec_data *s, float *out)
        if (s->block_len_bits <= s->prev_block_len_bits) {
                block_len = s->block_len;
                bsize = s->frame_len_bits - s->block_len_bits;
-
-               vector_fmul_add(out, in, s->windows[bsize],
-                                        out, 0, block_len);
-
+               vector_mult_add(out, in, s->windows[bsize], out, block_len);
        } else {
                block_len = 1 << s->prev_block_len_bits;
                n = (s->block_len - block_len) / 2;
                bsize = s->frame_len_bits - s->prev_block_len_bits;
-
-               vector_fmul_add(out + n, in + n, s->windows[bsize],
-                                        out + n, 0, block_len);
-
+               vector_mult_add(out + n, in + n, s->windows[bsize], out + n,
+                       block_len);
                memcpy(out + n + block_len, in + n + block_len,
-                      n * sizeof(float));
+                       n * sizeof(float));
        }
-
        out += s->block_len;
        in += s->block_len;
-
        /* right part */
        if (s->block_len_bits <= s->next_block_len_bits) {
                block_len = s->block_len;
                bsize = s->frame_len_bits - s->block_len_bits;
-
-               vector_fmul_reverse_c(out, in, s->windows[bsize], block_len);
-
+               vector_mult_reverse(out, in, s->windows[bsize], block_len);
        } else {
                block_len = 1 << s->next_block_len_bits;
                n = (s->block_len - block_len) / 2;
                bsize = s->frame_len_bits - s->next_block_len_bits;
-
                memcpy(out, in, n * sizeof(float));
-
-               vector_fmul_reverse_c(out + n, in + n, s->windows[bsize],
-                                     block_len);
-
+               vector_mult_reverse(out + n, in + n, s->windows[bsize],
+                       block_len);
                memset(out + n + block_len, 0, n * sizeof(float));
        }
 }
@@ -761,9 +749,8 @@ static int wma_decode_block(struct private_wmadec_data *s)
        if ((s->block_pos + s->block_len) > s->frame_len)
                return -E_INCOHERENT_BLOCK_LEN;
 
-       if (s->ahi.channels == 2) {
+       if (s->ahi.channels == 2)
                s->ms_stereo = get_bits1(&s->gb);
-       }
        v = 0;
        for (ch = 0; ch < s->ahi.channels; ch++) {
                int a = get_bits1(&s->gb);
@@ -1139,7 +1126,7 @@ static inline int16_t av_clip_int16(int a)
 }
 
 /* Decode a frame of frame_len samples. */
-static int wma_decode_frame(struct private_wmadec_data *s, int16_t * samples)
+static int wma_decode_frame(struct private_wmadec_data *s, int16_t *samples)
 {
        int ret, i, n, ch, incr;
        int16_t *ptr;
@@ -1214,9 +1201,8 @@ static int wma_decode_superframe(struct private_wmadec_data *s, void *data,
                                *q++ = get_bits(&s->gb, 8);
                                len -= 8;
                        }
-                       if (len > 0) {
+                       if (len > 0)
                                *q++ = get_bits(&s->gb, len) << (8 - len);
-                       }
 
                        /* XXX: bit_offset bits into last frame */
                        init_get_bits(&s->gb, s->last_superframe,
@@ -1259,9 +1245,8 @@ static int wma_decode_superframe(struct private_wmadec_data *s, void *data,
                pos >>= 3;
                len = buf_size - pos;
                ret = -E_WMA_BAD_SUPERFRAME;
-               if (len > MAX_CODED_SUPERFRAME_SIZE || len < 0) {
+               if (len > MAX_CODED_SUPERFRAME_SIZE || len < 0)
                        goto fail;
-               }
                s->last_superframe_len = len;
                memcpy(s->last_superframe, buf + pos, len);
        } else {
@@ -1320,6 +1305,7 @@ static ssize_t wmadec_convert(char *inbuffer, size_t len,
 static void wmadec_close(struct filter_node *fn)
 {
        struct private_wmadec_data *pwd = fn->private_data;
+
        if (!pwd)
                return;
        wmadec_cleanup(pwd);