livekit-client
Version:
JavaScript/TypeScript client SDK for LiveKit
35 lines (31 loc) • 1.12 kB
text/typescript
import { DataTrackExtensions, DataTrackUserTimestampExtension } from './packet/extensions';
/** A pair of payload bytes and packet extensions which can be fed into a {@link DataTrackPacketizer}. */
export type DataTrackFrame = {
payload: Uint8Array;
userTimestamp?: bigint;
};
/** An internal representation o data track frame which contains all SFU metadata. */
export type DataTrackFrameInternal = {
payload: Uint8Array;
extensions: DataTrackExtensions;
};
export const DataTrackFrameInternal = {
from(frame: DataTrackFrame) {
return {
payload: frame.payload,
extensions: new DataTrackExtensions({
userTimestamp: frame.userTimestamp
? new DataTrackUserTimestampExtension(frame.userTimestamp)
: undefined,
}),
};
},
/** Converts from a DataTrackFrameInternal -> DataTrackFrame. Some internal information is
* discarded like e2ee encrption extension data. */
lossyIntoFrame(frame: DataTrackFrameInternal): DataTrackFrame {
return {
payload: frame.payload,
userTimestamp: frame.extensions.userTimestamp?.timestamp,
};
},
};