KmsRembLocal * kms_remb_local_create (GObject * rtpsess, guint session, guint remote_ssrc, guint min_bw, guint max_bw) { KmsRembLocal *rl = g_slice_new0 (KmsRembLocal); g_object_set_data (rtpsess, KMS_REMB_LOCAL, rl); rl->base.signal_id = g_signal_connect (rtpsess, "on-sending-rtcp", G_CALLBACK (on_sending_rtcp), NULL); kms_remb_base_create (KMS_REMB_BASE (rl), session, rtpsess); rl->remote_ssrc = remote_ssrc; rl->min_bw = min_bw; rl->max_bw = max_bw; rl->probed = FALSE; rl->remb = REMB_MAX; rl->threshold = REMB_MAX; rl->lineal_factor = DEFAULT_REMB_LINEAL_FACTOR_MIN; rl->packets_recv_interval_top = DEFAULT_REMB_PACKETS_RECV_INTERVAL_TOP; rl->exponential_factor = DEFAULT_REMB_EXPONENTIAL_FACTOR; rl->lineal_factor_min = DEFAULT_REMB_LINEAL_FACTOR_MIN; rl->lineal_factor_grade = DEFAULT_REMB_LINEAL_FACTOR_GRADE; rl->decrement_factor = DEFAULT_REMB_DECREMENT_FACTOR; rl->threshold_factor = DEFAULT_REMB_THRESHOLD_FACTOR; rl->up_losses = DEFAULT_REMB_UP_LOSSES; return rl; }
KmsRembRemote * kms_remb_remote_create (GObject * rtpsess, guint session, guint local_ssrc, guint min_bw, guint max_bw, GstPad * pad) { KmsRembRemote *rm = g_slice_new0 (KmsRembRemote); g_object_set_data (rtpsess, KMS_REMB_REMOTE, rm); rm->base.signal_id = g_signal_connect (rtpsess, "on-feedback-rtcp", G_CALLBACK (on_feedback_rtcp), NULL); kms_remb_base_create (KMS_REMB_BASE (rm), session, rtpsess); rm->local_ssrc = local_ssrc; rm->min_bw = min_bw; rm->max_bw = max_bw; rm->pad_event = g_object_ref (pad); gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, send_remb_event_probe, rm, NULL); return rm; }
KmsRembLocal * kms_remb_local_create (GObject * rtpsess, guint session, guint remote_ssrc, guint min_bw, guint max_bw) { KmsRembLocal *rl = g_slice_new0 (KmsRembLocal); g_object_set_data (rtpsess, KMS_REMB_LOCAL, rl); rl->base.signal_id = g_signal_connect (rtpsess, "on-sending-rtcp", G_CALLBACK (on_sending_rtcp), NULL); kms_remb_base_create (KMS_REMB_BASE (rl), session, rtpsess); rl->remote_ssrc = remote_ssrc; rl->min_bw = min_bw; rl->max_bw = max_bw; rl->probed = FALSE; rl->remb = REMB_MAX; rl->threshold = REMB_MAX; rl->lineal_factor = REMB_LINEAL_FACTOR_MIN; return rl; }