Class RembParams


  • public class RembParams
    extends Object
    Defines values for parameters of congestion control
    • Constructor Detail

      • RembParams

        public RembParams()
        Create a RembParams
    • Method Detail

      • getPacketsRecvIntervalTop

        public Integer getPacketsRecvIntervalTop()
        get Size of the RTP packets history to smooth fraction-lost. Units: num of packets
      • setPacketsRecvIntervalTop

        public void setPacketsRecvIntervalTop​(Integer packetsRecvIntervalTop)
        set Size of the RTP packets history to smooth fraction-lost. Units: num of packets
      • getExponentialFactor

        public Float getExponentialFactor()
        get Factor used to increase exponentially the next REMB when it is below the threshold. REMB[i+1] = REMB[i] * (1 + exponentialFactor)
      • setExponentialFactor

        public void setExponentialFactor​(Float exponentialFactor)
        set Factor used to increase exponentially the next REMB when it is below the threshold. REMB[i+1] = REMB[i] * (1 + exponentialFactor)
      • getLinealFactorMin

        public Integer getLinealFactorMin()
        get Set the min of the factor used to increase linearly the next REMB when it is over the threshold. Units: bps (bits per second). REMB[i+1] = REMB[i] + MIN (linealFactorMin, linealFactor)
      • setLinealFactorMin

        public void setLinealFactorMin​(Integer linealFactorMin)
        set Set the min of the factor used to increase linearly the next REMB when it is over the threshold. Units: bps (bits per second). REMB[i+1] = REMB[i] + MIN (linealFactorMin, linealFactor)
      • getLinealFactorGrade

        public Float getLinealFactorGrade()
        get Determine the value of the next linearFactor based on the threshold and the current REMB. Taking into account that the frequency of updating is 500ms, the default value makes that the last REMB is reached in 60secs. linealFactor = (REMB - TH) / linealFactorGrade
      • setLinealFactorGrade

        public void setLinealFactorGrade​(Float linealFactorGrade)
        set Determine the value of the next linearFactor based on the threshold and the current REMB. Taking into account that the frequency of updating is 500ms, the default value makes that the last REMB is reached in 60secs. linealFactor = (REMB - TH) / linealFactorGrade
      • getDecrementFactor

        public Float getDecrementFactor()
        get Determine how much is decreased the current REMB when too losses are detected. REMB[i+1] = REMB[i] * decrementFactor
      • setDecrementFactor

        public void setDecrementFactor​(Float decrementFactor)
        set Determine how much is decreased the current REMB when too losses are detected. REMB[i+1] = REMB[i] * decrementFactor
      • getThresholdFactor

        public Float getThresholdFactor()
        get Determine the next threshold (TH) when too losses are detected. TH[i+1] = REMB[i] * thresholdFactor
      • setThresholdFactor

        public void setThresholdFactor​(Float thresholdFactor)
        set Determine the next threshold (TH) when too losses are detected. TH[i+1] = REMB[i] * thresholdFactor
      • getUpLosses

        public Integer getUpLosses()
        get Max fraction-lost to no determine too losses. This value is the denominator of the fraction N/256, so the default value is about 4% of losses (12/256)
      • setUpLosses

        public void setUpLosses​(Integer upLosses)
        set Max fraction-lost to no determine too losses. This value is the denominator of the fraction N/256, so the default value is about 4% of losses (12/256)
      • getRembOnConnect

        public Integer getRembOnConnect()
        get Initial local REMB bandwidth estimation that gets propagated when a new endpoint is connected.

        The REMB congestion control algorithm works by gradually increasing the output video bitrate, until the available bandwidth is fully used or the maximum send bitrate has been reached. This is a slow, progressive change, which starts at 300 kbps by default. You can change the default starting point of REMB estimations, by setting this parameter.

        WARNING: If you set this parameter to a high value that is higher than the network capacity, then all endpoints will start already in a congested state, providing very bad video quality until the congestion control algorithm is able to recover from the situation. Network congestion is very unpredictable, so be careful when changing this parameter; for most use cases it is safer to just start with a low initial value and allow the REMB algorithm to raise until the optimum bitrate is reached.

        • Unit: bps (bits per second).
        • Default: 300000 (300 kbps).
      • setRembOnConnect

        public void setRembOnConnect​(Integer rembOnConnect)
        set Initial local REMB bandwidth estimation that gets propagated when a new endpoint is connected.

        The REMB congestion control algorithm works by gradually increasing the output video bitrate, until the available bandwidth is fully used or the maximum send bitrate has been reached. This is a slow, progressive change, which starts at 300 kbps by default. You can change the default starting point of REMB estimations, by setting this parameter.

        WARNING: If you set this parameter to a high value that is higher than the network capacity, then all endpoints will start already in a congested state, providing very bad video quality until the congestion control algorithm is able to recover from the situation. Network congestion is very unpredictable, so be careful when changing this parameter; for most use cases it is safer to just start with a low initial value and allow the REMB algorithm to raise until the optimum bitrate is reached.

        • Unit: bps (bits per second).
        • Default: 300000 (300 kbps).