rx-player 4.2.0-dev.2024090500 → 4.2.0-dev.2024091000

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 (88) hide show
  1. package/CHANGELOG.md +5 -2
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  5. package/dist/commonjs/compat/browser_detection.d.ts +3 -1
  6. package/dist/commonjs/compat/browser_detection.d.ts.map +1 -1
  7. package/dist/commonjs/compat/browser_detection.js +7 -1
  8. package/dist/commonjs/compat/can_reuse_media_keys.d.ts +4 -0
  9. package/dist/commonjs/compat/can_reuse_media_keys.d.ts.map +1 -1
  10. package/dist/commonjs/compat/can_reuse_media_keys.js +5 -1
  11. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts +12 -0
  12. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  13. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +27 -1
  14. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +24 -0
  15. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  16. package/dist/commonjs/core/fetchers/segment/segment_queue.d.ts.map +1 -1
  17. package/dist/commonjs/core/fetchers/segment/segment_queue.js +8 -7
  18. package/dist/commonjs/core/main/worker/worker_main.js +4 -0
  19. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
  20. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +2 -2
  21. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  22. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +2 -2
  23. package/dist/commonjs/parsers/manifest/dash/common/resolve_base_urls.js +2 -2
  24. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +2 -2
  25. package/dist/commonjs/parsers/manifest/smooth/create_parser.js +2 -2
  26. package/dist/commonjs/transports/dash/construct_segment_url.js +2 -2
  27. package/dist/commonjs/transports/smooth/utils.js +2 -2
  28. package/dist/commonjs/utils/logger.d.ts.map +1 -1
  29. package/dist/commonjs/utils/logger.js +6 -7
  30. package/dist/commonjs/utils/{resolve_url.d.ts → url-utils.d.ts} +15 -4
  31. package/dist/commonjs/utils/url-utils.d.ts.map +1 -0
  32. package/dist/commonjs/utils/{resolve_url.js → url-utils.js} +71 -2
  33. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  34. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  35. package/dist/es2017/compat/browser_detection.d.ts +3 -1
  36. package/dist/es2017/compat/browser_detection.d.ts.map +1 -1
  37. package/dist/es2017/compat/browser_detection.js +10 -1
  38. package/dist/es2017/compat/can_reuse_media_keys.d.ts +4 -0
  39. package/dist/es2017/compat/can_reuse_media_keys.d.ts.map +1 -1
  40. package/dist/es2017/compat/can_reuse_media_keys.js +6 -2
  41. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts +12 -0
  42. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  43. package/dist/es2017/core/cmcd/cmcd_data_builder.js +27 -1
  44. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +24 -0
  45. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  46. package/dist/es2017/core/fetchers/segment/segment_queue.d.ts.map +1 -1
  47. package/dist/es2017/core/fetchers/segment/segment_queue.js +8 -7
  48. package/dist/es2017/core/main/worker/worker_main.js +4 -0
  49. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
  50. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +2 -2
  51. package/dist/es2017/main_thread/api/public_api.js +2 -2
  52. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +1 -1
  53. package/dist/es2017/parsers/manifest/dash/common/resolve_base_urls.js +1 -1
  54. package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +1 -1
  55. package/dist/es2017/parsers/manifest/smooth/create_parser.js +1 -1
  56. package/dist/es2017/transports/dash/construct_segment_url.js +1 -1
  57. package/dist/es2017/transports/smooth/utils.js +1 -1
  58. package/dist/es2017/utils/logger.d.ts.map +1 -1
  59. package/dist/es2017/utils/logger.js +6 -7
  60. package/dist/es2017/utils/{resolve_url.d.ts → url-utils.d.ts} +15 -4
  61. package/dist/es2017/utils/url-utils.d.ts.map +1 -0
  62. package/dist/es2017/utils/{resolve_url.js → url-utils.js} +71 -3
  63. package/dist/rx-player.js +253 -181
  64. package/dist/rx-player.min.js +18 -18
  65. package/dist/worker.js +8 -8
  66. package/package.json +5 -12
  67. package/src/README.md +7 -7
  68. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  69. package/src/compat/__tests__/can_reuse_media_keys.test.ts +24 -1
  70. package/src/compat/browser_detection.ts +13 -4
  71. package/src/compat/can_reuse_media_keys.ts +6 -2
  72. package/src/core/cmcd/cmcd_data_builder.ts +68 -2
  73. package/src/core/fetchers/segment/segment_fetcher.ts +24 -0
  74. package/src/core/fetchers/segment/segment_queue.ts +11 -9
  75. package/src/core/main/worker/worker_main.ts +4 -0
  76. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +8 -2
  77. package/src/main_thread/api/public_api.ts +2 -2
  78. package/src/parsers/manifest/dash/common/parse_mpd.ts +1 -1
  79. package/src/parsers/manifest/dash/common/resolve_base_urls.ts +1 -1
  80. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +1 -1
  81. package/src/parsers/manifest/smooth/create_parser.ts +1 -1
  82. package/src/transports/dash/construct_segment_url.ts +1 -1
  83. package/src/transports/smooth/utils.ts +1 -1
  84. package/src/utils/__tests__/{resolve_url.test.ts → url-utils.test.ts} +148 -1
  85. package/src/utils/logger.ts +6 -7
  86. package/src/utils/{resolve_url.ts → url-utils.ts} +83 -5
  87. package/dist/commonjs/utils/resolve_url.d.ts.map +0 -1
  88. package/dist/es2017/utils/resolve_url.d.ts.map +0 -1
@@ -45,5 +45,7 @@ declare let isPlayStation4: boolean;
45
45
  declare let isPlayStation5: boolean;
46
46
  /** `true` for the Xbox game consoles. */
47
47
  declare let isXbox: boolean;
48
- export { isEdgeChromium, isIE11, isIEOrEdge, isFirefox, isPanasonic, isPhilipsNetTv, isPlayStation4, isPlayStation5, isXbox, isSafariDesktop, isSafariMobile, isSamsungBrowser, isTizen, isWebOs, isWebOs2021, isWebOs2022, };
48
+ /** `true` for specific A1 STB: KSTB 40xx from Kaon Media. */
49
+ declare let isA1KStb40xx: boolean;
50
+ export { isEdgeChromium, isFirefox, isIE11, isIEOrEdge, isSafariDesktop, isSafariMobile, isA1KStb40xx, isPanasonic, isPhilipsNetTv, isPlayStation4, isPlayStation5, isSamsungBrowser, isTizen, isWebOs, isWebOs2021, isWebOs2022, isXbox, };
49
51
  //# sourceMappingURL=browser_detection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser_detection.d.ts","sourceRoot":"","sources":["../../../src/compat/browser_detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,8CAA8C;AAC9C,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,qCAAqC;AACrC,QAAA,IAAI,MAAM,SAAQ,CAAC;AAEnB,4EAA4E;AAC5E,QAAA,IAAI,UAAU,SAAQ,CAAC;AAEvB,wCAAwC;AACxC,QAAA,IAAI,SAAS,SAAQ,CAAC;AAEtB,sEAAsE;AACtE,QAAA,IAAI,eAAe,SAAQ,CAAC;AAE5B,0DAA0D;AAC1D,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,wCAAwC;AACxC,QAAA,IAAI,gBAAgB,SAAQ,CAAC;AAE7B,kEAAkE;AAClE,QAAA,IAAI,OAAO,SAAQ,CAAC;AAEpB,6DAA6D;AAC7D,QAAA,IAAI,OAAO,SAAQ,CAAC;AAEpB,kDAAkD;AAClD,QAAA,IAAI,WAAW,SAAQ,CAAC;AAExB,kDAAkD;AAClD,QAAA,IAAI,WAAW,SAAQ,CAAC;AAExB,oCAAoC;AACpC,QAAA,IAAI,WAAW,SAAQ,CAAC;AAExB,uDAAuD;AACvD,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,iDAAiD;AACjD,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,iDAAiD;AACjD,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,yCAAyC;AACzC,QAAA,IAAI,MAAM,SAAQ,CAAC;AA6FnB,OAAO,EACL,cAAc,EACd,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"browser_detection.d.ts","sourceRoot":"","sources":["../../../src/compat/browser_detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,8CAA8C;AAC9C,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,qCAAqC;AACrC,QAAA,IAAI,MAAM,SAAQ,CAAC;AAEnB,4EAA4E;AAC5E,QAAA,IAAI,UAAU,SAAQ,CAAC;AAEvB,wCAAwC;AACxC,QAAA,IAAI,SAAS,SAAQ,CAAC;AAEtB,sEAAsE;AACtE,QAAA,IAAI,eAAe,SAAQ,CAAC;AAE5B,0DAA0D;AAC1D,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,wCAAwC;AACxC,QAAA,IAAI,gBAAgB,SAAQ,CAAC;AAE7B,kEAAkE;AAClE,QAAA,IAAI,OAAO,SAAQ,CAAC;AAEpB,6DAA6D;AAC7D,QAAA,IAAI,OAAO,SAAQ,CAAC;AAEpB,kDAAkD;AAClD,QAAA,IAAI,WAAW,SAAQ,CAAC;AAExB,kDAAkD;AAClD,QAAA,IAAI,WAAW,SAAQ,CAAC;AAExB,oCAAoC;AACpC,QAAA,IAAI,WAAW,SAAQ,CAAC;AAExB,uDAAuD;AACvD,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,iDAAiD;AACjD,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,iDAAiD;AACjD,QAAA,IAAI,cAAc,SAAQ,CAAC;AAE3B,yCAAyC;AACzC,QAAA,IAAI,MAAM,SAAQ,CAAC;AAEnB,6DAA6D;AAC7D,QAAA,IAAI,YAAY,SAAQ,CAAC;AA+FzB,OAAO,EAEL,cAAc,EACd,SAAS,EACT,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EAGd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,EACX,MAAM,GACP,CAAC"}
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.isWebOs2022 = exports.isWebOs2021 = exports.isWebOs = exports.isTizen = exports.isSamsungBrowser = exports.isSafariMobile = exports.isSafariDesktop = exports.isXbox = exports.isPlayStation5 = exports.isPlayStation4 = exports.isPhilipsNetTv = exports.isPanasonic = exports.isFirefox = exports.isIEOrEdge = exports.isIE11 = exports.isEdgeChromium = void 0;
18
+ exports.isXbox = exports.isWebOs2022 = exports.isWebOs2021 = exports.isWebOs = exports.isTizen = exports.isSamsungBrowser = exports.isPlayStation5 = exports.isPlayStation4 = exports.isPhilipsNetTv = exports.isPanasonic = exports.isA1KStb40xx = exports.isSafariMobile = exports.isSafariDesktop = exports.isIEOrEdge = exports.isIE11 = exports.isFirefox = exports.isEdgeChromium = void 0;
19
19
  var global_scope_1 = require("../utils/global_scope");
20
20
  var is_node_1 = require("../utils/is_node");
21
21
  /** Edge Chromium, regardless of the device */
@@ -66,6 +66,9 @@ exports.isPlayStation5 = isPlayStation5;
66
66
  /** `true` for the Xbox game consoles. */
67
67
  var isXbox = false;
68
68
  exports.isXbox = isXbox;
69
+ /** `true` for specific A1 STB: KSTB 40xx from Kaon Media. */
70
+ var isA1KStb40xx = false;
71
+ exports.isA1KStb40xx = isA1KStb40xx;
69
72
  (function findCurrentBrowser() {
70
73
  var _a, _b, _c;
71
74
  if (is_node_1.default) {
@@ -148,4 +151,7 @@ exports.isXbox = isXbox;
148
151
  else if (navigator.userAgent.indexOf("Xbox") !== -1) {
149
152
  exports.isXbox = isXbox = true;
150
153
  }
154
+ else if (navigator.userAgent.indexOf("Model/a1-kstb40xx")) {
155
+ exports.isA1KStb40xx = isA1KStb40xx = true;
156
+ }
151
157
  })();
@@ -9,6 +9,10 @@
9
9
  * HTMLMediaElement.
10
10
  * - (2024-08-23): Seen on Philips 2024 and 2023 in:
11
11
  * https://github.com/canalplus/rx-player/issues/1464
12
+ * - (2024-09-04): Another case seen on an "A1" set-top box model made by
13
+ * Kaonmedia we will call the KSTB40xx.
14
+ * It may share the problematic with other devices, but we have only seen
15
+ * the problem on this one for now.
12
16
  *
13
17
  * @returns {boolean}
14
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"can_reuse_media_keys.d.ts","sourceRoot":"","sources":["../../../src/compat/can_reuse_media_keys.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,OAAO,CAEnD"}
1
+ {"version":3,"file":"can_reuse_media_keys.d.ts","sourceRoot":"","sources":["../../../src/compat/can_reuse_media_keys.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,OAAO,CAEnD"}
@@ -13,9 +13,13 @@ var browser_detection_1 = require("./browser_detection");
13
13
  * HTMLMediaElement.
14
14
  * - (2024-08-23): Seen on Philips 2024 and 2023 in:
15
15
  * https://github.com/canalplus/rx-player/issues/1464
16
+ * - (2024-09-04): Another case seen on an "A1" set-top box model made by
17
+ * Kaonmedia we will call the KSTB40xx.
18
+ * It may share the problematic with other devices, but we have only seen
19
+ * the problem on this one for now.
16
20
  *
17
21
  * @returns {boolean}
18
22
  */
19
23
  function canReuseMediaKeys() {
20
- return !browser_detection_1.isWebOs && !browser_detection_1.isPhilipsNetTv && !browser_detection_1.isPanasonic;
24
+ return !browser_detection_1.isWebOs && !browser_detection_1.isPhilipsNetTv && !browser_detection_1.isPanasonic && !browser_detection_1.isA1KStb40xx;
21
25
  }
@@ -17,6 +17,18 @@ export interface ICmcdSegmentInfo {
17
17
  representation: IRepresentation;
18
18
  /** Segment metadata linked to the wanted segment. */
19
19
  segment: ISegment;
20
+ /**
21
+ * Optional next segment that may be requested after this one.
22
+ * Should only be set (to something else than `undefined`) if that following
23
+ * segment is part of the same `Representation`.
24
+ *
25
+ * This information is used to produce the "next object request" and "next
26
+ * range request" part of the CMCD payload, used for segment prefetching.
27
+ *
28
+ * If `null` no segment will be requested next for now.
29
+ * If `undefined` we do not know which next segment will be requested.
30
+ */
31
+ nextSegment: ISegment | null | undefined;
20
32
  }
21
33
  /**
22
34
  * Media playback observation's properties the `CmcdDataBuilder` wants to have
@@ -1 +1 @@
1
- {"version":3,"file":"cmcd_data_builder.d.ts","sourceRoot":"","sources":["../../../../src/core/cmcd/cmcd_data_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAejD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,UAAU,EAAE,WAAW,CAAC;IACxB,4DAA4D;IAC5D,cAAc,EAAE,eAAe,CAAC;IAChC,qDAAqD;IACrD,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C;;;OAGG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,iBAAiB,CAAwE;IACjG,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;OAIG;gBACS,OAAO,EAAE,YAAY;IAajC;;;;;;;;;OASG;IACI,uBAAuB,CAC5B,gBAAgB,EAAE,yBAAyB,CAAC,mCAAmC,CAAC,GAC/E,IAAI;IAcP;;;OAGG;IACI,sBAAsB,IAAI,IAAI;IAMrC;;;;;;OAMG;IACI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS;IAI7E;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;;;OAKG;IACI,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAoBlE;;;;;OAKG;IACI,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IA+F5E;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAkHxB"}
1
+ {"version":3,"file":"cmcd_data_builder.d.ts","sourceRoot":"","sources":["../../../../src/core/cmcd/cmcd_data_builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,eAAe,EACf,QAAQ,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAgBjD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,UAAU,EAAE,WAAW,CAAC;IACxB,4DAA4D;IAC5D,cAAc,EAAE,eAAe,CAAC;IAChC,qDAAqD;IACrD,OAAO,EAAE,QAAQ,CAAC;IAClB;;;;;;;;;;OAUG;IACH,WAAW,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C;;;OAGG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,iBAAiB,CAAwE;IACjG,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;OAIG;gBACS,OAAO,EAAE,YAAY;IAajC;;;;;;;;;OASG;IACI,uBAAuB,CAC5B,gBAAgB,EAAE,yBAAyB,CAAC,mCAAmC,CAAC,GAC/E,IAAI;IAcP;;;OAGG;IACI,sBAAsB,IAAI,IAAI;IAMrC;;;;;;OAMG;IACI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS;IAI7E;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;;;OAKG;IACI,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAoBlE;;;;;OAKG;IACI,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAyH5E;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAoHxB"}
@@ -15,6 +15,7 @@ var log_1 = require("../../log");
15
15
  var create_uuid_1 = require("../../utils/create_uuid");
16
16
  var is_null_or_undefined_1 = require("../../utils/is_null_or_undefined");
17
17
  var task_canceller_1 = require("../../utils/task_canceller");
18
+ var url_utils_1 = require("../../utils/url-utils");
18
19
  /**
19
20
  * `rtp`, for "REQUESTED_MAXIMUM_THROUGHPUT", indicates the maximum throughput
20
21
  * needed to load a given segment without experience degration.
@@ -156,7 +157,6 @@ var CmcdDataBuilder = /** @class */ (function () {
156
157
  var props = this._getCommonCmcdData(this._lastThroughput[content.adaptation.type]);
157
158
  props.br = Math.round(content.representation.bitrate / 1000);
158
159
  props.d = Math.round(content.segment.duration * 1000);
159
- // TODO nor (next object request) and nrr (next range request)
160
160
  switch (content.adaptation.type) {
161
161
  case "video":
162
162
  props.ot = "v";
@@ -171,6 +171,30 @@ var CmcdDataBuilder = /** @class */ (function () {
171
171
  if (content.segment.isInit) {
172
172
  props.ot = "i";
173
173
  }
174
+ if (!(0, is_null_or_undefined_1.default)(content.nextSegment) &&
175
+ content.segment.url !== null &&
176
+ content.nextSegment.url !== null) {
177
+ // We add a special case for some initialization segment which need
178
+ // multiple byte-ranges to fully request, as the `CmcdDataBuilder`
179
+ // is not supposed to keep track of how the requesting part of the
180
+ // RxPlayer actually perform its multi-byte-range requests
181
+ if (!content.nextSegment.isInit || content.nextSegment.indexRange === undefined) {
182
+ var currSegmentUrl = content.segment.url;
183
+ var nextSegmentUrl = content.nextSegment.url;
184
+ var relativeUrl = (0, url_utils_1.getRelativeUrl)(currSegmentUrl, nextSegmentUrl);
185
+ if (relativeUrl !== null) {
186
+ if (relativeUrl !== ".") {
187
+ props.nor = encodeURIComponent(relativeUrl);
188
+ }
189
+ if (content.nextSegment.range !== undefined) {
190
+ props.nrr = String(content.nextSegment.range[0]) + "-";
191
+ if (isFinite(content.nextSegment.range[1])) {
192
+ props.nrr += String(content.nextSegment.range[1]);
193
+ }
194
+ }
195
+ }
196
+ }
197
+ }
174
198
  var precizeBufferLengthMs;
175
199
  if (lastObservation !== undefined &&
176
200
  (props.ot === "v" || props.ot === "a" || props.ot === "av")) {
@@ -292,6 +316,8 @@ var CmcdDataBuilder = /** @class */ (function () {
292
316
  addNumberProperty("d", "object");
293
317
  addNumberProperty("dl", "request");
294
318
  addNumberProperty("mtp", "request");
319
+ addStringProperty("nor", "request");
320
+ addStringProperty("nrr", "request");
295
321
  addTokenProperty("ot", "object");
296
322
  addNumberProperty("pr", "session");
297
323
  addNumberProperty("rtp", "status");
@@ -70,11 +70,35 @@ export interface ISegmentFetcherCallbacks<TSegmentDataType> {
70
70
  }
71
71
  /** Content used by the segment loader as a context to load a new segment. */
72
72
  export interface ISegmentLoaderContent {
73
+ /** Manifest metadata linked to the wanted segment. */
73
74
  manifest: IManifest;
75
+ /** Period metadata linked to the wanted segment. */
74
76
  period: IPeriod;
77
+ /** Adaptation metadata linked to the wanted segment. */
75
78
  adaptation: IAdaptation;
79
+ /** Representation metadata linked to the wanted segment. */
76
80
  representation: IRepresentation;
81
+ /** Segment metadata linked to the wanted segment. */
77
82
  segment: ISegment;
83
+ /**
84
+ * Optional next segment that may be requested after this one.
85
+ * Should only be set (to something else than `undefined`) if that following
86
+ * segment is part of the same `Representation`.
87
+ *
88
+ * This is only used as an hint, finally requesting another segment after this
89
+ * one due to unexpected changes (e.g. bandwidth update, track change etc.) is
90
+ * OK.
91
+ *
92
+ * This information is then used mostly for matters related yet not required
93
+ * by requests, such as CMCD reporting. In scenarios when it's not
94
+ * straightforward to guess which segment will be requested after this one,
95
+ * this property can be ignored (set to `undefined`).
96
+ *
97
+ * If `null` no segment will be requested next for now.
98
+ *
99
+ * If `undefined` we do not know which next segment will be requested.
100
+ */
101
+ nextSegment: ISegment | null | undefined;
78
102
  }
79
103
  /**
80
104
  * Callbacks given when creating an `ISegmentFetcher`, allowing to be notified
@@ -1 +1 @@
1
- {"version":3,"file":"segment_fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/segment_fetcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,EACP,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAMV,6BAA6B,EAC7B,8BAA8B,EAC9B,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAC;AAQrD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,aAAa,EAAE,gBAAgB,EAAE,EAC5E,UAAU,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,GACf,EAAE,wBAAwB,CACzB,aAAa,EACb,gBAAgB,CACjB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAwSpC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,CAAC,gBAAgB,IAAI;AAC9C,yCAAyC;AACzC,OAAO,EAAE,qBAAqB;AAC9B,sEAAsE;AACtE,SAAS,EAAE,wBAAwB,CAAC,gBAAgB,CAAC;AACrD,yDAAyD;AACzD,kBAAkB,EAAE,kBAAkB,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;GAGG;AACH,MAAM,WAAW,wBAAwB,CAAC,gBAAgB;IACxD,uEAAuE;IACvE,OAAO,CACL,KAAK,EAAE,CACL,aAAa,EAAE,MAAM,GAAG,SAAS,KAE/B,6BAA6B,CAAC,gBAAgB,CAAC,GAC/C,8BAA8B,CAAC,gBAAgB,CAAC,GACnD,IAAI,CAAC;IAER;;;;;;OAMG;IACH,mBAAmB,IAAI,IAAI,CAAC;IAE5B;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,WAAW,CAAC;IACxB,cAAc,EAAE,eAAe,CAAC;IAChC,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,4CAA4C;IAC5C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAC7D,kFAAkF;IAClF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,+BAA+B,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACzD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACpD;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,EAC9C,QAAQ,EACR,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,sBAAsB,CAqBzB;AAED,MAAM,WAAW,wBAAwB,CAAC,aAAa,EAAE,gBAAgB;IACvE,0EAA0E;IAC1E,UAAU,EAAE,WAAW,CAAC;IACxB;;;OAGG;IACH,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC5D;;;;;;;OAOG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,cAAc,EAAE,iCAAiC,CAAC;IAClD;;;OAGG;IACH,cAAc,EAAE,sBAAsB,CAAC;CACxC"}
1
+ {"version":3,"file":"segment_fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/segment_fetcher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"segment_queue.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/segment_queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segment_queue.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/segment/segment_queue.ts"],"names":[],"mappings":"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"}
@@ -204,9 +204,10 @@ var SegmentQueue = /** @class */ (function (_super) {
204
204
  contentInfo.mediaSegmentRequest.canceller.cancel();
205
205
  }
206
206
  var downloadQueue = contentInfo.downloadQueue, content = contentInfo.content, initSegmentInfoRef = contentInfo.initSegmentInfoRef, currentCanceller = contentInfo.currentCanceller;
207
- var segmentQueue = downloadQueue.getValue().segmentQueue;
208
- var currentNeededSegment = segmentQueue[0];
209
- var recursivelyRequestSegments = function (startingSegment) {
207
+ var recursivelyRequestSegments = function () {
208
+ var _a;
209
+ var segmentQueue = downloadQueue.getValue().segmentQueue;
210
+ var startingSegment = segmentQueue[0];
210
211
  if (currentCanceller !== null && currentCanceller.isUsed()) {
211
212
  contentInfo.mediaSegmentRequest = null;
212
213
  return;
@@ -221,7 +222,7 @@ var SegmentQueue = /** @class */ (function (_super) {
221
222
  ? noop_1.default
222
223
  : canceller.linkToSignal(currentCanceller.signal);
223
224
  var segment = startingSegment.segment, priority = startingSegment.priority;
224
- var context = (0, object_assign_1.default)({ segment: segment }, content);
225
+ var context = (0, object_assign_1.default)({ segment: segment, nextSegment: (_a = segmentQueue[1]) === null || _a === void 0 ? void 0 : _a.segment }, content);
225
226
  /**
226
227
  * If `true` , the current task has either errored, finished, or was
227
228
  * cancelled.
@@ -258,7 +259,7 @@ var SegmentQueue = /** @class */ (function (_super) {
258
259
  lastQueue.shift();
259
260
  }
260
261
  isComplete = true;
261
- recursivelyRequestSegments(lastQueue[0]);
262
+ recursivelyRequestSegments();
262
263
  };
263
264
  /** Scheduled actual segment request. */
264
265
  var request = _this._segmentFetcher.createRequest(context, priority, {
@@ -337,7 +338,7 @@ var SegmentQueue = /** @class */ (function (_super) {
337
338
  });
338
339
  contentInfo.mediaSegmentRequest = { segment: segment, priority: priority, request: request, canceller: canceller };
339
340
  };
340
- recursivelyRequestSegments(currentNeededSegment);
341
+ recursivelyRequestSegments();
341
342
  };
342
343
  /**
343
344
  * Internal logic performing initialization segment requests.
@@ -358,7 +359,7 @@ var SegmentQueue = /** @class */ (function (_super) {
358
359
  ? noop_1.default
359
360
  : canceller.linkToSignal(contentInfo.currentCanceller.signal);
360
361
  var segment = queuedInitSegment.segment, priority = queuedInitSegment.priority;
361
- var context = (0, object_assign_1.default)({ segment: segment }, content);
362
+ var context = (0, object_assign_1.default)({ segment: segment, nextSegment: undefined }, content);
362
363
  /**
363
364
  * If `true` , the current task has either errored, finished, or was
364
365
  * cancelled.
@@ -744,6 +744,10 @@ function loadOrReloadPreparedContent(val, contentPreparer, playbackObservationRe
744
744
  onCodecSwitch: val.onCodecSwitch,
745
745
  }, contentPreparer, playbackObservationRef, parentCancelSignal);
746
746
  }, function (err) {
747
+ if (task_canceller_1.default.isCancellationError(err)) {
748
+ log_1.default.info("WP: A reloading operation was cancelled");
749
+ return;
750
+ }
747
751
  (0, send_message_1.default)({
748
752
  type: "error" /* WorkerMessageType.Error */,
749
753
  contentId: contentId,
@@ -1 +1 @@
1
- {"version":3,"file":"video_thumbnail_loader.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAW5D,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOtD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,uBAAuB,CAAiD;gBAEpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS;IAM7D;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAIhE;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiPtC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMhB;AA+GD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"video_thumbnail_loader.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAW5D,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOtD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,uBAAuB,CAAiD;gBAEpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS;IAM7D;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAIhE;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuPtC;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMhB;AA+GD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
@@ -204,7 +204,7 @@ var VideoThumbnailLoader = /** @class */ (function () {
204
204
  lastRepInfo.initSegmentUniqueId = null;
205
205
  return [2 /*return*/, sourceBufferInterface];
206
206
  }
207
- segmentInfo = (0, object_assign_1.default)({ segment: initSegment_1 }, content);
207
+ segmentInfo = (0, object_assign_1.default)({ segment: initSegment_1, nextSegment: undefined }, content);
208
208
  return [4 /*yield*/, (0, load_and_push_segment_1.default)(segmentInfo, sourceBufferInterface, lastRepInfo.segmentFetcher, lastRepInfoCleaner_1.signal)];
209
209
  case 1:
210
210
  _a.sent();
@@ -262,7 +262,7 @@ var VideoThumbnailLoader = /** @class */ (function () {
262
262
  else {
263
263
  var requestCanceller = new task_canceller_1.default();
264
264
  var unlinkSignal_1 = requestCanceller.linkToSignal(lastRepInfo.cleaner.signal);
265
- var segmentInfo = (0, object_assign_1.default)({ segment: segment }, content);
265
+ var segmentInfo = (0, object_assign_1.default)({ segment: segment, nextSegment: undefined }, content);
266
266
  var prom = (0, load_and_push_segment_1.default)(segmentInfo, sourceBufferInterface, lastRepInfo.segmentFetcher, requestCanceller.signal).then(unlinkSignal_1, function (err) {
267
267
  unlinkSignal_1();
268
268
  throw err;
@@ -160,7 +160,7 @@ var Player = /** @class */ (function (_super) {
160
160
  // Workaround to support Firefox autoplay on FF 42.
161
161
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
162
162
  videoElement.preload = "auto";
163
- _this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024090500";
163
+ _this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024091000";
164
164
  _this.log = log_1.default;
165
165
  _this.state = "STOPPED";
166
166
  _this.videoElement = videoElement;
@@ -2674,5 +2674,5 @@ var Player = /** @class */ (function (_super) {
2674
2674
  Player._priv_currentlyUsedVideoElements = new WeakSet();
2675
2675
  return Player;
2676
2676
  }(event_emitter_1.default));
2677
- Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024090500";
2677
+ Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024091000";
2678
2678
  exports.default = Player;
@@ -57,7 +57,7 @@ var log_1 = require("../../../../log");
57
57
  var array_find_1 = require("../../../../utils/array_find");
58
58
  var is_null_or_undefined_1 = require("../../../../utils/is_null_or_undefined");
59
59
  var monotonic_timestamp_1 = require("../../../../utils/monotonic_timestamp");
60
- var resolve_url_1 = require("../../../../utils/resolve_url");
60
+ var url_utils_1 = require("../../../../utils/url-utils");
61
61
  var content_protection_parser_1 = require("./content_protection_parser");
62
62
  var get_clock_offset_1 = require("./get_clock_offset");
63
63
  var get_http_utc_timing_url_1 = require("./get_http_utc-timing_url");
@@ -179,7 +179,7 @@ function parseCompleteIntermediateRepresentation(mpdIR, args, warnings, xlinkInf
179
179
  var rootChildren = mpdIR.children, rootAttributes = mpdIR.attributes;
180
180
  var isDynamic = rootAttributes.type === "dynamic";
181
181
  var initialBaseUrl = args.url !== undefined
182
- ? [{ url: args.url.substring(0, (0, resolve_url_1.getFilenameIndexInUrl)(args.url)) }]
182
+ ? [{ url: args.url.substring(0, (0, url_utils_1.getFilenameIndexInUrl)(args.url)) }]
183
183
  : [];
184
184
  var mpdBaseUrls = (0, resolve_base_urls_1.default)(initialBaseUrl, rootChildren.baseURLs);
185
185
  var availabilityStartTime = (0, parse_availability_start_time_1.default)(rootAttributes, args.referenceDateTime);
@@ -16,7 +16,7 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.default = resolveBaseURLs;
19
- var resolve_url_1 = require("../../../../utils/resolve_url");
19
+ var url_utils_1 = require("../../../../utils/url-utils");
20
20
  /**
21
21
  * @param {Array.<string>} currentBaseURLs
22
22
  * @param {Array.<Object>} newBaseUrlsIR
@@ -38,7 +38,7 @@ function resolveBaseURLs(currentBaseURLs, newBaseUrlsIR) {
38
38
  var curBaseUrl = currentBaseURLs[i];
39
39
  for (var j = 0; j < newBaseUrls.length; j++) {
40
40
  var newBaseUrl = newBaseUrls[j];
41
- var newUrl = (0, resolve_url_1.default)(curBaseUrl.url, newBaseUrl.url);
41
+ var newUrl = (0, url_utils_1.resolveURL)(curBaseUrl.url, newBaseUrl.url);
42
42
  result.push({
43
43
  url: newUrl,
44
44
  serviceLocation: (_a = newBaseUrl.serviceLocation) !== null && _a !== void 0 ? _a : curBaseUrl.serviceLocation,
@@ -58,7 +58,7 @@ var classes_1 = require("../../../manifest/classes");
58
58
  var id_generator_1 = require("../../../utils/id_generator");
59
59
  var is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
60
60
  var monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
61
- var resolve_url_1 = require("../../../utils/resolve_url");
61
+ var url_utils_1 = require("../../../utils/url-utils");
62
62
  var representation_index_1 = require("./representation_index");
63
63
  /**
64
64
  * Parse playlist string to JSON.
@@ -228,7 +228,7 @@ function createManifest(mplData, manifests, parserOptions) {
228
228
  var newTextAdaptations = textTracks.map(function (track) {
229
229
  var adaptationID = "gen-text-ada-" + generateAdaptationID();
230
230
  var representationID = "gen-text-rep-" + generateRepresentationID();
231
- var indexOfFilename = (0, resolve_url_1.getFilenameIndexInUrl)(track.url);
231
+ var indexOfFilename = (0, url_utils_1.getFilenameIndexInUrl)(track.url);
232
232
  var cdnUrl = track.url.substring(0, indexOfFilename);
233
233
  var filename = track.url.substring(indexOfFilename);
234
234
  return {
@@ -49,8 +49,8 @@ var is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
49
49
  var is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
50
50
  var monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
51
51
  var object_assign_1 = require("../../../utils/object_assign");
52
- var resolve_url_1 = require("../../../utils/resolve_url");
53
52
  var string_parsing_1 = require("../../../utils/string_parsing");
53
+ var url_utils_1 = require("../../../utils/url-utils");
54
54
  var isobmff_1 = require("../../containers/isobmff");
55
55
  var check_manifest_ids_1 = require("../utils/check_manifest_ids");
56
56
  var get_codecs_1 = require("./get_codecs");
@@ -337,7 +337,7 @@ function createSmoothStreamingParser(parserOptions) {
337
337
  function parseFromDocument(doc, url, manifestReceivedTime) {
338
338
  var baseUrl = "";
339
339
  if (url !== undefined) {
340
- var filenameIdx = (0, resolve_url_1.getFilenameIndexInUrl)(url);
340
+ var filenameIdx = (0, url_utils_1.getFilenameIndexInUrl)(url);
341
341
  baseUrl = url.substring(0, filenameIdx);
342
342
  }
343
343
  var root = doc.documentElement;
@@ -16,7 +16,7 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.default = constructSegmentUrl;
19
- var resolve_url_1 = require("../../utils/resolve_url");
19
+ var url_utils_1 = require("../../utils/url-utils");
20
20
  function constructSegmentUrl(wantedCdn, segment) {
21
21
  if (wantedCdn === null) {
22
22
  return null;
@@ -24,5 +24,5 @@ function constructSegmentUrl(wantedCdn, segment) {
24
24
  if (segment.url === null) {
25
25
  return wantedCdn.baseUrl;
26
26
  }
27
- return (0, resolve_url_1.default)(wantedCdn.baseUrl, segment.url);
27
+ return (0, url_utils_1.resolveURL)(wantedCdn.baseUrl, segment.url);
28
28
  }
@@ -17,7 +17,7 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.constructSegmentUrl = constructSegmentUrl;
19
19
  exports.isMP4EmbeddedTrack = isMP4EmbeddedTrack;
20
- var resolve_url_1 = require("../../utils/resolve_url");
20
+ var url_utils_1 = require("../../utils/url-utils");
21
21
  /**
22
22
  * Returns `true` if the given Representation refers to segments in an MP4
23
23
  * container
@@ -35,5 +35,5 @@ function constructSegmentUrl(wantedCdn, segment) {
35
35
  if (segment.url === null) {
36
36
  return wantedCdn.baseUrl;
37
37
  }
38
- return (0, resolve_url_1.default)(wantedCdn.baseUrl, segment.url);
38
+ return (0, url_utils_1.resolveURL)(wantedCdn.baseUrl, segment.url);
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAI3C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9E,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;AAIzD;;;GAGG;AACH,UAAU,aAAa;IACrB,gBAAgB,EAAE;QAChB,KAAK,EAAE,YAAY,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY,CAAC,aAAa,CAAC;IACtD,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IACzB,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;;IAavD;;;;;;;;;OASG;IACI,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,CACN,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,KAC9D,IAAI,GACR,IAAI;IA8EP;;;OAGG;IACI,QAAQ,IAAI,YAAY;IAI/B;;;OAGG;IACI,SAAS,IAAI,UAAU;IAI9B;;;;;OAKG;IACI,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;CAGjD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAI3C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7C,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9E,KAAK,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;AAIzD;;;GAGG;AACH,UAAU,aAAa;IACrB,gBAAgB,EAAE;QAChB,KAAK,EAAE,YAAY,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY,CAAC,aAAa,CAAC;IACtD,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IACzB,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;;IAavD;;;;;;;;;OASG;IACI,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,CACN,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,KAC9D,IAAI,GACR,IAAI;IA6EP;;;OAGG;IACI,QAAQ,IAAI,YAAY;IAI/B;;;OAGG;IACI,SAAS,IAAI,UAAU;IAI9B;;;;;OAKG;IACI,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;CAGjD"}
@@ -148,22 +148,21 @@ var Logger = /** @class */ (function (_super) {
148
148
  /* eslint-enable no-invalid-this */
149
149
  }
150
150
  else {
151
- var produceLogFn = function (logLevel, namespace) {
151
+ var produceLogFn = function (logLevel) {
152
152
  return level >= _this._levels[logLevel]
153
153
  ? function () {
154
154
  var args = [];
155
155
  for (var _i = 0; _i < arguments.length; _i++) {
156
156
  args[_i] = arguments[_i];
157
157
  }
158
- var now = (0, monotonic_timestamp_1.default)();
159
- return logFn(logLevel, __spreadArray([now, namespace], __read(args), false));
158
+ return logFn(logLevel, args);
160
159
  }
161
160
  : noop_1.default;
162
161
  };
163
- this.error = produceLogFn("ERROR", "error");
164
- this.warn = produceLogFn("WARNING", "warn");
165
- this.info = produceLogFn("INFO", "info");
166
- this.debug = produceLogFn("DEBUG", "log");
162
+ this.error = produceLogFn("ERROR");
163
+ this.warn = produceLogFn("WARNING");
164
+ this.info = produceLogFn("INFO");
165
+ this.debug = produceLogFn("DEBUG");
167
166
  }
168
167
  this.trigger("onLogLevelChange", {
169
168
  level: this._currentLevel,
@@ -22,6 +22,18 @@
22
22
  * @returns {number}
23
23
  */
24
24
  declare function getFilenameIndexInUrl(url: string): number;
25
+ /**
26
+ * Take two URLs and try to construct a relative URL for the second (`newUrl`)
27
+ * relative to the first (`baseUrl`).
28
+ *
29
+ * Returns `null` if they appear to be on different domains, depend on
30
+ * different schemes or if we don't have enough information to compute the
31
+ * relative URL.
32
+ * @param {string} baseUrl
33
+ * @param {string} newUrl
34
+ * @returns {string}
35
+ */
36
+ declare function getRelativeUrl(baseUrl: string, newUrl: string): string | null;
25
37
  /**
26
38
  * Resolves multiple URL segments using the RFC 3986 URL resolution algorithm.
27
39
  *
@@ -33,7 +45,6 @@ declare function getFilenameIndexInUrl(url: string): number;
33
45
  * @param {...(string|undefined)} args - The URL segments to resolve.
34
46
  * @returns {string} The resolved URL as a string.
35
47
  */
36
- export declare function resolveURL(...args: Array<string | undefined>): string;
37
- export { getFilenameIndexInUrl };
38
- export default resolveURL;
39
- //# sourceMappingURL=resolve_url.d.ts.map
48
+ declare function resolveURL(...args: Array<string | undefined>): string;
49
+ export { getFilenameIndexInUrl, getRelativeUrl, resolveURL };
50
+ //# sourceMappingURL=url-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/url-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAuBH;;;;;;;GAOG;AACH,iBAAS,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuBlD;AAED;;;;;;;;;;GAUG;AACH,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkEtE;AAsLD;;;;;;;;;;GAUG;AACH,iBAAS,UAAU,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAe9D;AAED,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC"}
@@ -40,8 +40,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
40
40
  return to.concat(ar || Array.prototype.slice.call(from));
41
41
  };
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.resolveURL = resolveURL;
44
43
  exports.getFilenameIndexInUrl = getFilenameIndexInUrl;
44
+ exports.getRelativeUrl = getRelativeUrl;
45
+ exports.resolveURL = resolveURL;
45
46
  var starts_with_1 = require("./starts_with");
46
47
  // Scheme part of an url (e.g. "http://").
47
48
  var schemeRe = /^(?:[a-z]+:)?\/\//i;
@@ -88,6 +89,75 @@ function getFilenameIndexInUrl(url) {
88
89
  }
89
90
  return indexOfLastSlash + 1;
90
91
  }
92
+ /**
93
+ * Take two URLs and try to construct a relative URL for the second (`newUrl`)
94
+ * relative to the first (`baseUrl`).
95
+ *
96
+ * Returns `null` if they appear to be on different domains, depend on
97
+ * different schemes or if we don't have enough information to compute the
98
+ * relative URL.
99
+ * @param {string} baseUrl
100
+ * @param {string} newUrl
101
+ * @returns {string}
102
+ */
103
+ function getRelativeUrl(baseUrl, newUrl) {
104
+ var baseParts = parseURL(baseUrl);
105
+ var newParts = parseURL(newUrl);
106
+ if (baseParts.scheme !== newParts.scheme ||
107
+ baseParts.authority !== newParts.authority) {
108
+ return null;
109
+ }
110
+ if (
111
+ // if base and new path are mixed between absolute and relative path, return null
112
+ (baseParts.path[0] !== undefined &&
113
+ baseParts.path[0] !== "/" &&
114
+ newParts.path[0] === "/") ||
115
+ (newParts.path[0] !== undefined &&
116
+ newParts.path[0] !== "/" &&
117
+ baseParts.path[0] === "/")) {
118
+ return null;
119
+ }
120
+ var baseNormalizedPath = removeDotSegment(baseParts.path);
121
+ var newNormalizedPath = removeDotSegment(newParts.path);
122
+ var relativePath;
123
+ if (baseNormalizedPath === newNormalizedPath) {
124
+ relativePath = "";
125
+ }
126
+ else {
127
+ var basePathSplitted = baseNormalizedPath.split("/");
128
+ // remove everything after the last trailing /
129
+ basePathSplitted.pop();
130
+ var newPathSplitted = newNormalizedPath.split("/");
131
+ while (basePathSplitted.length > 0 &&
132
+ newPathSplitted.length > 0 &&
133
+ basePathSplitted[0] === newPathSplitted[0]) {
134
+ basePathSplitted.shift();
135
+ newPathSplitted.shift();
136
+ }
137
+ while (basePathSplitted.length > 0) {
138
+ basePathSplitted.shift();
139
+ newPathSplitted.unshift("..");
140
+ }
141
+ var pathJoined = newPathSplitted.join("/");
142
+ if (pathJoined.endsWith("../") || pathJoined.endsWith("./")) {
143
+ pathJoined = pathJoined.slice(0, pathJoined.length - 1);
144
+ }
145
+ relativePath = pathJoined === "" ? "." : pathJoined;
146
+ }
147
+ var result = relativePath;
148
+ if (relativePath === "" && newParts.query === baseParts.query) {
149
+ // path and query is the same, we don't need to rewrite it
150
+ }
151
+ else if (newParts.query) {
152
+ result += "?";
153
+ result += newParts.query;
154
+ }
155
+ if (newParts.fragment) {
156
+ result += "#";
157
+ result += newParts.fragment;
158
+ }
159
+ return result;
160
+ }
91
161
  /**
92
162
  * Resolve the output URL from the baseURL and the relative reference as
93
163
  * specified by RFC 3986 section 5.
@@ -283,4 +353,3 @@ function resolveURL() {
283
353
  return resolveURL.apply(void 0, __spreadArray([resolvedURL], __read(remainingArgs), false));
284
354
  }
285
355
  }
286
- exports.default = resolveURL;
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAA8xnT,CAAC;AACzynT,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAA89pT,CAAC;AACz+pT,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}