Class MBRAbstractAbstract

MBRAbstract is the base class for multi-bitrate algorithm used by Player to switch between tracks quality depending on the network's congestion.

Hierarchy

Implements

Constructors

Properties

_appreciationTime?: number
_learningUpStep: number
_mTrack?: MTrack
_maximumUpDelay: number
_testTime: number
_upDelay: number
log: ILog

Start a log

Param

Returns

a Log object with the levels of log to call

Accessors

  • get learningUpStep(): number
  • delay added on every congestion to report next bitrate increasing

    Returns number

  • get maximumUpDelay(): number
  • maximum delay before to increase bitrate when network quality is good

    Returns number

  • get upDelay(): number
  • delay before to increase bitrate when network quality is good

    Returns number

Methods

  • Check if we are congested and need to reduce the bitrate now Implement this method to define your own congestion algorithm

    Parameters

    • elapsed: number

      Time since beginning of congestion, on a new state 'elapsed' is equals to 0 on first call

    • trackRef: MTrack

      Track used as reference for statistics, is always the video track playing excepting if the stream is a pure audio stream

    • stats: RTCInboundRtpStreamStats

      Statistics to use to determine if we have to decrease bitrate now

    Returns boolean

    true if we can decrease bitrate quality now

  • Called when _downBitrate returns false to check if we can increase the bitrate now Implement this method to define your own congestion algorithm

    Parameters

    • elapsed: number

      Time since beginning of good network state, on the first call 'elapsed' is equals to 0

    • trackRef: MTrack

      Track used as reference for statistics, is always the video track playing excepting if the stream is a pure audio stream

    • stats: RTCInboundRtpStreamStats

      Statistics to use to determine if we have to increase bitrate now

    Returns boolean

    true if we can increase bitrate quality now

  • Call this method regularly to control if we have to change track, it will update the tracks if needed and return true if a track has changed.

    Parameters

    • metadata: Metadata

      Metadata of the stream

    • tracks: {
          audio?: number;
          video?: number;
      }

      the audio and video track number, this object can be updated with the new track numbers

      • Optional audio?: number
      • Optional video?: number
    • stats: {
          audio?: RTCInboundRtpStreamStats;
          video?: RTCInboundRtpStreamStats;
      }

      Statistics to use to determine if we have to decrease bitrate now

      • Optional audio?: RTCInboundRtpStreamStats
      • Optional video?: RTCInboundRtpStreamStats

    Returns boolean

    true if a track has changed, false otherwise

  • Try to select the next track to use if available

    Parameters

    • track: undefined | number

      the track number to update

    • metadata: Metadata

      the metadata of the stream

    • down: boolean

      True if it is a down change, false if it is an up change

    Returns undefined | MTrack

    the new track to use or undefined if no change is possible

Generated using TypeDoc