Interface SimulcastUplinkPolicy

Simulcast is deprecated in favor of scalable video coding (SVC).

interface SimulcastUplinkPolicy {
    addObserver(observer: SimulcastUplinkObserver): void;
    chooseCaptureAndEncodeParameters(): VideoCaptureAndEncodeParameter;
    chooseEncodingParameters(): Map<string, RTCRtpEncodingParameters>;
    chooseMediaTrackConstraints(): MediaTrackConstraints;
    degradeScalabilityMode(): boolean;
    forEachObserver(
        observerFunc: (observer: SimulcastUplinkObserver) => void,
    ): void;
    maxBandwidthKbps(): number;
    removeObserver(observer: SimulcastUplinkObserver): void;
    reset(): void;
    setHasBandwidthPriority(hasBandwidthPriority: boolean): void;
    setHighResolutionFeatureEnabled(enabled: boolean): void;
    setIdealMaxBandwidthKbps(maxBandwidthKbps: number): void;
    setMeetingSupportedVideoSendCodecs(
        meetingSupportedVideoSendCodecs: VideoCodecCapability[],
        videoSendCodecPreferences: VideoCodecCapability[],
    ): void;
    setSVCEnabled(enable: boolean): void;
    setTransceiverController(
        transceiverController: TransceiverController,
    ): void;
    updateConnectionMetric(metrics: ConnectionMetrics): void;
    updateIndex(videoIndex: VideoStreamIndex): void;
    updateTransceiverController(): void;
    wantsResubscribe(): boolean;
    wantsVideoDependencyDescriptorRtpHeaderExtension(): boolean;
}

Hierarchy (View Summary)

Implemented by

Methods

  • Update the transceiver controller that is set from setTransceiverController such as setEncodingParameters. Only used when unified plan is enabled but not available for simulcast for now. This method should be called when the policy needs to update the local video encoding parameters such as after setHasBandwidthPriority has been called. The default audio video controller calls this after a video is on/off or when an active speakers changes. This method should not throw.

    Returns void

  • Dependency descriptors can be used by the backend to designate spatial or temporal layers on a single encoding. Along with the video layers allocation exension this will result in the ability for remote attendees to subscribe to individual layers below the top.

    If the send transceiver is in a state where the layers allocation extension is not matching up with the dependency descriptor extension, or we simply don't want to allow for the seperation of spatial or temporal layers, we can remove the dependency descriptor from the SDP.

    Returns boolean