Remove unnecessary system header includes.
[paraslash.git] / wmadec_filter.c
index a35c174283a4e08b10b8f759839e7656396dbf50..6b7251ee06338d1c1b50b4cd5eb674a6958ee0c0 100644 (file)
 
 #define _XOPEN_SOURCE 600
 
-#include <sys/time.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
 #include <math.h>
-#include <string.h>
 #include <regex.h>
 #include <sys/select.h>
 
@@ -63,19 +58,12 @@ struct private_wmadec_data {
        /** Information contained in the audio file header. */
        struct asf_header_info ahi;
        struct getbit_context gb;
-       /** Whether to use the bit reservoir. */
-       int use_bit_reservoir;
-       /** Whether to use variable block length. */
-       int use_variable_block_len;
-       /** Whether to use exponent coding. */
-       int use_exp_vlc;
        /** Whether perceptual noise is added. */
        int use_noise_coding;
        /** Depends on number of the bits per second and the frame length. */
        int byte_offset_bits;
-       /** Only used if use_exp_vlc is true. */
+       /** Only used if ahi->use_exp_vlc is true. */
        struct vlc exp_vlc;
-       int exponent_sizes[BLOCK_NB_SIZES];
        uint16_t exponent_bands[BLOCK_NB_SIZES][25];
        /** The index of the first coef in high band. */
        int high_band_start[BLOCK_NB_SIZES];
@@ -98,7 +86,7 @@ struct private_wmadec_data {
        int frame_len;
        /** log2 of frame_len. */
        int frame_len_bits;
-       /** Number of block sizes. */
+       /** Number of block sizes, one if !ahi->use_variable_block_len. */
        int nb_block_sizes;
        /* block info */
        int reset_block_lengths;
@@ -151,6 +139,8 @@ struct private_wmadec_data {
 #define VLCBITS 9
 #define VLCMAX DIV_ROUND_UP(22, VLCBITS)
 
+/** \cond sine_winows */
+
 #define SINE_WINDOW(x) static float sine_ ## x[x] __a_aligned(16)
 
 SINE_WINDOW(128);
@@ -163,6 +153,7 @@ SINE_WINDOW(4096);
 static float *sine_windows[6] = {
        sine_128, sine_256, sine_512, sine_1024, sine_2048, sine_4096
 };
+/** \endcond sine_windows */
 
 /* Generate a sine window. */
 static void sine_window_init(float *window, int n)
@@ -179,7 +170,7 @@ static void wmadec_cleanup(struct private_wmadec_data *pwd)
 
        for (i = 0; i < pwd->nb_block_sizes; i++)
                imdct_end(pwd->mdct_ctx[i]);
-       if (pwd->use_exp_vlc)
+       if (pwd->ahi.use_exp_vlc)
                free_vlc(&pwd->exp_vlc);
        if (pwd->use_noise_coding)
                free_vlc(&pwd->hgain_vlc);
@@ -229,8 +220,9 @@ static void compute_scale_factor_band_sizes(struct private_wmadec_data *pwd,
        const uint8_t *table;
 
        for (k = 0; k < pwd->nb_block_sizes; k++) {
-               block_len = pwd->frame_len >> k;
+               int exponent_size;
 
+               block_len = pwd->frame_len >> k;
                table = NULL;
                a = pwd->frame_len_bits - BLOCK_MIN_BITS - k;
                if (a < 3) {
@@ -245,7 +237,7 @@ static void compute_scale_factor_band_sizes(struct private_wmadec_data *pwd,
                        n = *table++;
                        for (i = 0; i < n; i++)
                                pwd->exponent_bands[k][i] = table[i];
-                       pwd->exponent_sizes[k] = n;
+                       exponent_size = n;
                } else {
                        j = 0;
                        lpos = 0;
@@ -262,7 +254,7 @@ static void compute_scale_factor_band_sizes(struct private_wmadec_data *pwd,
                                        break;
                                lpos = pos;
                        }
-                       pwd->exponent_sizes[k] = j;
+                       exponent_size = j;
                }
 
                /* max number of coefs */
@@ -270,7 +262,7 @@ static void compute_scale_factor_band_sizes(struct private_wmadec_data *pwd,
                /* high freq computation */
                pwd->high_band_start[k] = (int) ((block_len * 2 * high_freq)
                        / ahi->sample_rate + 0.5);
-               n = pwd->exponent_sizes[k];
+               n = exponent_size;
                j = 0;
                pos = 0;
                for (i = 0; i < n; i++) {
@@ -312,7 +304,7 @@ static int wma_init(struct private_wmadec_data *pwd)
        else
                pwd->frame_len_bits = 11;
        pwd->frame_len = 1 << pwd->frame_len_bits;
-       if (pwd->use_variable_block_len) {
+       if (pwd->ahi.use_variable_block_len) {
                int nb_max, nb;
                nb = ((flags2 >> 3) & 3) + 1;
                if ((ahi->bit_rate / ahi->channels) >= 32000)
@@ -393,7 +385,7 @@ static int wma_init(struct private_wmadec_data *pwd)
                pwd->frame_len, bps, bps1,
                high_freq, pwd->byte_offset_bits);
        PARA_INFO_LOG("use_noise_coding=%d use_exp_vlc=%d nb_block_sizes=%d\n",
-               pwd->use_noise_coding, pwd->use_exp_vlc, pwd->nb_block_sizes);
+               pwd->use_noise_coding, pwd->ahi.use_exp_vlc, pwd->nb_block_sizes);
 
        compute_scale_factor_band_sizes(pwd, high_freq);
        /* init MDCT windows : simple sinus window */
@@ -408,7 +400,7 @@ static int wma_init(struct private_wmadec_data *pwd)
 
        if (pwd->use_noise_coding) {
                /* init the noise generator */
-               if (pwd->use_exp_vlc)
+               if (pwd->ahi.use_exp_vlc)
                        pwd->noise_mult = 0.02;
                else
                        pwd->noise_mult = 0.04;
@@ -482,10 +474,6 @@ static int wma_decode_init(char *initial_buf, int len, struct private_wmadec_dat
                return ret;
        }
 
-       pwd->use_exp_vlc = pwd->ahi.flags2 & 0x0001;
-       pwd->use_bit_reservoir = pwd->ahi.flags2 & 0x0002;
-       pwd->use_variable_block_len = pwd->ahi.flags2 & 0x0004;
-
        ret = wma_init(pwd);
        if (ret < 0)
                return ret;
@@ -502,7 +490,7 @@ static int wma_decode_init(char *initial_buf, int len, struct private_wmadec_dat
                        wma_hgain_huffcodes, 2);
        }
 
-       if (pwd->use_exp_vlc) {
+       if (pwd->ahi.use_exp_vlc) {
                PARA_INFO_LOG("using exp_vlc\n");
                init_vlc(&pwd->exp_vlc, EXPVLCBITS, sizeof(wma_scale_huffbits),
                        wma_scale_huffbits, wma_scale_huffcodes, 4);
@@ -848,7 +836,7 @@ static int wma_decode_block(struct private_wmadec_data *pwd)
        int nb_coefs[MAX_CHANNELS];
 
        /* compute current block length */
-       if (pwd->use_variable_block_len) {
+       if (pwd->ahi.use_variable_block_len) {
                n = wma_log2(pwd->nb_block_sizes - 1) + 1;
 
                if (pwd->reset_block_lengths) {
@@ -925,7 +913,7 @@ static int wma_decode_block(struct private_wmadec_data *pwd)
        if ((pwd->block_len_bits == pwd->frame_len_bits) || get_bit(&pwd->gb)) {
                for (ch = 0; ch < pwd->ahi.channels; ch++) {
                        if (pwd->channel_coded[ch]) {
-                               if (pwd->use_exp_vlc) {
+                               if (pwd->ahi.use_exp_vlc) {
                                        ret = decode_exp_vlc(pwd, ch);
                                        if (ret < 0)
                                                return ret;
@@ -1094,7 +1082,7 @@ static int wma_decode_superframe(struct private_wmadec_data *pwd, void *data,
        buf_size = pwd->ahi.block_align;
        samples = data;
        init_get_bits(&pwd->gb, buf, buf_size);
-       if (pwd->use_bit_reservoir) {
+       if (pwd->ahi.use_bit_reservoir) {
                int i, nb_frames, bit_offset, pos, len;
                uint8_t *q;
 
@@ -1211,9 +1199,9 @@ static int wmadec_execute(struct btr_node *btrn, const char *cmd, char **result)
 
 #define WMA_OUTPUT_BUFFER_SIZE (128 * 1024)
 
-static void wmadec_post_select(__a_unused struct sched *s, struct task *t)
+static int wmadec_post_select(__a_unused struct sched *s, void *context)
 {
-       struct filter_node *fn = container_of(t, struct filter_node, task);
+       struct filter_node *fn = context;
        int ret, converted, out_size;
        struct private_wmadec_data *pwd = fn->private_data;
        struct btr_node *btrn = fn->btrn;
@@ -1222,12 +1210,11 @@ static void wmadec_post_select(__a_unused struct sched *s, struct task *t)
 
 next_buffer:
        converted = 0;
-       t->error = 0;
        ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
        if (ret < 0)
                goto err;
        if (ret == 0)
-               return;
+               return 0;
        btr_merge(btrn, fn->min_iqs);
        len = btr_next_buffer(btrn, (char **)&in);
        ret = -E_WMADEC_EOF;
@@ -1263,11 +1250,11 @@ next_buffer:
        converted += ret + WMA_FRAME_SKIP;
 success:
        btr_consume(btrn, converted);
-       return;
+       return 0;
 err:
        assert(ret < 0);
-       t->error = ret;
        btr_remove_node(&fn->btrn);
+       return ret;
 }
 
 static void wmadec_open(struct filter_node *fn)