- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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.
コピーされたリンク
1 返信
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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
