/**
[10 Nov 1995 11:33:25.125 UTC] [10 Nov 1995 11:33:36.5 UTC]
n SR(n) A=b710:8000 (46864.500 s)
---------------------------------------------------------------->
v ^
ntp_sec =0xb44db705 v ^ dlsr=0x0005:4000 ( 5.250s)
ntp_frac=0x20000000 v ^ lsr =0xb705:2000 (46853.125s)
(3024992005.125 s) v ^
r v ^ RR(n)
---------------------------------------------------------------->
|<-DLSR->|
(5.250 s)
A 0xb710:8000 (46864.500 s)
DLSR -0x0005:4000 ( 5.250 s)
LSR -0xb705:2000 (46853.125 s)
-------------------------------
delay 0x0006:2000 ( 6.125 s)
Figure 2: Example for round-trip time computation
*/
///
import Event from "rx.mini";
import { GenericNack, RedEncoder, RtcpPacket, RtpHeader, RtpPacket } from "../../../rtp/src";
import { RTCDtlsTransport } from "../transport/dtls";
import { Kind } from "../types/domain";
import { RTCRtpCodecParameters, RTCRtpSendParameters } from "./parameters";
import { SenderBandwidthEstimator } from "./sender/senderBWE";
import { MediaStreamTrack } from "./track";
export declare class RTCRtpSender {
trackOrKind: Kind | MediaStreamTrack;
disableSendRetransmit?: boolean | undefined;
readonly type = "sender";
readonly kind: Kind;
readonly ssrc: number;
readonly rtxSsrc: number;
streamId: string;
readonly trackId: string;
readonly onReady: Event;
readonly onRtcp: Event<[RtcpPacket]>;
readonly onPictureLossIndication: Event<[]>;
readonly onGenericNack: Event<[GenericNack]>;
readonly senderBWE: SenderBandwidthEstimator;
private cname?;
private mid?;
private rtpStreamId?;
private repairedRtpStreamId?;
private rtxPayloadType?;
private rtxSequenceNumber;
redRedundantPayloadType?: number;
private _redDistance;
redEncoder: RedEncoder;
private headerExtensions;
private disposeTrack?;
private lastSRtimestamp?;
private lastSentSRTimestamp?;
private ntpTimestamp;
private rtpTimestamp;
private octetCount;
private packetCount;
private rtt?;
receiverEstimatedMaxBitrate: bigint;
private sequenceNumber?;
private timestamp?;
private timestampOffset;
private seqOffset;
private rtpCache;
codec?: RTCRtpCodecParameters;
dtlsTransport: RTCDtlsTransport;
private dtlsDisposer;
track?: MediaStreamTrack;
stopped: boolean;
rtcpRunning: boolean;
private rtcpCancel;
constructor(trackOrKind: Kind | MediaStreamTrack, disableSendRetransmit?: boolean | undefined);
setDtlsTransport(dtlsTransport: RTCDtlsTransport): void;
get redDistance(): number;
set redDistance(n: number);
prepareSend(params: RTCRtpSendParameters): void;
registerTrack(track: MediaStreamTrack): void;
replaceTrack(track: MediaStreamTrack | null): Promise;
stop(): void;
runRtcp(): Promise;
replaceRTP({ sequenceNumber, timestamp, }: Pick, discontinuity?: boolean): void;
sendRtp(rtp: Buffer | RtpPacket): Promise;
handleRtcpPacket(rtcpPacket: RtcpPacket): void;
}
export declare function wrapRtx(packet: RtpPacket, payloadType: number, sequenceNumber: number, ssrc: number): RtpPacket;