struct filter_chain_info *fci = fn->fci;
unsigned long rate = 0;
unsigned char channels = 0;
- int i, ret, nbytes;
+ int i, ret, nbytes, skip;
unsigned char *p, *outbuffer;
if (fn->loaded > fn->bufsize * 4 / 5)
padd->inbuf_len = len;
if (!padd->initialized) {
- int skip;
padd->decoder_length = aac_find_esds(padd->inbuf, padd->inbuf_len,
&skip);
+ PARA_INFO_LOG("decoder len: %d\n", padd->decoder_length);
if (padd->decoder_length < 0) {
ret = NeAACDecInit(padd->decoder, padd->inbuf,
padd->inbuf_len, &rate, &channels);
+ PARA_INFO_LOG("decoder init: %d\n", ret);
if (ret < 0) {
- ret = E_AACDEC_INIT;
+ ret = -E_AACDEC_INIT;
goto out;
}
padd->consumed = ret;
} else {
padd->consumed += skip;
p = padd->inbuf + padd->consumed;
- ret = E_AACDEC_INIT;
+ ret = -E_AACDEC_INIT;
if (NeAACDecInit2(padd->decoder, p,
padd->decoder_length, &rate,
&channels) < 0)
}
fci->samplerate = rate;
fci->channels = channels;
- PARA_INFO_LOG("rate: %u, channels: %d\n", fci->samplerate,
- fci->channels);
+ PARA_INFO_LOG("rate: %u, channels: %d\n",
+ fci->samplerate, fci->channels);
padd->initialized = 1;
}
if (padd->decoder_length > 0) {
padd->consumed = 0;
if (!padd->offset_pos) {
- ret = len;
- if (find_stco(padd) < 0)
+ ret = aac_find_stco(padd->inbuf + padd->consumed,
+ padd->inbuf_len - padd->consumed, &skip);
+ if (ret < 0) {
+ ret = len;
goto out;
+ }
+ padd->noffsets = ret;
+ padd->offset = para_malloc(padd->noffsets * sizeof(int));
+ padd->consumed += skip;
}
if (padd->offset_pos < padd->noffsets) {
fill_offset_table(padd);