@bitmovin/player-web-x 10.2.0-beta.13 → 10.2.0-beta.14

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.
Files changed (193) hide show
  1. package/bundles/playerx-bitmovin-v8-core.js +2 -2
  2. package/bundles/playerx-bitmovin-v8.js +2 -2
  3. package/bundles/playerx-core.js +2 -2
  4. package/bundles/playerx-dash.js +2 -2
  5. package/bundles/playerx-hls-ts-audio.js +2 -2
  6. package/bundles/playerx-hls.js +2 -2
  7. package/bundles/playerx-playback.js +2 -2
  8. package/bundles/playerx-tv.js +2 -2
  9. package/package.json +1 -1
  10. package/packages/playerx-adaptation.package.js +2 -2
  11. package/packages/playerx-advertising-api.package.js +2 -2
  12. package/packages/playerx-advertising-base.package.js +2 -2
  13. package/packages/playerx-advertising-bitmovin.package.js +2 -2
  14. package/packages/playerx-analytics.package.js +1 -1
  15. package/packages/playerx-bitmovin-advertising-bundle.package.js +2 -2
  16. package/packages/playerx-bitmovin-source-api.package.js +2 -2
  17. package/packages/playerx-bitmovin-ui.package.js +2 -2
  18. package/packages/playerx-bitmovin-v8-core.package.js +2 -2
  19. package/packages/playerx-bitmovin-v8-static-api.package.js +2 -2
  20. package/packages/playerx-bitmovin-video-element-utils.package.js +2 -2
  21. package/packages/playerx-capabilities.package.js +2 -2
  22. package/packages/playerx-container-mp4.package.js +2 -2
  23. package/packages/playerx-container-ts.package.js +2 -2
  24. package/packages/playerx-core.package.js +2 -2
  25. package/packages/playerx-dash-manifest-technology.package.js +2 -2
  26. package/packages/playerx-dash-manifest.package.js +2 -2
  27. package/packages/playerx-dash-parsing.package.js +2 -2
  28. package/packages/playerx-dash-translation.package.js +2 -2
  29. package/packages/playerx-dash.package.js +2 -2
  30. package/packages/playerx-data.package.js +2 -2
  31. package/packages/playerx-event-bus.package.js +1 -1
  32. package/packages/playerx-hls-manifest-technology.package.js +2 -2
  33. package/packages/playerx-hls-manifest.package.js +2 -2
  34. package/packages/playerx-hls-parsing.package.js +2 -2
  35. package/packages/playerx-hls-translation.package.js +2 -2
  36. package/packages/playerx-hls.package.js +2 -2
  37. package/packages/playerx-media-state.package.d.ts +1 -0
  38. package/packages/playerx-media-state.package.js +10 -0
  39. package/packages/playerx-mse-playback.package.js +2 -2
  40. package/packages/playerx-mse-presentation.package.js +2 -2
  41. package/packages/playerx-native-playback.package.js +2 -2
  42. package/packages/playerx-native-presentation.package.js +2 -2
  43. package/packages/playerx-network.package.js +2 -2
  44. package/packages/playerx-no-adaptation.package.js +2 -2
  45. package/packages/playerx-playback-api.package.js +2 -2
  46. package/packages/playerx-playback-technology.package.js +2 -2
  47. package/packages/playerx-playback.package.js +2 -2
  48. package/packages/playerx-player-api.package.js +2 -2
  49. package/packages/playerx-segment-processing.package.js +2 -2
  50. package/packages/playerx-source.package.js +2 -2
  51. package/packages/playerx-sources-api.package.js +2 -2
  52. package/packages/playerx-stream-data-structure.package.js +2 -2
  53. package/packages/playerx-streaming.package.js +1 -1
  54. package/packages/playerx-subtitle-api.package.js +2 -2
  55. package/packages/playerx-subtitle-base.package.js +2 -2
  56. package/packages/playerx-subtitle-format-detection.package.js +1 -1
  57. package/packages/playerx-subtitle-native-renderer.package.js +2 -2
  58. package/packages/playerx-subtitles.package.js +2 -2
  59. package/packages/playerx-trick-play.package.js +2 -2
  60. package/packages/playerx-ts-transmuxer.package.js +2 -2
  61. package/packages/playerx-tv.package.js +1 -1
  62. package/packages/playerx-ui.package.js +2 -2
  63. package/packages/playerx-video-element-controller.package.d.ts +1 -0
  64. package/packages/playerx-video-element-controller.package.js +10 -0
  65. package/packages/playerx-view-mode.package.js +2 -2
  66. package/packages/playerx-web-vtt.package.js +2 -2
  67. package/playerx-framework-utils.js +1 -1
  68. package/types/Types.d.ts +3 -0
  69. package/types/bundles/BitmovinV8.bundle.d.ts +1 -1
  70. package/types/bundles/Dash.bundle.d.ts +1 -1
  71. package/types/bundles/Hls.bundle.d.ts +1 -1
  72. package/types/bundles/HlsTsAudio.bundle.d.ts +1 -1
  73. package/types/bundles/Playback.bundle.d.ts +1 -1
  74. package/types/bundles/Tv.bundle.d.ts +1 -1
  75. package/types/packages/adaptation/AdaptationAlgorithm.d.ts +4 -0
  76. package/types/packages/adaptation/StartupQuality.d.ts +5 -0
  77. package/types/packages/adaptation/Types.d.ts +7 -11
  78. package/types/packages/adaptation/WishDataAtom.d.ts +9 -2
  79. package/types/packages/advertising/BitmovinAdvertisingBundle.package.d.ts +1 -1
  80. package/types/packages/advertising/api/AdvertisingApi.package.d.ts +1 -1
  81. package/types/packages/advertising/api/AdvertisingEvents.d.ts +29 -5
  82. package/types/packages/advertising/api/Types.d.ts +24 -6
  83. package/types/packages/advertising/base/AdPosition.d.ts +1 -0
  84. package/types/packages/advertising/base/AdQuartile.d.ts +5 -0
  85. package/types/packages/advertising/base/AdSchedule.d.ts +2 -2
  86. package/types/packages/advertising/base/AdTagAtom.d.ts +1 -1
  87. package/types/packages/advertising/base/AdType.d.ts +4 -0
  88. package/types/packages/advertising/base/BaseAdAtom.d.ts +5 -3
  89. package/types/packages/advertising/base/{BaseAdBreakAtom.d.ts → BaseAdPodAtom.d.ts} +8 -6
  90. package/types/packages/advertising/base/BaseAdPodState.d.ts +7 -0
  91. package/types/packages/advertising/base/BaseAdState.d.ts +7 -0
  92. package/types/packages/advertising/base/Types.d.ts +13 -29
  93. package/types/packages/advertising/bitmovin/Types.d.ts +13 -10
  94. package/types/packages/capabilities/Types.d.ts +1 -1
  95. package/types/packages/container/container-mp4/ContainerMp4.package.d.ts +2 -0
  96. package/types/packages/container/container-ts/ContainerTs.package.d.ts +3 -1
  97. package/types/packages/container/ts-transmuxer/TsTransmuxer.package.d.ts +2 -0
  98. package/types/packages/core/Constants.d.ts +7 -0
  99. package/types/packages/core/Types.d.ts +3 -2
  100. package/types/packages/core/metrics/MetricsAtom.d.ts +1 -1
  101. package/types/packages/{adaptation → core/state}/RingBufferAtom.d.ts +2 -2
  102. package/types/packages/core/state/StateMachineAtom.d.ts +13 -12
  103. package/types/packages/core/state/state-effect/Types.d.ts +2 -2
  104. package/types/packages/core/technology/Types.d.ts +2 -2
  105. package/types/packages/data/Types.d.ts +7 -1
  106. package/types/packages/manifest/dash/parsing/Errors.d.ts +1 -1
  107. package/types/packages/manifest/dash/root/Types.d.ts +3 -1
  108. package/types/packages/manifest/dash/technology/Types.d.ts +2 -1
  109. package/types/packages/manifest/hls/parsing/Constants.d.ts +47 -0
  110. package/types/packages/manifest/hls/parsing/Errors.d.ts +1 -1
  111. package/types/packages/manifest/hls/parsing/Types.d.ts +5 -48
  112. package/types/packages/manifest/hls/root/Hls.package.d.ts +6 -1
  113. package/types/packages/manifest/hls/technology/Types.d.ts +2 -1
  114. package/types/packages/manifest/hls/translation/HlsTranslation.package.d.ts +5 -0
  115. package/types/packages/manifest/hls/translation/Types.d.ts +10 -11
  116. package/types/packages/manifest/hls/translation/segments/StreamHelpers.d.ts +14 -0
  117. package/types/packages/manifest/hls/translation/stream/TracksToSelectionGroups.d.ts +6 -0
  118. package/types/packages/manifest/hls/translation/stream/UnknownTrackToMediaTrackTranslator.d.ts +4 -0
  119. package/types/packages/media-state/MediaInfoAtoms.d.ts +18 -0
  120. package/types/packages/media-state/MediaState.d.ts +10 -0
  121. package/types/packages/media-state/MediaState.package.d.ts +22 -0
  122. package/types/packages/media-state/MediaStateAtom.d.ts +16 -0
  123. package/types/packages/media-state/MediaStateTransitionType.d.ts +11 -0
  124. package/types/packages/media-state/SeekRestrictionAtom.d.ts +2 -0
  125. package/types/packages/media-state/Types.d.ts +48 -0
  126. package/types/packages/media-state/controllers/video-element/Types.d.ts +32 -0
  127. package/types/packages/media-state/controllers/video-element/VideoElementController.package.d.ts +15 -0
  128. package/types/packages/network/HttpRequestMethod.d.ts +5 -0
  129. package/types/packages/network/HttpRequestType.d.ts +11 -0
  130. package/types/packages/network/HttpResponseType.d.ts +7 -0
  131. package/types/packages/network/NetworkAtom.d.ts +15 -0
  132. package/types/packages/network/NetworkTask.d.ts +8 -7
  133. package/types/packages/network/Types.d.ts +17 -26
  134. package/types/packages/playback/play-pause/Types.d.ts +0 -3
  135. package/types/packages/playback/volume/Types.d.ts +2 -4
  136. package/types/packages/playback-api/play-pause-api/Types.d.ts +4 -3
  137. package/types/packages/playback-api/playback-api-events/Types.d.ts +11 -8
  138. package/types/packages/playback-api/time-api/Types.d.ts +4 -5
  139. package/types/packages/playback-technology/PlaybackTechnologyEntryType.d.ts +4 -0
  140. package/types/packages/playback-technology/Types.d.ts +6 -6
  141. package/types/packages/player-api/PlayerApi.package.d.ts +2 -0
  142. package/types/packages/player-api/PlayerEvent.d.ts +3 -0
  143. package/types/packages/player-api/Types.d.ts +4 -4
  144. package/types/packages/presentation/mse/playback-technology/Types.d.ts +2 -1
  145. package/types/packages/presentation/mse/playback-technology/atoms/MsePresentationStateAtom.d.ts +1 -4
  146. package/types/packages/presentation/mse/presentation/MsePresentation.package.d.ts +4 -2
  147. package/types/packages/presentation/mse/presentation/Types.d.ts +6 -0
  148. package/types/packages/presentation/native/Types.d.ts +1 -1
  149. package/types/packages/presentation/native/playback-technology/Types.d.ts +2 -1
  150. package/types/packages/segment-processing/SegmentProcessing.package.d.ts +2 -1
  151. package/types/packages/segment-processing/SegmentProcessorType.d.ts +7 -0
  152. package/types/packages/segment-processing/Types.d.ts +10 -10
  153. package/types/packages/source/SourceReference.d.ts +1 -1
  154. package/types/packages/source/atoms/PlaybackConfigAtom.d.ts +2 -2
  155. package/types/packages/source/atoms/SourceConfigAtom.d.ts +2 -0
  156. package/types/packages/sources-api/SourcesApiEvent.d.ts +7 -0
  157. package/types/packages/sources-api/Types.d.ts +4 -8
  158. package/types/packages/stream-data-structure/Types.d.ts +1 -0
  159. package/types/packages/stream-data-structure/segment/Exports.d.ts +3 -3
  160. package/types/packages/stream-data-structure/segment/SegmentAtom.d.ts +11 -2
  161. package/types/packages/stream-data-structure/segment/SegmentDataAtom.d.ts +1 -7
  162. package/types/packages/stream-data-structure/segment/SegmentUtils.d.ts +3 -2
  163. package/types/packages/stream-data-structure/selection-group/SelectionGroupAtom.d.ts +1 -2
  164. package/types/packages/stream-data-structure/track/Exports.d.ts +6 -1
  165. package/types/packages/stream-data-structure/track/TrackAtom.d.ts +19 -4
  166. package/types/packages/stream-data-structure/track/TrackTypeGuards.d.ts +3 -1
  167. package/types/packages/stream-data-structure/track/TypeDetection.d.ts +25 -0
  168. package/types/packages/stream-data-structure/track/TypeDetectionTypeGuards.d.ts +4 -0
  169. package/types/packages/streaming/Streaming.package.d.ts +2 -2
  170. package/types/packages/streaming/Types.d.ts +3 -2
  171. package/types/packages/subtitles/subtitle-api/SubtitleEvent.d.ts +9 -0
  172. package/types/packages/subtitles/subtitle-api/Types.d.ts +3 -9
  173. package/types/packages/trick-play/TrickPlay.package.d.ts +2 -1
  174. package/types/packages/v8-compat/BitmovinUi.package.d.ts +4 -4
  175. package/types/packages/v8-compat/BitmovinV8Core.package.d.ts +16 -4
  176. package/types/packages/v8-compat/BitmovinV8StaticApi.package.d.ts +8 -5
  177. package/types/packages/v8-compat/apis/SourceApis.d.ts +5 -0
  178. package/types/packages/v8-compat/apis/SubtitleApi.d.ts +5 -0
  179. package/types/packages/v8-compat/enums/AdditionalPlayerExportNames.d.ts +9 -0
  180. package/types/packages/v8-compat/enums/PlayerExports.d.ts +0 -7
  181. package/types/packages/v8-compat/event-handling/EventDispatcher.d.ts +11 -0
  182. package/types/packages/v8-compat/source-api/BitmovinSourceApi.package.d.ts +10 -4
  183. package/types/packages/v8-compat/video-element/BitmovinVideoElementUtils.package.d.ts +4 -4
  184. package/types/packages/view-mode/Types.d.ts +4 -6
  185. package/types/packages/view-mode/ViewMode.d.ts +5 -0
  186. package/types/packages/view-mode/ViewMode.package.d.ts +2 -0
  187. package/types/packages/view-mode/ViewModeAtom.d.ts +1 -1
  188. package/types/packages/core/FrameworkError.d.ts +0 -4
  189. package/types/packages/core/network/NetworkAtom.d.ts +0 -21
  190. package/types/packages/playback/playback-state/Types.d.ts +0 -41
  191. package/types/packages/playback/video-element-state/SeekRestrictionAtom.d.ts +0 -2
  192. package/types/packages/playback/video-element-state/Types.d.ts +0 -32
  193. package/types/packages/playback/video-element-state/VideoElementStateAtom.d.ts +0 -58
@@ -1,4 +1,4 @@
1
- import type { ContainerFormat } from '../stream-data-structure/segment/SegmentDataAtom';
1
+ import type { ContainerFormat } from '../core/Constants';
2
2
  export interface PlatformCapabilities {
3
3
  managedMediaSourceSupported(): boolean;
4
4
  mediaSourceSupported(): boolean;
@@ -14,6 +14,7 @@
14
14
  */
15
15
  import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
16
16
  import type { EmptyObject } from '../../../Types';
17
+ import type { Constants } from '../../core/Constants';
17
18
  import type { CoreEffects, CoreStateAtoms } from '../../core/Types';
18
19
  import { CoreExportNames } from '../../core/Types';
19
20
  import type SegmentProcessorErrors from '../../segment-processing/Errors';
@@ -27,6 +28,7 @@ type Dependencies = {
27
28
  [SourceExportNames.SourceState]: SourceStateAtom;
28
29
  [CoreExportNames.CoreEffects]: CoreEffects;
29
30
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
31
+ [CoreExportNames.Constants]: Constants;
30
32
  [SegmentProcessingExportNames.SegmentProcessorType]: typeof SegmentProcessorType;
31
33
  [SegmentProcessingExportNames.SegmentProcessingComponent]: SegmentProcessingComponent;
32
34
  [SegmentProcessingExportNames.SegmentProcessorErrors]: typeof SegmentProcessorErrors;
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
13
13
  import type { EmptyObject } from '../../../Types';
14
+ import type { Constants } from '../../core/Constants';
14
15
  import type { CoreEffects, CoreStateAtoms } from '../../core/Types';
15
16
  import { CoreExportNames } from '../../core/Types';
16
17
  import type SegmentProcessorErrors from '../../segment-processing/Errors';
@@ -18,12 +19,13 @@ import type { SegmentProcessingComponent, SegmentProcessorType } from '../../seg
18
19
  import { SegmentProcessingExportNames } from '../../segment-processing/Types';
19
20
  import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
20
21
  import { SourceExportNames } from '../../source/Types';
21
- import type { StreamDataStructureSegments } from '../../stream-data-structure/segment/Exports';
22
+ import { StreamDataStructureSegments } from '../../stream-data-structure/segment/Exports';
22
23
  import type { ContextWithState } from '../../Types';
23
24
  type Dependencies = {
24
25
  [SourceExportNames.SourceState]: SourceStateAtom;
25
26
  [CoreExportNames.CoreEffects]: CoreEffects;
26
27
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
28
+ [CoreExportNames.Constants]: Constants;
27
29
  [SegmentProcessingExportNames.SegmentProcessorType]: typeof SegmentProcessorType;
28
30
  [SegmentProcessingExportNames.SegmentProcessingComponent]: SegmentProcessingComponent;
29
31
  [SegmentProcessingExportNames.SegmentProcessorErrors]: typeof SegmentProcessorErrors;
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
14
14
  import type { EmptyObject } from '../../../Types';
15
+ import type { Constants } from '../../core/Constants';
15
16
  import type { CoreEffects, CoreStateAtoms } from '../../core/Types';
16
17
  import { CoreExportNames } from '../../core/Types';
17
18
  import type { CoreUtils } from '../../core/utils/Types';
@@ -27,6 +28,7 @@ type Dependencies = {
27
28
  [CoreExportNames.Utils]: CoreUtils;
28
29
  [CoreExportNames.CoreEffects]: CoreEffects;
29
30
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
31
+ [CoreExportNames.Constants]: Constants;
30
32
  [SegmentProcessingExportNames.SegmentProcessorType]: typeof SegmentProcessorType;
31
33
  [SegmentProcessingExportNames.SegmentProcessingComponent]: SegmentProcessingComponent;
32
34
  [SegmentProcessingExportNames.SegmentProcessorErrors]: typeof SegmentProcessorErrors;
@@ -39,6 +39,12 @@ export declare enum LoadControl {
39
39
  Metadata = 1,
40
40
  Data = 2
41
41
  }
42
+ export declare enum ContainerFormat {
43
+ MP4 = "mp4",
44
+ TS = "mp2t",
45
+ WebM = "webm",
46
+ Unknown = "unknown"
47
+ }
42
48
  export type Constants = {
43
49
  Codec: typeof Codec;
44
50
  MediaType: typeof MediaType;
@@ -49,4 +55,5 @@ export type Constants = {
49
55
  LoadControl: typeof LoadControl;
50
56
  Version: string;
51
57
  SubtitleFormatType: typeof SubtitleFormatType;
58
+ ContainerFormat: typeof ContainerFormat;
52
59
  };
@@ -9,8 +9,9 @@ import type { createDataStreamAtom, DataStreamClearedError, DataStreamClosedErro
9
9
  import type { createMapStateAtom } from './state/MapStateAtom';
10
10
  import type { createPrimitiveAtom } from './state/PrimitiveAtom';
11
11
  import type { createQueueAtom, QueueItemRemovedError } from './state/QueueAtom';
12
+ import type { createRingBufferAtom } from './state/RingBufferAtom';
12
13
  import type { StateEffectFactory } from './state/state-effect/StateEffectFactory';
13
- import type { createStateMachineAtom, flushPendingUpdates, logTransitions } from './state/StateMachineAtom';
14
+ import type { createStateMachineAtom, flushPendingUpdates } from './state/StateMachineAtom';
14
15
  import type { CreateStoreEffectFactory } from './state/StoreEffectFactory';
15
16
  import type { createStreamSectionAtom } from './state/stream-timeline/StreamSectionAtom';
16
17
  import type { createStreamSequenceMapAtom } from './state/stream-timeline/StreamSequenceMapAtom';
@@ -61,6 +62,7 @@ export type CoreStateAtoms = {
61
62
  createPrimitiveAtom: typeof createPrimitiveAtom;
62
63
  createTimelineAtom: typeof createTimelineAtom;
63
64
  createTimelineTrackerAtom: typeof createTimelineTrackerAtom;
65
+ createRingBufferAtom: typeof createRingBufferAtom;
64
66
  Queue: {
65
67
  createQueueAtom: typeof createQueueAtom;
66
68
  QueueItemRemovedError: typeof QueueItemRemovedError;
@@ -89,6 +91,5 @@ export type CoreStateAtoms = {
89
91
  StateMachine: {
90
92
  createStateMachineAtom: typeof createStateMachineAtom;
91
93
  flushPendingUpdates: typeof flushPendingUpdates;
92
- logTransitions: typeof logTransitions;
93
94
  };
94
95
  };
@@ -1,7 +1,7 @@
1
1
  import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
2
2
  import type { EmptyObject } from '../../../Types';
3
- import type { RingBufferAtom } from '../../adaptation/RingBufferAtom';
4
3
  import type { ContextWithState } from '../../Types';
4
+ import type { RingBufferAtom } from '../state/RingBufferAtom';
5
5
  import type { CoreExportNames, CoreStateAtoms } from '../Types';
6
6
  import type { NetworkSampleAtom } from './network/NetworkSampleAtom';
7
7
  export interface Metrics {
@@ -1,4 +1,4 @@
1
- import type { ContextWithState } from '../Types';
1
+ import type { ContextWithState } from '../../Types';
2
2
  export interface RingBuffer<T> {
3
3
  buffer: T[];
4
4
  capacity: number;
@@ -10,7 +10,7 @@ export declare function getDefaultRingBuffer<T>(capacity?: number, input?: T[]):
10
10
  export declare function getTail<T>(data: RingBufferAtom<T>): T | undefined;
11
11
  export declare function getHead<T>(data: RingBufferAtom<T>): T | undefined;
12
12
  export type RingBufferAtom<T> = ReturnType<typeof createRingBufferAtom<T>>;
13
- export declare const createRingBufferAtom: <ElementType>(context: ContextWithState, capacity?: number, defaultData?: ElementType[] | undefined) => import("../core/state/Types").StateAtom<RingBuffer<ElementType>, {
13
+ export declare const createRingBufferAtom: <ElementType>(context: ContextWithState, capacity?: number, defaultData?: ElementType[] | undefined) => import("./Types").StateAtom<RingBuffer<ElementType>, {
14
14
  add: (data: RingBuffer<ElementType>, element: ElementType) => boolean;
15
15
  clear: (data: RingBuffer<ElementType>) => boolean;
16
16
  }>;
@@ -9,21 +9,22 @@ export interface StateMachine<S> {
9
9
  current: S;
10
10
  previous: S;
11
11
  }
12
- export type StateMachineAtom<S extends string, _ extends ContextWithState, D = void> = StateAtom<StateMachine<S>, {
12
+ export type BaseStateMachineContext = ContextHaving<{
13
+ [CoreExportNames.Utils]: CoreUtils;
14
+ }, EmptyObject, ContextWithState>;
15
+ export type StateMachineAtom<S extends string, _ extends BaseStateMachineContext, D = void> = StateAtom<StateMachine<S>, {
13
16
  updateState: (state: StateMachine<S>, data: D) => boolean;
14
17
  }>;
15
- export type Transition<S extends string, C extends ContextWithState, D = void> = (context: C, data: D) => S;
16
- export type TransitionMap<S extends string, C extends ContextWithState, D = void> = {
18
+ export type Transition<S extends string, C extends BaseStateMachineContext, D = void> = (context: C, data: D) => S;
19
+ export type TransitionMap<S extends string, C extends BaseStateMachineContext, D = void> = {
17
20
  [key in S]: Transition<S, C, D>;
18
21
  };
19
- export type Handler<S extends string, C extends ContextWithState, D = void> = NamedTask<Task<C, StateMachineAtom<S, C, D>, void>>;
20
- export type HandlerMap<S extends string, C extends ContextWithState, D = void> = {
22
+ export type Handler<S extends string, C extends BaseStateMachineContext, D = void> = NamedTask<Task<C, StateMachineAtom<S, C, D>, void>>;
23
+ export type HandlerMap<S extends string, C extends BaseStateMachineContext, D = void> = {
21
24
  [key in S]?: Handler<S, C, D>;
22
25
  };
23
- export declare function createStateMachineAtom<S extends string, C extends ContextWithState, D = void>(context: C, initialState: S, transitions: TransitionMap<S, C, D>, handlers?: HandlerMap<S, C, D>): StateMachineAtom<S, C, D>;
24
- export declare function flushPendingUpdates(context: ContextWithState, stateMachine: StateMachineAtom<string, ContextWithState>): void;
25
- type ContextWithStateAndLogger = ContextHaving<{
26
- [CoreExportNames.Utils]: CoreUtils;
27
- }, EmptyObject, ContextWithState>;
28
- export declare function logTransitions<S extends string, C extends ContextWithState, D = void>(context: ContextWithStateAndLogger, stateMachine: StateMachineAtom<S, C, D>, name: string): void;
29
- export {};
26
+ export type StateMachineLoggingOptions = {
27
+ name: string;
28
+ };
29
+ export declare function createStateMachineAtom<S extends string, C extends BaseStateMachineContext, D = void>(context: C, initialState: S, transitions: TransitionMap<S, C, D>, handlers?: HandlerMap<S, C, D>, loggingOptions?: StateMachineLoggingOptions): StateMachineAtom<S, C, D>;
30
+ export declare function flushPendingUpdates(context: BaseStateMachineContext, stateMachine: StateMachineAtom<string, BaseStateMachineContext>): void;
@@ -1,8 +1,8 @@
1
1
  import type { ExecutionContext } from '../../../../../framework-types/execution-context/ExecutionContext';
2
2
  import type { AnyNamedTask, AnyParameterTask, AnyTask, NamedTask, TaskParam } from '../../../../../framework-types/task/Types';
3
3
  import type { EmptyObject } from '../../../../Types';
4
- import type { IsStateAtom } from '../Types';
4
+ import type { StateAtom } from '../Types';
5
5
  export type ParameterizedTask<P, S extends NamedTask<AnyTask>> = S extends NamedTask<AnyParameterTask<P>> ? S : NamedTask<AnyParameterTask<P>>;
6
- export type TaskParameter<Atom, Task extends ParameterizedTask<Atom, NamedTask<AnyTask>>> = IsStateAtom<TaskParam<Task>> extends true ? TaskParam<Task> : never;
6
+ export type TaskParameter<Atom, Task extends ParameterizedTask<Atom, NamedTask<AnyTask>>> = Extract<TaskParam<Task>, StateAtom>;
7
7
  export type ErrorCallback = (error: Error) => boolean;
8
8
  export type SubscriberTuple = [ExecutionContext<EmptyObject, EmptyObject>, AnyNamedTask, ErrorCallback];
@@ -11,9 +11,9 @@ export type Factory<Payload, Context extends AnyExecutionContext, TechnologyName
11
11
  resolve: NamedTask<Task<Context, Payload, void>>;
12
12
  add(technology: Technology<Payload, Context, TechnologyName>, abortSignal: AbortSignal): void;
13
13
  };
14
- export declare const TechnologyExport = "technology";
14
+ export declare const TechnologyExports = "technology";
15
15
  export type TechnologyExports = {
16
- [TechnologyExport]: {
16
+ [TechnologyExports]: {
17
17
  create: <Payload, Context extends AnyExecutionContext, TechnologyName extends string>(context: ContextWithState, prioritize: Prioritize<Payload, Context, TechnologyName>) => Factory<Payload, Context, TechnologyName>;
18
18
  };
19
19
  };
@@ -10,8 +10,10 @@ import type { StateEffect } from '../core/state/state-effect/StateEffectFactory'
10
10
  import type { StreamTimelineAtom } from '../core/state/stream-timeline/StreamTimelineMapAtom';
11
11
  import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../core/Types';
12
12
  import type { CoreUtils } from '../core/utils/Types';
13
+ import type { createNetworkAtom } from '../network/NetworkAtom';
14
+ import type { NetworkMessageType } from '../network/NetworkMessageTypes';
13
15
  import type { NetworkTask } from '../network/NetworkTask';
14
- import type { NetworkExportNames } from '../network/Types';
16
+ import type { HttpRequestMethod, HttpResponseType, NetworkExportNames } from '../network/Types';
15
17
  import type SegmentProcessorErrors from '../segment-processing/Errors';
16
18
  import type { SegmentProcessingComponent, SegmentProcessingExportNames } from '../segment-processing/Types';
17
19
  import type { SourceStateAtom } from '../source/atoms/SourceStateAtom';
@@ -30,6 +32,10 @@ export type DataDependencies = {
30
32
  [CoreExportNames.Utils]: CoreUtils;
31
33
  [AdaptationExportNames.Metrics]: MetricsAtom;
32
34
  [NetworkExportNames.NetworkTask]: typeof NetworkTask;
35
+ [NetworkExportNames.NetworkMessageType]: typeof NetworkMessageType;
36
+ [NetworkExportNames.NetworkAtom]: typeof createNetworkAtom;
37
+ [NetworkExportNames.HttpRequestMethod]: typeof HttpRequestMethod;
38
+ [NetworkExportNames.HttpResponseType]: typeof HttpResponseType;
33
39
  [SegmentProcessingExportNames.SegmentProcessorErrors]: typeof SegmentProcessorErrors;
34
40
  [SegmentProcessingExportNames.SegmentProcessingComponent]: SegmentProcessingComponent;
35
41
  [AdaptationExportNames.Select]: (tracks: readonly MediaTrackAtom[]) => MediaTrackAtom;
@@ -1,4 +1,4 @@
1
- import { FrameworkError } from '../../../core/FrameworkError';
1
+ import { FrameworkError } from '../../../../../framework-types/error/FrameworkError';
2
2
  export declare class DashParsingError extends FrameworkError {
3
3
  constructor(message: string);
4
4
  }
@@ -6,7 +6,7 @@ import type { MetricsAtom } from '../../../core/metrics/MetricsAtom';
6
6
  import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
7
7
  import type { CoreUtils } from '../../../core/utils/Types';
8
8
  import type { NetworkTask } from '../../../network/NetworkTask';
9
- import type { NetworkExportNames } from '../../../network/Types';
9
+ import type { HttpRequestMethod, HttpResponseType, NetworkExportNames } from '../../../network/Types';
10
10
  import type { SourceStateAtom } from '../../../source/atoms/SourceStateAtom';
11
11
  import type { SourceExportNames } from '../../../source/Types';
12
12
  import type { StreamDataStructurePackageExports } from '../../../stream-data-structure/Types';
@@ -28,6 +28,8 @@ export type DashDependencies = {
28
28
  [SourceExportNames.SourceState]: SourceStateAtom;
29
29
  [AdaptationExportNames.Metrics]: MetricsAtom;
30
30
  [NetworkExportNames.NetworkTask]: typeof NetworkTask;
31
+ [NetworkExportNames.HttpRequestMethod]: typeof HttpRequestMethod;
32
+ [NetworkExportNames.HttpResponseType]: typeof HttpResponseType;
31
33
  [DashParsingExportNames.ParsingTask]: typeof DashParsingTask;
32
34
  [DashTranslationExportNames.DashTranslator]: typeof DashPlaylistTranslatorTask;
33
35
  } & StreamDataStructurePackageExports & StreamingState & DashTechState;
@@ -3,7 +3,7 @@ import type { ContextHaving } from '../../../../../framework-types/execution-con
3
3
  import type { Constants } from '../../../core/Constants';
4
4
  import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
5
5
  import type { CoreUtils } from '../../../core/utils/Types';
6
- import type { ManifestTechnologyEntry, PlaybackTechnologyComponent } from '../../../playback-technology/Types';
6
+ import type { ManifestTechnologyEntry, PlaybackTechnologyComponent, PlaybackTechnologyEntryType, PlaybackTechnologyExportNames } from '../../../playback-technology/Types';
7
7
  import type { Resource } from '../../../source/atoms/SourceConfigAtom';
8
8
  import type { StreamDataStructureStream } from '../../../stream-data-structure/stream/Exports';
9
9
  import type { createStreamingStateAtom, StreamingStateAtom } from '../../../streaming/atoms/StreamingStateAtom';
@@ -20,6 +20,7 @@ export interface DashTechStateData {
20
20
  export type DashManifestTechnologyExports = EmptyObject;
21
21
  export type DashManifestTechnologyDependencies = {
22
22
  [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
23
+ [PlaybackTechnologyExportNames.EntryType]: typeof PlaybackTechnologyEntryType;
23
24
  [CoreExportNames.Constants]: Constants;
24
25
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
25
26
  [CoreExportNames.CoreEffects]: CoreEffects;
@@ -0,0 +1,47 @@
1
+ export declare enum HlsEncryptionMethod {
2
+ NONE = "NONE",
3
+ AES_128 = "AES-128",
4
+ SAMPLE_AES = "SAMPLE-AES"
5
+ }
6
+ export declare enum MetadataType {
7
+ CUETAG = "CUETAG",
8
+ DATERANGE = "DATERANGE",
9
+ CUSTOM = "CUSTOM",
10
+ SCTE = "SCTE",
11
+ ID3 = "ID3",
12
+ EMSG = "EMSG"
13
+ }
14
+ export declare enum TagType {
15
+ M3u = "m3u",
16
+ AllowCache = "allow-cache",
17
+ ByteRange = "byterange",
18
+ EndList = "endlist",
19
+ Inf = "inf",
20
+ Key = "key",
21
+ MediaSequence = "media-sequence",
22
+ DiscontinuitySequence = "discontinuity-sequence",
23
+ PlaylistType = "playlist-type",
24
+ StreamInf = "stream-inf",
25
+ IframeStreamInf = "i-frame-stream-inf",
26
+ Media = "media",
27
+ Start = "start",
28
+ Discontinuity = "discontinuity",
29
+ DateTime = "date-time",
30
+ TargetDuration = "targetduration",
31
+ Map = "map",
32
+ IndependentSegments = "independent-segments",
33
+ SessionData = "session-data",
34
+ SessionKey = "session-key",
35
+ CueOut = "cue-out",
36
+ CueOutCont = "cue-out-cont",
37
+ CueIn = "cue-in",
38
+ Scte35 = "scte35",
39
+ DateRange = "daterange",
40
+ Version = "version",
41
+ Uri = "uri",
42
+ Unknown = "unknown"
43
+ }
44
+ export declare enum PlaylistType {
45
+ Vod = "VOD",
46
+ Event = "EVENT"
47
+ }
@@ -1,4 +1,4 @@
1
- import { FrameworkError } from '../../../core/FrameworkError';
1
+ import { FrameworkError } from '../../../../../framework-types/error/FrameworkError';
2
2
  export declare class HlsParsingError extends FrameworkError {
3
3
  constructor(message: string);
4
4
  }
@@ -1,5 +1,10 @@
1
1
  import type { ByteRange } from '../../../stream-data-structure/segment/SegmentAtom';
2
+ import type { MetadataType, PlaylistType, TagType } from './Constants';
2
3
  import type { HlsParsingError, MissingM3uTagError } from './Errors';
4
+ export type { HlsEncryptionMethod } from './Constants';
5
+ export type { MetadataType } from './Constants';
6
+ export type { TagType } from './Constants';
7
+ export type { PlaylistType } from './Constants';
3
8
  interface StartTagAttributes {
4
9
  timeOffset: number;
5
10
  precise: boolean;
@@ -20,11 +25,6 @@ export interface Scte35 {
20
25
  attributes?: Scte35TagAttributes;
21
26
  type: MetadataType.SCTE;
22
27
  }
23
- export declare enum HlsEncryptionMethod {
24
- NONE = "NONE",
25
- AES_128 = "AES-128",
26
- SAMPLE_AES = "SAMPLE-AES"
27
- }
28
28
  export interface SegmentEncryptionInfo {
29
29
  uri: string;
30
30
  method: string;
@@ -152,14 +152,6 @@ export interface MediaPlaylist extends Playlist {
152
152
  map?: MapInformation;
153
153
  }
154
154
  export type HlsManifest = MultivariantPlaylist | MediaPlaylist;
155
- export declare enum MetadataType {
156
- CUETAG = "CUETAG",
157
- DATERANGE = "DATERANGE",
158
- CUSTOM = "CUSTOM",
159
- SCTE = "SCTE",
160
- ID3 = "ID3",
161
- EMSG = "EMSG"
162
- }
163
155
  export interface HlsTag {
164
156
  name: string;
165
157
  attributes?: {
@@ -167,40 +159,6 @@ export interface HlsTag {
167
159
  };
168
160
  value?: string;
169
161
  }
170
- export declare enum TagType {
171
- M3u = "m3u",
172
- AllowCache = "allow-cache",
173
- ByteRange = "byterange",
174
- EndList = "endlist",
175
- Inf = "inf",
176
- Key = "key",
177
- MediaSequence = "media-sequence",
178
- DiscontinuitySequence = "discontinuity-sequence",
179
- PlaylistType = "playlist-type",
180
- StreamInf = "stream-inf",
181
- IframeStreamInf = "i-frame-stream-inf",
182
- Media = "media",
183
- Start = "start",
184
- Discontinuity = "discontinuity",
185
- DateTime = "date-time",
186
- TargetDuration = "targetduration",
187
- Map = "map",
188
- IndependentSegments = "independent-segments",
189
- SessionData = "session-data",
190
- SessionKey = "session-key",
191
- CueOut = "cue-out",
192
- CueOutCont = "cue-out-cont",
193
- CueIn = "cue-in",
194
- Scte35 = "scte35",
195
- DateRange = "daterange",
196
- Version = "version",
197
- Uri = "uri",
198
- Unknown = "unknown"
199
- }
200
- export declare enum PlaylistType {
201
- Vod = "VOD",
202
- Event = "EVENT"
203
- }
204
162
  export type BaseTag<T extends TagType> = {
205
163
  tagType: T;
206
164
  };
@@ -269,4 +227,3 @@ export declare enum HlsParsingExportNames {
269
227
  ParsingFunctions = "hls-parsing-functions",
270
228
  Errors = "hls-parsing-errors"
271
229
  }
272
- export {};
@@ -13,13 +13,14 @@
13
13
  import type { ContextHaving } from '../../../../../framework-types/execution-context/Types';
14
14
  import type { NamedTask, Task } from '../../../../../framework-types/task/Types';
15
15
  import type { EmptyObject } from '../../../../Types';
16
- import type { AdaptationExportNames } from '../../../adaptation/Types';
16
+ import { AdaptationExportNames } from '../../../adaptation/Types';
17
17
  import type { Constants } from '../../../core/Constants';
18
18
  import type { MetricsAtom } from '../../../core/metrics/MetricsAtom';
19
19
  import type { CoreEffects, CoreStateAtoms } from '../../../core/Types';
20
20
  import { CoreExportNames } from '../../../core/Types';
21
21
  import type { CoreUtils } from '../../../core/utils/Types';
22
22
  import type { NetworkTask } from '../../../network/NetworkTask';
23
+ import type { HttpRequestMethod, HttpResponseType } from '../../../network/Types';
23
24
  import { NetworkExportNames } from '../../../network/Types';
24
25
  import type { SourceStateAtom } from '../../../source/atoms/SourceStateAtom';
25
26
  import { SourceExportNames } from '../../../source/Types';
@@ -32,6 +33,7 @@ import { HlsParsingExportNames } from '../parsing/Types';
32
33
  import { HlsTechState } from '../technology/Types';
33
34
  import type { HlsMultivariantPlaylistTranslatorTask } from '../translation/manifests/HlsMultivariantPlaylistTranslatorTask';
34
35
  import type { HlsVariantTranslationTask } from '../translation/manifests/HlsVariantTranslationTask';
36
+ import type { HlsTranslationUtils } from '../translation/Types';
35
37
  import { HlsTranslationExportNames } from '../translation/Types';
36
38
  import { HlsPackageExportNames } from './Types';
37
39
  type HlsDependencies = {
@@ -41,11 +43,14 @@ type HlsDependencies = {
41
43
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
42
44
  [SourceExportNames.SourceState]: SourceStateAtom;
43
45
  [NetworkExportNames.NetworkTask]: typeof NetworkTask;
46
+ [NetworkExportNames.HttpRequestMethod]: typeof HttpRequestMethod;
47
+ [NetworkExportNames.HttpResponseType]: typeof HttpResponseType;
44
48
  [AdaptationExportNames.Metrics]: MetricsAtom;
45
49
  [HlsParsingExportNames.ParsingTask]: typeof HlsParsingTask;
46
50
  [HlsParsingExportNames.ParsingFunctions]: typeof HlsParsingFunctions;
47
51
  [HlsTranslationExportNames.HlsVariantTranslator]: typeof HlsVariantTranslationTask;
48
52
  [HlsTranslationExportNames.HlsMultivariantTranslator]: typeof HlsMultivariantPlaylistTranslatorTask;
53
+ [HlsTranslationExportNames.HlsTranslationUtils]: HlsTranslationUtils;
49
54
  } & StreamDataStructurePackageExports & StreamingStateType & HlsTechState;
50
55
  type ManifestLoadTaskType = NamedTask<Task<HlsPackageContext, SourceStateAtom, void>>;
51
56
  export type HlsExports = {
@@ -3,7 +3,7 @@ import type { ContextHaving } from '../../../../../framework-types/execution-con
3
3
  import type { Constants } from '../../../core/Constants';
4
4
  import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
5
5
  import type { CoreUtils } from '../../../core/utils/Types';
6
- import type { ManifestTechnologyEntry, PlaybackTechnologyComponent } from '../../../playback-technology/Types';
6
+ import type { ManifestTechnologyEntry, PlaybackTechnologyComponent, PlaybackTechnologyEntryType, PlaybackTechnologyExportNames } from '../../../playback-technology/Types';
7
7
  import type { Resource } from '../../../source/atoms/SourceConfigAtom';
8
8
  import type { StreamDataStructureStream } from '../../../stream-data-structure/stream/Exports';
9
9
  import type { createStreamingStateAtom, StreamingStateAtom } from '../../../streaming/atoms/StreamingStateAtom';
@@ -20,6 +20,7 @@ export interface HlsTechStateData {
20
20
  export type HlsManifestTechnologyExports = EmptyObject;
21
21
  export type HlsManifestTechnologyDependencies = {
22
22
  [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
23
+ [PlaybackTechnologyExportNames.EntryType]: typeof PlaybackTechnologyEntryType;
23
24
  [CoreExportNames.Constants]: Constants;
24
25
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
25
26
  [CoreExportNames.CoreEffects]: CoreEffects;
@@ -14,18 +14,23 @@ import { CoreExportNames } from '../../../core/Types';
14
14
  import type { CoreUtils } from '../../../core/utils/Types';
15
15
  import type { StreamDataStructurePackageExports } from '../../../stream-data-structure/Types';
16
16
  import type { ContextWithState } from '../../../Types';
17
+ import type { HlsParsingFunctions } from '../parsing/HlsParsingFunctions';
18
+ import { HlsParsingExportNames } from '../parsing/Types';
17
19
  import { HlsMultivariantPlaylistTranslatorTask } from './manifests/HlsMultivariantPlaylistTranslatorTask';
18
20
  import { HlsVariantTranslationTask } from './manifests/HlsVariantTranslationTask';
21
+ import type { HlsTranslationUtils } from './Types';
19
22
  import { HlsTranslationExportNames } from './Types';
20
23
  type Dependencies = {
21
24
  [CoreExportNames.Utils]: CoreUtils;
22
25
  [CoreExportNames.Constants]: Constants;
23
26
  [CoreExportNames.CoreEffects]: CoreEffects;
24
27
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
28
+ [HlsParsingExportNames.ParsingFunctions]: typeof HlsParsingFunctions;
25
29
  } & StreamDataStructurePackageExports;
26
30
  export type HlsTranslationPackageExports = {
27
31
  [HlsTranslationExportNames.HlsVariantTranslator]: typeof HlsVariantTranslationTask;
28
32
  [HlsTranslationExportNames.HlsMultivariantTranslator]: typeof HlsMultivariantPlaylistTranslatorTask;
33
+ [HlsTranslationExportNames.HlsTranslationUtils]: HlsTranslationUtils;
29
34
  };
30
35
  export type HlsTranslationPackageContext = ContextHaving<Dependencies, HlsTranslationPackageExports, ContextWithState>;
31
36
  export declare const HlsTranslationPackage: import("../../../../../framework-types/package-api/Package").Package<Dependencies, HlsTranslationPackageExports, EmptyObject>;
@@ -1,14 +1,13 @@
1
- import type { RenditionAttributes, Variant } from '../parsing/Types';
2
- export declare function isMediaTagWithUri(rendition: {
3
- attributes: RenditionAttributes;
4
- }): rendition is {
5
- attributes: RenditionAttributes & {
6
- URI: string;
7
- };
8
- };
9
- export declare function getReferencedAudioGroupId(variant: Variant): string | undefined;
10
- export declare function getReferencedVideoGroupId(variant: Variant): string | undefined;
1
+ import type { maybeSetSelectionGroupContainerFormat } from './segments/StreamHelpers';
2
+ import type { addTrackToSelectionGroup } from './stream/TracksToSelectionGroups';
3
+ import type { translateUnknownTrackToMediaTrack } from './stream/UnknownTrackToMediaTrackTranslator';
11
4
  export declare enum HlsTranslationExportNames {
12
5
  HlsMultivariantTranslator = "hls-multivariant-translator",
13
- HlsVariantTranslator = "hls-variant-translator"
6
+ HlsVariantTranslator = "hls-variant-translator",
7
+ HlsTranslationUtils = "hls-translation-utils"
14
8
  }
9
+ export type HlsTranslationUtils = {
10
+ addTrackToSelectionGroup: typeof addTrackToSelectionGroup;
11
+ maybeSetSelectionGroupContainerFormat: typeof maybeSetSelectionGroupContainerFormat;
12
+ translateUnknownTrackToMediaTrack: typeof translateUnknownTrackToMediaTrack;
13
+ };
@@ -0,0 +1,14 @@
1
+ import type { SegmentAtom } from '../../../../stream-data-structure/segment/SegmentAtom';
2
+ import type { SelectionGroupAtom } from '../../../../stream-data-structure/selection-group/SelectionGroupAtom';
3
+ import type { StreamAtom } from '../../../../stream-data-structure/stream/StreamAtom';
4
+ import type { AudioTrackAtom, MediaTrackAtom, SubtitleTrackAtom, TrackAtom, VideoTrackAtom } from '../../../../stream-data-structure/track/TrackAtom';
5
+ import type { SegmentEntry } from '../../parsing/Types';
6
+ import type { HlsTranslationPackageContext } from '../HlsTranslation.package';
7
+ export declare function createSelectionGroup(context: HlsTranslationPackageContext, track: TrackAtom): import("../../../../stream-data-structure/selection-group/SelectionGroupAtom").UnknownSelectionGroupAtom | import("../../../../stream-data-structure/selection-group/SelectionGroupAtom").AudioSelectionGroupAtom | import("../../../../stream-data-structure/selection-group/SelectionGroupAtom").VideoSelectionGroupAtom | import("../../../../stream-data-structure/selection-group/SelectionGroupAtom").SubtitleSelectionGroupAtom;
8
+ export declare function findOrCreateSelectionGroup(context: HlsTranslationPackageContext, track: TrackAtom, selectionGroups: readonly SelectionGroupAtom[]): SelectionGroupAtom;
9
+ export declare function createTrack(context: HlsTranslationPackageContext, variantUrl: string, stream: StreamAtom, discontinuitySequenceNumber: number, referenceTrack?: TrackAtom): AudioTrackAtom | VideoTrackAtom | SubtitleTrackAtom | import("../../../../stream-data-structure/track/TrackAtom").UnknownTrackAtom;
10
+ export declare function findTracksOfVariant(context: HlsTranslationPackageContext, stream: StreamAtom, variantUrl: string): TrackAtom[];
11
+ export declare function findOrCreateTrack(context: HlsTranslationPackageContext, variantUrl: string, segment: SegmentEntry, stream: StreamAtom, referenceTrack?: TrackAtom): TrackAtom;
12
+ export declare function hasSegment(track: MediaTrackAtom, segment: SegmentEntry): boolean;
13
+ export declare function isMatchingSegment(segment: SegmentAtom, entry: SegmentEntry): boolean;
14
+ export declare function maybeSetSelectionGroupContainerFormat(context: HlsTranslationPackageContext, selectionGroup: SelectionGroupAtom): void;
@@ -0,0 +1,6 @@
1
+ import type { ArrayAtom } from '../../../../core/state/ArrayStateAtom';
2
+ import type { SelectionGroupsAtom } from '../../../../stream-data-structure/stream/StreamAtom';
3
+ import type { TrackAtom } from '../../../../stream-data-structure/track/TrackAtom';
4
+ import type { HlsTranslationPackageContext } from '../HlsTranslation.package';
5
+ export declare function tracksToSelectionGroups(context: HlsTranslationPackageContext, tracks: ArrayAtom<TrackAtom>): SelectionGroupsAtom;
6
+ export declare function addTrackToSelectionGroup(context: HlsTranslationPackageContext, track: TrackAtom, selectionGroups: SelectionGroupsAtom): void;
@@ -0,0 +1,4 @@
1
+ import type { UnknownTrackAtom } from '../../../../stream-data-structure/track/TrackAtom';
2
+ import type { TypeDetection } from '../../../../stream-data-structure/track/TypeDetection';
3
+ import type { HlsPackageContext } from '../../root/Hls.package';
4
+ export declare function translateUnknownTrackToMediaTrack(context: HlsPackageContext, track: UnknownTrackAtom, detection: TypeDetection): import("../../../../stream-data-structure/track/TrackAtom").AudioTrackAtom | import("../../../../stream-data-structure/track/TrackAtom").VideoTrackAtom | undefined;
@@ -0,0 +1,18 @@
1
+ import type { ContextHaving } from '../../../framework-types/execution-context/Types';
2
+ import type { EmptyObject } from '../../Types';
3
+ import type { PrimitiveAtom } from '../core/state/PrimitiveAtom';
4
+ import { type CoreStateAtoms, CoreExportNames } from '../core/Types';
5
+ import type { ContextWithState } from '../Types';
6
+ export type MediaInfo = {
7
+ currentTime: PrimitiveAtom<number | undefined>;
8
+ duration: PrimitiveAtom<number | undefined>;
9
+ volume: PrimitiveAtom<number | undefined>;
10
+ muted: PrimitiveAtom<boolean | undefined>;
11
+ playbackRate: PrimitiveAtom<number | undefined>;
12
+ error: PrimitiveAtom<Error | undefined>;
13
+ };
14
+ type ContextT = ContextHaving<{
15
+ [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
16
+ }, EmptyObject, ContextWithState>;
17
+ export declare function createMediaInfo(context: ContextT): MediaInfo;
18
+ export {};
@@ -0,0 +1,10 @@
1
+ export declare enum MediaState {
2
+ Detached = "detached",
3
+ Play = "play",
4
+ Paused = "paused",
5
+ Playing = "playing",
6
+ Seeking = "seeking",
7
+ Stalled = "stalled",
8
+ Ended = "ended",
9
+ Error = "error"
10
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @packageDocumentation MediaState.package
3
+ *
4
+ * Owns the per-source media state slot. Tech-agnostic: a controller (e.g.
5
+ * `VideoElementController` for HTMLVideoElement)
6
+ * is responsible for translating its underlying medium into transitions on
7
+ * `mediaState` and updates on `mediaInfo`.
8
+ *
9
+ * Exposes:
10
+ * - `MediaState` — `StateMachineAtom<MediaState>` for qualitative playback state
11
+ * (`Detached | Playing | Paused | Seeking | Stalled | Ended | Error`).
12
+ * - `MediaInfo` — per-scalar atoms (`currentTime`, `duration`, `volume`,
13
+ * `muted`, `playbackRate`, `error`).
14
+ * - `SeekRestriction` — whether seeking is allowed; seeded from the source's
15
+ * `preventSeeking` playback config.
16
+ *
17
+ * ### `MediaState` Package Dependency Graph
18
+ * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 227.640625 49" style="max-width: 227.641px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}#my-svg .error-icon{fill:#a44141;}#my-svg .error-text{fill:#ddd;stroke:#ddd;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:lightgrey;stroke:lightgrey;}#my-svg .marker.cross{stroke:lightgrey;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#ccc;}#my-svg .cluster-label text{fill:#F9FFFE;}#my-svg .cluster-label span,#my-svg p{color:#F9FFFE;}#my-svg .label text,#my-svg span,#my-svg p{fill:#ccc;color:#ccc;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#1f2020;stroke:#81B1DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:lightgrey;}#my-svg .edgePath .path{stroke:lightgrey;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:lightgrey;fill:none;}#my-svg .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#my-svg .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#my-svg .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#my-svg .cluster text{fill:#F9FFFE;}#my-svg .cluster span,#my-svg p{color:#F9FFFE;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-MediaState LE-Source" id="L-MediaState-Source-0" d="M95.938,16.5L100.104,16.5C104.271,16.5,112.604,16.5,120.054,16.5C127.504,16.5,134.071,16.5,137.354,16.5L140.638,16.5"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(47.96875, 16.5)" data-id="MediaState" data-node="true" id="flowchart-MediaState-0" class="node default default flowchart-label"><rect height="33" width="95.9375" y="-16.5" x="-47.96875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-40.46875, -9)" style="" class="label"><rect/><foreignObject height="18" width="80.9375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">MediaState</span></div></foreignObject></g></g><g transform="translate(178.7890625, 16.5)" data-id="Source" data-node="true" id="flowchart-Source-1" class="node default default flowchart-label"><rect height="33" width="65.703125" y="-16.5" x="-32.8515625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-25.3515625, -9)" style="" class="label"><rect/><foreignObject height="18" width="50.703125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Source</span></div></foreignObject></g></g></g></g></g></svg>
19
+ */
20
+ import type { MediaStatePackageDependencies, MediaStatePackageExports } from './Types';
21
+ export declare const MediaStatePackage: import("../../../framework-types/package-api/Package").Package<MediaStatePackageDependencies, MediaStatePackageExports, import("../../../framework-types/BaseTypes").EmptyObject>;
22
+ export default MediaStatePackage;