X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=wmadec_filter.c;h=aab7cf94f76adc0311aa6cd925da00ad5d8323a4;hp=d78c72bd54724cd58a446dd859deba156672b541;hb=4d425382c007b200121b4be5120db1acd30d292f;hpb=59df964251d4e6b71b4ce6d02fdbb6e11643acab diff --git a/wmadec_filter.c b/wmadec_filter.c index d78c72bd..aab7cf94 100644 --- a/wmadec_filter.c +++ b/wmadec_filter.c @@ -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) @@ -1255,11 +1244,12 @@ next_buffer: fn->min_iqs += 4096; goto next_buffer; } - fn->min_iqs = WMA_FRAME_SKIP + pwd->ahi.block_align; + fn->min_iqs = 2 * (WMA_FRAME_SKIP + pwd->ahi.block_align); fn->private_data = pwd; converted = pwd->ahi.header_len; goto success; } + fn->min_iqs = WMA_FRAME_SKIP + pwd->ahi.block_align; for (;;) { char *out; int out_size = WMA_OUTPUT_BUFFER_SIZE; @@ -1278,7 +1268,7 @@ next_buffer: } success: btr_consume(btrn, converted); - goto next_buffer; + return; err: assert(ret < 0); t->error = ret;