p2p-media-loader-core
Version:
P2P Media Loader core functionality
38 lines (37 loc) • 1.82 kB
TypeScript
import { CommonCoreConfig, StreamConfig, StreamType } from "../types.js";
import { SegmentStorage } from "./index.js";
export declare class SegmentMemoryStorage implements SegmentStorage {
private readonly userAgent;
private segmentMemoryStorageLimit;
private currentStorageUsage;
private cache;
private readonly logger;
private coreConfig?;
private mainStreamConfig?;
private secondaryStreamConfig?;
private currentPlayback?;
private lastRequestedSegment?;
private segmentChangeCallback?;
constructor();
initialize(coreConfig: CommonCoreConfig, mainStreamConfig: StreamConfig, secondaryStreamConfig: StreamConfig): Promise<void>;
onPlaybackUpdated(position: number, rate: number): void;
onSegmentRequested(swarmId: string, streamId: string, segmentId: number, startTime: number, endTime: number, streamType: StreamType, isLiveStream: boolean): void;
storeSegment(_swarmId: string, streamId: string, segmentId: number, data: ArrayBuffer, startTime: number, endTime: number, streamType: StreamType, isLiveStream: boolean): Promise<void>;
getSegmentData(_swarmId: string, streamId: string, segmentId: number): Promise<ArrayBuffer | undefined>;
getUsage(): {
totalCapacity: number;
usedCapacity: number;
};
hasSegment(_swarmId: string, streamId: string, externalId: number): boolean;
getStoredSegmentIds(_swarmId: string, streamId: string): number[];
private clear;
private isMemoryLimitReached;
setSegmentChangeCallback(callback: ((streamId: string) => void) | undefined): void;
private sendUpdatesToAffectedStreams;
private shouldRemoveSegment;
private increaseStorageUsage;
private decreaseStorageUsage;
private setMemoryStorageLimit;
private getStreamTimeWindow;
destroy(): void;
}