goto done;
case GST_ITERATOR_OK:
#ifdef HAVE_GSTREAMER_0_10
- cs = gst_caps_to_string(gst_pad_get_caps(pad));
+ cs = gst_caps_to_string(GST_PAD_CAPS(pad));
#else
assert(G_VALUE_HOLDS(&gv, GST_TYPE_PAD));
pad = g_value_get_object(&gv);
caps = gst_pad_query_caps(pad, 0);
cs = gst_caps_to_string(caps);
- g_object_unref(caps);
+ gst_caps_unref(caps);
#endif
disorder_error(0, " `%s' %s pad: %s", GST_OBJECT_NAME(elt), what, cs);
g_free(cs);
-#ifdef HAVE_GSTREAMER_0_10
- g_object_unref(pad);
-#endif
+ gst_object_unref(pad);
break;
case GST_ITERATOR_RESYNC:
gst_iterator_resync(it);
#endif
goto match;
}
-#ifndef HAVE_GSTREAMER_0_10
- g_object_unref(caps);
-#endif
- return;
+ goto end;
match:
/* Yes, it's audio. Link the two elements together. */
GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(pipeline),
GST_DEBUG_GRAPH_SHOW_ALL,
"disorder-gstdecode");
+
+end:
+ gst_caps_unref(caps);
}
/* Prepare the GStreamer pipeline, ready to decode the given FILE. This sets
GstCaps *caps;
const struct stream_header *fmt = &config->sample_format;
+ if(!source || !decode || !resample || !convert || !sink)
+ disorder_fatal(0, "failed to create GStreamer elements: "
+ "need base and good plugins");
+
#ifndef HAVE_GSTREAMER_0_10
static const struct fmttab {
const char *fmt;
END);
#endif
gst_app_sink_set_caps(appsink, caps);
+ gst_caps_unref(caps);
/* Add the various elements into the pipeline. We'll stitch them together
* in pieces, because the pipeline is somewhat dynamic.
*/
if(mode != OFF) {
gain = gst_element_factory_make("rgvolume", "gain");
+ if(!gain)
+ disorder_fatal(0, "failed to create GStreamer elements: "
+ "need base and good plugins");
g_object_set(gain,
"album-mode", mode == ALBUM,
"fallback-gain", fallback,
static void bus_message(GstBus UNUSED *bus, GstMessage *msg,
gpointer UNUSED u)
{
- switch(msg->type) {
+ switch(GST_MESSAGE_TYPE(msg)) {
case GST_MESSAGE_ERROR:
-#ifdef HAVE_GSTREAMER_0_10
- disorder_fatal(0, "%s",
- gst_structure_get_string(msg->structure, "debug"));
-#else
disorder_fatal(0, "%s",
gst_structure_get_string(gst_message_get_structure(msg),
"debug"));
-#endif
default:
break;
}