export class RTCRtpParameters { codecs : RTCRtpCodecParameters [ ] = [ ] ; headerExtensions : RTCRtpHeaderExtensionParameters [ ] = [ ] ; muxId ? : string ; rid ? : string ; rtcp ! : RTCRtcpParameters ; constructor ( props = { } ) { Object . assign ( this , props ) ; } } export class RTCRtpCodecCapability { mimeType ! : string ; clockRate ! : number ; channels ? : number ; parameters = { } ; constructor ( parameters = { } ) { Object . assign ( this , parameters ) ; } get name ( ) { return this . mimeType . split ( "/" ) [ 1 ] ; } } export class RTCRtpCodecParameters { mimeType ! : string ; clockRate ! : number ; channels ? : number ; payloadType ? : number ; rtcpFeedback : { type : string ; parameter ? : string ; } [ ] = [ ] ; parameters = { } ; constructor ( props = { } ) { Object . assign ( this , props ) ; } get name ( ) { return this . mimeType . split ( "/" ) [ 1 ] ; } get str ( ) { let s = `${ this . name }/${ this . clockRate }` ; if ( this . channels === 2 ) s += "/2" ; return s ; } } export class RTCRtpHeaderExtensionParameters { id ! : number ; uri ! : string ; constructor ( props = { } ) { Object . assign ( this , props ) ; } } export class RTCRtcpParameters { cname ? : string ; mux : boolean = false ; ssrc ? : number ; constructor ( props = { } ) { Object . assign ( this , props ) ; } } export class RTCRtcpFeedback { type ! : string ; parameter ? : string ; constructor ( props = { } ) { Object . assign ( this , props ) ; } } export class RTCRtpRtxParameters { ssrc ! : number ; constructor ( props = { } ) { Object . assign ( this , props ) ; } } export class RTCRtpCodingParameters { ssrc ! : number ; payloadType ! : number ; rtx ? : RTCRtpRtxParameters ; constructor ( props = { } ) { Object . assign ( this , props ) ; } } export class RTCRtpReceiveParameters extends RTCRtpParameters { encodings ! : RTCRtpCodingParameters [ ] ; constructor ( props = { } ) { super ( props ) ; Object . assign ( this , props ) ; } } export class RTCRtpSimulcastParameters { rid ! : string ; direction ! : "send" | "recv" ; constructor ( props ) { Object . assign ( this , props ) ; } }