Segments storage interface

interface SegmentStorage {
    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<undefined | ArrayBuffer>;
    getUsage(): { totalCapacity: number; usedCapacity: number };
    hasSegment(swarmId: string, streamId: string, segmentId: number): boolean;
    getStoredSegmentIds(swarmId: string, streamId: string): number[];
    setSegmentChangeCallback(callback: (streamId: string) => void): void;
    destroy(): void;
}

Methods

  • Provides playback position from player

    Parameters

    • position: number

      Playback position

    • rate: number

      Playback rate

    Returns void

  • Provides segment request information from player

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    • startTime: number

      Segment start time

    • endTime: number

      Segment end time

    • streamType: StreamType

      Stream type

    • isLiveStream: boolean

      Is live stream

    Returns void

  • Stores segment data

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    • data: ArrayBuffer

      Segment data

    • startTime: number

      Segment start time

    • endTime: number

      Segment end time

    • streamType: StreamType

      Stream type

    • isLiveStream: boolean

      Is live stream

    Returns Promise<void>

  • Returns segment data

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    Returns Promise<undefined | ArrayBuffer>

  • Returns used memory information in the storage

    Returns { totalCapacity: number; usedCapacity: number }

  • Returns true if segment is in storage

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    Returns boolean

  • Returns segment IDs of a stream that are stored in the storage

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    Returns number[]

  • Sets segment change callback function

    Parameters

    • callback: (streamId: string) => void

      Callback function that has to be called when segments appear or disappear in the storage

    Returns void