X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=aacdec_filter.c;h=1127fc1132b90d56169c34d732c9343e47e8fa43;hp=79c8bb660a9a94708b1d540d00d35b4795e0ba24;hb=aa7830ccfd0503d96da56d1e92f97013cc788124;hpb=d4d37bb32a8d6219f9f52aa2ee3de55eb7e099c8 diff --git a/aacdec_filter.c b/aacdec_filter.c index 79c8bb66..1127fc11 100644 --- a/aacdec_filter.c +++ b/aacdec_filter.c @@ -60,19 +60,7 @@ static int aacdec_execute(struct btr_node *btrn, const char *cmd, char **result) struct filter_node *fn = btr_context(btrn); struct private_aacdec_data *padd = fn->private_data; - if (!strcmp(cmd, "sample_rate")) { - if (padd->sample_rate == 0) - return -E_BTR_NAVAIL; - *result = make_message("%u", padd->sample_rate); - return 1; - } - if (!strcmp(cmd, "channels")) { - if (padd->channels == 0) - return -E_BTR_NAVAIL; - *result = make_message("%u", padd->channels); - return 1; - } - return -ERRNO_TO_PARA_ERROR(ENOTSUP); + return decoder_execute(cmd, padd->sample_rate, padd->channels, result); } static void aacdec_open(struct filter_node *fn) @@ -112,7 +100,7 @@ next_buffer: return; btr_merge(btrn, fn->min_iqs); len = btr_next_buffer(btrn, (char **)&inbuf); - len = PARA_MAX(len, (size_t)8192); + len = PARA_MIN(len, (size_t)8192); consumed = 0; iqs = btr_get_input_queue_size(btrn); if (!padd->initialized) { @@ -186,7 +174,8 @@ next_buffer: padd->frame_info.bytesconsumed); PARA_ERROR_LOG("%s\n", NeAACDecGetErrorMessage( padd->frame_info.error)); - consumed++; /* catch 21 */ + if (consumed < len) + consumed++; /* catch 21 */ goto success; } padd->error_count = 0;