UNPKG

@phenixrts/sdk

Version:
35 lines (34 loc) 1.88 kB
import Subject from '../../rx/Subject'; import { VideoCodec } from '../decode/bitstream/codec/VideoCodec'; import { AudioCodec } from '../decode/bitstream/codec/AudioCodec'; import { IStreamTrackTransform } from '../transformation/StreamTrackTransform'; import { IEncodedStreamSink } from '../transformation/EncodedStreamSink'; import TransformMessageRouter from '../transformation/worker/MessageRouter'; export type StreamTransformContextOptions = { hasInsertableStreams: boolean; hasEncodedInsertableStreams: boolean; videoStreamTransformCallback: IStreamTrackTransform<VideoFrame> | undefined; audioStreamTransformCallback: IStreamTrackTransform<AudioData> | undefined; encodedVideoStreamSink: IEncodedStreamSink<RTCEncodedVideoFrame> | undefined; encodedAudioStreamSink: IEncodedStreamSink<RTCEncodedAudioFrame> | undefined; }; export type StreamTransformContextTrack = { mediaStreamTrack: MediaStreamTrack | null; receiver: RTCRtpReceiver | null; mid: string | null; codec: VideoCodec | AudioCodec | null; transformPipelineWorker: Worker | null; transformMessageRouter: TransformMessageRouter | null; transformFunctionNames: string[]; }; export default class StreamTransformContext { readonly hasInsertableStreams: Subject<boolean>; readonly hasEncodedInsertableStreams: Subject<boolean>; readonly videoStreamTransformCallback: IStreamTrackTransform<VideoFrame> | undefined; readonly audioStreamTransformCallback: IStreamTrackTransform<AudioData> | undefined; readonly encodedVideoStreamSink: IEncodedStreamSink<RTCEncodedVideoFrame> | undefined; readonly encodedAudioStreamSink: IEncodedStreamSink<RTCEncodedAudioFrame> | undefined; readonly audioTrack: StreamTransformContextTrack; readonly videoTrack: StreamTransformContextTrack; constructor(options: StreamTransformContextOptions); }