Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
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;
}