Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.

UMC MP4 Muxer Bug(?) report


I am using Ipp6.1 with samples
Since I realized version 7 will include SSE2, I am going to switch to that soon and this might be different in the new samples.

I want to mux an encoded H264 video stream to the file, since the encoded data does not come from UMC encoder this is not a real Bug report but an addition that makes the muxer more robust against unknown data.

In th file umc_mp4_mux.cpp in function MP4Muxer::MuxData(bool bFlushMode)
If somehow a non-data sample (say a MediaData with only SPS or PPS or some unkown format is used with PutData) goes to m_ppBuffers then AdjustVideoData returns UMC_ERR_FAILED and as a result of UMC_CHECK_STATUS(umcRes), m_ppBuffers will never be unlocked. So the next call to MuxData again tries the old non-data sample and never moves forward.

The fix is very simple:

Lines 515 and 519 Remove UMC_CHECK_STATUS(umcRes)
Line 522 add the check to see if pointer is valid i.e. change it to if (pcData && pcData->GetDataSize() != 0)

By this addition, the unknown/unwanted NALU data is ignored rather than kept stuck in the buffer.

0 Kudos
1 Reply
Hi dashesy,

Thanks a lotfor reporting the problem and sharing the fix with us.
yes, the version 7.0 with include SSE2 may beat the end of the year as you seein the thread