Hi All,
We are using the H.264 Decoder on the C6678 processor. We are running multiple H.264 Decoder instances simultaneously, though each instance runs in sequence to each other i.e. no instance preempts the other instance of the decoder.
The issue we are seeing in our system is that while doing so, we are observing an invalid memory access that is causing the system to crash. We have reasonably proved that by instrumenting the decoder code while it is integrated in our system. We instrumented the code specifically to check if the YUV buffers were bring written into beyond valid boundaries.
As an example, we found that the data transfers happening under this comment block were causing invalid memory writes
/*------------------------------------------------------------------
* In this case of error (H264D_ERR_IMPL_CORRUPTED_BITSTREAM),
* gpm->dec_pic[] pointers are not getting
* set properly, resulting in crash during padding. Hence padding
* is avoided in this case of error.
*
* TEMPORARY FIX ONLY. NEEDS TO BE FIXED PROPERLY.
* DEGRADES QUALITY OF CONCEALED FRAMES.
*
* Pavan, 18-Dec-2006
------------------------------------------------------------------*/
We haven't yet tried reproducing the problem in the standalone application. This is because we don't have that specific stream that causes the decoder to violate buffer boundaries.
So, the questions I have are the following
1. Has anyone experienced a similar problem with the H.264 Decoder during packet losses?
2. Has the TI H.264 HP Decoder gone through error resilience test and during these tests do we actually confirm if the decoder is honoring buffer boundaries?
3. Is there a test bench available from TI that can help us test out of bound memory access and/or an easy approach to do the same?
Best regards,
Arvind