static GstCaps * gst_a2dp_sink_get_caps (GstA2dpSink * self) { GstCaps *caps = NULL; if (self->sink != NULL) { GST_LOG_OBJECT (self, "Getting device caps"); caps = gst_a2dp_sink_get_device_caps (self); } if (!caps) caps = gst_static_pad_template_get_caps (&gst_a2dp_sink_factory); return caps; }
static GstCaps *gst_a2dp_sink_get_caps(GstPad *pad) { GstCaps *caps; GstCaps *caps_aux; GstA2dpSink *self = GST_A2DP_SINK(GST_PAD_PARENT(pad)); if (self->sink == NULL) { GST_DEBUG_OBJECT(self, "a2dpsink isn't initialized " "returning template caps"); caps = gst_static_pad_template_get_caps( &gst_a2dp_sink_factory); } else { GST_LOG_OBJECT(self, "Getting device caps"); caps = gst_a2dp_sink_get_device_caps(self); if (caps == NULL) caps = gst_static_pad_template_get_caps( &gst_a2dp_sink_factory); } caps_aux = gst_caps_copy(caps); g_object_set(self->capsfilter, "caps", caps_aux, NULL); gst_caps_unref(caps_aux); return caps; }