View Source Membrane.RTP.TWCCSender.CongestionControl (Membrane RTP plugin v0.12.1)

The module implements Google congestion control algorithm.

Link to this section Summary

Link to this section Types

@type t() :: %Membrane.RTP.TWCCSender.CongestionControl{
  a_hat: float(),
  as_hat: float(),
  del_var_th: float(),
  e: float(),
  last_bandwidth_increase_ts: Membrane.Time.t(),
  last_receive_rates: [float()],
  m_hat: float(),
  overuse_start_ts: Membrane.Time.t() | nil,
  packet_received_interval_end: Membrane.Time.t() | nil,
  packet_received_interval_start: Membrane.Time.t() | nil,
  packet_received_sizes: non_neg_integer(),
  r_hats: [float()],
  signal_time_threshold: term(),
  state: :increase | :decrease | :hold,
  target_receive_interval: term(),
  underuse_start_ts: Membrane.Time.t() | nil,
  var_v_hat: float()
}

Link to this section Functions

Link to this function

update(cc, reference_time, receive_deltas, send_deltas, packet_sizes, rtt)

View Source
@spec update(
  t(),
  Membrane.Time.t(),
  [Membrane.Time.t() | :not_received],
  [Membrane.Time.t()],
  [pos_integer()],
  Membrane.Time.t()
) :: t()