54 lines
2.0 KiB
TypeScript
54 lines
2.0 KiB
TypeScript
import type Room from '../room/Room';
|
|
export interface FrameMetadataOptions {
|
|
/**
|
|
* Dedicated worker for extracting packet trailers off the main thread.
|
|
*
|
|
* Encoded video streams are transferred to the worker for processing, which
|
|
* avoids per-frame work on the main thread.
|
|
*/
|
|
worker: Worker;
|
|
}
|
|
/**
|
|
* Manages packet trailer extraction for received video tracks.
|
|
*
|
|
* When a track's TrackInfo indicates packet trailer features, the manager
|
|
* wires up an encoded frame transform to strip the trailer from encoded frames
|
|
* and cache the metadata for lookup.
|
|
*
|
|
* Packet trailer extraction is worker-only. If no worker is configured, the
|
|
* SDK does not advertise packet trailer support and skips extraction.
|
|
*
|
|
* When E2EE is active, the E2EE FrameCryptor worker handles trailer
|
|
* extraction directly (before decryption), so this manager only creates
|
|
* the extractor/metadata cache — no separate pipeline is installed.
|
|
*
|
|
* @experimental
|
|
*/
|
|
export declare class FrameMetadataManager {
|
|
private worker?;
|
|
private room?;
|
|
private extractors;
|
|
/**
|
|
* Tracks the trackId associated with each receiver that has had its
|
|
* encoded streams handed off to the worker. Used to detect receiver
|
|
* reuse (transceiver recycling) so we can remap trackIds instead of
|
|
* re-transferring already-consumed streams.
|
|
*/
|
|
private workerPipelines;
|
|
constructor(options?: FrameMetadataOptions);
|
|
/** @internal */
|
|
setup(room: Room): void;
|
|
private setupReceiver;
|
|
private setupPassthroughReceiver;
|
|
private setupWorkerReceiver;
|
|
private teardownTrack;
|
|
private cleanup;
|
|
private onWorkerMessage;
|
|
private onWorkerError;
|
|
}
|
|
/** @deprecated Use {@link FrameMetadataManager} instead. */
|
|
export declare const PacketTrailerManager: typeof FrameMetadataManager;
|
|
/** @deprecated Use {@link FrameMetadataOptions} instead. */
|
|
export type PacketTrailerOptions = FrameMetadataOptions;
|
|
//# sourceMappingURL=FrameMetadataManager.d.ts.map
|