After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 634759 - [gstffmpegdec] timestamping wrong for non-reordered output decoding
[gstffmpegdec] timestamping wrong for non-reordered output decoding
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-libav
git master
Other Linux
: Normal normal
: 0.11.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-11-13 15:55 UTC by Edward Hervey
Modified: 2012-06-11 14:38 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Edward Hervey 2010-11-13 15:55:28 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
Comment 1 Wim Taymans 2010-11-16 14:28:11 UTC
Do you have a sample movie?
Comment 2 Sebastian Dröge (slomo) 2010-12-12 15:14:36 UTC
Any news here?
Comment 3 Fabio Durán Verdugo 2011-02-03 02:43:56 UTC
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!
Comment 4 Edward Hervey 2011-02-03 08:39:41 UTC
Please don't close bug reports opened by gst maintainers, thanks.
Comment 5 Wim Taymans 2012-06-11 14:38:18 UTC
Not so relevant anymore. Reopen if you care enough to revisit this in 0.10, it would need a sample movie.