raghu - 2010-12-27

Hi,
I am working on integrating an opensource amr codec into the bellagio framework and ultimately use it with gstreamer. I have done most of the integration. I see a small issue for which I need some help. Issue is described below: When the gst-launch is run, the BufferMgmtCallback of the component (amrnb) is called. The input buffer contains 4096 bytes of amr data. about 14 bytes of data are processed in every call. Once all this data is used up, a new buffer is sent (This matches with the amr data after 4096 bytes in the input file, which is expected). But the issue I see is that once this second buffer is exhausted, the data sent is same as the one in first buffer (from the beginning of file). I am not sure why the data is not sent properly in the third buffer. Also I noted that the framework uses a ping-pong buffer kind of mechanism. The framework uses two buffers and alternates between them. So, the buffer sent third time is same as the buffer sent first time. But, the data sent for third time is not updated with new data. Just the old data is sent. I did not see other components explicitly requesting for new data. Just updating the nFilledLen to 0 should automatically get new data. This does not seem to work for me. Please let me know if there is something I am missing. Should I set some flag to indicate to the framework that I should receive new data? Also, does the framework take care to send EOS flag to the component once all the data is sent? Regards, Raghu S