GNOME Bugzilla – Bug 634759
[gstffmpegdec] timestamping wrong for non-reordered output decoding
Last modified: 2012-06-11 14:38:29 UTC
When provided a stream that: * incremental timestamps coming IN * incremental timestamps coming OUT (i.e. the reordered_opaque field coming back from libavcodec is always increasing) the timestamping algorithm thinks the timestamps are reordered and applies the interpolation algorithm. The problem is that if the incoming durations aren't correct (most visible with asf/flv content, but can also be seen in other formats) and the interpolation algorithms creates completely wrong timestamps. When taking into account the reordered_out field (present but wasn't used) to determine whether the content was *actually* reordered, the incoming timestamps will be used. I therefore propose the following change which takes into account both the input and output reordering to know whether to use the interpolation algorithm: @@ -1774,7 +1780,7 @@ gst_ffmpegdec_video_frame (GstFFMpegDec * ffmpegdec, /* we assume DTS as input timestamps unless we see reordered input * timestamps */ - if (!ffmpegdec->reordered_in) { + if (!ffmpegdec->reordered_in && ffmpegdec->reordered_out) { /* PTS and DTS are the same for keyframes */ if (!iskeyframe && ffmpegdec->next_out != -1) { /* interpolate all timestamps except for keyframes, FIXME, this is
Do you have a sample movie?
Any news here?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!
Please don't close bug reports opened by gst maintainers, thanks.
Not so relevant anymore. Reopen if you care enough to revisit this in 0.10, it would need a sample movie.