Interface VideoDownlinkBandwidthPolicy

[[VideoDownlinkBandwidthPolicy]] makes decisions about downlink video bandwidth usage.

interface VideoDownlinkBandwidthPolicy {
    addObserver(observer: VideoDownlinkObserver): void;
    bindToTileController(tileController: VideoTileController): void;
    chooseSubscriptions(): VideoStreamIdSet;
    forEachObserver(
        observerFunc: (observer: VideoDownlinkObserver) => void,
    ): void;
    getServerSideNetworkAdaption(): ServerSideNetworkAdaption;
    getVideoPreferences(): VideoPreferences;
    removeObserver(observer: VideoDownlinkObserver): void;
    reset(): void;
    setServerSideNetworkAdaption(adaption: ServerSideNetworkAdaption): void;
    setWantsResubscribeObserver(observer: () => void): void;
    supportedServerSideNetworkAdaptions(): ServerSideNetworkAdaption[];
    updateIndex(videoIndex: VideoStreamIndex): void;
    updateMetrics(clientMetricReport: ClientMetricReport): void;
    wantsAllTemporalLayersInIndex(): boolean;
    wantsResubscribe(): boolean;
}

Implemented by

Methods

  • Used to indicate that this policy can handle the increased complexity required to deal with layers of different frame rates (i.e. balances tradeoffs of resolution vs. frame rate, will not degrade resolution or framerate during recovery, etc.)

    Returns boolean