X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=wmadec_filter.c;h=bb534df528c5278198da5c116eb324bfe099da85;hp=96fb50082d2bff52ba082904341851048c66c6ef;hb=e908ea4515b36e37f70bfffde83f43ffc26d9009;hpb=9609fd30e0d3db45ede3ab5c6bc3a77c15b6aef8 diff --git a/wmadec_filter.c b/wmadec_filter.c index 96fb5008..bb534df5 100644 --- a/wmadec_filter.c +++ b/wmadec_filter.c @@ -142,13 +142,13 @@ struct private_wmadec_data { }; #define EXPVLCBITS 8 -#define EXPMAX ((19 + EXPVLCBITS - 1) / EXPVLCBITS) +#define EXPMAX DIV_ROUND_UP(19, EXPVLCBITS) #define HGAINVLCBITS 9 -#define HGAINMAX ((13 + HGAINVLCBITS - 1) / HGAINVLCBITS) +#define HGAINMAX DIV_ROUND_UP(13, HGAINVLCBITS) #define VLCBITS 9 -#define VLCMAX ((22 + VLCBITS - 1) / VLCBITS) +#define VLCMAX DIV_ROUND_UP(22, VLCBITS) #define SINE_WINDOW(x) float sine_ ## x[x] __a_aligned(16) @@ -1010,7 +1010,7 @@ static int wma_decode_block(struct private_wmadec_data *pwd) } next: for (ch = 0; ch < pwd->ahi.channels; ch++) { - int n4, index; + int n4, idx; n = pwd->block_len; n4 = pwd->block_len / 2; @@ -1020,8 +1020,8 @@ next: memset(pwd->output, 0, sizeof(pwd->output)); /* multiply by the window and add in the frame */ - index = (pwd->frame_len / 2) + pwd->block_pos - n4; - wma_window(pwd, &pwd->frame_out[ch][index]); + idx = (pwd->frame_len / 2) + pwd->block_pos - n4; + wma_window(pwd, &pwd->frame_out[ch][idx]); } /* update block number */ @@ -1208,19 +1208,8 @@ static int wmadec_execute(struct btr_node *btrn, const char *cmd, char **result) struct filter_node *fn = btr_context(btrn); struct private_wmadec_data *pwd = fn->private_data; - if (!strcmp(cmd, "samplerate")) { - if (pwd->ahi.sample_rate == 0) - return -E_BTR_NAVAIL; - *result = make_message("%u", pwd->ahi.sample_rate); - return 1; - } - if (!strcmp(cmd, "channels")) { - if (pwd->ahi.channels == 0) - return -E_BTR_NAVAIL; - *result = make_message("%u", pwd->ahi.channels); - return 1; - } - return -ERRNO_TO_PARA_ERROR(ENOTSUP); + return decoder_execute(cmd, pwd->ahi.sample_rate, pwd->ahi.channels, + result); } #define WMA_OUTPUT_BUFFER_SIZE (128 * 1024) @@ -1279,7 +1268,7 @@ next_buffer: } success: btr_consume(btrn, converted); - goto next_buffer; + return; err: assert(ret < 0); t->error = ret;