[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