Hello,
We are using C66x MPEG2 decoder version 02.02.01.08
I am running application on DSPC-8681E. Some time ago we started to experience random crashes in the DSP application. It was clear that the crashes appear due to memory corruption of internal structures (SYS/BIOS heaps, our internal structures, etc.). After week of investigation the reason was found. It is in MPEG2 decoder.
Consider the following code snippet:
XDM_BufDesc *outDecoderBufferDescriptor = BufferDescriptorManager_getUnusedBufferDescriptor(decoderBufferManager, inDecoderArguments->inputID);
....
if (BufferDescriptorManager_isCorrupted(decoderBufferManager)) {
puts("[1] BufferDescriptorManager corrupted");
fflush(stdout);
}
result = decoderFunctions->process(decoderHandle, &inDecoderBufferDescriptor, outDecoderBufferDescriptor, inDecoderArguments, outDecoderArguments);
if (BufferDescriptorManager_isCorrupted(decoderBufferManager)) {
puts("[2] BufferDescriptorManager corrupted");
fflush(stdout);
}
Randomly after processing few hundreds of frames we got corruption error message right after process call:
Corrupted bufSizes
[2] BufferDescriptorManager corrupted
We found that decoder corrupts reusable XDM_BufDesc structures that we store in DDR3 memory within Buffer Manager component. BufferDescriptorManager_isCorrupted do the check of all XDM_BufDesc and reports about found inconsistencies.
Can you please help to resolve the issue.
Regards,
Andrey Lisnevich