[Bug 734040] New: tsdemux: Handle sparse streams

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jul 31 06:42:41 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=734040
  GStreamer | gst-plugins-bad | unspecified

           Summary: tsdemux: Handle sparse streams
    Classification: Platform
           Product: GStreamer
           Version: unspecified
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: bilboed at bilboed.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


This bug report is about issues regarding sparse streams (mainly subtitles)

1) tsdemux only exposes pads (of the corresponding streams specified in the
PMT) once it sees one PES on it. And only when all pads are added will tsdemux
emit no-more pads.
 => If a sparse stream has the first PES very late, it will either cause
decodebin to preroll much later than it could (still haven't emitted
no-more-pads), or will arrive after decodebin has prerolled (the pad won't be
exposed at all by decodebin, thereby missing the subtitle stream).

2) If we expose all pads at the beginning (and emit no-more-pads), we then have
another issue with those sparse stream which is that downstream elements (and
potentially the pipeline) won't preroll until we get that very late buffer.
 => We need to detect that (other/non-sparse) streams have moved forward by a
certain amount, and push GAP events at a regular interval.

3) The PES on those sparse streams sometimes don't have a specified size. The
current way we decide that we accumulated a whole PES (and push it downstream)
is when we see the beginning of the following one on the same stream. The
problem with this is that the next PES might be ... much much later, and it
will eventually arrive too late for display.
 => In the same location where we push out GAP events, push out pending PES if
there are any.

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