- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am using Ipp6.1 with samples 6.1.4.059
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.
I am using Ipp6.1 with samples 6.1.4.059
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.
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
http://software.intel.com/en-us/forums/showthread.php?t=75428&o=d&s=lr
BestRegards,
Ying
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
http://software.intel.com/en-us/forums/showthread.php?t=75428&o=d&s=lr
BestRegards,
Ying
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page