Buffers allocated by the TI decoder element allocate an individual buffer for
each frame. The buffer size is fixed at a full encoded frame size. There is a
large amount of wasted space during normal operation of the decoder process. The
buffer management should be modified to have one lump buffer space, allocated by
cmem. The buffer management would be able to provide a full frame to the DSP for
decoding, the next frame would be placed in memory right after the previous
buffer. This would allow two things. The first is an efficient queuing
mechanism, without need to duplicate the buffers in local memory. Secondly it
would be far more efficient with memory than having fixed buffer sizes.
A related issue can be seen when decoding or encoding mpeg-4 video and AAC audio
through the qtmux/qtdemux. If the video frames are not decoded/encoded quick
enough, the decoder will run out of buffers causing the encoder/decoder to run
out of buffers and fail until the pipeline is restarted.