31 lines
910 B
TypeScript
31 lines
910 B
TypeScript
// stream source for a single mode (sub/dub)
|
|
export type ModeSource = {
|
|
token: string;
|
|
type?: string;
|
|
subtitles: SubtitleItem[];
|
|
qualities?: string[];
|
|
};
|
|
|
|
// subtitle track from backend
|
|
type SubtitleItem = { lang: string; token: string };
|
|
|
|
// skip segment (intro/outro) from backend data attribute
|
|
export type SkipSegment = {
|
|
type: string; // 'op' or 'ed'
|
|
start: number;
|
|
end: number;
|
|
source?: string;
|
|
};
|
|
|
|
// parsed subtitle cue from VTT
|
|
export type SubtitleCue = { start: number; end: number; text: string };
|
|
|
|
// loaded subtitle track for UI
|
|
export type SubtitleTrack = { lang: string; label: string; url: string };
|
|
|
|
// validated skip segment within video bounds
|
|
export type ActiveSegment = { type: string; start: number; end: number; source?: string };
|
|
|
|
// timeline range (handles seekable ranges in live streams)
|
|
export type TimelineBounds = { start: number; end: number; duration: number };
|