+2005-11-15 Wim Taymans <wim@fluendo.com>
+
+ * 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 <wingo@pobox.com>
* check/gst/gstpipeline.c (test_base_time): Punt around the
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;
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:
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:
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;
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:
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: