Hi,
I test the aac decoder provided in DVRRDK3.05 and find that the decoder consumes one frame of aac data each time. I comment the else branch in following codes in rpe_audio.c and the decoder could decode all the frames in the input file.
if (pPrm->inBuf.dataBufSize >= ctx->decMinInputBufSize)
{
pPrm->inBuf.dataBufSize = ctx->decMinInputBufSize;
}
else
{
pPrm->numSamples = 0;
pPrm->outBuf.dataBufSize = 0;
pPrm->inBuf.dataBufSize = 0;
return 0;
}
I have question about the input buffer size of the decoder. In the audio_decode demo, the inBufSize is set to 3840 which is the minInBufSize of the decoder.( I use 2048/1024/768/640 as the inBufSize and find the mini number should be 640) I use davinci.aac as the input file and search the actual bytes feed to the decoder each time. I find the last time 223 bytes are fed to the decoder which is just the length of the last aac frame. So, I try to just read one acc frame each time and feed the data to the decoder. But I get "AUDIO: DEC -> AUDIO: Rpe process call failed, status: 1". I don't know why the decode fails to work in the way. It is just the same as the last time which the decoder do in audio_decode demo.
Could someone give me the answer? Thanks!