UNPKG

media-stream-library

Version:

Media stream library for Node & the Web.

80 lines (79 loc) 2.37 kB
import { MediaTrack } from '../utils/protocols/isom'; import { Rtcp } from '../utils/protocols/rtcp'; import { Sdp } from '../utils/protocols/sdp'; export interface GenericMessage { readonly type: MessageType; readonly data: Buffer; ntpTimestamp?: number; } export declare enum MessageType { UNKNOWN = 0, RAW = 1, RTP = 2, RTCP = 3, RTSP = 4, SDP = 5, ELEMENTARY = 6, H264 = 7, ISOM = 8, XML = 9, JPEG = 10 } export interface RawMessage extends GenericMessage { readonly type: MessageType.RAW; } export interface RtpMessage extends GenericMessage { readonly type: MessageType.RTP; readonly channel: number; } export interface RtcpMessage extends GenericMessage { readonly type: MessageType.RTCP; readonly channel: number; readonly rtcp: Rtcp; } export interface RtspMessage extends GenericMessage { readonly type: MessageType.RTSP; readonly method?: string; readonly headers?: { [key: string]: string; }; readonly uri?: string; readonly protocol?: string; } export interface SdpMessage extends GenericMessage { readonly type: MessageType.SDP; readonly sdp: Sdp; } export interface ElementaryMessage extends GenericMessage { readonly type: MessageType.ELEMENTARY; readonly payloadType: number; readonly timestamp: number; } export interface H264Message extends GenericMessage { readonly type: MessageType.H264; readonly payloadType: number; readonly timestamp: number; readonly nalType: number; } export interface IsomMessage extends GenericMessage { readonly type: MessageType.ISOM; readonly checkpointTime?: number; readonly tracks?: MediaTrack[]; readonly mime?: string; } export interface XmlMessage extends GenericMessage { readonly type: MessageType.XML; readonly timestamp: number; readonly payloadType: number; } export interface JpegMessage extends GenericMessage { readonly type: MessageType.JPEG; readonly timestamp: number; readonly payloadType: number; readonly framesize: { readonly width: number; readonly height: number; }; } export type Message = RawMessage | RtpMessage | RtcpMessage | RtspMessage | SdpMessage | ElementaryMessage | H264Message | IsomMessage | XmlMessage | JpegMessage; export type MessageHandler = (msg: Message) => void;