Files
v10/dist/dev/playback/actors/text-track-segment-loader.d.ts
T

54 lines
2.5 KiB
TypeScript

import { Cue, TextTrack } from "../../media/types/index.js";
import { MessageActor } from "../../core/actors/create-machine-actor.js";
import { ForwardBufferConfig } from "../../media/buffer/forward-buffer.js";
import { TextMessagePipelines } from "../primitives/text-segment-load-pipeline.js";
import "./text-tracks.js";
//#region src/playback/actors/text-track-segment-loader.d.ts
/**
* Mirrors the v/a `SegmentLoaderMessage` shape. `range` carries the
* forward-window anchor (`range.start` is treated as the load anchor;
* the actor computes its own forward window internally via
* `getSegmentsToLoad`). When `range` is omitted (metadata mode), this
* actor is a no-op — text tracks have no init-segment concept.
*/
type TextTrackSegmentLoaderMessage = {
type: 'load';
track: TextTrack;
range?: {
start: number;
end: number;
};
};
/** Finite states of the actor. */
type TextTrackSegmentLoaderActorState = 'idle' | 'loading' | 'destroyed';
/** Non-finite (extended) data managed by the actor. */
interface TextTrackSegmentLoaderActorContext {
/**
* Track ID of the segment currently being fetched, or null. Paired
* with `inFlightSegmentId` so the continue-vs-preempt check survives
* cross-track segment-id collisions (e.g. each track starts at
* `seg-0`).
*/
inFlightTrackId: string | null;
/**
* Segment ID currently being fetched, or null. Used together with
* `inFlightTrackId` by the `loading` state's `load` handler.
*/
inFlightSegmentId: string | null;
}
type TextTrackSegmentLoaderActor = MessageActor<TextTrackSegmentLoaderActorState, TextTrackSegmentLoaderActorContext, TextTrackSegmentLoaderMessage>;
/**
* Configuration for `createTextTrackSegmentLoaderActor`. Spread over
* `DEFAULT_FORWARD_BUFFER_CONFIG` to override individual forward-window
* fields (e.g. `bufferDuration`). Text tracks don't have a back-buffer
* concern — cues evict by their playhead-relative window at runtime —
* so no `backBuffer` config field.
*/
interface TextTrackSegmentLoaderActorConfig<C extends Cue = Cue> {
forwardBuffer?: Partial<ForwardBufferConfig>;
/** Ordered step pipeline. Defaults to {@link DEFAULT_TEXT_MESSAGE_PIPELINES} (`resolveCues → dispatchCues`). */
messagePipelines?: TextMessagePipelines<C>;
}
//#endregion
export { TextTrackSegmentLoaderActor, TextTrackSegmentLoaderActorConfig, TextTrackSegmentLoaderActorContext, TextTrackSegmentLoaderActorState, TextTrackSegmentLoaderMessage };
//# sourceMappingURL=text-track-segment-loader.d.ts.map