From 5c77682dabf2a289d7e8cdced379f85aeb0f3192 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Mon, 1 Aug 2011 18:49:55 +0200 Subject: [PATCH] tsdemux: Take into account upstream newsegment events If the incoming newsegment event was in time, use that position value for the downstream newsegments. --- gst/mpegtsdemux/tsdemux.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c index fc0df38..e859ea9 100644 --- a/gst/mpegtsdemux/tsdemux.c +++ b/gst/mpegtsdemux/tsdemux.c @@ -2066,6 +2066,19 @@ calculate_and_push_newsegment (GstTSDemux * demux, TSDemuxStream * stream) /* FIXME : We're just ignore the upstream format for the time being */ /* FIXME : We should use base->segment.format and a upstream latency query * to decide if we need to use live values or not */ + GST_DEBUG ("push-based. base Segment start:%" GST_TIME_FORMAT " duration:%" + GST_TIME_FORMAT ", time:%" GST_TIME_FORMAT, + GST_TIME_ARGS (base->segment.start), + GST_TIME_ARGS (base->segment.duration), + GST_TIME_ARGS (base->segment.time)); + GST_DEBUG ("push-based. demux Segment start:%" GST_TIME_FORMAT " duration:%" + GST_TIME_FORMAT ", time:%" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->segment.start), + GST_TIME_ARGS (demux->segment.duration), + GST_TIME_ARGS (demux->segment.time)); + + if (demux->segment.time == 0 && base->segment.format == GST_FORMAT_TIME) + demux->segment.time = base->segment.time; start = firstpts; stop = GST_CLOCK_TIME_NONE; -- 2.7.4