+2006-09-18 Wim Taymans <wim@fluendo.com>
+
+ * gst/gstelement.c: (gst_element_post_message),
+ (gst_element_dispose):
+ Use _DEBUG_OBJECT some more.
+
+ * libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
+ Avoid typechecks.
+
+ * tools/gst-launch.c: (main):
+ If the toplevel element is not a GstPipeline, it must be put in a
+ pipeline so that a bus and clock is selected.
+
2006-09-17 Tim-Philipp Müller <tim at centricular dot net>
* libs/gst/base/gstbasesrc.c: (gst_base_src_default_query):
/* ERRORS */
no_bus:
{
- GST_DEBUG ("not posting message %p: no bus", message);
+ GST_DEBUG_OBJECT (element, "not posting message %p: no bus", message);
GST_OBJECT_UNLOCK (element);
gst_message_unref (message);
return FALSE;
g_return_if_fail (GST_STATE_PENDING (element) == GST_STATE_VOID_PENDING);
- GST_DEBUG ("removing %d pads", g_list_length (element->pads));
+ GST_DEBUG_OBJECT (element, "removing %d pads", g_list_length (element->pads));
/* first we break all our links with the outside */
while (element->pads && element->pads->data) {
/* don't call _remove_pad with NULL */
if (ret == GST_FLOW_UNEXPECTED) {
/* perform EOS logic */
if (src->segment.flags & GST_SEEK_FLAG_SEGMENT) {
- gst_element_post_message (GST_ELEMENT (src),
- gst_message_new_segment_done (GST_OBJECT (src),
+ gst_element_post_message (GST_ELEMENT_CAST (src),
+ gst_message_new_segment_done (GST_OBJECT_CAST (src),
src->segment.format, src->segment.last_stop));
} else {
gst_pad_push_event (pad, gst_event_new_eos ());
GstState state, pending;
GstStateChangeReturn ret;
- /* If the top-level object is not a bin, or is just a normal bin that
- * doesn't do top-level type logic, place it in a pipeline. Assumes any
- * other top-level bin is a special kind (like playbin) */
- if (!GST_IS_BIN (pipeline) || (G_OBJECT_TYPE (pipeline) == GST_TYPE_BIN)) {
+ /* If the top-level object is not a pipeline, place it in a pipeline. */
+ if (!GST_IS_PIPELINE (pipeline)) {
GstElement *real_pipeline = gst_element_factory_make ("pipeline", NULL);
if (real_pipeline == NULL) {