2007-05-21 Wim Taymans <wim@fluendo.com>
+ * docs/design/part-synchronisation.txt:
+ Small addition.
+
+ * gst/gstbin.c: (gst_bin_query):
+ * plugins/elements/gstqueue.c: (apply_segment):
+ Improve debugging.
+
+ * gst/gstmessage.h:
+ Improve docs.
+
+2007-05-21 Wim Taymans <wim@fluendo.com>
+
* gst/gstpad.c: (gst_pad_get_caps_unlocked),
(gst_pad_acceptcaps_default), (gst_pad_configure_sink),
(gst_pad_configure_src):
- NS.rate: rate field of NEWSEGMENT event
- NS.abs_rate: absolute value of rate field of NEWSEGMENT event
- NS.time: time field in the NEWSEGMENT event
- - NS.accum: total accumulated time of all previous segments
+ - NS.accum: total accumulated time of all previous NEWSEGMENT events. This
+ field is kept in the GstSegment structure.
Valid buffers for synchronisation are those with B.timestamp between NS.start
and NS.stop. All other buffers outside this range should be dropped or clipped
g_value_set_boolean (&ret, FALSE);
iter = gst_bin_iterate_sinks (bin);
- GST_DEBUG_OBJECT (bin, "Sending query %p (type %d) to sink children",
- query, GST_QUERY_TYPE (query));
+ GST_DEBUG_OBJECT (bin, "Sending query %p (type %s) to sink children",
+ query, GST_QUERY_TYPE_NAME (query));
if (fold_init)
fold_init (bin, &fold_data);
/**
* GstMessageType:
* @GST_MESSAGE_UNKNOWN: an undefined message
- * @GST_MESSAGE_EOS: end-of-stream reached in a pipeline
- * @GST_MESSAGE_ERROR: an error occured
+ * @GST_MESSAGE_EOS: end-of-stream reached in a pipeline. The application will
+ * only receive this message in the PLAYING state and every time it sets a
+ * pipeline to PLAYING that is in the EOS state. The application can perform a
+ * seek in the pipeline to a new position.
+ * @GST_MESSAGE_ERROR: an error occured. Whe the application receives an error
+ * message it should stop playback of the pipeline and not assume that more
+ * data will be played.
* @GST_MESSAGE_WARNING: a warning occured.
* @GST_MESSAGE_INFO: an info message occured
* @GST_MESSAGE_TAG: a tag was found.
- * @GST_MESSAGE_BUFFERING: the pipeline is buffering
+ * @GST_MESSAGE_BUFFERING: the pipeline is buffering. When the application
+ * receives a buffering message in the PLAYING state for a non-live pipeline it
+ * must PAUSE the pipeline until the buffering completes, when the percentage
+ * field in the message is 100%. For live pipelines, no action must be
+ * performed and the buffering percentage can be used to infor the user about
+ * the progress.
* @GST_MESSAGE_STATE_CHANGED: a state change happened
- * @GST_MESSAGE_STATE_DIRTY: an element changed state in a streaming thread
- * @GST_MESSAGE_STEP_DONE: a framestep finished.
+ * @GST_MESSAGE_STATE_DIRTY: an element changed state in a streaming thread.
+ * This message is deprecated.
+ * @GST_MESSAGE_STEP_DONE: a framestep finished. This message is not yet
+ * implemented.
* @GST_MESSAGE_CLOCK_PROVIDE: an element notifies its capability of providing
* a clock.
* @GST_MESSAGE_CLOCK_LOST: The current clock as selected by the pipeline became
* unusable. The pipeline will select a new clock on
* the next PLAYING state change.
- * @GST_MESSAGE_NEW_CLOCK: a new clock was selected in the pipeline
+ * @GST_MESSAGE_NEW_CLOCK: a new clock was selected in the pipeline.
* @GST_MESSAGE_STRUCTURE_CHANGE: the structure of the pipeline changed.
* @GST_MESSAGE_STREAM_STATUS: status about a stream, emitted when it starts,
* stops, errors, etc..
gst_segment_set_newsegment_full (segment, update,
rate, arate, format, start, stop, time);
+ GST_DEBUG_OBJECT (queue,
+ "configured NEWSEGMENT %" GST_SEGMENT_FORMAT, segment);
+
/* segment can update the time level of the queue */
update_time_level (queue);
}