diff --git a/ChangeLog b/ChangeLog index 3a5525eaf6..12ab728c3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-12-29 Wim Taymans + + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): + * gst/mpegdemux/gstmpegdemux.h: + The position member in the newsegment event corresponds to the + stream_time of the segment start position. + 2008-12-29 Wim Taymans Patch by: Robin Stocker diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c index 2b7f923fe3..6dca661ca3 100644 --- a/gst/mpegdemux/gstmpegdemux.c +++ b/gst/mpegdemux/gstmpegdemux.c @@ -480,7 +480,10 @@ gst_flups_demux_send_data (GstFluPSDemux * demux, GstFluPSStream * stream, stop = timestamp; } } - time = start; + if (GST_CLOCK_TIME_IS_VALID (demux->base_time) && start > demux->base_time) + time = start - demux->base_time; + else + time = 0; #ifdef HAVE_NEWSEG_FULL GST_INFO_OBJECT (demux, "sending new segment: rate %g applied_rate %g " diff --git a/gst/mpegdemux/gstmpegdemux.h b/gst/mpegdemux/gstmpegdemux.h index 3730bac4ba..1ca2ec74fd 100644 --- a/gst/mpegdemux/gstmpegdemux.h +++ b/gst/mpegdemux/gstmpegdemux.h @@ -102,9 +102,9 @@ struct _GstFluPSDemux { GstPESFilter filter; gint64 mux_rate; - guint64 first_scr; - guint64 first_dts; - guint64 base_time; + guint64 first_scr; + guint64 first_dts; + guint64 base_time; guint64 current_scr; guint64 next_scr; guint64 bytes_since_scr;