GstSDPMedia * kms_sdp_reject_media_handler_create_answer (KmsSdpMediaHandler * handler, const GstSDPMessage * msg, const GstSDPMedia * offer, GError ** error) { GstSDPMedia *m = NULL; if (gst_sdp_media_new (&m) != GST_SDP_OK) { g_set_error (error, KMS_SDP_AGENT_ERROR, SDP_AGENT_UNEXPECTED_ERROR, "Can not create '%s' media answer", gst_sdp_media_get_media (offer)); goto error; } /* Create m-line */ if (!KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->init_answer (handler, offer, m, error)) { goto error; } /* Add attributes to m-line */ if (!KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->add_answer_attributes (handler, offer, m, error)) { goto error; } return m; error: if (m != NULL) { gst_sdp_media_free (m); } return NULL; }
static GstSDPMedia * kms_sdp_rtp_avpf_media_handler_create_offer (KmsSdpMediaHandler * handler, const gchar * media, GError ** error) { GstSDPMedia *m; if (gst_sdp_media_new (&m) != GST_SDP_OK) { g_set_error (error, KMS_SDP_AGENT_ERROR, SDP_AGENT_UNEXPECTED_ERROR, "Can not create '%s' media", media); goto error; } /* Create m-line */ if (!KMS_SDP_MEDIA_HANDLER_CLASS (parent_class)->init_offer (handler, media, m, error)) { goto error; } /* Add attributes to m-line */ if (!KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->add_offer_attributes (handler, m, error)) { goto error; } return m; error: if (m != NULL) { gst_sdp_media_free (m); } return NULL; }
gboolean kms_sdp_media_handler_set_id (KmsSdpMediaHandler * handler, guint id, GError ** error) { g_return_val_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler), FALSE); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->set_id (handler, id, error); }
gboolean kms_sdp_media_handler_manage_protocol (KmsSdpMediaHandler * handler, const gchar * protocol) { g_return_val_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler), FALSE); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->manage_protocol (handler, protocol); }
void kms_sdp_media_handler_add_bandwidth (KmsSdpMediaHandler * handler, const gchar * bwtype, guint bandwidth) { g_return_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler)); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->add_bandwidth (handler, bwtype, bandwidth); }
gboolean kms_sdp_media_handler_process_answer (KmsSdpMediaHandler * handler, const GstSDPMedia * answer, GError ** error) { g_return_val_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler), FALSE); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->process_answer (handler, answer, error); }
GstSDPMedia * kms_sdp_media_handler_create_answer (KmsSdpMediaHandler * handler, SdpMessageContext * ctx, const GstSDPMedia * offer, GError ** error) { g_return_val_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler), NULL); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->create_answer (handler, ctx, offer, error); }
GstSDPMedia * kms_sdp_media_handler_create_offer (KmsSdpMediaHandler * handler, const gchar * media, GError ** error) { g_return_val_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler), NULL); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->create_offer (handler, media, error); }
gboolean kms_sdp_media_handler_add_media_extension (KmsSdpMediaHandler * handler, KmsISdpMediaExtension * ext) { g_return_val_if_fail (KMS_IS_SDP_MEDIA_HANDLER (handler), FALSE); g_return_val_if_fail (KMS_IS_I_SDP_MEDIA_EXTENSION (ext), FALSE); return KMS_SDP_MEDIA_HANDLER_GET_CLASS (handler)->add_media_extension (handler, ext); }
static gboolean instersect_rtp_avpf_media_attr (const GstSDPAttribute * attr, gpointer user_data) { struct intersect_data *data = (struct intersect_data *) user_data; if (!KMS_SDP_MEDIA_HANDLER_GET_CLASS (data->handler)-> can_insert_attribute (data->handler, data->offer, attr, data->answer)) { return FALSE; } if (gst_sdp_media_add_attribute (data->answer, attr->key, attr->value) != GST_SDP_OK) { GST_WARNING ("Cannot add attribute '%s'", attr->key); return FALSE; } return TRUE; }