@phenixrts/sdk
Version:
JavaScript SDK
35 lines (34 loc) • 1.88 kB
TypeScript
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);
}