I have built a MPEG-4 decoder based on IPP 5.3.
It's working just fine except when I am fast forwarding a recording in high speeds (more than 2x).
I located the problem to mp4_ShowBits in mp4Stream.c:
Ipp32u mp4_ShowBits(mp4_Info* pInfo, Ipp32s n)
Ipp8u* ptr = pInfo->bufptr;
Ipp32u tmp = (ptr << 24) | (ptr << 16) | (ptr << 8) | (ptr);
tmp <<= pInfo->bitoff;
tmp >>= 32 - n;
The problem was that ptr, 2 and 3 sometimes pointed outside the buffer.
However I implemented a check for this but now when I get a crash, all I see is one visible thread with the stack trace:
Like I said this only happends when fast forwarding 4x or faster.
Someone that has experienced anything like this or has any comments?