eb-player 2.1.5 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/ebplayer.bundle.js +206 -4
- package/dist/build/ebplayer.bundle.js.map +1 -1
- package/dist/build/types/src/core/lifecycle.d.ts +9 -0
- package/dist/build/types/src/core/lifecycle.d.ts.map +1 -1
- package/dist/build/types/src/eb-player.d.ts +4 -0
- package/dist/build/types/src/eb-player.d.ts.map +1 -1
- package/dist/build/types/src/skin/controls/settings-panel.d.ts.map +1 -1
- package/package.json +7 -4
- package/dist/build/theme-forja.js +0 -1
- package/dist/build/theme-radio.js +0 -1
- package/dist/build/theme-snrt.js +0 -1
- package/dist/build/types/config.d.ts +0 -139
- package/dist/build/types/config.d.ts.map +0 -1
- package/dist/build/types/core/command-handler.d.ts +0 -50
- package/dist/build/types/core/command-handler.d.ts.map +0 -1
- package/dist/build/types/core/config.d.ts +0 -187
- package/dist/build/types/core/config.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-forja.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-forja.entry.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-radio.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-radio.entry.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-snrt.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-snrt.entry.d.ts.map +0 -1
- package/dist/build/types/core/engine-state-sync.d.ts +0 -38
- package/dist/build/types/core/engine-state-sync.d.ts.map +0 -1
- package/dist/build/types/core/event-bus.d.ts +0 -90
- package/dist/build/types/core/event-bus.d.ts.map +0 -1
- package/dist/build/types/core/fsm.d.ts +0 -30
- package/dist/build/types/core/fsm.d.ts.map +0 -1
- package/dist/build/types/core/i18n.d.ts +0 -51
- package/dist/build/types/core/i18n.d.ts.map +0 -1
- package/dist/build/types/core/index.d.ts +0 -23
- package/dist/build/types/core/index.d.ts.map +0 -1
- package/dist/build/types/core/lifecycle.d.ts +0 -96
- package/dist/build/types/core/lifecycle.d.ts.map +0 -1
- package/dist/build/types/core/player-state.d.ts +0 -15
- package/dist/build/types/core/player-state.d.ts.map +0 -1
- package/dist/build/types/core/types.d.ts +0 -85
- package/dist/build/types/core/types.d.ts.map +0 -1
- package/dist/build/types/eb-player-standalone.d.ts +0 -23
- package/dist/build/types/eb-player-standalone.d.ts.map +0 -1
- package/dist/build/types/eb-player.d.ts +0 -56
- package/dist/build/types/eb-player.d.ts.map +0 -1
- package/dist/build/types/engine-state-sync.d.ts +0 -38
- package/dist/build/types/engine-state-sync.d.ts.map +0 -1
- package/dist/build/types/engines/abr/dash.d.ts +0 -56
- package/dist/build/types/engines/abr/dash.d.ts.map +0 -1
- package/dist/build/types/engines/abr/hls.d.ts +0 -105
- package/dist/build/types/engines/abr/hls.d.ts.map +0 -1
- package/dist/build/types/engines/base-engine.d.ts +0 -72
- package/dist/build/types/engines/base-engine.d.ts.map +0 -1
- package/dist/build/types/engines/cdn-loader.d.ts +0 -20
- package/dist/build/types/engines/cdn-loader.d.ts.map +0 -1
- package/dist/build/types/engines/cdn-token-manager.d.ts +0 -137
- package/dist/build/types/engines/cdn-token-manager.d.ts.map +0 -1
- package/dist/build/types/engines/dash.d.ts +0 -79
- package/dist/build/types/engines/dash.d.ts.map +0 -1
- package/dist/build/types/engines/drm.d.ts +0 -54
- package/dist/build/types/engines/drm.d.ts.map +0 -1
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts +0 -43
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts.map +0 -1
- package/dist/build/types/engines/hls.d.ts +0 -53
- package/dist/build/types/engines/hls.d.ts.map +0 -1
- package/dist/build/types/engines/index.d.ts +0 -26
- package/dist/build/types/engines/index.d.ts.map +0 -1
- package/dist/build/types/engines/ios/hls.d.ts +0 -20
- package/dist/build/types/engines/ios/hls.d.ts.map +0 -1
- package/dist/build/types/engines/poster/hls.d.ts +0 -35
- package/dist/build/types/engines/poster/hls.d.ts.map +0 -1
- package/dist/build/types/engines/retry/dash.d.ts +0 -39
- package/dist/build/types/engines/retry/dash.d.ts.map +0 -1
- package/dist/build/types/engines/retry/hls.d.ts +0 -47
- package/dist/build/types/engines/retry/hls.d.ts.map +0 -1
- package/dist/build/types/engines/snapshot/dash.d.ts +0 -55
- package/dist/build/types/engines/snapshot/dash.d.ts.map +0 -1
- package/dist/build/types/engines/snapshot/hls.d.ts +0 -118
- package/dist/build/types/engines/snapshot/hls.d.ts.map +0 -1
- package/dist/build/types/engines/stall-watchdog.d.ts +0 -41
- package/dist/build/types/engines/stall-watchdog.d.ts.map +0 -1
- package/dist/build/types/event-bus.d.ts +0 -54
- package/dist/build/types/event-bus.d.ts.map +0 -1
- package/dist/build/types/fsm.d.ts +0 -27
- package/dist/build/types/fsm.d.ts.map +0 -1
- package/dist/build/types/i18n.d.ts +0 -51
- package/dist/build/types/i18n.d.ts.map +0 -1
- package/dist/build/types/index.d.ts +0 -21
- package/dist/build/types/index.d.ts.map +0 -1
- package/dist/build/types/integrations/ads-manager.d.ts +0 -37
- package/dist/build/types/integrations/ads-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/chromecast-manager.d.ts +0 -50
- package/dist/build/types/integrations/chromecast-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/epg-manager.d.ts +0 -22
- package/dist/build/types/integrations/epg-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/index.d.ts +0 -7
- package/dist/build/types/integrations/index.d.ts.map +0 -1
- package/dist/build/types/integrations/intro-stream-manager.d.ts +0 -33
- package/dist/build/types/integrations/intro-stream-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/p2p-manager.d.ts +0 -42
- package/dist/build/types/integrations/p2p-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/playlist-manager.d.ts +0 -21
- package/dist/build/types/integrations/playlist-manager.d.ts.map +0 -1
- package/dist/build/types/lifecycle.d.ts +0 -64
- package/dist/build/types/lifecycle.d.ts.map +0 -1
- package/dist/build/types/player-state.d.ts +0 -15
- package/dist/build/types/player-state.d.ts.map +0 -1
- package/dist/build/types/skin/bars/bottom-bar.d.ts +0 -16
- package/dist/build/types/skin/bars/bottom-bar.d.ts.map +0 -1
- package/dist/build/types/skin/bars/middle-bar.d.ts +0 -16
- package/dist/build/types/skin/bars/middle-bar.d.ts.map +0 -1
- package/dist/build/types/skin/bars/top-bar.d.ts +0 -15
- package/dist/build/types/skin/bars/top-bar.d.ts.map +0 -1
- package/dist/build/types/skin/base-component.d.ts +0 -69
- package/dist/build/types/skin/base-component.d.ts.map +0 -1
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts +0 -15
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts.map +0 -1
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts +0 -16
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts.map +0 -1
- package/dist/build/types/skin/component-registry.d.ts +0 -16
- package/dist/build/types/skin/component-registry.d.ts.map +0 -1
- package/dist/build/types/skin/controllers/auto-hide.d.ts +0 -27
- package/dist/build/types/skin/controllers/auto-hide.d.ts.map +0 -1
- package/dist/build/types/skin/controllers/keyboard.d.ts +0 -29
- package/dist/build/types/skin/controllers/keyboard.d.ts.map +0 -1
- package/dist/build/types/skin/controls/cast-button.d.ts +0 -15
- package/dist/build/types/skin/controls/cast-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/channel-name.d.ts +0 -16
- package/dist/build/types/skin/controls/channel-name.d.ts.map +0 -1
- package/dist/build/types/skin/controls/forward-button.d.ts +0 -15
- package/dist/build/types/skin/controls/forward-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/fullscreen-button.d.ts +0 -30
- package/dist/build/types/skin/controls/fullscreen-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/info-button.d.ts +0 -10
- package/dist/build/types/skin/controls/info-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/live-sync-button.d.ts +0 -20
- package/dist/build/types/skin/controls/live-sync-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/pip-button.d.ts +0 -21
- package/dist/build/types/skin/controls/pip-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/play-pause-button.d.ts +0 -14
- package/dist/build/types/skin/controls/play-pause-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/rewind-button.d.ts +0 -15
- package/dist/build/types/skin/controls/rewind-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/seekbar.d.ts +0 -48
- package/dist/build/types/skin/controls/seekbar.d.ts.map +0 -1
- package/dist/build/types/skin/controls/settings-panel.d.ts +0 -53
- package/dist/build/types/skin/controls/settings-panel.d.ts.map +0 -1
- package/dist/build/types/skin/controls/share-button.d.ts +0 -11
- package/dist/build/types/skin/controls/share-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/time-display.d.ts +0 -19
- package/dist/build/types/skin/controls/time-display.d.ts.map +0 -1
- package/dist/build/types/skin/controls/volume-control.d.ts +0 -21
- package/dist/build/types/skin/controls/volume-control.d.ts.map +0 -1
- package/dist/build/types/skin/icons/icons-modern.d.ts +0 -10
- package/dist/build/types/skin/icons/icons-modern.d.ts.map +0 -1
- package/dist/build/types/skin/icons/icons.d.ts +0 -10
- package/dist/build/types/skin/icons/icons.d.ts.map +0 -1
- package/dist/build/types/skin/icons/sprite.d.ts +0 -39
- package/dist/build/types/skin/icons/sprite.d.ts.map +0 -1
- package/dist/build/types/skin/index.d.ts +0 -24
- package/dist/build/types/skin/index.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/error-message.d.ts +0 -14
- package/dist/build/types/skin/overlays/error-message.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/info-overlay.d.ts +0 -15
- package/dist/build/types/skin/overlays/info-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/loading-spinner.d.ts +0 -17
- package/dist/build/types/skin/overlays/loading-spinner.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/preroll-overlay.d.ts +0 -39
- package/dist/build/types/skin/overlays/preroll-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/socials-overlay.d.ts +0 -17
- package/dist/build/types/skin/overlays/socials-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/toast-notification.d.ts +0 -18
- package/dist/build/types/skin/overlays/toast-notification.d.ts.map +0 -1
- package/dist/build/types/skin/skin-root.d.ts +0 -88
- package/dist/build/types/skin/skin-root.d.ts.map +0 -1
- package/dist/build/types/types.d.ts +0 -41
- package/dist/build/types/types.d.ts.map +0 -1
- package/dist/build/types/utils/chapters.d.ts +0 -16
- package/dist/build/types/utils/chapters.d.ts.map +0 -1
- package/dist/build/types/utils/format-duration.d.ts +0 -9
- package/dist/build/types/utils/format-duration.d.ts.map +0 -1
- package/dist/build/types/utils/format-wall-clock.d.ts +0 -6
- package/dist/build/types/utils/format-wall-clock.d.ts.map +0 -1
- package/dist/build/types/utils/settings-helpers.d.ts +0 -41
- package/dist/build/types/utils/settings-helpers.d.ts.map +0 -1
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom HLS ABR controller.
|
|
3
|
-
*
|
|
4
|
-
* Ported from component/engines/abr/hls.js (509 LOC).
|
|
5
|
-
*
|
|
6
|
-
* Creates a class that extends hls.js's built-in ABR controller and overrides
|
|
7
|
-
* nextAutoLevel with bandwidth-aware and buffer-level-based quality selection.
|
|
8
|
-
*
|
|
9
|
-
* Usage: pass the result as `abrController` in the Hls constructor config.
|
|
10
|
-
*
|
|
11
|
-
* Note: hls.js internals are accessed via type assertions because the library
|
|
12
|
-
* does not export its internal controller types (Open Question 3 in RESEARCH.md).
|
|
13
|
-
*/
|
|
14
|
-
interface AbrHlsLevel {
|
|
15
|
-
bitrate: number;
|
|
16
|
-
loaded?: {
|
|
17
|
-
bytes: number;
|
|
18
|
-
duration: number;
|
|
19
|
-
};
|
|
20
|
-
realBitrate?: number;
|
|
21
|
-
}
|
|
22
|
-
interface AbrHlsMedia {
|
|
23
|
-
currentTime: number;
|
|
24
|
-
playbackRate: number;
|
|
25
|
-
paused: boolean;
|
|
26
|
-
readyState: number;
|
|
27
|
-
}
|
|
28
|
-
interface AbrHlsConfig {
|
|
29
|
-
maxBufferLength: number;
|
|
30
|
-
[key: string]: unknown;
|
|
31
|
-
}
|
|
32
|
-
interface AbrHlsInstance {
|
|
33
|
-
on: (event: string, handler: (event: string, data: unknown) => void, context?: unknown) => void;
|
|
34
|
-
off: (event: string, handler: (event: string, data: unknown) => void, context?: unknown) => void;
|
|
35
|
-
levels: AbrHlsLevel[];
|
|
36
|
-
currentLevel: number;
|
|
37
|
-
media: AbrHlsMedia | null;
|
|
38
|
-
config: AbrHlsConfig;
|
|
39
|
-
autoLevelEnabled?: boolean;
|
|
40
|
-
}
|
|
41
|
-
interface AbrHlsEvents {
|
|
42
|
-
FRAG_LOADING: string;
|
|
43
|
-
FRAG_LOADED: string;
|
|
44
|
-
FRAG_BUFFERED: string;
|
|
45
|
-
LEVEL_LOADED: string;
|
|
46
|
-
ERROR: string;
|
|
47
|
-
}
|
|
48
|
-
interface AbrHlsConstructorLike {
|
|
49
|
-
Events: AbrHlsEvents;
|
|
50
|
-
DefaultConfig: {
|
|
51
|
-
abrController?: AbrControllerConstructor;
|
|
52
|
-
[key: string]: unknown;
|
|
53
|
-
};
|
|
54
|
-
[key: string]: unknown;
|
|
55
|
-
}
|
|
56
|
-
interface AbrControllerConstructor {
|
|
57
|
-
new (hlsInstance: AbrHlsInstance, ...args: unknown[]): AbrControllerInstance;
|
|
58
|
-
prototype: AbrControllerInstance;
|
|
59
|
-
}
|
|
60
|
-
interface AbrControllerInstance {
|
|
61
|
-
hls: AbrHlsInstance;
|
|
62
|
-
destroy(): void;
|
|
63
|
-
registerListeners?: () => void;
|
|
64
|
-
unregisterListeners?: () => void;
|
|
65
|
-
clearTimer?: () => void;
|
|
66
|
-
fragCurrent?: HlsFragment | null;
|
|
67
|
-
partCurrent?: HlsFragPart | null;
|
|
68
|
-
timer?: ReturnType<typeof setInterval> | undefined;
|
|
69
|
-
onCheck?: () => void;
|
|
70
|
-
[key: string]: unknown;
|
|
71
|
-
}
|
|
72
|
-
interface HlsFragment {
|
|
73
|
-
type: string;
|
|
74
|
-
sn: number | 'initSegment';
|
|
75
|
-
level: number;
|
|
76
|
-
duration: number;
|
|
77
|
-
stats: HlsFragStats;
|
|
78
|
-
[key: string]: unknown;
|
|
79
|
-
}
|
|
80
|
-
interface HlsFragPart {
|
|
81
|
-
duration: number;
|
|
82
|
-
stats: HlsFragStats;
|
|
83
|
-
}
|
|
84
|
-
interface HlsFragStats {
|
|
85
|
-
loading: {
|
|
86
|
-
start: number;
|
|
87
|
-
};
|
|
88
|
-
parsing: {
|
|
89
|
-
end: number;
|
|
90
|
-
};
|
|
91
|
-
loaded: number;
|
|
92
|
-
tload?: number;
|
|
93
|
-
tfirst?: number;
|
|
94
|
-
trequest?: number;
|
|
95
|
-
aborted?: boolean;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Factory that creates a custom ABR controller class extending hls.js's built-in
|
|
99
|
-
* ABR controller. Takes the Hls constructor so it can access Events and DefaultConfig.
|
|
100
|
-
*
|
|
101
|
-
* The returned class can be passed as `abrController` in the Hls constructor config.
|
|
102
|
-
*/
|
|
103
|
-
export declare function createHlsAbrController(HlsConstructor: AbrHlsConstructorLike): AbrControllerConstructor;
|
|
104
|
-
export {};
|
|
105
|
-
//# sourceMappingURL=hls.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../../../../src/engines/abr/hls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BaseEngine — abstract base class for HLS and DASH engine implementations.
|
|
3
|
-
*
|
|
4
|
-
* Extends EngineStateSync with concrete lifecycle management:
|
|
5
|
-
* - stores video, state, signal, bus, config
|
|
6
|
-
* - binds native video element events to PlayerState
|
|
7
|
-
* - delegates engine-specific startup / teardown to onAttach / onDetach
|
|
8
|
-
* - delegates stall recovery to recoverFromStall (engine-specific)
|
|
9
|
-
*/
|
|
10
|
-
import { EngineStateSync } from '../core/engine-state-sync';
|
|
11
|
-
import type { PlayerState } from '../core/types';
|
|
12
|
-
import type { TypedEventBus } from '../core/event-bus';
|
|
13
|
-
import type { PlayerConfig } from '../core/config';
|
|
14
|
-
export declare abstract class BaseEngine extends EngineStateSync {
|
|
15
|
-
protected video: HTMLVideoElement | null;
|
|
16
|
-
protected state: PlayerState | null;
|
|
17
|
-
protected signal: AbortSignal | null;
|
|
18
|
-
protected bus: TypedEventBus | null;
|
|
19
|
-
protected config: PlayerConfig | null;
|
|
20
|
-
/**
|
|
21
|
-
* The URL to load — set by reference.open(src) via setLoadSource().
|
|
22
|
-
* Takes precedence over config.src in engine init so the intro stream URL
|
|
23
|
-
* is loaded rather than the main stream URL (root cause of Phase 7 bug:
|
|
24
|
-
* reference.open(preroll) wired config but engines read config.src, which
|
|
25
|
-
* always points at the main stream).
|
|
26
|
-
*/
|
|
27
|
-
protected loadSourceUrl: string;
|
|
28
|
-
private watchdog;
|
|
29
|
-
/**
|
|
30
|
-
* Promise that resolves when the engine driver (hls.js/dash.js) is created
|
|
31
|
-
* and ready for integration (e.g., P2P SDK). Resolved inside onAttach().
|
|
32
|
-
*/
|
|
33
|
-
readonly driverReady: Promise<void>;
|
|
34
|
-
protected resolveDriverReady: () => void;
|
|
35
|
-
constructor();
|
|
36
|
-
attach(state: PlayerState, signal: AbortSignal): void;
|
|
37
|
-
detach(): void;
|
|
38
|
-
protected startWatchdog(): void;
|
|
39
|
-
protected stopWatchdog(): void;
|
|
40
|
-
setConfig(config: PlayerConfig): void;
|
|
41
|
-
setBus(bus: TypedEventBus): void;
|
|
42
|
-
setVideo(video: HTMLVideoElement): void;
|
|
43
|
-
/**
|
|
44
|
-
* Set the URL that the engine driver should load.
|
|
45
|
-
* Must be called by reference.open(src) BEFORE controller.setEngineSync()
|
|
46
|
-
* so that onAttach() → init() picks up the correct URL.
|
|
47
|
-
* This decouples the stream URL from config.src, which always points at the
|
|
48
|
-
* main stream URL (set once at start() time and never mutated).
|
|
49
|
-
*/
|
|
50
|
-
setLoadSource(src: string): void;
|
|
51
|
-
protected bindVideoEvents(video: HTMLVideoElement, state: PlayerState, signal: AbortSignal): void;
|
|
52
|
-
protected abstract recoverFromStall(attempt: number): void;
|
|
53
|
-
protected abstract onAttach(): Promise<void> | void;
|
|
54
|
-
protected abstract onDetach(): void;
|
|
55
|
-
abstract setQuality(index: number): void;
|
|
56
|
-
abstract setAudioTrack(index: number): void;
|
|
57
|
-
abstract setSubtitle(index: number): void;
|
|
58
|
-
abstract setPlaybackRate(rate: number): void;
|
|
59
|
-
abstract seekToLive(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Seek to a specific time. Default implementation sets video.currentTime.
|
|
62
|
-
* HLS engine overrides this for live streams to reset hls.js stream controller.
|
|
63
|
-
*/
|
|
64
|
-
seek(time: number): void;
|
|
65
|
-
/**
|
|
66
|
-
* Returns the underlying driver instance (hls.js or dash.js player).
|
|
67
|
-
* Used by P2PManager to integrate with the streaming library.
|
|
68
|
-
* Returns null before engine initialization completes.
|
|
69
|
-
*/
|
|
70
|
-
abstract getDriver(): unknown | null;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=base-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-engine.d.ts","sourceRoot":"","sources":["../../../../src/engines/base-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,8BAAsB,UAAW,SAAQ,eAAe;IACtD,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAC/C,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAO;IAC1C,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAO;IAC3C,SAAS,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAO;IAC1C,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAO;IAC5C;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IAEpC,OAAO,CAAC,QAAQ,CAA6B;IAE7C;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,SAAS,CAAC,kBAAkB,EAAG,MAAM,IAAI,CAAA;;IAazC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAMrD,MAAM,IAAI,IAAI;IAgBd,SAAS,CAAC,aAAa,IAAI,IAAI;IAmB/B,SAAS,CAAC,YAAY,IAAI,IAAI;IAa9B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAIhC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAIvC;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQhC,SAAS,CAAC,eAAe,CACvB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,GAClB,IAAI;IAgJP,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAC1D,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IACnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;IAMnC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACxC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC3C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACzC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC5C,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,GAAG,IAAI;CACrC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CDN Script Loader
|
|
3
|
-
*
|
|
4
|
-
* Replaces the scriptjs-based component/utils/load.js with direct <script> tag injection.
|
|
5
|
-
* Resolves with window[globalName] when the script loads, or rejects with a clear error.
|
|
6
|
-
*/
|
|
7
|
-
export interface LoadScriptOptions {
|
|
8
|
-
timeout?: number;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Loads a CDN script by injecting a <script> tag into document.head and resolves
|
|
12
|
-
* with window[globalName] once the script has loaded.
|
|
13
|
-
*
|
|
14
|
-
* - If window[globalName] already exists, resolves immediately (no re-injection).
|
|
15
|
-
* - If the script loads but the global is not on window, rejects with a descriptive error.
|
|
16
|
-
* - If script.onerror fires, rejects with a descriptive error.
|
|
17
|
-
* - If neither onload nor onerror fires within `options.timeout` ms (default 10000), rejects.
|
|
18
|
-
*/
|
|
19
|
-
export declare function loadScript<T>(url: string, globalName: string, options?: LoadScriptOptions): Promise<T>;
|
|
20
|
-
//# sourceMappingURL=cdn-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cdn-loader.d.ts","sourceRoot":"","sources":["../../../../src/engines/cdn-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAyCZ"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CDN Token Manager
|
|
3
|
-
*
|
|
4
|
-
* TypeScript port of component/utils/token.js (CDNTokenManager class, 459 LOC).
|
|
5
|
-
* Supports four token flows: default (Cloudflare query params), easybroadcast/venom
|
|
6
|
-
* (EasyBroadcast format via POST), akamai (path-segment format), and bunny (POST JSON).
|
|
7
|
-
*
|
|
8
|
-
* All sub-types (TokenError, TokenResponse, ResponseParameters) are inlined here
|
|
9
|
-
* since they are only used by CDNTokenManager.
|
|
10
|
-
*/
|
|
11
|
-
export declare const TOKEN_TYPES: Readonly<{
|
|
12
|
-
readonly EASY_B: "easy_b";
|
|
13
|
-
readonly BUNNY: "bunny";
|
|
14
|
-
readonly AKAMAI: "akamai";
|
|
15
|
-
readonly VENOM: "venom";
|
|
16
|
-
}>;
|
|
17
|
-
export type TokenType = typeof TOKEN_TYPES[keyof typeof TOKEN_TYPES];
|
|
18
|
-
export declare const ERROR_TYPES: Readonly<{
|
|
19
|
-
readonly UNKNOWN: "unknown";
|
|
20
|
-
readonly MAX_RETRY: "max_retry";
|
|
21
|
-
readonly FORBIDDEN: "forbidden";
|
|
22
|
-
}>;
|
|
23
|
-
export type ErrorType = typeof ERROR_TYPES[keyof typeof ERROR_TYPES];
|
|
24
|
-
export interface TokenErrorOptions {
|
|
25
|
-
status?: number | string;
|
|
26
|
-
errorCode?: string;
|
|
27
|
-
errorType?: ErrorType | string;
|
|
28
|
-
message?: string | null;
|
|
29
|
-
}
|
|
30
|
-
export declare class TokenError extends Error {
|
|
31
|
-
status: number | string;
|
|
32
|
-
errorCode: string;
|
|
33
|
-
errorType: ErrorType | string;
|
|
34
|
-
constructor({ status, errorCode, errorType, message }: TokenErrorOptions);
|
|
35
|
-
}
|
|
36
|
-
export interface DefaultResponseParameters {
|
|
37
|
-
token: string | null;
|
|
38
|
-
tokenPath: string | null;
|
|
39
|
-
expires: number | string | null;
|
|
40
|
-
}
|
|
41
|
-
export interface AkamaiResponseParameters {
|
|
42
|
-
hdntl: string | null;
|
|
43
|
-
hdnea: string | null;
|
|
44
|
-
expires: number | string | null;
|
|
45
|
-
acl: string | null;
|
|
46
|
-
hmac: string | null;
|
|
47
|
-
}
|
|
48
|
-
export interface CloudflareResponseParameters {
|
|
49
|
-
verify: string | null;
|
|
50
|
-
expires: number | string | null;
|
|
51
|
-
}
|
|
52
|
-
export type ResponseParameters = DefaultResponseParameters | AkamaiResponseParameters | CloudflareResponseParameters;
|
|
53
|
-
export interface TokenResponseExtras {
|
|
54
|
-
drm_custom_data?: string;
|
|
55
|
-
[key: string]: unknown;
|
|
56
|
-
}
|
|
57
|
-
export interface TokenResponseData {
|
|
58
|
-
src: string;
|
|
59
|
-
responseParameters?: ResponseParameters;
|
|
60
|
-
error?: TokenError | null;
|
|
61
|
-
extras?: TokenResponseExtras;
|
|
62
|
-
}
|
|
63
|
-
export declare class TokenResponse {
|
|
64
|
-
src: string;
|
|
65
|
-
responseParameters: ResponseParameters | undefined;
|
|
66
|
-
error: TokenError | null;
|
|
67
|
-
extras: TokenResponseExtras;
|
|
68
|
-
constructor({ src, responseParameters, error, extras }: TokenResponseData);
|
|
69
|
-
static fromJson({ src, json }: {
|
|
70
|
-
src: string;
|
|
71
|
-
json: string;
|
|
72
|
-
}): TokenResponse;
|
|
73
|
-
static fromAkamai({ src, text }: {
|
|
74
|
-
src: string;
|
|
75
|
-
text: string;
|
|
76
|
-
}): TokenResponse;
|
|
77
|
-
static fromText({ src, text }: {
|
|
78
|
-
src: string;
|
|
79
|
-
text: string;
|
|
80
|
-
}): TokenResponse;
|
|
81
|
-
static fromDefault({ src, text }: {
|
|
82
|
-
src: string;
|
|
83
|
-
text: string;
|
|
84
|
-
}): TokenResponse;
|
|
85
|
-
static fromError({ src, error }: {
|
|
86
|
-
src: string;
|
|
87
|
-
error: TokenError | TokenErrorOptions | Error;
|
|
88
|
-
}): TokenResponse;
|
|
89
|
-
}
|
|
90
|
-
export interface CDNTokenManagerOptions {
|
|
91
|
-
token: string;
|
|
92
|
-
tokenType?: TokenType;
|
|
93
|
-
srcInTokenRequest?: boolean;
|
|
94
|
-
extraParamsCallback?: ((status?: number | string) => Promise<Record<string, unknown>> | Record<string, unknown>) | null;
|
|
95
|
-
onCDNTokenError?: ((error: {
|
|
96
|
-
status: number | string;
|
|
97
|
-
errorCode: string;
|
|
98
|
-
errorType: ErrorType | string;
|
|
99
|
-
}) => void) | null;
|
|
100
|
-
maxRetries?: number;
|
|
101
|
-
retryInterval?: number;
|
|
102
|
-
expirationMarginInSeconds?: number;
|
|
103
|
-
}
|
|
104
|
-
export declare class CDNTokenManager {
|
|
105
|
-
private tokenGeneratorUrl;
|
|
106
|
-
private tokenType;
|
|
107
|
-
private srcInTokenRequest;
|
|
108
|
-
private extraParamsCallback;
|
|
109
|
-
private callbackError;
|
|
110
|
-
private attempt;
|
|
111
|
-
maxRetries: number;
|
|
112
|
-
retryInterval: number;
|
|
113
|
-
private expirationMarginInSeconds;
|
|
114
|
-
lastTokenResponse: TokenResponse | null;
|
|
115
|
-
private resetAttemptCounterTimeout;
|
|
116
|
-
private inFlightFetch;
|
|
117
|
-
constructor({ token, tokenType, srcInTokenRequest, extraParamsCallback, onCDNTokenError, maxRetries, retryInterval, expirationMarginInSeconds }: CDNTokenManagerOptions);
|
|
118
|
-
private resetAttemptCounter;
|
|
119
|
-
private _fetchDefaultToken;
|
|
120
|
-
private _fetchEasyBToken;
|
|
121
|
-
private _fetchAkamaiToken;
|
|
122
|
-
private _fetchBunnyToken;
|
|
123
|
-
fetchToken({ src }: {
|
|
124
|
-
src: string;
|
|
125
|
-
}): Promise<TokenResponse | null>;
|
|
126
|
-
updateUrlWithTokenParams({ url }: {
|
|
127
|
-
url: string;
|
|
128
|
-
}): Promise<string>;
|
|
129
|
-
isTokenExpired(expirationTime: number | string | null | undefined): boolean;
|
|
130
|
-
destroy(): void;
|
|
131
|
-
static appendTokenParams(urlString: string, token: string | null, expires: number | string | null, tokenPath: string | null): string;
|
|
132
|
-
static appendAkamaiTokenParams(urlString: string, hdnea: string): string;
|
|
133
|
-
static appendDefaultTokenParams(urlString: string, tokenResponse: {
|
|
134
|
-
responseParameters?: CloudflareResponseParameters | ResponseParameters;
|
|
135
|
-
}): string;
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=cdn-token-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cdn-token-manager.d.ts","sourceRoot":"","sources":["../../../../src/engines/cdn-token-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DashEngine — DASH playback engine.
|
|
3
|
-
*
|
|
4
|
-
* Ported from component/engines/dash.js
|
|
5
|
-
*
|
|
6
|
-
* Extends BaseEngine to bridge dash.js MediaPlayer events to PlayerState.
|
|
7
|
-
* Uses CDN loader, CDNTokenManager, StallWatchdog, and DASH retry settings.
|
|
8
|
-
*
|
|
9
|
-
* CRITICAL: driver instance is a private class field — NEVER stored in PlayerState.
|
|
10
|
-
*/
|
|
11
|
-
import { BaseEngine } from './base-engine';
|
|
12
|
-
import type { PlayerConfig } from '../core/config';
|
|
13
|
-
import type { TypedEventBus } from '../core/event-bus';
|
|
14
|
-
interface BitrateInfo {
|
|
15
|
-
height: number;
|
|
16
|
-
width: number;
|
|
17
|
-
bitrate: number;
|
|
18
|
-
qualityIndex: number;
|
|
19
|
-
}
|
|
20
|
-
interface MediaTrack {
|
|
21
|
-
id?: string | number;
|
|
22
|
-
index?: number;
|
|
23
|
-
lang?: string;
|
|
24
|
-
[key: string]: unknown;
|
|
25
|
-
}
|
|
26
|
-
interface DashPlayerInstance {
|
|
27
|
-
initialize: (element: HTMLVideoElement, src: string, autoplay?: boolean) => void;
|
|
28
|
-
on: (event: string, handler: (data?: unknown) => void) => void;
|
|
29
|
-
off: (event: string, handler: (data?: unknown) => void) => void;
|
|
30
|
-
getTracksFor: (type: string) => MediaTrack[];
|
|
31
|
-
getBitrateInfoListFor: (type: string) => BitrateInfo[];
|
|
32
|
-
getQualityFor: (type: string) => number;
|
|
33
|
-
setQualityFor: (type: string, index: number) => void;
|
|
34
|
-
setCurrentTrack: (track: MediaTrack) => void;
|
|
35
|
-
getCurrentLiveLatency: () => number;
|
|
36
|
-
time: () => number;
|
|
37
|
-
duration: () => number;
|
|
38
|
-
updateSettings: (settings: Record<string, unknown>) => void;
|
|
39
|
-
addABRCustomRule: (ruleType: string, ruleName: string, rule: unknown) => void;
|
|
40
|
-
refreshManifest: () => void;
|
|
41
|
-
reset: () => void;
|
|
42
|
-
destroy: () => void;
|
|
43
|
-
seek: (time: number) => void;
|
|
44
|
-
[key: string]: unknown;
|
|
45
|
-
}
|
|
46
|
-
interface DashPlayerConstructor {
|
|
47
|
-
(): {
|
|
48
|
-
create: () => DashPlayerInstance;
|
|
49
|
-
};
|
|
50
|
-
events: Record<string, string>;
|
|
51
|
-
}
|
|
52
|
-
export interface DashjsType {
|
|
53
|
-
MediaPlayer: DashPlayerConstructor;
|
|
54
|
-
FactoryMaker: {
|
|
55
|
-
getClassFactoryByName: (name: string) => unknown;
|
|
56
|
-
getSingletonFactoryByName: (name: string) => unknown;
|
|
57
|
-
getClassFactory: (fn: unknown) => unknown;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export declare class DashEngine extends BaseEngine {
|
|
61
|
-
private driver;
|
|
62
|
-
private dvrErrorHandler;
|
|
63
|
-
getDriver(): unknown | null;
|
|
64
|
-
setConfig(config: PlayerConfig): void;
|
|
65
|
-
setBus(bus: TypedEventBus): void;
|
|
66
|
-
setVideo(video: HTMLVideoElement): void;
|
|
67
|
-
protected onAttach(): Promise<void>;
|
|
68
|
-
protected onDetach(): void;
|
|
69
|
-
protected recoverFromStall(attempt: number): void;
|
|
70
|
-
setQuality(index: number): void;
|
|
71
|
-
setAudioTrack(index: number): void;
|
|
72
|
-
setSubtitle(index: number): void;
|
|
73
|
-
setPlaybackRate(rate: number): void;
|
|
74
|
-
seekToLive(): void;
|
|
75
|
-
private init;
|
|
76
|
-
private registerDriverEvents;
|
|
77
|
-
}
|
|
78
|
-
export {};
|
|
79
|
-
//# sourceMappingURL=dash.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash.d.ts","sourceRoot":"","sources":["../../../../src/engines/dash.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAOtD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,UAAU,UAAU;IAClB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAChF,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAA;IAC9D,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAA;IAC/D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,EAAE,CAAA;IAC5C,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,EAAE,CAAA;IACtD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpD,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAC5C,qBAAqB,EAAE,MAAM,MAAM,CAAA;IACnC,IAAI,EAAE,MAAM,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,MAAM,CAAA;IACtB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC3D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7E,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,UAAU,qBAAqB;IAC7B,IAAI;QAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;KAAE,CAAA;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,qBAAqB,CAAA;IAClC,YAAY,EAAE;QACZ,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;QAChD,yBAAyB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;QACpD,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAA;KAC1C,CAAA;CACF;AAMD,qBAAa,UAAW,SAAQ,UAAU;IAExC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,eAAe,CAAwD;IAE/E,SAAS,IAAI,OAAO,GAAG,IAAI;IAK3B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAIhC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;cAQvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAczC,SAAS,CAAC,QAAQ,IAAI,IAAI;IAsB1B,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgBjD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,UAAU,IAAI,IAAI;YAYJ,IAAI;IA0GlB,OAAO,CAAC,oBAAoB;CA4D7B"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DrmConfigurator - Builds HLS DRM configuration objects.
|
|
3
|
-
*
|
|
4
|
-
* Isolates DRM complexity from engine initialization code.
|
|
5
|
-
* Ported from component/engines/hls.js init method (lines ~237-268).
|
|
6
|
-
*
|
|
7
|
-
* The licenseXhrSetup hook:
|
|
8
|
-
* 1. Calls tokenManager.extraParamsCallback() for auth token (if configured)
|
|
9
|
-
* 2. Sets Authorization: Bearer <accessToken> on the XHR request
|
|
10
|
-
* 3. Appends drm_custom_data from tokenManager.lastTokenResponse.extras to URL
|
|
11
|
-
*
|
|
12
|
-
* CRITICAL (from MEMORY.md): The licenseXhrSetup hook captures tokenManager
|
|
13
|
-
* via closure reference. The tokenManager is NEVER stored in PlayerState.
|
|
14
|
-
* DrmConfigurator holds a direct class-property reference.
|
|
15
|
-
*/
|
|
16
|
-
import type { EngineSettings } from '../core/config';
|
|
17
|
-
/**
|
|
18
|
-
* Interface for the CDN token manager used in DRM license requests.
|
|
19
|
-
* This mirrors the subset of CDNTokenManager methods used by DrmConfigurator.
|
|
20
|
-
* The full CDNTokenManager class will be ported in a later plan.
|
|
21
|
-
*/
|
|
22
|
-
export interface CDNTokenManagerInterface {
|
|
23
|
-
extraParamsCallback: ((status?: number) => Promise<Record<string, unknown>>) | null;
|
|
24
|
-
lastTokenResponse: {
|
|
25
|
-
extras?: {
|
|
26
|
-
drm_custom_data?: string;
|
|
27
|
-
};
|
|
28
|
-
[key: string]: unknown;
|
|
29
|
-
} | null;
|
|
30
|
-
fetchToken: (options: {
|
|
31
|
-
src: string;
|
|
32
|
-
}) => Promise<unknown>;
|
|
33
|
-
isTokenExpired: (expirationTime?: unknown) => boolean;
|
|
34
|
-
}
|
|
35
|
-
export interface DrmConfig {
|
|
36
|
-
emeEnabled?: boolean;
|
|
37
|
-
drmSystems?: Record<string, {
|
|
38
|
-
serverURL?: string;
|
|
39
|
-
[key: string]: unknown;
|
|
40
|
-
}>;
|
|
41
|
-
licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => Promise<void>;
|
|
42
|
-
}
|
|
43
|
-
export declare class DrmConfigurator {
|
|
44
|
-
private readonly tokenManager;
|
|
45
|
-
constructor(tokenManager: CDNTokenManagerInterface | null);
|
|
46
|
-
/**
|
|
47
|
-
* Build the DRM-related fields for the HLS.js constructor config.
|
|
48
|
-
*
|
|
49
|
-
* Returns an empty object when emeEnabled is not set (no DRM).
|
|
50
|
-
* Returns emeEnabled, drmSystems, and licenseXhrSetup when DRM is configured.
|
|
51
|
-
*/
|
|
52
|
-
buildHlsConfig(engineSettings: EngineSettings): DrmConfig;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=drm.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drm.d.ts","sourceRoot":"","sources":["../../../../src/engines/drm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACnF,iBAAiB,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3F,UAAU,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,cAAc,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CACtD;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAA;IAC3E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtE;AAoBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;gBAElD,YAAY,EAAE,wBAAwB,GAAG,IAAI;IAIzD;;;;;OAKG;IACH,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS;CAqC1D"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workaround for hls.js bug: audio-stream-controller deadlocks when
|
|
3
|
-
* the audio playlist has more #EXT-X-DISCONTINUITY tags than video.
|
|
4
|
-
* Two symptoms:
|
|
5
|
-
* 1. WAITING_TRACK deadlock: onAudioTrackLoaded bails when
|
|
6
|
-
* audio endCC > video endCC, caching data forever.
|
|
7
|
-
* 2. WAITING_INIT_PTS loop: audio fragments have CC values that
|
|
8
|
-
* the video never produces initPTS for (e.g., audio CC=4,
|
|
9
|
-
* video only has CC up to 2).
|
|
10
|
-
* Fix: remap audio fragment CC values and endCC to the video's
|
|
11
|
-
* CC range so both checks pass. The actual time alignment uses
|
|
12
|
-
* PDT (EXT-X-PROGRAM-DATE-TIME) as fallback.
|
|
13
|
-
* See https://github.com/video-dev/hls.js/issues/1484
|
|
14
|
-
*
|
|
15
|
-
* IMPORTANT: Must be called BEFORE driver.attachMedia() / driver.loadSource()
|
|
16
|
-
* (Pitfall 4: trigger is set up during construction, so patching after
|
|
17
|
-
* media attach may miss early events).
|
|
18
|
-
*/
|
|
19
|
-
interface HlsFragment {
|
|
20
|
-
cc: number;
|
|
21
|
-
}
|
|
22
|
-
interface HlsFragmentHint {
|
|
23
|
-
cc: number;
|
|
24
|
-
}
|
|
25
|
-
interface HlsLevelDetails {
|
|
26
|
-
endCC: number;
|
|
27
|
-
fragments?: HlsFragment[];
|
|
28
|
-
fragmentHint?: HlsFragmentHint;
|
|
29
|
-
}
|
|
30
|
-
interface HlsLevel {
|
|
31
|
-
details: HlsLevelDetails;
|
|
32
|
-
}
|
|
33
|
-
interface HlsLike {
|
|
34
|
-
trigger: (event: string, eventObject?: unknown) => unknown;
|
|
35
|
-
currentLevel: number;
|
|
36
|
-
levels?: HlsLevel[];
|
|
37
|
-
}
|
|
38
|
-
interface HlsEvents {
|
|
39
|
-
AUDIO_TRACK_LOADED: string;
|
|
40
|
-
}
|
|
41
|
-
export declare function applyDiscontinuityWorkaround(driver: HlsLike, hlsEvents: HlsEvents): void;
|
|
42
|
-
export {};
|
|
43
|
-
//# sourceMappingURL=hls-discontinuity-patch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hls-discontinuity-patch.d.ts","sourceRoot":"","sources":["../../../../src/engines/hls-discontinuity-patch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,WAAW,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,eAAe,CAAA;CACzB;AAED,UAAU,OAAO;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;IAC1D,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;CACpB;AAED,UAAU,SAAS;IACjB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CA2BxF"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HlsEngine — HLS playback engine.
|
|
3
|
-
*
|
|
4
|
-
* Ported from component/engines/hls.js
|
|
5
|
-
*
|
|
6
|
-
* Extends BaseEngine to bridge hls.js driver events to PlayerState.
|
|
7
|
-
* Uses CDN loader, CDNTokenManager, DrmConfigurator, StallWatchdog,
|
|
8
|
-
* retry handler, and discontinuity workaround.
|
|
9
|
-
*
|
|
10
|
-
* CRITICAL: driver instance is a private class field — NEVER stored in PlayerState.
|
|
11
|
-
* CRITICAL: Call applyDiscontinuityWorkaround BEFORE driver.attachMedia/loadSource (Pitfall 4).
|
|
12
|
-
* CRITICAL: Never call driver.startLoad() from video 'play' event handler (Pitfall 3).
|
|
13
|
-
*/
|
|
14
|
-
import { BaseEngine } from './base-engine';
|
|
15
|
-
import { CDNTokenManager } from './cdn-token-manager';
|
|
16
|
-
export declare class HlsEngine extends BaseEngine {
|
|
17
|
-
private driver;
|
|
18
|
-
private tokenManager;
|
|
19
|
-
private autoQuality;
|
|
20
|
-
private eventState;
|
|
21
|
-
getDriver(): unknown | null;
|
|
22
|
-
/**
|
|
23
|
-
* Returns the CDN token manager used by this engine.
|
|
24
|
-
* Allows the snapshot handler to share the same manager (avoids duplicate token requests).
|
|
25
|
-
* Returns null when no token URL is configured or before init().
|
|
26
|
-
*/
|
|
27
|
-
getTokenManager(): CDNTokenManager | null;
|
|
28
|
-
protected onAttach(): Promise<void>;
|
|
29
|
-
protected onDetach(): void;
|
|
30
|
-
protected recoverFromStall(attempt: number): void;
|
|
31
|
-
setQuality(index: number): void;
|
|
32
|
-
setAudioTrack(index: number): void;
|
|
33
|
-
setSubtitle(index: number): void;
|
|
34
|
-
setPlaybackRate(rate: number): void;
|
|
35
|
-
private liveSyncDisabled;
|
|
36
|
-
seek(time: number): void;
|
|
37
|
-
seekToLive(): void;
|
|
38
|
-
/**
|
|
39
|
-
* Check whether this engine was detached during an async gap.
|
|
40
|
-
* Used after every await in init() to prevent zombie drivers.
|
|
41
|
-
*/
|
|
42
|
-
private get detached();
|
|
43
|
-
private init;
|
|
44
|
-
private registerDriverEvents;
|
|
45
|
-
private _onManifestLoaded;
|
|
46
|
-
private _onLevelLoaded;
|
|
47
|
-
private _onLevelSwitched;
|
|
48
|
-
private _onAudioTracksUpdated;
|
|
49
|
-
private _onAudioTrackSwitched;
|
|
50
|
-
private _onSubtitleTracksUpdated;
|
|
51
|
-
private _onSubtitleTrackSwitch;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=hls.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../../../src/engines/hls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAwJrD,qBAAa,SAAU,SAAQ,UAAU;IAEvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAAO;IAE1B,OAAO,CAAC,UAAU,CAA2B;IAE7C,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;;;OAIG;IACH,eAAe,IAAI,eAAe,GAAG,IAAI;cAQzB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezC,SAAS,CAAC,QAAQ,IAAI,IAAI;IAkB1B,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgBjD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,CAAC,gBAAgB,CAAQ;IAEvB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAajC,UAAU,IAAI,IAAI;IAWlB;;;OAGG;IACH,OAAO,KAAK,QAAQ,GAEnB;YAEa,IAAI;IA8QlB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,sBAAsB;CAM/B"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Engine Layer Barrel Export
|
|
3
|
-
*
|
|
4
|
-
* Public API for all engine modules.
|
|
5
|
-
* Import from 'eb-player/engines' or from src/engines/index.ts.
|
|
6
|
-
*
|
|
7
|
-
* Tree-shaking note: engines are separate from src/core/index.ts to keep
|
|
8
|
-
* streaming library integrations (hls.js, dash.js) out of the core bundle.
|
|
9
|
-
*/
|
|
10
|
-
export { BaseEngine } from './base-engine';
|
|
11
|
-
export { HlsEngine } from './hls';
|
|
12
|
-
export { DashEngine } from './dash';
|
|
13
|
-
export { loadScript } from './cdn-loader';
|
|
14
|
-
export { CDNTokenManager } from './cdn-token-manager';
|
|
15
|
-
export { StallWatchdog } from './stall-watchdog';
|
|
16
|
-
export { DrmConfigurator } from './drm';
|
|
17
|
-
export { handleHlsRetry } from './retry/hls';
|
|
18
|
-
export { applyDashRetrySettings } from './retry/dash';
|
|
19
|
-
export { applyDiscontinuityWorkaround } from './hls-discontinuity-patch';
|
|
20
|
-
export { createPosterHandler } from './poster/hls';
|
|
21
|
-
export { createIosHandler } from './ios/hls';
|
|
22
|
-
export { createHlsAbrController } from './abr/hls';
|
|
23
|
-
export { createDashAbrRule } from './abr/dash';
|
|
24
|
-
export { HlsSnapshotHandler } from './snapshot/hls';
|
|
25
|
-
export { DashSnapshotHandler } from './snapshot/dash';
|
|
26
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engines/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA"}
|