[gstreamer-bugs] [Bug 611500] New: [regression] Wrong outgoing timestamps

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Mar 1 09:16:31 PST 2010


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

           Summary: [regression] Wrong outgoing timestamps
    Classification: Desktop
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: blocker
          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: ---


The timestamp reordering code in gst-ffmpeg seems to have a problem with
buffers coming in with DTS values as buffer timestamps.

The following is an example of what happens (following a seek to
0:02:29.960000000):

* Incoming buffer 0:02:29.960000000
  avdecode_video decodes it properly, we push it out with that timestamp
* Incoming buffer 0:02:30.000000000
  avdecode_video consumes it but doesn't return anything for the moment
* Incoming buffer 0:02:30.040000000
  avdecode_video decodes it properly but we set a timestamp of
0:02:30.040000000
* Incoming buffer 0:02:30.080000000
  avdecode_video decodes it properly, but we get a timestamp of
0:02:30.000000000, we finally recognize the incoming data was in DTS and
therefore patch up the timestamp to 0:02:30.080000000

So we push out:
0:02:29.960000000 (which has the proper timestamp since it's the keyframe)
0:02:30.040000000 (which should have been 0:02:30.000000000)
0:02:30.080000000 (which should have been 0:02:30.040000000)

So two things are wrong:
1) We detect that the incoming stream is timestamped as DTS too late
2) We introduce an offset of one frame in the outgoing buffers

We should have detected when avdecode_video returns the SECOND buffer that the
incoming stream is DTS, instead of at the THIRD buffer it outputs

NOTES:
Extract of debug log for incoming values we store in the ts_handler system
store timestamp @ index [01] buf_count: 0 ts: 0:02:29.960000000 duration:
0:00:00.040000000, offset: 18446744073709551615, size: 9266
store timestamp @ index [02] buf_count: 0 ts: 0:02:30.000000000 duration:
0:00:00.040000000, offset: 18446744073709551615, size: 1569
store timestamp @ index [03] buf_count: 0 ts: 0:02:30.040000000 duration:
0:00:00.040000000, offset: 18446744073709551615, size: 40
store timestamp @ index [04] buf_count: 0 ts: 0:02:30.080000000 duration:
0:00:00.040000000, offset: 18446744073709551615, size: 1740

-- 
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