import { BitsPerSecond, Millisecond } from '../../units/Units'; import ReadOnlySubject from '../../rx/ReadOnlySubject'; import Dimension from '../../video/Dimension'; import { IRtcMonitorStatistic } from '../../rtc/RtcConnectionMonitor'; import IPeerConnection from '../../rtc/IPeerConnection'; import { EncodedEdgeToken } from '../../edgeAuth/EncodedEdgeToken'; import EndPoint, { IStream } from '../discovery/EndPoint'; import { IChannel } from '../channels/IChannel'; import ChannelState from '../channels/ChannelState'; import { DecodedFrameTimingInformation, RenderedFrameTimingInformation } from '../frameTiming/FrameTimingInformation'; import IsoBmffChannel from '../isobmffchannels/IsoBmffChannel'; import { IsoBmffPlayerState } from '../isobmffchannels/IsoBmffPlayer'; import ChannelProtectionManager from './ChannelProtectionManager'; export default class ProtectedChannel implements IChannel { private readonly _disposables; private readonly _channel; constructor(channel: IsoBmffChannel, channelProtectionManager: ChannelProtectionManager); set videoElement(videoElement: HTMLVideoElement); get videoElement(): HTMLVideoElement | null; set token(value: EncodedEdgeToken); get token(): EncodedEdgeToken; get tokenExpiring(): ReadOnlySubject; get state(): ReadOnlySubject; get exists(): ReadOnlySubject; get authorized(): ReadOnlySubject; get online(): ReadOnlySubject; get loading(): ReadOnlySubject; get playing(): ReadOnlySubject; get standby(): ReadOnlySubject; get stopped(): ReadOnlySubject; get autoMuted(): ReadOnlySubject; get autoPaused(): ReadOnlySubject; get endPoint(): ReadOnlySubject; get targetLag(): ReadOnlySubject; get lag(): ReadOnlySubject; get resolution(): ReadOnlySubject; get failureCount(): ReadOnlySubject; get streamId(): string; get stream(): ReadOnlySubject; get bitrateLimit(): BitsPerSecond; get peerConnection(): ReadOnlySubject; get mediaStream(): ReadOnlySubject; get rtcStatistics(): ReadOnlySubject; get isFrameTimingInformationEnabled(): ReadOnlySubject; get decodedFrameTimingInformation(): ReadOnlySubject; get renderedFrameTimingInformation(): ReadOnlySubject; get playerState(): ReadOnlySubject; play(): Promise; resume(): Promise; stop(reason: string): Promise; mute(): void; unmute(): void; setBitrateLimit(bitrateLimit: BitsPerSecond): void; clearBitrateLimit(): void; updateTargetLag(lag: Millisecond): void; getUri(token: EncodedEdgeToken): URL; dispose(): Promise; private initializeProtection; private subscribeToProtectionStrategy; private handleProtectionStrategyChange; private subscribeToMediaKeys; private handleMediaKeysChange; private subscribeToKeySession; private setMediaElementEncryptedEventHandler; }