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

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 (204) 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 +45 -6
  82. package/types/packages/advertising/api/Types.d.ts +110 -11
  83. package/types/packages/advertising/api/api-conversion/AdApiCache.d.ts +14 -0
  84. package/types/packages/advertising/api/content-source/AdBreakAtom.d.ts +19 -0
  85. package/types/packages/advertising/api/content-source/Types.d.ts +36 -0
  86. package/types/packages/advertising/base/AdExtension.d.ts +11 -0
  87. package/types/packages/advertising/base/AdIconAtom.d.ts +20 -0
  88. package/types/packages/advertising/base/AdIconPosition.d.ts +8 -0
  89. package/types/packages/advertising/base/AdPosition.d.ts +1 -0
  90. package/types/packages/advertising/base/AdQuartile.d.ts +5 -0
  91. package/types/packages/advertising/base/AdResource.d.ts +16 -0
  92. package/types/packages/advertising/base/AdSchedule.d.ts +2 -2
  93. package/types/packages/advertising/base/AdTagAtom.d.ts +1 -1
  94. package/types/packages/advertising/base/AdType.d.ts +4 -0
  95. package/types/packages/advertising/base/BaseAdAtom.d.ts +27 -5
  96. package/types/packages/advertising/base/{BaseAdBreakAtom.d.ts → BaseAdPodAtom.d.ts} +8 -6
  97. package/types/packages/advertising/base/BaseAdPodState.d.ts +7 -0
  98. package/types/packages/advertising/base/BaseAdState.d.ts +7 -0
  99. package/types/packages/advertising/base/ClickThroughAtom.d.ts +11 -0
  100. package/types/packages/advertising/base/CompanionAdAtom.d.ts +18 -0
  101. package/types/packages/advertising/base/Types.d.ts +19 -29
  102. package/types/packages/advertising/bitmovin/Types.d.ts +17 -10
  103. package/types/packages/capabilities/Types.d.ts +1 -1
  104. package/types/packages/container/container-mp4/ContainerMp4.package.d.ts +2 -0
  105. package/types/packages/container/container-ts/ContainerTs.package.d.ts +3 -1
  106. package/types/packages/container/ts-transmuxer/TsTransmuxer.package.d.ts +2 -0
  107. package/types/packages/core/Constants.d.ts +7 -0
  108. package/types/packages/core/Types.d.ts +3 -2
  109. package/types/packages/core/metrics/MetricsAtom.d.ts +1 -1
  110. package/types/packages/{adaptation → core/state}/RingBufferAtom.d.ts +2 -2
  111. package/types/packages/core/state/StateMachineAtom.d.ts +13 -12
  112. package/types/packages/core/state/state-effect/Types.d.ts +2 -2
  113. package/types/packages/core/technology/Types.d.ts +2 -2
  114. package/types/packages/data/Types.d.ts +7 -1
  115. package/types/packages/manifest/dash/parsing/Errors.d.ts +1 -1
  116. package/types/packages/manifest/dash/root/Types.d.ts +3 -1
  117. package/types/packages/manifest/dash/technology/Types.d.ts +2 -1
  118. package/types/packages/manifest/hls/parsing/Constants.d.ts +47 -0
  119. package/types/packages/manifest/hls/parsing/Errors.d.ts +1 -1
  120. package/types/packages/manifest/hls/parsing/Types.d.ts +5 -48
  121. package/types/packages/manifest/hls/parsing/m3u8/TranslatorStream.d.ts +1 -0
  122. package/types/packages/manifest/hls/root/Hls.package.d.ts +6 -1
  123. package/types/packages/manifest/hls/technology/Types.d.ts +2 -1
  124. package/types/packages/manifest/hls/translation/HlsTranslation.package.d.ts +5 -0
  125. package/types/packages/manifest/hls/translation/Types.d.ts +10 -11
  126. package/types/packages/manifest/hls/translation/segments/StreamHelpers.d.ts +14 -0
  127. package/types/packages/manifest/hls/translation/stream/TracksToSelectionGroups.d.ts +6 -0
  128. package/types/packages/manifest/hls/translation/stream/UnknownTrackToMediaTrackTranslator.d.ts +4 -0
  129. package/types/packages/media-state/MediaInfoAtoms.d.ts +18 -0
  130. package/types/packages/media-state/MediaState.d.ts +10 -0
  131. package/types/packages/media-state/MediaState.package.d.ts +22 -0
  132. package/types/packages/media-state/MediaStateAtom.d.ts +16 -0
  133. package/types/packages/media-state/MediaStateTransitionType.d.ts +11 -0
  134. package/types/packages/media-state/SeekRestrictionAtom.d.ts +2 -0
  135. package/types/packages/media-state/Types.d.ts +48 -0
  136. package/types/packages/media-state/controllers/video-element/Types.d.ts +32 -0
  137. package/types/packages/media-state/controllers/video-element/VideoElementController.package.d.ts +15 -0
  138. package/types/packages/network/HttpRequestMethod.d.ts +5 -0
  139. package/types/packages/network/HttpRequestType.d.ts +11 -0
  140. package/types/packages/network/HttpResponseType.d.ts +7 -0
  141. package/types/packages/network/NetworkAtom.d.ts +15 -0
  142. package/types/packages/network/NetworkTask.d.ts +8 -7
  143. package/types/packages/network/Types.d.ts +17 -26
  144. package/types/packages/playback/play-pause/Types.d.ts +0 -3
  145. package/types/packages/playback/volume/Types.d.ts +2 -4
  146. package/types/packages/playback-api/play-pause-api/Types.d.ts +4 -3
  147. package/types/packages/playback-api/playback-api-events/Types.d.ts +11 -8
  148. package/types/packages/playback-api/time-api/Types.d.ts +4 -5
  149. package/types/packages/playback-technology/PlaybackTechnologyEntryType.d.ts +4 -0
  150. package/types/packages/playback-technology/Types.d.ts +6 -6
  151. package/types/packages/player-api/PlayerApi.package.d.ts +2 -0
  152. package/types/packages/player-api/PlayerEvent.d.ts +3 -0
  153. package/types/packages/player-api/Types.d.ts +4 -4
  154. package/types/packages/presentation/mse/playback-technology/Types.d.ts +2 -1
  155. package/types/packages/presentation/mse/playback-technology/atoms/MsePresentationStateAtom.d.ts +1 -4
  156. package/types/packages/presentation/mse/presentation/MsePresentation.package.d.ts +4 -2
  157. package/types/packages/presentation/mse/presentation/Types.d.ts +6 -0
  158. package/types/packages/presentation/native/NativePlayback.package.d.ts +1 -2
  159. package/types/packages/presentation/native/playback-technology/Types.d.ts +2 -1
  160. package/types/packages/segment-processing/SegmentProcessing.package.d.ts +2 -1
  161. package/types/packages/segment-processing/SegmentProcessorType.d.ts +7 -0
  162. package/types/packages/segment-processing/Types.d.ts +10 -10
  163. package/types/packages/source/SourceReference.d.ts +1 -1
  164. package/types/packages/source/atoms/PlaybackConfigAtom.d.ts +2 -2
  165. package/types/packages/source/atoms/SourceConfigAtom.d.ts +2 -0
  166. package/types/packages/sources-api/SourcesApiEvent.d.ts +7 -0
  167. package/types/packages/sources-api/Types.d.ts +4 -8
  168. package/types/packages/stream-data-structure/Types.d.ts +1 -0
  169. package/types/packages/stream-data-structure/segment/Exports.d.ts +3 -3
  170. package/types/packages/stream-data-structure/segment/SegmentAtom.d.ts +11 -2
  171. package/types/packages/stream-data-structure/segment/SegmentDataAtom.d.ts +1 -7
  172. package/types/packages/stream-data-structure/segment/SegmentUtils.d.ts +3 -2
  173. package/types/packages/stream-data-structure/selection-group/SelectionGroupAtom.d.ts +1 -2
  174. package/types/packages/stream-data-structure/track/Exports.d.ts +6 -1
  175. package/types/packages/stream-data-structure/track/TrackAtom.d.ts +19 -4
  176. package/types/packages/stream-data-structure/track/TrackTypeGuards.d.ts +3 -1
  177. package/types/packages/stream-data-structure/track/TypeDetection.d.ts +25 -0
  178. package/types/packages/stream-data-structure/track/TypeDetectionTypeGuards.d.ts +4 -0
  179. package/types/packages/streaming/Streaming.package.d.ts +2 -2
  180. package/types/packages/streaming/Types.d.ts +3 -2
  181. package/types/packages/subtitles/subtitle-api/SubtitleEvent.d.ts +9 -0
  182. package/types/packages/subtitles/subtitle-api/Types.d.ts +3 -9
  183. package/types/packages/trick-play/TrickPlay.package.d.ts +2 -1
  184. package/types/packages/v8-compat/BitmovinUi.package.d.ts +4 -4
  185. package/types/packages/v8-compat/BitmovinV8Core.package.d.ts +16 -4
  186. package/types/packages/v8-compat/BitmovinV8StaticApi.package.d.ts +8 -5
  187. package/types/packages/v8-compat/apis/SourceApis.d.ts +5 -0
  188. package/types/packages/v8-compat/apis/SubtitleApi.d.ts +5 -0
  189. package/types/packages/v8-compat/enums/AdditionalPlayerExportNames.d.ts +9 -0
  190. package/types/packages/v8-compat/enums/PlayerExports.d.ts +0 -7
  191. package/types/packages/v8-compat/event-handling/EventDispatcher.d.ts +11 -0
  192. package/types/packages/v8-compat/source-api/BitmovinSourceApi.package.d.ts +10 -4
  193. package/types/packages/v8-compat/video-element/BitmovinVideoElementUtils.package.d.ts +4 -4
  194. package/types/packages/view-mode/Types.d.ts +4 -6
  195. package/types/packages/view-mode/ViewMode.d.ts +5 -0
  196. package/types/packages/view-mode/ViewMode.package.d.ts +2 -0
  197. package/types/packages/view-mode/ViewModeAtom.d.ts +1 -1
  198. package/types/packages/core/FrameworkError.d.ts +0 -4
  199. package/types/packages/core/network/NetworkAtom.d.ts +0 -21
  200. package/types/packages/playback/playback-state/Types.d.ts +0 -41
  201. package/types/packages/playback/video-element-state/SeekRestrictionAtom.d.ts +0 -2
  202. package/types/packages/playback/video-element-state/Types.d.ts +0 -32
  203. package/types/packages/playback/video-element-state/VideoElementStateAtom.d.ts +0 -58
  204. package/types/packages/presentation/native/Types.d.ts +0 -12
@@ -6,7 +6,7 @@
6
6
  * on some SmartTVs.
7
7
  *
8
8
  * ### Tv.bundle used packages
9
- * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-7.5 -8 343.546875 2116" style="max-width: 343.547px; 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-Tv.bundle LE-Hls.bundle" id="L-Tv.bundle-Hls.bundle-0" d="M163.773,1999L163.773,2004.667C163.773,2010.333,163.773,2021.667,163.773,2032.117C163.773,2042.567,163.773,2052.133,163.773,2056.917L163.773,2061.7"/></g><g class="edgeLabels"><g transform="translate(163.7734375, 2033)" class="edgeLabel"><g transform="translate(-48.03125, -9)" class="label"><foreignObject height="18" width="96.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">created using</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(-7.5, -8)" class="root"><g class="clusters"><g id="Tv.bundle" class="cluster default flowchart-label"><rect height="1999" width="327.546875" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(137.234375, 8)" class="cluster-label"><foreignObject height="18" width="69.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Tv.bundle</span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g transform="translate(25.5, 35)" class="root"><g class="clusters"><g id="HlsBundlePackage" class="cluster default flowchart-label"><rect height="1846" width="277.546875" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(79.171875, 8)" class="cluster-label"><foreignObject height="18" width="135.203125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">HlsBundlePackage</span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g transform="translate(146.7734375, 59.5)" data-id="CorePackage" data-node="true" id="flowchart-CorePackage-2" class="node default default flowchart-label"><rect height="33" width="111.953125" y="-16.5" x="-55.9765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48.4765625, -9)" style="" class="label"><rect/><foreignObject height="18" width="96.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CorePackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 142.5)" data-id="StreamDataStructurePackage" data-node="true" id="flowchart-StreamDataStructurePackage-3" class="node default default flowchart-label"><rect height="33" width="227.546875" y="-16.5" x="-113.7734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-106.2734375, -9)" style="" class="label"><rect/><foreignObject height="18" width="212.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">StreamDataStructurePackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 225.5)" data-id="StreamingPackage" data-node="true" id="flowchart-StreamingPackage-4" class="node default default flowchart-label"><rect height="33" width="150.1875" y="-16.5" x="-75.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-67.59375, -9)" style="" class="label"><rect/><foreignObject height="18" width="135.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">StreamingPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 308.5)" data-id="EventBusPackage" data-node="true" id="flowchart-EventBusPackage-5" class="node default default flowchart-label"><rect height="33" width="145.75" y="-16.5" x="-72.875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-65.375, -9)" style="" class="label"><rect/><foreignObject height="18" width="130.75"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">EventBusPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 391.5)" data-id="PlayerApiPackage" data-node="true" id="flowchart-PlayerApiPackage-6" class="node default default flowchart-label"><rect height="33" width="145.75" y="-16.5" x="-72.875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-65.375, -9)" style="" class="label"><rect/><foreignObject height="18" width="130.75"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlayerApiPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 474.5)" data-id="CapabilitiesPackage" data-node="true" id="flowchart-CapabilitiesPackage-7" class="node default default flowchart-label"><rect height="33" width="159.984375" y="-16.5" x="-79.9921875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.4921875, -9)" style="" class="label"><rect/><foreignObject height="18" width="144.984375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CapabilitiesPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 557.5)" data-id="SegmentProcessingPackage" data-node="true" id="flowchart-SegmentProcessingPackage-8" class="node default default flowchart-label"><rect height="33" width="220.453125" y="-16.5" x="-110.2265625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-102.7265625, -9)" style="" class="label"><rect/><foreignObject height="18" width="205.453125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">SegmentProcessingPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 640.5)" data-id="ContainerMp4Package" data-node="true" id="flowchart-ContainerMp4Package-9" class="node default default flowchart-label"><rect height="33" width="177.765625" y="-16.5" x="-88.8828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-81.3828125, -9)" style="" class="label"><rect/><foreignObject height="18" width="162.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContainerMp4Package</span></div></foreignObject></g></g><g transform="translate(146.7734375, 723.5)" data-id="ContainerTsPackage" data-node="true" id="flowchart-ContainerTsPackage-10" class="node default default flowchart-label"><rect height="33" width="162.640625" y="-16.5" x="-81.3203125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-73.8203125, -9)" style="" class="label"><rect/><foreignObject height="18" width="147.640625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContainerTsPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 806.5)" data-id="TsTransmuxerPackage" data-node="true" id="flowchart-TsTransmuxerPackage-11" class="node default default flowchart-label"><rect height="33" width="178.03125" y="-16.5" x="-89.015625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-81.515625, -9)" style="" class="label"><rect/><foreignObject height="18" width="163.03125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">TsTransmuxerPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 889.5)" data-id="DataPackage" data-node="true" id="flowchart-DataPackage-12" class="node default default flowchart-label"><rect height="33" width="111.0625" y="-16.5" x="-55.53125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48.03125, -9)" style="" class="label"><rect/><foreignObject height="18" width="96.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">DataPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 972.5)" data-id="NetworkPackage" data-node="true" id="flowchart-NetworkPackage-13" class="node default default flowchart-label"><rect height="33" width="135.953125" y="-16.5" x="-67.9765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.4765625, -9)" style="" class="label"><rect/><foreignObject height="18" width="120.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">NetworkPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1055.5)" data-id="PlaybackTechnologyPackage" data-node="true" id="flowchart-PlaybackTechnologyPackage-14" class="node default default flowchart-label"><rect height="33" width="223.140625" y="-16.5" x="-111.5703125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-104.0703125, -9)" style="" class="label"><rect/><foreignObject height="18" width="208.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackTechnologyPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1138.5)" data-id="HlsManifestPackage" data-node="true" id="flowchart-HlsManifestPackage-15" class="node default default flowchart-label"><rect height="33" width="160.84375" y="-16.5" x="-80.421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.921875, -9)" style="" class="label"><rect/><foreignObject height="18" width="145.84375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">HlsManifestPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1221.5)" data-id="MsePlaybackPackage" data-node="true" id="flowchart-MsePlaybackPackage-16" class="node default default flowchart-label"><rect height="33" width="172.421875" y="-16.5" x="-86.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-78.7109375, -9)" style="" class="label"><rect/><foreignObject height="18" width="157.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">MsePlaybackPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1304.5)" data-id="NativePlaybackPackage" data-node="true" id="flowchart-NativePlaybackPackage-17" class="node default default flowchart-label"><rect height="33" width="187.546875" y="-16.5" x="-93.7734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-86.2734375, -9)" style="" class="label"><rect/><foreignObject height="18" width="172.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">NativePlaybackPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1387.5)" data-id="SourcePackage" data-node="true" id="flowchart-SourcePackage-18" class="node default default flowchart-label"><rect height="33" width="127.96875" y="-16.5" x="-63.984375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56.484375, -9)" style="" class="label"><rect/><foreignObject height="18" width="112.96875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">SourcePackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1470.5)" data-id="SourcesApiPackage" data-node="true" id="flowchart-SourcesApiPackage-19" class="node default default flowchart-label"><rect height="33" width="159.09375" y="-16.5" x="-79.546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.046875, -9)" style="" class="label"><rect/><foreignObject height="18" width="144.09375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">SourcesApiPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1553.5)" data-id="AdaptationPackage" data-node="true" id="flowchart-AdaptationPackage-20" class="node default default flowchart-label"><rect height="33" width="153.78125" y="-16.5" x="-76.890625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-69.390625, -9)" style="" class="label"><rect/><foreignObject height="18" width="138.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">AdaptationPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1636.5)" data-id="PlaybackPackage" data-node="true" id="flowchart-PlaybackPackage-21" class="node default default flowchart-label"><rect height="33" width="142.1875" y="-16.5" x="-71.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-63.59375, -9)" style="" class="label"><rect/><foreignObject height="18" width="127.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1719.5)" data-id="PlaybackApiPackage" data-node="true" id="flowchart-PlaybackApiPackage-22" class="node default default flowchart-label"><rect height="33" width="165.3125" y="-16.5" x="-82.65625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-75.15625, -9)" style="" class="label"><rect/><foreignObject height="18" width="150.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackApiPackage</span></div></foreignObject></g></g><g transform="translate(146.7734375, 1802.5)" data-id="ViewModePackage" data-node="true" id="flowchart-ViewModePackage-23" class="node default default flowchart-label"><rect height="33" width="151.6875" y="-16.5" x="-75.84375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-68.34375, -9)" style="" class="label"><rect/><foreignObject height="18" width="136.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ViewModePackage</span></div></foreignObject></g></g></g></g><g transform="translate(171.7734375, 1955.5)" data-id="TvPackage" data-node="true" id="flowchart-TvPackage-1" class="node default default flowchart-label"><rect height="33" width="95.046875" y="-16.5" x="-47.5234375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-40.0234375, -9)" style="" class="label"><rect/><foreignObject height="18" width="80.046875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">TvPackage</span></div></foreignObject></g></g></g></g><g transform="translate(163.7734375, 2083.5)" data-id="Hls.bundle" data-node="true" id="flowchart-Hls.bundle-25" class="node default default flowchart-label"><rect height="33" width="90.609375" y="-16.5" x="-45.3046875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-37.8046875, -9)" style="" class="label"><rect/><foreignObject height="18" width="75.609375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Hls.bundle</span></div></foreignObject></g></g></g></g></g></svg>
9
+ * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-7.5 -8 361.953125 2282" style="max-width: 361.953px; 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-Tv.bundle LE-Hls.bundle" id="L-Tv.bundle-Hls.bundle-0" d="M172.977,2165L172.977,2170.667C172.977,2176.333,172.977,2187.667,172.977,2198.117C172.977,2208.567,172.977,2218.133,172.977,2222.917L172.977,2227.7"/></g><g class="edgeLabels"><g transform="translate(172.9765625, 2199)" class="edgeLabel"><g transform="translate(-48.03125, -9)" class="label"><foreignObject height="18" width="96.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">created using</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(-7.5, -8)" class="root"><g class="clusters"><g id="Tv.bundle" class="cluster default flowchart-label"><rect height="2165" width="345.953125" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(146.4375, 8)" class="cluster-label"><foreignObject height="18" width="69.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Tv.bundle</span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g transform="translate(25.5, 35)" class="root"><g class="clusters"><g id="HlsBundlePackage" class="cluster default flowchart-label"><rect height="2012" width="295.953125" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(88.375, 8)" class="cluster-label"><foreignObject height="18" width="135.203125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">HlsBundlePackage</span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g transform="translate(155.9765625, 59.5)" data-id="CorePackage" data-node="true" id="flowchart-CorePackage-2" class="node default default flowchart-label"><rect height="33" width="111.953125" y="-16.5" x="-55.9765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48.4765625, -9)" style="" class="label"><rect/><foreignObject height="18" width="96.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CorePackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 142.5)" data-id="StreamDataStructurePackage" data-node="true" id="flowchart-StreamDataStructurePackage-3" class="node default default flowchart-label"><rect height="33" width="227.546875" y="-16.5" x="-113.7734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-106.2734375, -9)" style="" class="label"><rect/><foreignObject height="18" width="212.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">StreamDataStructurePackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 225.5)" data-id="StreamingPackage" data-node="true" id="flowchart-StreamingPackage-4" class="node default default flowchart-label"><rect height="33" width="150.1875" y="-16.5" x="-75.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-67.59375, -9)" style="" class="label"><rect/><foreignObject height="18" width="135.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">StreamingPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 308.5)" data-id="EventBusPackage" data-node="true" id="flowchart-EventBusPackage-5" class="node default default flowchart-label"><rect height="33" width="145.75" y="-16.5" x="-72.875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-65.375, -9)" style="" class="label"><rect/><foreignObject height="18" width="130.75"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">EventBusPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 391.5)" data-id="PlayerApiPackage" data-node="true" id="flowchart-PlayerApiPackage-6" class="node default default flowchart-label"><rect height="33" width="145.75" y="-16.5" x="-72.875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-65.375, -9)" style="" class="label"><rect/><foreignObject height="18" width="130.75"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlayerApiPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 474.5)" data-id="CapabilitiesPackage" data-node="true" id="flowchart-CapabilitiesPackage-7" class="node default default flowchart-label"><rect height="33" width="159.984375" y="-16.5" x="-79.9921875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.4921875, -9)" style="" class="label"><rect/><foreignObject height="18" width="144.984375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CapabilitiesPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 557.5)" data-id="SegmentProcessingPackage" data-node="true" id="flowchart-SegmentProcessingPackage-8" class="node default default flowchart-label"><rect height="33" width="220.453125" y="-16.5" x="-110.2265625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-102.7265625, -9)" style="" class="label"><rect/><foreignObject height="18" width="205.453125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">SegmentProcessingPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 640.5)" data-id="ContainerMp4Package" data-node="true" id="flowchart-ContainerMp4Package-9" class="node default default flowchart-label"><rect height="33" width="177.765625" y="-16.5" x="-88.8828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-81.3828125, -9)" style="" class="label"><rect/><foreignObject height="18" width="162.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContainerMp4Package</span></div></foreignObject></g></g><g transform="translate(155.9765625, 723.5)" data-id="ContainerTsPackage" data-node="true" id="flowchart-ContainerTsPackage-10" class="node default default flowchart-label"><rect height="33" width="162.640625" y="-16.5" x="-81.3203125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-73.8203125, -9)" style="" class="label"><rect/><foreignObject height="18" width="147.640625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ContainerTsPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 806.5)" data-id="TsTransmuxerPackage" data-node="true" id="flowchart-TsTransmuxerPackage-11" class="node default default flowchart-label"><rect height="33" width="178.03125" y="-16.5" x="-89.015625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-81.515625, -9)" style="" class="label"><rect/><foreignObject height="18" width="163.03125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">TsTransmuxerPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 889.5)" data-id="DataPackage" data-node="true" id="flowchart-DataPackage-12" class="node default default flowchart-label"><rect height="33" width="111.0625" y="-16.5" x="-55.53125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48.03125, -9)" style="" class="label"><rect/><foreignObject height="18" width="96.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">DataPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 972.5)" data-id="NetworkPackage" data-node="true" id="flowchart-NetworkPackage-13" class="node default default flowchart-label"><rect height="33" width="135.953125" y="-16.5" x="-67.9765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.4765625, -9)" style="" class="label"><rect/><foreignObject height="18" width="120.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">NetworkPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1055.5)" data-id="PlaybackTechnologyPackage" data-node="true" id="flowchart-PlaybackTechnologyPackage-14" class="node default default flowchart-label"><rect height="33" width="223.140625" y="-16.5" x="-111.5703125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-104.0703125, -9)" style="" class="label"><rect/><foreignObject height="18" width="208.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackTechnologyPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1138.5)" data-id="MediaStatePackage" data-node="true" id="flowchart-MediaStatePackage-15" class="node default default flowchart-label"><rect height="33" width="158.203125" y="-16.5" x="-79.1015625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-71.6015625, -9)" style="" class="label"><rect/><foreignObject height="18" width="143.203125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">MediaStatePackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1221.5)" data-id="VideoElementControllerPackage" data-node="true" id="flowchart-VideoElementControllerPackage-16" class="node default default flowchart-label"><rect height="33" width="245.953125" y="-16.5" x="-122.9765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-115.4765625, -9)" style="" class="label"><rect/><foreignObject height="18" width="230.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">VideoElementControllerPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1304.5)" data-id="HlsManifestPackage" data-node="true" id="flowchart-HlsManifestPackage-17" class="node default default flowchart-label"><rect height="33" width="160.84375" y="-16.5" x="-80.421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.921875, -9)" style="" class="label"><rect/><foreignObject height="18" width="145.84375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">HlsManifestPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1387.5)" data-id="MsePlaybackPackage" data-node="true" id="flowchart-MsePlaybackPackage-18" class="node default default flowchart-label"><rect height="33" width="172.421875" y="-16.5" x="-86.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-78.7109375, -9)" style="" class="label"><rect/><foreignObject height="18" width="157.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">MsePlaybackPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1470.5)" data-id="NativePlaybackPackage" data-node="true" id="flowchart-NativePlaybackPackage-19" class="node default default flowchart-label"><rect height="33" width="187.546875" y="-16.5" x="-93.7734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-86.2734375, -9)" style="" class="label"><rect/><foreignObject height="18" width="172.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">NativePlaybackPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1553.5)" data-id="SourcePackage" data-node="true" id="flowchart-SourcePackage-20" class="node default default flowchart-label"><rect height="33" width="127.96875" y="-16.5" x="-63.984375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56.484375, -9)" style="" class="label"><rect/><foreignObject height="18" width="112.96875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">SourcePackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1636.5)" data-id="SourcesApiPackage" data-node="true" id="flowchart-SourcesApiPackage-21" class="node default default flowchart-label"><rect height="33" width="159.09375" y="-16.5" x="-79.546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.046875, -9)" style="" class="label"><rect/><foreignObject height="18" width="144.09375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">SourcesApiPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1719.5)" data-id="AdaptationPackage" data-node="true" id="flowchart-AdaptationPackage-22" class="node default default flowchart-label"><rect height="33" width="153.78125" y="-16.5" x="-76.890625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-69.390625, -9)" style="" class="label"><rect/><foreignObject height="18" width="138.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">AdaptationPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1802.5)" data-id="PlaybackPackage" data-node="true" id="flowchart-PlaybackPackage-23" class="node default default flowchart-label"><rect height="33" width="142.1875" y="-16.5" x="-71.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-63.59375, -9)" style="" class="label"><rect/><foreignObject height="18" width="127.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1885.5)" data-id="PlaybackApiPackage" data-node="true" id="flowchart-PlaybackApiPackage-24" class="node default default flowchart-label"><rect height="33" width="165.3125" y="-16.5" x="-82.65625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-75.15625, -9)" style="" class="label"><rect/><foreignObject height="18" width="150.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackApiPackage</span></div></foreignObject></g></g><g transform="translate(155.9765625, 1968.5)" data-id="ViewModePackage" data-node="true" id="flowchart-ViewModePackage-25" class="node default default flowchart-label"><rect height="33" width="151.6875" y="-16.5" x="-75.84375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-68.34375, -9)" style="" class="label"><rect/><foreignObject height="18" width="136.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">ViewModePackage</span></div></foreignObject></g></g></g></g><g transform="translate(180.9765625, 2121.5)" data-id="TvPackage" data-node="true" id="flowchart-TvPackage-1" class="node default default flowchart-label"><rect height="33" width="95.046875" y="-16.5" x="-47.5234375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-40.0234375, -9)" style="" class="label"><rect/><foreignObject height="18" width="80.046875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">TvPackage</span></div></foreignObject></g></g></g></g><g transform="translate(172.9765625, 2249.5)" data-id="Hls.bundle" data-node="true" id="flowchart-Hls.bundle-27" class="node default default flowchart-label"><rect height="33" width="90.609375" y="-16.5" x="-45.3046875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-37.8046875, -9)" style="" class="label"><rect/><foreignObject height="18" width="75.609375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Hls.bundle</span></div></foreignObject></g></g></g></g></g></svg>
10
10
  */
11
11
  import type { HlsBundleApi } from './Hls.bundle';
12
12
  import type { PlayerConfig } from './Types';
@@ -0,0 +1,4 @@
1
+ export declare enum AdaptationAlgorithm {
2
+ Wish = "wish",
3
+ Default = "default"
4
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum StartupQuality {
2
+ Lowest = "lowest",
3
+ Middle = "middle",
4
+ Highest = "highest"
5
+ }
@@ -1,9 +1,10 @@
1
1
  import type { ContextHaving, ContextUsing } from '../../../framework-types/execution-context/Types';
2
2
  import type { BundleExportNames, PlayerConfig } from '../../bundles/Types';
3
+ import type { Constants } from '../core/Constants';
3
4
  import type { MetricsAtom } from '../core/metrics/MetricsAtom';
4
5
  import type { StoreEffectFactory } from '../core/state/StoreEffectFactory';
5
6
  import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../core/Types';
6
- import type { PlaybackStatePackageExports } from '../playback/playback-state/Types';
7
+ import type { MediaStatePackageExports } from '../media-state/Types';
7
8
  import type { SourceStateAtom } from '../source/atoms/SourceStateAtom';
8
9
  import type { SourceExportNames } from '../source/Types';
9
10
  import type { StreamDataStructureSegments } from '../stream-data-structure/segment/Exports';
@@ -13,17 +14,11 @@ import type { StreamingState } from '../streaming/Types';
13
14
  import type { ContextWithState } from '../Types';
14
15
  import type { AdaptationStateAtom } from './AdaptationStateAtom';
15
16
  import type { AdaptationTask } from './AdaptationTask';
17
+ import type { StartupQuality } from './StartupQuality';
16
18
  import type { QualityFunction, WishConfig } from './WishConfigAtom';
17
19
  import type { WishDataAtom } from './WishDataAtom';
18
- export declare enum StartupQuality {
19
- Lowest = "lowest",
20
- Middle = "middle",
21
- Highest = "highest"
22
- }
23
- export declare enum AdaptationAlgorithm {
24
- Wish = "wish",
25
- Default = "default"
26
- }
20
+ export type { AdaptationAlgorithm } from './AdaptationAlgorithm';
21
+ export type { StartupQuality } from './StartupQuality';
27
22
  export type AdaptationInitialConfig = Partial<WishConfig> & {
28
23
  startupQuality?: StartupQuality;
29
24
  };
@@ -51,10 +46,11 @@ export type AdaptationExports = {
51
46
  };
52
47
  export type AdaptationDependencies = {
53
48
  [CoreExportNames.CoreEffects]: CoreEffects;
49
+ [CoreExportNames.Constants]: Constants;
54
50
  [SourceExportNames.SourceState]: SourceStateAtom;
55
51
  [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
56
52
  [BundleExportNames.PlayerConfig]: PlayerConfig;
57
- } & StreamDataStructureSegments & StreamDataStructureTracks & StreamingState & PlaybackStatePackageExports;
53
+ } & StreamDataStructureSegments & StreamDataStructureTracks & StreamingState & MediaStatePackageExports;
58
54
  export type AdaptationPackageContext = ContextUsing<[
59
55
  StoreEffectFactory<'adaptationData', WishDataAtom>,
60
56
  StoreEffectFactory<'adaptationState', AdaptationStateAtom>
@@ -1,5 +1,12 @@
1
+ import type { ContextHaving } from '../../../framework-types/execution-context/Types';
2
+ import type { EmptyObject } from '../../Types';
3
+ import type { RingBufferAtom } from '../core/state/RingBufferAtom';
4
+ import type { CoreStateAtoms } from '../core/Types';
5
+ import { CoreExportNames } from '../core/Types';
1
6
  import type { ContextWithState } from '../Types';
2
- import type { RingBufferAtom } from './RingBufferAtom';
7
+ type WishDataAtomContext = ContextHaving<{
8
+ [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
9
+ }, EmptyObject, ContextWithState>;
3
10
  interface WishData {
4
11
  weights: [number, number, number];
5
12
  selectedQualityHistory: RingBufferAtom<number>;
@@ -7,7 +14,7 @@ interface WishData {
7
14
  declare function setWeights(data: WishData, weights: WishData['weights']): boolean;
8
15
  declare function updateHistory(data: WishData, selectedQuality: number): boolean;
9
16
  export type WishDataAtom = ReturnType<typeof createWishDataAtom>;
10
- export declare function createWishDataAtom(context: ContextWithState): import("../core/state/Types").StateAtom<WishData, {
17
+ export declare function createWishDataAtom(context: WishDataAtomContext): import("../core/state/Types").StateAtom<WishData, {
11
18
  setWeights: typeof setWeights;
12
19
  updateHistory: typeof updateHistory;
13
20
  }>;
@@ -2,7 +2,7 @@
2
2
  * @packageDocumentation Advertising.package
3
3
  *
4
4
  * Bundle package that composes the three advertising sub-packages:
5
- * - AdvertisingBase: state atoms for ad breaks, active ads, etc.
5
+ * - AdvertisingBase: state atoms for ad pods, active ads, etc.
6
6
  * - AdvertisingApi: public API (schedule, discard, list, skip, events)
7
7
  * - AdvertisingBitmovin: VAST/VMAP fetching, scheduling, and playback
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * @packageDocumentation AdvertisingApi.package
3
3
  *
4
4
  * Advertising API package exposes the advertising API on the source API,
5
- * including schedule, discardAdBreak, list, skip, active state, and event bus.
5
+ * including schedule, discardAdPod, list, skip, active state, and event bus.
6
6
  *
7
7
  * ### `AdvertisingApi` Package Dependency Graph
8
8
  * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 16 16" style="max-width: 16px; 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"/><g class="edgeLabels"/><g class="nodes"/></g></g></svg>
@@ -1,16 +1,29 @@
1
- import type { AdQuartile } from '../base/Types';
2
- import type { Ad, AdBreak } from './Types';
1
+ import type { AdQuartile } from '../base/AdQuartile';
2
+ import type { Ad, AdBreak, AdPod } from './Types';
3
3
  export declare enum AdvertisingEvent {
4
+ AdBreakAdded = "ad-break-added",
5
+ AdBreakChanged = "ad-break-changed",
6
+ AdBreakRemoved = "ad-break-removed",
4
7
  AdBreakStarted = "ad-break-started",
5
8
  AdBreakError = "ad-break-error",
6
9
  AdBreakFinished = "ad-break-finished",
10
+ AdPodAdded = "ad-pod-added",
11
+ AdPodRemoved = "ad-pod-removed",
12
+ AdPodLoaded = "ad-pod-loaded",
13
+ AdPodStarted = "ad-pod-started",
14
+ AdPodError = "ad-pod-error",
15
+ AdPodFinished = "ad-pod-finished",
7
16
  AdStarted = "ad-started",
8
17
  AdFinished = "ad-finished",
9
- AdSkippable = "ad-skippable",
18
+ AdSkippableStateChanged = "ad-skippable-state-changed",
10
19
  AdSkipped = "ad-skipped",
11
20
  AdError = "ad-error",
12
21
  AdClicked = "ad-clicked",
13
- AdQuartile = "ad-quartile"
22
+ AdQuartile = "ad-quartile",
23
+ AdPlaying = "ad-playing",
24
+ AdPaused = "ad-paused",
25
+ AdProgress = "ad-progress",
26
+ AdVolumeChanged = "ad-volume-changed"
14
27
  }
15
28
  export type AdBreakEvent = {
16
29
  adBreak: AdBreak;
@@ -18,7 +31,13 @@ export type AdBreakEvent = {
18
31
  export type AdBreakErrorEvent = AdBreakEvent & {
19
32
  error: Error;
20
33
  };
21
- export type AdEvent = AdBreakEvent & {
34
+ export type AdPodEvent = {
35
+ adPod: AdPod;
36
+ };
37
+ export type AdPodErrorEvent = AdPodEvent & {
38
+ error: Error;
39
+ };
40
+ export type AdEvent = AdPodEvent & {
22
41
  ad: Ad;
23
42
  };
24
43
  export type AdErrorEvent = AdEvent & {
@@ -30,15 +49,35 @@ export type AdQuartileEvent = AdEvent & {
30
49
  export type AdClickedEvent = AdEvent & {
31
50
  clickThroughUrl: string;
32
51
  };
52
+ export type AdProgressEvent = AdEvent & {
53
+ currentTime: number;
54
+ duration: number;
55
+ };
56
+ export type AdVolumeChangedEvent = AdEvent & {
57
+ volume: number;
58
+ };
33
59
  export type AdvertisingEventMap = {
60
+ [AdvertisingEvent.AdBreakAdded]: AdBreakEvent;
61
+ [AdvertisingEvent.AdBreakChanged]: AdBreakEvent;
62
+ [AdvertisingEvent.AdBreakRemoved]: AdBreakEvent;
34
63
  [AdvertisingEvent.AdBreakStarted]: AdBreakEvent;
35
64
  [AdvertisingEvent.AdBreakError]: AdBreakErrorEvent;
36
65
  [AdvertisingEvent.AdBreakFinished]: AdBreakEvent;
66
+ [AdvertisingEvent.AdPodAdded]: AdPodEvent;
67
+ [AdvertisingEvent.AdPodRemoved]: AdPodEvent;
68
+ [AdvertisingEvent.AdPodLoaded]: AdPodEvent;
69
+ [AdvertisingEvent.AdPodStarted]: AdPodEvent;
70
+ [AdvertisingEvent.AdPodError]: AdPodErrorEvent;
71
+ [AdvertisingEvent.AdPodFinished]: AdPodEvent;
37
72
  [AdvertisingEvent.AdStarted]: AdEvent;
38
73
  [AdvertisingEvent.AdFinished]: AdEvent;
39
- [AdvertisingEvent.AdSkippable]: AdEvent;
74
+ [AdvertisingEvent.AdSkippableStateChanged]: AdEvent;
40
75
  [AdvertisingEvent.AdSkipped]: AdEvent;
41
76
  [AdvertisingEvent.AdError]: AdErrorEvent;
42
77
  [AdvertisingEvent.AdClicked]: AdClickedEvent;
43
78
  [AdvertisingEvent.AdQuartile]: AdQuartileEvent;
79
+ [AdvertisingEvent.AdPlaying]: AdEvent;
80
+ [AdvertisingEvent.AdPaused]: AdEvent;
81
+ [AdvertisingEvent.AdProgress]: AdProgressEvent;
82
+ [AdvertisingEvent.AdVolumeChanged]: AdVolumeChangedEvent;
44
83
  };
@@ -1,5 +1,10 @@
1
1
  import type { EventBus } from '../../event-bus/Types';
2
- import type { AdType, BaseAdBreakState, BaseAdState } from '../base/Types';
2
+ import type { AdExtension } from '../base/AdExtension';
3
+ import type { AdIconHorizontalPosition, AdIconVerticalPosition } from '../base/AdIconPosition';
4
+ import type { AdResource } from '../base/AdResource';
5
+ import type { AdType } from '../base/AdType';
6
+ import type { BaseAdPodState } from '../base/BaseAdPodState';
7
+ import type { BaseAdState } from '../base/BaseAdState';
3
8
  import type { AdvertisingEventMap } from './AdvertisingEvents';
4
9
  export type AdTagConfig = {
5
10
  type: AdType;
@@ -9,41 +14,135 @@ export type PreloadConfig = {
9
14
  adManifestPreloadOffset?: number;
10
15
  adSourcePreloadOffset?: number;
11
16
  };
12
- export type AdBreakConfig = {
17
+ export type AdConfig = {
13
18
  id?: string;
14
19
  tag: AdTagConfig;
15
20
  position?: number | string;
16
21
  preloadConfig?: PreloadConfig;
17
22
  };
18
- export type Ad = {
23
+ export type ClickThrough = {
24
+ readonly url: string;
25
+ reportClicked(): void;
26
+ };
27
+ export type CompanionAd = {
28
+ readonly id: string;
29
+ readonly width: number;
30
+ readonly height: number;
31
+ readonly resource: AdResource;
32
+ readonly altText?: string;
33
+ readonly clickThrough?: ClickThrough;
34
+ reportShown(): void;
35
+ };
36
+ export type AdIcon = {
37
+ readonly program: string;
38
+ readonly width: number;
39
+ readonly height: number;
40
+ readonly xPosition: number | AdIconHorizontalPosition;
41
+ readonly yPosition: number | AdIconVerticalPosition;
42
+ readonly offset?: number;
43
+ readonly duration?: number;
44
+ readonly resource: AdResource;
45
+ readonly clickThrough?: ClickThrough;
46
+ };
47
+ type AdBase = {
19
48
  readonly id: string;
20
- readonly skippable: boolean;
49
+ readonly externalAdId: string;
21
50
  readonly skipDelay: number;
22
51
  readonly state: BaseAdState;
23
52
  readonly position: number;
53
+ readonly isLinear: boolean;
54
+ readonly error?: Error;
55
+ readonly clickThrough?: ClickThrough;
56
+ readonly companions: readonly CompanionAd[];
57
+ readonly icons: readonly AdIcon[];
58
+ readonly extensions: readonly AdExtension[];
59
+ readonly canPause: boolean;
60
+ readonly canSkip: boolean;
61
+ readonly canSetVolume: boolean;
62
+ readonly canExpand: boolean;
63
+ readonly hasTimeline: boolean;
24
64
  };
25
- export type AdBreak = {
65
+ type CanPause = {
66
+ readonly canPause: true;
67
+ readonly paused: boolean;
68
+ play(): void;
69
+ pause(): void;
70
+ };
71
+ type CannotPause = {
72
+ readonly canPause: false;
73
+ };
74
+ type CanSkip = {
75
+ readonly canSkip: true;
76
+ skip(): void;
77
+ };
78
+ type CannotSkip = {
79
+ readonly canSkip: false;
80
+ };
81
+ type CanSetVolume = {
82
+ readonly canSetVolume: true;
83
+ volume: number;
84
+ };
85
+ type CannotSetVolume = {
86
+ readonly canSetVolume: false;
87
+ };
88
+ type CanExpand = {
89
+ readonly canExpand: true;
90
+ expanded: boolean;
91
+ };
92
+ type CannotExpand = {
93
+ readonly canExpand: false;
94
+ };
95
+ type HasTimeline = {
96
+ readonly hasTimeline: true;
97
+ readonly duration: number;
98
+ readonly currentTime: number;
99
+ };
100
+ type NoTimeline = {
101
+ readonly hasTimeline: false;
102
+ };
103
+ export type Ad = AdBase & (CanPause | CannotPause) & (CanSkip | CannotSkip) & (CanSetVolume | CannotSetVolume) & (CanExpand | CannotExpand) & (HasTimeline | NoTimeline);
104
+ export type PausableAd = Ad & CanPause;
105
+ export type SkippableAd = Ad & CanSkip;
106
+ export type VolumeControllableAd = Ad & CanSetVolume;
107
+ export type ExpandableAd = Ad & CanExpand;
108
+ export type TimedAd = Ad & HasTimeline;
109
+ export type AdPod = {
26
110
  readonly id: string;
27
111
  readonly position: number;
28
112
  readonly ads: Ad[];
29
- readonly state: BaseAdBreakState;
113
+ readonly state: BaseAdPodState;
114
+ };
115
+ export declare enum AdBreakState {
116
+ Scheduled = "scheduled",
117
+ Playing = "playing",
118
+ Error = "error",
119
+ Completed = "completed"
120
+ }
121
+ export type AdBreak = {
122
+ readonly id: string;
123
+ readonly position: number;
124
+ readonly state: AdBreakState;
125
+ readonly adPods: AdPod[];
30
126
  };
31
127
  export type ContentSourceAdvertisingApi = {
32
128
  readonly isAd: false;
33
129
  readonly isLinearAdActive: boolean;
34
- schedule(adBreak: AdBreakConfig): AdBreak;
35
- discardAdBreak(adBreak: AdBreak): void;
130
+ schedule(config: AdConfig): AdPod;
131
+ discard(adPodOrAdBreak: AdPod | AdBreak): void;
36
132
  list(): AdBreak[];
37
133
  getActiveAdBreak(): AdBreak | undefined;
134
+ getActiveAdPod(): AdPod | undefined;
38
135
  getActiveAd(): Ad | undefined;
39
136
  };
40
- export type AdSourceAdvertisingApi = {
137
+ type AdSourceAdvertisingApiBase = {
41
138
  readonly isAd: true;
42
- readonly isSkippable: boolean;
43
139
  readonly skipDelay: number;
44
- skip(): void;
140
+ readonly id: string;
141
+ readonly externalAdId: string;
45
142
  };
143
+ export type AdSourceAdvertisingApi = AdSourceAdvertisingApiBase & (CanSkip | CannotSkip);
46
144
  export type AdvertisingApi = {
47
145
  ads: ContentSourceAdvertisingApi | AdSourceAdvertisingApi;
48
146
  events: EventBus<AdvertisingEventMap>;
49
147
  };
148
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { ContextWithState } from '../../../Types';
2
+ import type { AdIconAtom } from '../../base/AdIconAtom';
3
+ import type { BaseAdAtom } from '../../base/BaseAdAtom';
4
+ import type { BaseAdPodAtom } from '../../base/BaseAdPodAtom';
5
+ import type { ClickThroughAtom } from '../../base/ClickThroughAtom';
6
+ import type { CompanionAdAtom } from '../../base/CompanionAdAtom';
7
+ import type { AdBreakAtom } from '../content-source/AdBreakAtom';
8
+ import type { Ad, AdBreak, AdIcon, AdPod, ClickThrough, CompanionAd } from '../Types';
9
+ type ValueFor<K> = K extends BaseAdAtom ? Ad : K extends BaseAdPodAtom ? AdPod : K extends AdBreakAtom ? AdBreak : K extends ClickThroughAtom ? ClickThrough : K extends CompanionAdAtom ? CompanionAd : K extends AdIconAtom ? AdIcon : never;
10
+ export type AdApiCache = {
11
+ getOrCreate<K extends object>(key: K, factory: (context: ContextWithState) => ValueFor<K>): ValueFor<K>;
12
+ };
13
+ export declare function createAdApiCache(context: ContextWithState): AdApiCache;
14
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
2
+ import type { ArrayAtom } from '../../../core/state/ArrayStateAtom';
3
+ import type { PrimitiveAtom } from '../../../core/state/PrimitiveAtom';
4
+ import type { StateAtom } from '../../../core/state/Types';
5
+ import type { BaseAdPodAtom } from '../../base/BaseAdPodAtom';
6
+ import { AdBreakState } from '../Types';
7
+ import type { ContentSourceAdApiContext } from './Types';
8
+ type AdBreak = {
9
+ id: string;
10
+ position: number;
11
+ state: PrimitiveAtom<AdBreakState>;
12
+ adPods: ArrayAtom<BaseAdPodAtom>;
13
+ error: PrimitiveAtom<Error | undefined>;
14
+ };
15
+ export type AdBreakAtom = StateAtom<AdBreak, EmptyObject>;
16
+ export declare function createAdBreakAtom(context: ContentSourceAdApiContext, position: number, ...initialAdPods: BaseAdPodAtom[]): AdBreakAtom;
17
+ export declare function findAdBreakAtPosition(adBreaks: ArrayAtom<AdBreakAtom>, position: number): AdBreakAtom | undefined;
18
+ export declare function findAdBreakContainingPod(adBreaks: ArrayAtom<AdBreakAtom>, adPod: BaseAdPodAtom): AdBreakAtom | undefined;
19
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { ApiManager } from '../../../../../framework-types/api-manager/ApiManager';
2
+ import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
3
+ import type { ContextHaving, ContextUsing } from '../../../../../framework-types/execution-context/Types';
4
+ import type { StoreEffectFactory } from '../../../core/state/StoreEffectFactory';
5
+ import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
6
+ import type { CoreUtils } from '../../../core/utils/Types';
7
+ import type { extendEventBusTypes } from '../../../event-bus/EventBus';
8
+ import type { EventBus, EventBusExportNames } from '../../../event-bus/Types';
9
+ import type { SourceStateAtom } from '../../../source/atoms/SourceStateAtom';
10
+ import type { SourceExportNames } from '../../../source/Types';
11
+ import type { SourcesApiExportNames } from '../../../sources-api/Types';
12
+ import type { ContextWithState } from '../../../Types';
13
+ import type { isAdPositionKnown } from '../../base/AdPosition';
14
+ import type { createBaseAdPodAtom } from '../../base/BaseAdPodAtom';
15
+ import type { BaseAdPodState } from '../../base/BaseAdPodState';
16
+ import type { BaseAdState } from '../../base/BaseAdState';
17
+ import type { AdvertisingBaseExportNames, ContentSourceAdExports } from '../../base/Types';
18
+ import type { AdvertisingEventMap } from '../AdvertisingEvents';
19
+ import type { AdApiCache } from '../api-conversion/AdApiCache';
20
+ import type { ContentSourceAdvertisingApi } from '../Types';
21
+ export type ContentSourceAdvertisingApiDependencies = {
22
+ [CoreExportNames.CoreEffects]: CoreEffects;
23
+ [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
24
+ [CoreExportNames.Utils]: CoreUtils;
25
+ [EventBusExportNames.ExtendEventBusTypes]: typeof extendEventBusTypes;
26
+ [SourcesApiExportNames.SourceApiManager]: ApiManager<{
27
+ ads: ContentSourceAdvertisingApi;
28
+ }>;
29
+ [SourcesApiExportNames.SourceEventBus]: EventBus<AdvertisingEventMap>;
30
+ [AdvertisingBaseExportNames.CreateBaseAdPod]: typeof createBaseAdPodAtom;
31
+ [AdvertisingBaseExportNames.BaseAdPodState]: typeof BaseAdPodState;
32
+ [AdvertisingBaseExportNames.BaseAdState]: typeof BaseAdState;
33
+ [AdvertisingBaseExportNames.IsAdPositionKnown]: typeof isAdPositionKnown;
34
+ [SourceExportNames.SourceState]: SourceStateAtom;
35
+ } & ContentSourceAdExports;
36
+ export type ContentSourceAdApiContext = ContextHaving<ContentSourceAdvertisingApiDependencies, EmptyObject, ContextUsing<[StoreEffectFactory<'adApiCache', AdApiCache>], ContextWithState>>;
@@ -0,0 +1,11 @@
1
+ export declare enum AdExtensionSource {
2
+ Ad = "ad",
3
+ Creative = "creative"
4
+ }
5
+ export type AdExtension = {
6
+ readonly source: AdExtensionSource;
7
+ readonly name: string;
8
+ readonly value: string | undefined;
9
+ readonly attributes: Readonly<Record<string, string>>;
10
+ readonly children: readonly AdExtension[];
11
+ };
@@ -0,0 +1,20 @@
1
+ import type { EmptyObject } from '../../../../framework-types/BaseTypes';
2
+ import type { StateAtom } from '../../core/state/Types';
3
+ import type { AdIconHorizontalPosition, AdIconVerticalPosition } from './AdIconPosition';
4
+ import type { AdResource } from './AdResource';
5
+ import type { ClickThroughAtom } from './ClickThroughAtom';
6
+ import type { AdvertisingBaseContext } from './Types';
7
+ type AdIconState = {
8
+ program: string;
9
+ width: number;
10
+ height: number;
11
+ xPosition: number | AdIconHorizontalPosition;
12
+ yPosition: number | AdIconVerticalPosition;
13
+ offset: number | undefined;
14
+ duration: number | undefined;
15
+ resource: AdResource;
16
+ clickThrough: ClickThroughAtom | undefined;
17
+ };
18
+ export type AdIconAtom = StateAtom<AdIconState, EmptyObject>;
19
+ export declare function createAdIconAtom(context: AdvertisingBaseContext, data: AdIconState): AdIconAtom;
20
+ export {};
@@ -0,0 +1,8 @@
1
+ export declare enum AdIconHorizontalPosition {
2
+ Left = "left",
3
+ Right = "right"
4
+ }
5
+ export declare enum AdIconVerticalPosition {
6
+ Top = "top",
7
+ Bottom = "bottom"
8
+ }
@@ -1,4 +1,5 @@
1
1
  export declare const AdPositionNotYetKnown: unique symbol;
2
2
  export type AdPosition = (contentDuration: number) => typeof AdPositionNotYetKnown | number;
3
+ export declare function isAdPositionKnown(position: typeof AdPositionNotYetKnown | number): position is number;
3
4
  export declare function resolveAdPosition(position: unknown, contentDuration: number): number | typeof AdPositionNotYetKnown;
4
5
  export declare function createAdPosition(configuredPosition?: string | number): AdPosition;