Community
cancel
Showing results for 
Search instead for 
Did you mean: 
sschaem
Beginner
228 Views

h264Decoder not decoding last frame in video stream

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
0 Kudos
2 Replies
PaulF_IntelCorp
Employee
228 Views

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
sschaem
Beginner
228 Views

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
Reply