class SendSideBandwidthEstimation extends RTCPPacketListenerAdapter implements BandwidthEstimator
Modifier and Type | Class and Description |
---|---|
class |
SendSideBandwidthEstimation.StatisticsImpl
This class records statistics information about how much time we spend
in different loss-states (loss-free, loss-limited and loss-degraded).
|
BandwidthEstimator.Listener, BandwidthEstimator.Statistics
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BITRATE_THRESHOLD_KBPS_PNAME
The name of the property that specifies the bitrate threshold (in kbps).
|
static java.lang.String |
HIGH_LOSS_THRESHOLD_PNAME
The name of the property that specifies the high-loss threshold
(expressed as a proportion of lost packets).
|
static java.lang.String |
LOSS_EXPERIMENT_PROBABILITY_PNAME
The name of the property that specifies the probability of enabling the
loss-based experiment.
|
static java.lang.String |
LOW_LOSS_THRESHOLD_PNAME
The name of the property that specifies the low-loss threshold
(expressed as a proportion of lost packets).
|
static java.lang.String |
TIMEOUT_EXPERIMENT_PROBABILITY_PNAME
The name of the property that specifies the probability of enabling the
timeout experiment.
|
Constructor and Description |
---|
SendSideBandwidthEstimation(MediaStreamImpl stream,
long startBitrate) |
Modifier and Type | Method and Description |
---|---|
void |
addListener(BandwidthEstimator.Listener listener)
Adds a listener to be notified about changes to the bandwidth estimation.
|
long |
getLatestEstimate() |
int |
getLatestFractionLoss() |
long |
getLatestREMB() |
SendSideBandwidthEstimation.StatisticsImpl |
getStatistics() |
void |
rembReceived(RTCPREMBPacket remb)
Notifies this listener that a
RTCPREMBPacket has been received. |
void |
removeListener(BandwidthEstimator.Listener listener)
Removes a listener.
|
(package private) void |
setMinMaxBitrate(int min_bitrate,
int max_bitrate)
void SendSideBandwidthEstimation::SetMinMaxBitrate
|
protected void |
updateEstimate(long now)
void SendSideBandwidthEstimation::UpdateEstimate(int64_t now_ms)
|
(package private) void |
updateReceiverBlock(long fraction_lost,
long number_of_packets,
long now)
void SendSideBandwidthEstimation::UpdateReceiverBlock
|
void |
updateReceiverEstimate(long bandwidth)
void SendSideBandwidthEstimation::UpdateReceiverEstimate
This is the entry/update point for the estimated bitrate in the
REMBPacket or a Delay Based Controller estimated bitrate when the
Delay based controller and the loss based controller lives on the
send side.
|
nackReceived, srReceived, tccReceived
public static final java.lang.String LOW_LOSS_THRESHOLD_PNAME
low_loss_threshold_
.public static final java.lang.String HIGH_LOSS_THRESHOLD_PNAME
high_loss_threshold_
.public static final java.lang.String BITRATE_THRESHOLD_KBPS_PNAME
bitrate_threshold_bps_
.public static final java.lang.String LOSS_EXPERIMENT_PROBABILITY_PNAME
public static final java.lang.String TIMEOUT_EXPERIMENT_PROBABILITY_PNAME
SendSideBandwidthEstimation(MediaStreamImpl stream, long startBitrate)
protected void updateEstimate(long now)
void updateReceiverBlock(long fraction_lost, long number_of_packets, long now)
public void updateReceiverEstimate(long bandwidth)
updateReceiverEstimate
in interface BandwidthEstimator
void setMinMaxBitrate(int min_bitrate, int max_bitrate)
public long getLatestEstimate()
getLatestEstimate
in interface BandwidthEstimator
public long getLatestREMB()
getLatestREMB
in interface BandwidthEstimator
public int getLatestFractionLoss()
getLatestFractionLoss
in interface BandwidthEstimator
BandwidthEstimator
. The value is between 0 and 256 (corresponding
to 0% and 100% respectively).public void addListener(BandwidthEstimator.Listener listener)
addListener
in interface BandwidthEstimator
public void removeListener(BandwidthEstimator.Listener listener)
removeListener
in interface BandwidthEstimator
public void rembReceived(RTCPREMBPacket remb)
RTCPREMBPacket
has been received.rembReceived
in interface RTCPPacketListener
rembReceived
in class RTCPPacketListenerAdapter
remb
- the received RTCPREMBPacket
.public SendSideBandwidthEstimation.StatisticsImpl getStatistics()
getStatistics
in interface BandwidthEstimator
BandwidthEstimator.Statistics
specific to this bandwidth estimator.
Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under Apache license.