X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=aacdec_filter.c;h=7a757e55cc413760e3d41c1556ff9bdc609ebf54;hp=d63236da5112d2ea9a9ac52d80c31abdc0ad78f4;hb=b6b571e6c6fb52207b11fc7833b272ec8cfa28bf;hpb=72e9bdf7c5c09ca4c20cad56c68a9a155cceff43 diff --git a/aacdec_filter.c b/aacdec_filter.c index d63236da..7a757e55 100644 --- a/aacdec_filter.c +++ b/aacdec_filter.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2014 Andre Noll + * Copyright (C) 2006 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -80,13 +80,13 @@ static void aacdec_close(struct filter_node *fn) fn->private_data = NULL; } -static int aacdec_post_select(__a_unused struct sched *s, struct task *t) +static int aacdec_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; struct btr_node *btrn = fn->btrn; struct private_aacdec_data *padd = fn->private_data; int i, ret; - unsigned char *p, *inbuf, *outbuffer; + char *p, *inbuf, *outbuffer; char *btr_buf; size_t len, skip, consumed, loaded; @@ -97,7 +97,7 @@ next_buffer: if (ret == 0) return 0; btr_merge(btrn, fn->min_iqs); - len = btr_next_buffer(btrn, (char **)&inbuf); + len = btr_next_buffer(btrn, &inbuf); len = PARA_MIN(len, (size_t)8192); consumed = 0; if (!padd->initialized) { @@ -106,7 +106,7 @@ next_buffer: ret = aac_find_esds(inbuf, len, &skip, &padd->decoder_length); if (ret < 0) { PARA_INFO_LOG("%s\n", para_strerror(-ret)); - ret = NeAACDecInit(padd->handle, inbuf, + ret = NeAACDecInit(padd->handle, (unsigned char *)inbuf, len, &rate, &channels); PARA_INFO_LOG("decoder init: %d\n", ret); if (ret < 0) { @@ -120,14 +120,14 @@ next_buffer: consumed += skip; p = inbuf + consumed; ret = -E_AACDEC_INIT; - if (NeAACDecInit2(padd->handle, p, + if (NeAACDecInit2(padd->handle, (unsigned char *)p, padd->decoder_length, &rate, &channels) != 0) goto out; } padd->sample_rate = rate; padd->channels = channels; - PARA_INFO_LOG("rate: %u, channels: %d\n", + PARA_INFO_LOG("rate: %u, channels: %u\n", padd->sample_rate, padd->channels); padd->initialized = 1; } @@ -150,16 +150,13 @@ next_buffer: if (padd->consumed_total < padd->entry) consumed = padd->entry - padd->consumed_total; } - for (; consumed < len; consumed++) - if ((inbuf[consumed] & 0xfe) == 0x20) - break; if (consumed >= len) goto success; p = inbuf + consumed; //PARA_CRIT_LOG("consumed: %zu (%zu + %zu), have: %zu\n", padd->consumed_total + consumed, // padd->consumed_total, consumed, len - consumed); - outbuffer = NeAACDecDecode(padd->handle, &padd->frame_info, p, - len - consumed); + outbuffer = NeAACDecDecode(padd->handle, &padd->frame_info, + (unsigned char *)p, len - consumed); if (padd->frame_info.error) { int err = padd->frame_info.error; ret = -E_AAC_DECODE; @@ -171,7 +168,7 @@ next_buffer: goto success; } PARA_ERROR_LOG("%s\n", NeAACDecGetErrorMessage(err)); - PARA_ERROR_LOG("consumed: %zu + %zd + %lu\n", + PARA_ERROR_LOG("consumed: %zu + %zu + %lu\n", padd->consumed_total, consumed, padd->frame_info.bytesconsumed); if (consumed < len)