static void kms_recorder_endpoint_remove_pads (KmsRecorderEndpoint * self) { KmsElement *elem = KMS_ELEMENT (self); kms_element_remove_sink_by_type (elem, KMS_ELEMENT_PAD_TYPE_AUDIO); kms_element_remove_sink_by_type (elem, KMS_ELEMENT_PAD_TYPE_VIDEO); }
static void kms_dummy_sink_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { KmsDummySink *self = KMS_DUMMY_SINK (object); gboolean val; KMS_ELEMENT_LOCK (KMS_ELEMENT (self)); switch (property_id) { case PROP_DATA: val = g_value_get_boolean (value); if (val && !self->priv->data) { kms_dummy_sink_add_sinkpad (self, KMS_ELEMENT_PAD_TYPE_DATA); } else if (!val && self->priv->data) { kms_element_remove_sink_by_type (KMS_ELEMENT (self), KMS_ELEMENT_PAD_TYPE_DATA); } else { GST_DEBUG_OBJECT (self, "Operation without effect"); } self->priv->data = val; break; case PROP_AUDIO: val = g_value_get_boolean (value); if (val && !self->priv->audio) { kms_dummy_sink_add_sinkpad (self, KMS_ELEMENT_PAD_TYPE_AUDIO); } else if (!val && self->priv->audio) { kms_element_remove_sink_by_type (KMS_ELEMENT (self), KMS_ELEMENT_PAD_TYPE_AUDIO); } else { GST_DEBUG_OBJECT (self, "Operation without effect"); } self->priv->audio = val; break; case PROP_VIDEO: val = g_value_get_boolean (value); if (val && !self->priv->video) { kms_dummy_sink_add_sinkpad (self, KMS_ELEMENT_PAD_TYPE_VIDEO); } else if (!val && self->priv->video) { kms_element_remove_sink_by_type (KMS_ELEMENT (self), KMS_ELEMENT_PAD_TYPE_VIDEO); } else { GST_DEBUG_OBJECT (self, "Operation without effect"); } self->priv->video = val; break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } KMS_ELEMENT_UNLOCK (KMS_ELEMENT (self)); }