mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
tsdemux: fix buffer timestamp not being in stream time
Timestamps should start at the segment start, rather than 0, so we need to not subtract the first timestamp. This makes the sink correctly account for running time when switching PMTs where a stream starts not quite at zero, causing timing offsets that can become noticeable and causing dropped frames after a few times.
This commit is contained in:
parent
4a219df304
commit
1dd94be326
1 changed files with 2 additions and 2 deletions
|
@ -2245,9 +2245,9 @@ gst_ts_demux_push_pending_data (GstTSDemux * demux, TSDemuxStream * stream)
|
|||
stream->discont = FALSE;
|
||||
|
||||
if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (buffer)))
|
||||
demux->segment.position = GST_BUFFER_DTS (buffer) - stream->first_dts;
|
||||
demux->segment.position = GST_BUFFER_DTS (buffer);
|
||||
else if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (buffer)))
|
||||
demux->segment.position = GST_BUFFER_PTS (buffer) - stream->first_dts;
|
||||
demux->segment.position = GST_BUFFER_PTS (buffer);
|
||||
|
||||
res = gst_pad_push (stream->pad, buffer);
|
||||
/* Record that a buffer was pushed */
|
||||
|
|
Loading…
Reference in a new issue