From b0233e7b7fed5116a5a3cb9e49240575170c0713 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 15 Nov 2005 17:18:10 +0000 Subject: [PATCH] gst/base/gstbasesink.c: segment_stop == -1 at startup. Original commit message from CVS: * gst/base/gstbasesink.c: (gst_base_sink_change_state): segment_stop == -1 at startup. * gst/base/gstbasetransform.c: (gst_base_transform_event), (gst_base_transform_change_state): Init segment values at start. --- ChangeLog | 9 +++++++++ gst/base/gstbasesink.c | 2 +- gst/base/gstbasetransform.c | 21 +++++++++++++++------ libs/gst/base/gstbasesink.c | 2 +- libs/gst/base/gstbasetransform.c | 21 +++++++++++++++------ 5 files changed, 41 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 73072ce..2acbc69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-11-15 Wim Taymans + + * gst/base/gstbasesink.c: (gst_base_sink_change_state): + segment_stop == -1 at startup. + + * gst/base/gstbasetransform.c: (gst_base_transform_event), + (gst_base_transform_change_state): + Init segment values at start. + 2005-11-15 Andy Wingo * check/gst/gstpipeline.c (test_base_time): Punt around the diff --git a/gst/base/gstbasesink.c b/gst/base/gstbasesink.c index 84dcf53..03fbcb8 100644 --- a/gst/base/gstbasesink.c +++ b/gst/base/gstbasesink.c @@ -1587,7 +1587,7 @@ gst_base_sink_change_state (GstElement * element, GstStateChange transition) basesink->have_newsegment = FALSE; basesink->segment_rate = 1.0; basesink->segment_start = 0; - basesink->segment_stop = 0; + basesink->segment_stop = -1; basesink->segment_time = 0; basesink->segment_accum = 0; ret = GST_STATE_CHANGE_ASYNC; diff --git a/gst/base/gstbasetransform.c b/gst/base/gstbasetransform.c index 58ed161..12d2323 100644 --- a/gst/base/gstbasetransform.c +++ b/gst/base/gstbasetransform.c @@ -1128,16 +1128,19 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) if (format == GST_FORMAT_TIME) { GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT %" GST_TIME_FORMAT - " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, + " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT + ", accum %" GST_TIME_FORMAT, GST_TIME_ARGS (trans->segment_start), - GST_TIME_ARGS (trans->segment_start), - GST_TIME_ARGS (trans->segment_base)); + GST_TIME_ARGS (trans->segment_stop), + GST_TIME_ARGS (trans->segment_base), + GST_TIME_ARGS (trans->segment_accum)); } else { GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT %" G_GINT64_FORMAT - " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT, - trans->segment_start, trans->segment_stop, trans->segment_base); + " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT + ", accum %" G_GINT64_FORMAT, + trans->segment_start, trans->segment_stop, + trans->segment_base, trans->segment_accum); } - break; } default: @@ -1427,6 +1430,12 @@ gst_base_transform_change_state (GstElement * element, trans->have_same_caps = trans->passthrough; GST_DEBUG_OBJECT (trans, "have_same_caps %d", trans->have_same_caps); trans->negotiated = FALSE; + trans->have_newsegment = FALSE; + trans->segment_rate = 1.0; + trans->segment_start = 0; + trans->segment_stop = -1; + trans->segment_base = 0; + trans->segment_accum = 0; GST_UNLOCK (trans); break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 84dcf53..03fbcb8 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -1587,7 +1587,7 @@ gst_base_sink_change_state (GstElement * element, GstStateChange transition) basesink->have_newsegment = FALSE; basesink->segment_rate = 1.0; basesink->segment_start = 0; - basesink->segment_stop = 0; + basesink->segment_stop = -1; basesink->segment_time = 0; basesink->segment_accum = 0; ret = GST_STATE_CHANGE_ASYNC; diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c index 58ed161..12d2323 100644 --- a/libs/gst/base/gstbasetransform.c +++ b/libs/gst/base/gstbasetransform.c @@ -1128,16 +1128,19 @@ gst_base_transform_event (GstPad * pad, GstEvent * event) if (format == GST_FORMAT_TIME) { GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT %" GST_TIME_FORMAT - " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, + " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT + ", accum %" GST_TIME_FORMAT, GST_TIME_ARGS (trans->segment_start), - GST_TIME_ARGS (trans->segment_start), - GST_TIME_ARGS (trans->segment_base)); + GST_TIME_ARGS (trans->segment_stop), + GST_TIME_ARGS (trans->segment_base), + GST_TIME_ARGS (trans->segment_accum)); } else { GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT %" G_GINT64_FORMAT - " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT, - trans->segment_start, trans->segment_stop, trans->segment_base); + " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT + ", accum %" G_GINT64_FORMAT, + trans->segment_start, trans->segment_stop, + trans->segment_base, trans->segment_accum); } - break; } default: @@ -1427,6 +1430,12 @@ gst_base_transform_change_state (GstElement * element, trans->have_same_caps = trans->passthrough; GST_DEBUG_OBJECT (trans, "have_same_caps %d", trans->have_same_caps); trans->negotiated = FALSE; + trans->have_newsegment = FALSE; + trans->segment_rate = 1.0; + trans->segment_start = 0; + trans->segment_stop = -1; + trans->segment_base = 0; + trans->segment_accum = 0; GST_UNLOCK (trans); break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: -- 2.7.4