summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--gst/mpegdemux/gstmpegdemux.c5
-rw-r--r--gst/mpegdemux/gstmpegdemux.h6
3 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 3a5525eaf..12ab728c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2008-12-29 Wim Taymans <wim.taymans@collabora.co.uk>
+ * 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 <wim.taymans@collabora.co.uk>
+
Patch by: Robin Stocker <robin at nibor dot org>
* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query):
diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c
index 2b7f923fe..6dca661ca 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 3730bac4b..1ca2ec74f 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;