[gstreamer-bugs] [Bug 634759] New: [gstffmpegdec] timestamping wrong for non-reordered output decoding

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Nov 13 07:55:33 PST 2010


https://bugzilla.gnome.org/show_bug.cgi?id=634759
  GStreamer | gst-ffmpeg | git

           Summary: [gstffmpegdec] timestamping wrong for non-reordered
                    output decoding
    Classification: Desktop
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-ffmpeg
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: bilboed at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


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

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list