- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Here is my finding:
- The h264 Decoder says its running out of source data a few frames before the end of the files.
Calling
umcRes = m_umc.decoder->GetFrame(m_umc.mediaData, m_umc.videoData);
returnsUMC::UMC_ERR_NOT_ENOUGH_DATA
and
umcRes = m_umc.splitter->GetNextData(m_umc.mediaData, m_umc.nVideoTrack);
returns
UMC::UMC_ERR_END_OF_STREAM
So there is no more data to give to the decoder.
In my test case a file with 2247 frames get 2244 frames decode and then return the above.
But if I loop the file, by calling this when reachingUMC::UMC_ERR_END_OF_STREAM
m_umc.splitter->SetTimePosition(0);
// m_umc.decoder->Reset() // Dont reset the decoder to see what happen
The decoder returns the missing frames!
Conclusion: It seem that decoder want more data then it needs to decode the last frames in a file.
I suggest that the UMC team devise a test that decode only the last frame of a file.
1) Seek to the last frame start time
2) From the actual position (iframe) , decode N frame to reach the last frame
It cannot be done with the h264 decoder...
Thanks for looking in to this,
Stephan
コピーされたリンク
2 返答(返信)
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hello Stephan,
I've seen something like this reported before, looking for some threads that are related. Found this one, not sure if it helps.
Will provide more feedback as I find it.
Paul
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Thanks,
I seen this thread but its not related since I can seek correctly.
(Beside reset() crashing the decoder when its initialed to use >1 thread , see my other post)
I will try with another decoder (mpeg2) ... and report on monday
Stephan
