[Bug 679664] New: [matroska demux] wrong time stamp given if divx/xvid encoded in mkv container

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jul 10 00:04:00 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=679664
  GStreamer | gst-plugins-good | 0.10.29

           Summary: [matroska demux] wrong time stamp given if divx/xvid
                    encoded in mkv container
    Classification: Platform
           Product: GStreamer
           Version: 0.10.29
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: bcxa.sz at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I have one stream whose codec is xvid encoded, which have B picture inside.

I looked at the way of gstreamer native mkv demux to give time stamp:

buffer time = (cluster_time + time) * demux->time_scale;

So the gstreamer native mkv demux will not consider the display order of
frames. 

So in I P B B case (decoding order):
the P timestamp can be 2 second, and B time stamp can be 3 second, even though
the B should be displayed before the P.

And if downstream element think coming buffer time stamp is display time
information, then it will be wrong.

So here the 1st question: whether the buffer time stamp from demux element is
decoding time stamp or presentation time stamp?

I backed to ffmpeg to see how ffmpeg handle the divx in mkv container: I saw it
will detect the frame type and only take B frame's decoding time (the same way
as gstreamer native mkv demux caculate from cluster time and block time) as
presentation time. For P and I frame, invalid time stamp is given.

Here the 2nd question: whether gstreamer native mkv demux should adopt the same
strategy as ffmpeg? detect frame type and give correct PTS as buffer time
stamp?

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