[Bug 744469] tsdemux: No data after prerolling when different PTS in one program

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Mar 16 10:15:11 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=744469

Aurélien Zanelli <aurelien.zanelli at parrot.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aurelien.zanelli at parrot.com

--- Comment #3 from Aurélien Zanelli <aurelien.zanelli at parrot.com> ---
Since I have the same issue with some others streams, I take a look at this
issue.
My current understanding is that the first observed valid timestamp in PES
header will trigger the initial PTS/DTS set on all streams. Unfortunately in
this case the first stream which have a valid timestamp is the subtitle one
(teletext) which have a really big timestamp (something like 13 hours). So when
check_pending_buffers() is called, the only stream which have a valid timestamp
is this one, leading the following segment logic to choose it as a start value.

So in this case the tsdemux ouputs a segment which have ~ 13:00:00 as a start
value on all source pad. As a result, when tsdemux pushes audio/video samples
with lower timestamp, they are clipped because they are outside of segments.

Currently, I'm not very familiar with MPEG-TS and tsdemux but I'm thinking of
two solutions:
- ignore sparse streams when checking for initial valid timestamp unless we
only have sparse stream; (i will suubmit a patch for this way)
- when first timestamp of each stream is valid, trigger a new check and adjust
segment.

What do you think about it ?

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