static void kms_sdp_group_manager_add_handler_impl (KmsSdpGroupManager * self, KmsSdpHandler * handler) { KmsISdpMediaExtension *mid_ext; /* Add mid extension */ mid_ext = KMS_I_SDP_MEDIA_EXTENSION (kms_sdp_mid_ext_new ()); if (!kms_sdp_media_handler_add_media_extension (handler->handler, mid_ext)) { GST_WARNING_OBJECT (self, "Can not configure media stream ids"); g_object_unref (mid_ext); } else { MidExtData *ext_data; SignalData *s_data; gulong id1, id2 = 0UL; g_hash_table_insert (self->priv->handlers, GUINT_TO_POINTER (handler->id), handler); ext_data = mid_ext_data_new (handler, self); id1 = g_signal_connect_data (mid_ext, "on-offer-mid", G_CALLBACK (on_offer_mid_cb), ext_data, (GClosureNotify) kms_ref_struct_unref, 0); id2 = g_signal_connect_data (mid_ext, "on-answer-mid", G_CALLBACK (on_answer_mid_cb), kms_ref_struct_ref (KMS_REF_STRUCT_CAST (ext_data)), (GClosureNotify) kms_ref_struct_unref, 0); s_data = signal_data_new (id1, id2, G_OBJECT (mid_ext)); g_hash_table_insert (self->priv->connected_signals, GUINT_TO_POINTER (handler->id), s_data); } }
static KmsAlphaBlendingData * kms_create_alpha_blending_data () { KmsAlphaBlendingData *data; data = g_slice_new0 (KmsAlphaBlendingData); kms_ref_struct_init (KMS_REF_STRUCT_CAST (data), (GDestroyNotify) kms_destroy_alpha_blending_data); return data; }
static KmsCompositeMixerData * kms_create_composite_mixer_data () { KmsCompositeMixerData *data; data = g_slice_new0 (KmsCompositeMixerData); kms_ref_struct_init (KMS_REF_STRUCT_CAST (data), (GDestroyNotify) kms_destroy_composite_mixer_data); return data; }
static StreamE2EAvgStat * stream_e2e_avg_stat_new (KmsMediaType type) { StreamE2EAvgStat *stat; stat = g_slice_new0 (StreamE2EAvgStat); kms_ref_struct_init (KMS_REF_STRUCT_CAST (stat), (GDestroyNotify) stream_e2e_avg_stat_destroy); stat->type = type; return stat; }
static MidExtData * mid_ext_data_new (KmsSdpHandler * handler, KmsSdpGroupManager * gmanager) { MidExtData *data; data = g_slice_new0 (MidExtData); kms_ref_struct_init (KMS_REF_STRUCT_CAST (data), (GDestroyNotify) mid_ext_data_destroy); data->handler = kms_sdp_agent_common_ref_sdp_handler (handler); data->gmanager = gmanager; return data; }
KmsSdpHandler * kms_sdp_agent_common_new_sdp_handler (guint id, const gchar * media, KmsSdpMediaHandler * handler) { KmsSdpHandler *sdp_handler; sdp_handler = g_slice_new0 (KmsSdpHandler); kms_ref_struct_init (KMS_REF_STRUCT_CAST (sdp_handler), (GDestroyNotify) kms_sdp_agent_common_destroy_sdp_handler); sdp_handler->id = id; sdp_handler->media = g_strdup (media); sdp_handler->handler = handler; return sdp_handler; }
void kms_sdp_agent_common_unref_sdp_handler (KmsSdpHandler * handler) { kms_ref_struct_unref (KMS_REF_STRUCT_CAST (handler)); }
KmsSdpHandler * kms_sdp_agent_common_ref_sdp_handler (KmsSdpHandler * handler) { return (KmsSdpHandler *) kms_ref_struct_ref (KMS_REF_STRUCT_CAST (handler)); }