04-23-2010 03:01 PM
Here is my finding:
- The h264 Decoder says its running out of source data a few frames before the end of the files.
umcRes = m_umc.decoder->GetFrame(m_umc.mediaData, m_umc.videoData);
umcRes = m_umc.splitter->GetNextData(m_umc.mediaData, m_umc.nVideoTrack);
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.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,
04-23-2010 04:18 PM
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.
04-24-2010 07:00 PM
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