rx-player 4.5.0-dev.2026031700 → 4.5.0-dev.2026033100

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 (222) hide show
  1. package/CHANGELOG.md +3 -1
  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_compatibility_types.d.ts +16 -14
  6. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  7. package/dist/commonjs/compat/browser_compatibility_types.js +7 -4
  8. package/dist/commonjs/compat/browser_version.d.ts +2 -1
  9. package/dist/commonjs/compat/browser_version.d.ts.map +1 -1
  10. package/dist/commonjs/compat/browser_version.js +13 -0
  11. package/dist/commonjs/compat/disable_remote_playback_on_managed_media_source.d.ts.map +1 -1
  12. package/dist/commonjs/compat/disable_remote_playback_on_managed_media_source.js +1 -1
  13. package/dist/commonjs/compat/is_codec_supported.d.ts.map +1 -1
  14. package/dist/commonjs/compat/is_codec_supported.js +4 -3
  15. package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts +26 -0
  16. package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts.map +1 -0
  17. package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.js +45 -0
  18. package/dist/commonjs/core/entry/utils.js +3 -3
  19. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  20. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +2 -1
  21. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  22. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +2 -1
  23. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  24. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +8 -6
  25. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
  26. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +4 -3
  27. package/dist/commonjs/initialize_worker.js +1 -1
  28. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +3 -3
  29. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  30. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  31. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +24 -12
  32. package/dist/commonjs/manifest/classes/adaptation.d.ts.map +1 -1
  33. package/dist/commonjs/manifest/classes/adaptation.js +3 -1
  34. package/dist/commonjs/manifest/classes/representation.d.ts +6 -2
  35. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  36. package/dist/commonjs/manifest/classes/representation.js +45 -23
  37. package/dist/commonjs/manifest/types.d.ts +14 -6
  38. package/dist/commonjs/manifest/types.d.ts.map +1 -1
  39. package/dist/commonjs/manifest/utils.js +4 -4
  40. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  41. package/dist/commonjs/mse/main_media_source_interface.js +3 -2
  42. package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
  43. package/dist/commonjs/parsers/containers/isobmff/get_box.d.ts +12 -1
  44. package/dist/commonjs/parsers/containers/isobmff/get_box.d.ts.map +1 -1
  45. package/dist/commonjs/parsers/containers/isobmff/get_box.js +16 -0
  46. package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -1
  47. package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
  48. package/dist/commonjs/parsers/containers/isobmff/index.js +3 -1
  49. package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts +13 -0
  50. package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts.map +1 -0
  51. package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.js +180 -0
  52. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +4 -4
  53. package/dist/commonjs/transports/dash/segment_parser.d.ts.map +1 -1
  54. package/dist/commonjs/transports/dash/segment_parser.js +6 -0
  55. package/dist/commonjs/transports/dash/text_parser.d.ts.map +1 -1
  56. package/dist/commonjs/transports/dash/text_parser.js +5 -1
  57. package/dist/commonjs/transports/local/text_parser.d.ts.map +1 -1
  58. package/dist/commonjs/transports/local/text_parser.js +5 -1
  59. package/dist/commonjs/transports/metaplaylist/pipelines.d.ts.map +1 -1
  60. package/dist/commonjs/transports/metaplaylist/pipelines.js +2 -1
  61. package/dist/commonjs/transports/smooth/pipelines.js +3 -3
  62. package/dist/commonjs/transports/types.d.ts +28 -2
  63. package/dist/commonjs/transports/types.d.ts.map +1 -1
  64. package/dist/commonjs/transports/utils/parse_text_track.d.ts +9 -2
  65. package/dist/commonjs/transports/utils/parse_text_track.d.ts.map +1 -1
  66. package/dist/commonjs/transports/utils/parse_text_track.js +1 -1
  67. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  68. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  69. package/dist/es2017/compat/browser_compatibility_types.d.ts +16 -14
  70. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  71. package/dist/es2017/compat/browser_compatibility_types.js +7 -1
  72. package/dist/es2017/compat/browser_version.d.ts +2 -1
  73. package/dist/es2017/compat/browser_version.d.ts.map +1 -1
  74. package/dist/es2017/compat/browser_version.js +13 -1
  75. package/dist/es2017/compat/disable_remote_playback_on_managed_media_source.d.ts.map +1 -1
  76. package/dist/es2017/compat/disable_remote_playback_on_managed_media_source.js +2 -2
  77. package/dist/es2017/compat/is_codec_supported.d.ts.map +1 -1
  78. package/dist/es2017/compat/is_codec_supported.js +2 -1
  79. package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts +26 -0
  80. package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts.map +1 -0
  81. package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.js +42 -0
  82. package/dist/es2017/core/entry/utils.js +4 -4
  83. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  84. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +2 -1
  85. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  86. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +2 -1
  87. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  88. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +3 -1
  89. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
  90. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +2 -1
  91. package/dist/es2017/initialize_worker.js +1 -1
  92. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.js +3 -3
  93. package/dist/es2017/main_thread/api/public_api.js +2 -2
  94. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  95. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +9 -7
  96. package/dist/es2017/manifest/classes/adaptation.d.ts.map +1 -1
  97. package/dist/es2017/manifest/classes/adaptation.js +3 -1
  98. package/dist/es2017/manifest/classes/representation.d.ts +6 -2
  99. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  100. package/dist/es2017/manifest/classes/representation.js +45 -23
  101. package/dist/es2017/manifest/types.d.ts +14 -6
  102. package/dist/es2017/manifest/types.d.ts.map +1 -1
  103. package/dist/es2017/manifest/utils.js +4 -4
  104. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  105. package/dist/es2017/mse/main_media_source_interface.js +2 -1
  106. package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
  107. package/dist/es2017/parsers/containers/isobmff/get_box.d.ts +12 -1
  108. package/dist/es2017/parsers/containers/isobmff/get_box.d.ts.map +1 -1
  109. package/dist/es2017/parsers/containers/isobmff/get_box.js +16 -1
  110. package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -1
  111. package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
  112. package/dist/es2017/parsers/containers/isobmff/index.js +2 -1
  113. package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts +13 -0
  114. package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts.map +1 -0
  115. package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.js +155 -0
  116. package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +4 -4
  117. package/dist/es2017/transports/dash/segment_parser.d.ts.map +1 -1
  118. package/dist/es2017/transports/dash/segment_parser.js +7 -1
  119. package/dist/es2017/transports/dash/text_parser.d.ts.map +1 -1
  120. package/dist/es2017/transports/dash/text_parser.js +5 -1
  121. package/dist/es2017/transports/local/text_parser.d.ts.map +1 -1
  122. package/dist/es2017/transports/local/text_parser.js +5 -1
  123. package/dist/es2017/transports/metaplaylist/pipelines.d.ts.map +1 -1
  124. package/dist/es2017/transports/metaplaylist/pipelines.js +2 -1
  125. package/dist/es2017/transports/smooth/pipelines.js +3 -3
  126. package/dist/es2017/transports/types.d.ts +28 -2
  127. package/dist/es2017/transports/types.d.ts.map +1 -1
  128. package/dist/es2017/transports/utils/parse_text_track.d.ts +9 -2
  129. package/dist/es2017/transports/utils/parse_text_track.d.ts.map +1 -1
  130. package/dist/es2017/transports/utils/parse_text_track.js +1 -1
  131. package/dist/worker.js +6 -6
  132. package/eslint.config.mjs +1 -14
  133. package/package.json +1 -1
  134. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  135. package/src/compat/__tests__/browser_compatibility_types.test.ts +15 -26
  136. package/src/compat/__tests__/browser_version.test.ts +57 -18
  137. package/src/compat/__tests__/clear_element_src.test.ts +20 -40
  138. package/src/compat/__tests__/is_codec_supported.test.ts +39 -44
  139. package/src/compat/__tests__/is_vtt_cue.test.ts +5 -8
  140. package/src/compat/__tests__/make_vtt_cue.test.ts +20 -31
  141. package/src/compat/__tests__/remove_cue.test.ts +8 -20
  142. package/src/compat/__tests__/should_patch_out_dolby_vision_config_data_from_mp4.test.ts +78 -0
  143. package/src/compat/browser_compatibility_types.ts +8 -1
  144. package/src/compat/browser_version.ts +17 -1
  145. package/src/compat/disable_remote_playback_on_managed_media_source.ts +2 -2
  146. package/src/compat/is_codec_supported.ts +2 -1
  147. package/src/compat/should_patch_out_dolby_vision_config_data_from_mp4.ts +50 -0
  148. package/src/core/adaptive/__tests__/adaptive_representation_selector.test.ts +68 -28
  149. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +26 -84
  150. package/src/core/entry/__tests__/utils.test.ts +7 -1
  151. package/src/core/entry/utils.ts +4 -4
  152. package/src/core/fetchers/segment/segment_fetcher.ts +2 -1
  153. package/src/errors/__tests__/format_error.test.ts +23 -24
  154. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +2 -1
  155. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +106 -0
  156. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/HDCPPolicy.test.ts +19 -42
  157. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/decodingInfo.test.ts +33 -40
  158. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/defaultCodecsFinder.test.ts +44 -68
  159. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/mediaContentType.test.ts +45 -80
  160. package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +3 -1
  161. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +2 -1
  162. package/src/features/__tests__/add_features.test.ts +12 -27
  163. package/src/initialize_worker.ts +1 -1
  164. package/src/main_thread/api/__tests__/option_utils.test.ts +38 -67
  165. package/src/main_thread/api/__tests__/public_api.test.ts +56 -138
  166. package/src/main_thread/api/debug/modules/segment_buffer_content.ts +3 -3
  167. package/src/main_thread/api/public_api.ts +2 -2
  168. package/src/main_thread/decrypt/__tests__/__global__/find_key_system.test.ts +46 -28
  169. package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +40 -10
  170. package/src/main_thread/decrypt/__tests__/__global__/init_data.test.ts +112 -129
  171. package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +282 -377
  172. package/src/main_thread/decrypt/__tests__/__global__/media_keys.test.ts +70 -63
  173. package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +73 -54
  174. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +43 -83
  175. package/src/main_thread/decrypt/__tests__/find_key_system.test.ts +36 -17
  176. package/src/main_thread/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +44 -48
  177. package/src/main_thread/init/utils/__tests__/are_same_stream_events.test.ts +7 -22
  178. package/src/main_thread/init/utils/__tests__/refresh_scheduled_events_list.test.ts +3 -6
  179. package/src/main_thread/init/utils/__tests__/update_manifest_codec_support.test.ts +42 -19
  180. package/src/main_thread/init/utils/update_manifest_codec_support.ts +8 -6
  181. package/src/manifest/classes/__tests__/adaptation.test.ts +69 -125
  182. package/src/manifest/classes/__tests__/manifest.test.ts +88 -95
  183. package/src/manifest/classes/__tests__/period.test.ts +167 -117
  184. package/src/manifest/classes/__tests__/representation.test.ts +84 -25
  185. package/src/manifest/classes/__tests__/update_periods.test.ts +96 -225
  186. package/src/manifest/classes/adaptation.ts +4 -1
  187. package/src/manifest/classes/representation.ts +59 -27
  188. package/src/manifest/types.ts +14 -6
  189. package/src/manifest/utils.ts +4 -4
  190. package/src/mse/__tests__/main_media_source_interface.test.ts +3 -1
  191. package/src/mse/__tests__/worker_media_source_interface.test.ts +608 -0
  192. package/src/mse/main_media_source_interface.ts +2 -1
  193. package/src/mse/worker_media_source_interface.ts +2 -2
  194. package/src/parsers/containers/isobmff/__tests__/get_box.test.ts +449 -0
  195. package/src/parsers/containers/isobmff/__tests__/remove_dolby_vision_config_data.test.ts +282 -0
  196. package/src/parsers/containers/isobmff/get_box.ts +17 -0
  197. package/src/parsers/containers/isobmff/index.ts +8 -1
  198. package/src/parsers/containers/isobmff/remove_dolby_vision_config_data.ts +179 -0
  199. package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +19 -25
  200. package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +7 -19
  201. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +26 -37
  202. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +24 -53
  203. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +31 -78
  204. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +6 -4
  205. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +79 -87
  206. package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +20 -26
  207. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.ts +2 -7
  208. package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +33 -30
  209. package/src/parsers/texttracks/webvtt/__tests__/parse_style_block.test.ts +33 -100
  210. package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +16 -18
  211. package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +73 -78
  212. package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +36 -37
  213. package/src/transports/dash/segment_parser.ts +13 -0
  214. package/src/transports/dash/text_parser.ts +5 -1
  215. package/src/transports/local/text_parser.ts +5 -1
  216. package/src/transports/metaplaylist/pipelines.ts +2 -1
  217. package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +150 -127
  218. package/src/transports/smooth/pipelines.ts +3 -3
  219. package/src/transports/types.ts +28 -2
  220. package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +49 -75
  221. package/src/transports/utils/parse_text_track.ts +10 -3
  222. package/src/utils/__tests__/object_assign.test.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"representation.d.ts","sourceRoot":"","sources":["../../../../src/manifest/classes/representation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"representation.d.ts","sourceRoot":"","sources":["../../../../src/manifest/classes/representation.ts"],"names":[],"mappings":"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"}
@@ -42,12 +42,12 @@ var Representation = /** @class */ (function () {
42
42
  * @param {string} trackType
43
43
  */
44
44
  function Representation(args, trackType, cachedCodecSupport) {
45
- var _a, _b, _c, _d, _e;
45
+ var _a, _b, _c, _d;
46
46
  this.id = args.id;
47
47
  this.uniqueId = generateRepresentationUniqueId();
48
48
  this.shouldBeAvoided = false;
49
49
  this.bitrate = args.bitrate;
50
- this.codecs = [];
50
+ this.baseCodecs = [];
51
51
  this.trackType = trackType;
52
52
  if (args.isSpatialAudio !== undefined) {
53
53
  this.isSpatialAudio = args.isSpatialAudio;
@@ -74,31 +74,44 @@ var Representation = /** @class */ (function () {
74
74
  this.index = args.index;
75
75
  var isEncrypted = this.contentProtections !== undefined;
76
76
  if (trackType === "audio" || trackType === "video") {
77
+ /**
78
+ * - `true` -> We found a supported codec linked to this Representation
79
+ * - `false` -> We did not find yet a supported codec linked to this
80
+ * Representation
81
+ * - `undefined` -> The current prefered codec has its support not
82
+ * known yet.
83
+ */
84
+ var foundSupportedCodec = false;
77
85
  // Supplemental codecs are defined as backwards-compatible codecs enhancing
78
86
  // the experience of a base layer codec
79
87
  if (args.supplementalCodecs !== undefined) {
80
- var isSupplementaryCodecSupported = cachedCodecSupport.isSupported((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", (_b = args.supplementalCodecs) !== null && _b !== void 0 ? _b : "", isEncrypted);
81
- if (isSupplementaryCodecSupported !== false) {
82
- this.codecs = [args.supplementalCodecs];
83
- this.isSupported = isSupplementaryCodecSupported;
88
+ this.baseCodecs.push(args.supplementalCodecs);
89
+ foundSupportedCodec = cachedCodecSupport.isSupported((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", (_b = args.supplementalCodecs) !== null && _b !== void 0 ? _b : "", isEncrypted);
90
+ if (foundSupportedCodec === true) {
91
+ log_1.default.debug("manifest", "supplementalCodec is supported as per the cache", {
92
+ codec: args.supplementalCodecs,
93
+ });
94
+ this.chosenCodec = args.supplementalCodecs;
84
95
  }
85
96
  }
86
- if (this.isSupported !== true) {
87
- if (this.codecs.length > 0) {
88
- // We couldn't check for support of another supplemental codec.
89
- // Just push that codec without testing support yet, we'll check
90
- // support later.
91
- this.codecs.push((_c = args.codecs) !== null && _c !== void 0 ? _c : "");
92
- }
93
- else {
94
- this.codecs = args.codecs === undefined ? [] : [args.codecs];
95
- this.isSupported = cachedCodecSupport.isSupported((_d = this.mimeType) !== null && _d !== void 0 ? _d : "", (_e = args.codecs) !== null && _e !== void 0 ? _e : "", isEncrypted);
96
- }
97
+ if (args.codecs !== undefined) {
98
+ this.baseCodecs.push(args.codecs);
97
99
  }
100
+ if (foundSupportedCodec === false) {
101
+ foundSupportedCodec = cachedCodecSupport.isSupported((_c = this.mimeType) !== null && _c !== void 0 ? _c : "", (_d = args.codecs) !== null && _d !== void 0 ? _d : "", isEncrypted);
102
+ // Put the generic codec as a fallback anyway if supplemental ones
103
+ // aren't present or supported.
104
+ log_1.default.debug("manifest", "codec is supported as per the cache", {
105
+ codec: args.codecs,
106
+ });
107
+ this.chosenCodec = args.codecs;
108
+ }
109
+ this.isSupported = foundSupportedCodec;
98
110
  }
99
111
  else {
100
112
  if (args.codecs !== undefined) {
101
- this.codecs.push(args.codecs);
113
+ this.baseCodecs.push(args.codecs);
114
+ this.chosenCodec = args.codecs;
102
115
  }
103
116
  this.isSupported = true;
104
117
  }
@@ -124,7 +137,7 @@ var Representation = /** @class */ (function () {
124
137
  var isEncrypted = this.contentProtections !== undefined;
125
138
  var isSupported = false;
126
139
  var mimeType = (_b = this.mimeType) !== null && _b !== void 0 ? _b : "";
127
- var codecs = (_c = this.codecs) !== null && _c !== void 0 ? _c : [];
140
+ var codecs = (_c = this.baseCodecs) !== null && _c !== void 0 ? _c : [];
128
141
  if (codecs.length === 0) {
129
142
  codecs = [""];
130
143
  }
@@ -134,7 +147,8 @@ var Representation = /** @class */ (function () {
134
147
  var codec = codecs_1_1.value;
135
148
  isSupported = cachedCodecSupport.isSupported(mimeType, codec, isEncrypted);
136
149
  if (isSupported === true) {
137
- this.codecs = [codec];
150
+ log_1.default.debug("manifest", "codec is found to be supported", { codec: codec });
151
+ this.chosenCodec = codec;
138
152
  break;
139
153
  }
140
154
  if (isSupported === undefined) {
@@ -173,8 +187,15 @@ var Representation = /** @class */ (function () {
173
187
  * @returns {string}
174
188
  */
175
189
  Representation.prototype.getMimeTypeString = function () {
176
- var _a, _b, _c;
177
- return "".concat((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", ";codecs=\"").concat((_c = (_b = this.codecs) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : "", "\"");
190
+ var _a;
191
+ var codec = this.chosenCodec;
192
+ if (codec === undefined) {
193
+ log_1.default.warn("manifest", "Asked for mimetype string when codec support is yet unknown, attempting with first known linked codec");
194
+ if (this.baseCodecs !== undefined) {
195
+ codec = this.baseCodecs[0];
196
+ }
197
+ }
198
+ return "".concat((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", ";codecs=\"").concat(codec !== null && codec !== void 0 ? codec : "", "\"");
178
199
  };
179
200
  /**
180
201
  * Returns encryption initialization data linked to the given DRM's system ID.
@@ -385,7 +406,8 @@ var Representation = /** @class */ (function () {
385
406
  id: this.id,
386
407
  uniqueId: this.uniqueId,
387
408
  bitrate: this.bitrate,
388
- codecs: this.codecs,
409
+ baseCodecs: this.baseCodecs,
410
+ chosenCodec: this.chosenCodec,
389
411
  mimeType: this.mimeType,
390
412
  width: this.width,
391
413
  height: this.height,
@@ -403,14 +403,22 @@ export interface IRepresentationMetadata {
403
403
  * In that scenario, we could have an array with two elements:
404
404
  * 1. The Dolby Vision codec
405
405
  * 2. The base HDR10 codec, hopefully with higher device compatibility.
406
+ */
407
+ baseCodecs?: string[];
408
+ /**
409
+ * `baseCodecs` can define multiple codecs linked to this `Representation`,
410
+ * e.g. Dolby Vision retro-compatible to a non-Dolby Vision HEVC-based
411
+ * codec).
412
+ *
413
+ * But on the current device, we'll generally want to announce a unique
414
+ * codec, after checking the one that is supported.
415
+ *
416
+ * This is what `chosenCodecs` is for: the actual codec to rely on.
406
417
  *
407
- * To note that we should aim to have the shorter array possible to always
408
- * expose the actually relied-on codec through the API. The idea could be
409
- * to only have several elements in this Array _BEFORE_ testing for codec
410
- * support on the current device, only to then remove all non-used codecs to
411
- * keep the one actually relied on.
418
+ * Set to `undefined` initially until we know which codec from `baseCodecs`
419
+ * is supported.
412
420
  */
413
- codecs?: string[];
421
+ chosenCodec?: string | undefined;
414
422
  /**
415
423
  * A string describing the mime-type for this Representation.
416
424
  * Examples: audio/mp4, video/webm, application/mp4, text/plain
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/manifest/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/manifest/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,0BAAkB,sBAAsB;IACtC;;;OAGG;IACH,KAAK,IAAA;IACL;;;;;;;;;;OAUG;IACH,cAAc,IAAA;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,cAAc,EAAE,sBAAsB,CAAC;IACvC;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;OAIG;IACH,OAAO,EAAE,eAAe,EAAE,CAAC;IAE3B;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAO3B,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAQhD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC;;;OAGG;IACH,UAAU,EAAE;QACV;;;;;;;;;;;;;;;;;;;;;;;;WAwBG;QACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzC;;;;;;;;;;;;;;;WAeG;QACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,kFAAkF;QAClF,eAAe,EAAE;YACf;;;;;eAKG;YACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC;;;;;eAKG;YACH,QAAQ,EAAE,OAAO,CAAC;YAClB;;;;;;;;;;;;;;;eAeG;YACH,mBAAmB,EAAE,MAAM,CAAC;YAC5B;;;;;;eAMG;YACH,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,iEAAiE;IACjE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAChE,kEAAkE;IAClE,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,8DAA8D;IAC9D,eAAe,EAAE,uBAAuB,EAAE,CAAC;CAC5C;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;OAGG;IACH,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC;;;;;;OAMG;IACH,4BAA4B,EAAE,OAAO,CAAC;IACtC;;;;;;OAMG;IACH,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,aAAa,EAAE,wBAAwB,CAAC;IACxC,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,gDAAgD;IAChD,eAAe,CAAC,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;IACpD,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;OAWG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,mDAAmD;IACnD,2BAA2B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnD"}
@@ -250,11 +250,11 @@ function toVideoTrack(adaptation, filterPlayable) {
250
250
  * @returns {Object}
251
251
  */
252
252
  function toAudioRepresentation(representation) {
253
- var id = representation.id, bitrate = representation.bitrate, codecs = representation.codecs, isSpatialAudio = representation.isSpatialAudio, isSupported = representation.isSupported, decipherable = representation.decipherable;
253
+ var id = representation.id, bitrate = representation.bitrate, chosenCodec = representation.chosenCodec, isSpatialAudio = representation.isSpatialAudio, isSupported = representation.isSupported, decipherable = representation.decipherable;
254
254
  return {
255
255
  id: id,
256
256
  bitrate: bitrate,
257
- codec: codecs === null || codecs === void 0 ? void 0 : codecs[0],
257
+ codec: chosenCodec,
258
258
  isSpatialAudio: isSpatialAudio,
259
259
  isCodecSupported: isSupported,
260
260
  decipherable: decipherable,
@@ -265,14 +265,14 @@ function toAudioRepresentation(representation) {
265
265
  * @returns {Object}
266
266
  */
267
267
  function toVideoRepresentation(representation) {
268
- var id = representation.id, bitrate = representation.bitrate, frameRate = representation.frameRate, width = representation.width, height = representation.height, codecs = representation.codecs, hdrInfo = representation.hdrInfo, isSupported = representation.isSupported, decipherable = representation.decipherable, contentProtections = representation.contentProtections;
268
+ var id = representation.id, bitrate = representation.bitrate, frameRate = representation.frameRate, width = representation.width, height = representation.height, chosenCodec = representation.chosenCodec, hdrInfo = representation.hdrInfo, isSupported = representation.isSupported, decipherable = representation.decipherable, contentProtections = representation.contentProtections;
269
269
  return {
270
270
  id: id,
271
271
  bitrate: bitrate,
272
272
  frameRate: frameRate,
273
273
  width: width,
274
274
  height: height,
275
- codec: codecs === null || codecs === void 0 ? void 0 : codecs[0],
275
+ codec: chosenCodec,
276
276
  hdrInfo: hdrInfo,
277
277
  isCodecSupported: isSupported,
278
278
  decipherable: decipherable,
@@ -1 +1 @@
1
- {"version":3,"file":"main_media_source_interface.d.ts","sourceRoot":"","sources":["../../../src/mse/main_media_source_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAOzF,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAGlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAIjB;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,wBACnB,SAAQ,YAAY,CAAC,2BAA2B,CAChD,YAAW,qBAAqB;IAEhC,iCAAiC;IAC1B,EAAE,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACI,MAAM,EAAE,kBAAkB,CAAC;IAClC,iCAAiC;IAC1B,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAClD,iCAAiC;IAC1B,UAAU,EAAE,UAAU,CAAC;IAC9B;;;;;;;;;;OAUG;IACI,SAAS,CAAC,EAAE,OAAO,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAAe;IACnC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA6B;IACrD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IACpD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,UAAU,YAAY;IA8DlE,iCAAiC;IAC1B,eAAe,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,yBAAyB;IAO5B,iCAAiC;IAC1B,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAItE,iCAAiC;IAC1B,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAI1D,iCAAiC;IAC1B,mBAAmB;IAW1B,iCAAiC;IAC1B,eAAe;IAQtB,iCAAiC;IAC1B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CAK1C;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,sBAAsB;IACtE,kCAAkC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC,+EAA+E;IAC/E,OAAO,CAAC,aAAa,CAAgB;IACrC;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAwB;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAA6C;IAEvE;;;;;;OAMG;gBACS,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa;IAkBhF,kCAAkC;IAC3B,YAAY,CACjB,GAAG,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,GAC1D,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpB,kCAAkC;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY5D,kCAAkC;IAC3B,WAAW,IAAI,MAAM,EAAE;IAgB9B,kCAAkC;IAC3B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAa9C,kCAAkC;IAC3B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAShD,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,YAAY;IAsBpB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,qBAAqB;IAwJ7B,OAAO,CAAC,gBAAgB;CAkFzB"}
1
+ {"version":3,"file":"main_media_source_interface.d.ts","sourceRoot":"","sources":["../../../src/mse/main_media_source_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAOzF,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAGlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAIjB;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,wBACnB,SAAQ,YAAY,CAAC,2BAA2B,CAChD,YAAW,qBAAqB;IAEhC,iCAAiC;IAC1B,EAAE,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACI,MAAM,EAAE,kBAAkB,CAAC;IAClC,iCAAiC;IAC1B,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAClD,iCAAiC;IAC1B,UAAU,EAAE,UAAU,CAAC;IAC9B;;;;;;;;;;OAUG;IACI,SAAS,CAAC,EAAE,OAAO,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAAe;IACnC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA6B;IACrD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IACpD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,UAAU,YAAY;IA+DlE,iCAAiC;IAC1B,eAAe,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,yBAAyB;IAO5B,iCAAiC;IAC1B,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAItE,iCAAiC;IAC1B,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAI1D,iCAAiC;IAC1B,mBAAmB;IAW1B,iCAAiC;IAC1B,eAAe;IAQtB,iCAAiC;IAC1B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CAK1C;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,sBAAsB;IACtE,kCAAkC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC,+EAA+E;IAC/E,OAAO,CAAC,aAAa,CAAgB;IACrC;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAwB;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAA6C;IAEvE;;;;;;OAMG;gBACS,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa;IAkBhF,kCAAkC;IAC3B,YAAY,CACjB,GAAG,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,GAC1D,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpB,kCAAkC;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY5D,kCAAkC;IAC3B,WAAW,IAAI,MAAM,EAAE;IAgB9B,kCAAkC;IAC3B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAa9C,kCAAkC;IAC3B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAShD,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,YAAY;IAsBpB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,qBAAqB;IAwJ7B,OAAO,CAAC,gBAAgB;CAkFzB"}
@@ -84,11 +84,12 @@ var MainMediaSourceInterface = /** @class */ (function (_super) {
84
84
  _this.id = id;
85
85
  _this.sourceBuffers = [];
86
86
  _this._canceller = new task_canceller_1.default("MainMediaSourceInterface");
87
- if ((0, is_null_or_undefined_1.default)(browser_compatibility_types_1.MediaSource_)) {
87
+ var MediaSource_ = browser_compatibility_types_1.default.MediaSource_;
88
+ if ((0, is_null_or_undefined_1.default)(MediaSource_)) {
88
89
  throw new errors_1.MediaError("MEDIA_SOURCE_NOT_SUPPORTED", "No MediaSource Object was found in the current browser.");
89
90
  }
90
91
  log_1.default.info("mse", "Creating MediaSource");
91
- var mediaSource = forcedMediaSource !== undefined ? new forcedMediaSource() : new browser_compatibility_types_1.MediaSource_();
92
+ var mediaSource = forcedMediaSource !== undefined ? new forcedMediaSource() : new MediaSource_();
92
93
  var handle = mediaSource.handle;
93
94
  _this.handle = (0, is_null_or_undefined_1.default)(handle)
94
95
  ? // eslint-disable-next-line @typescript-eslint/no-restricted-types
@@ -1 +1 @@
1
- {"version":3,"file":"worker_media_source_interface.d.ts","sourceRoot":"","sources":["../../../src/mse/worker_media_source_interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker_media_source_interface.d.ts","sourceRoot":"","sources":["../../../src/mse/worker_media_source_interface.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,17 @@ declare function getBoxOffsets(buf: Uint8Array, boxName: number): [
85
85
  * @returns {Uint8Array|undefined}
86
86
  */
87
87
  declare function getUuidContent<T extends ArrayBufferLike>(buf: Uint8Array<T>, id1: number, id2: number, id3: number, id4: number): Uint8Array<T> | undefined;
88
+ /**
89
+ * When parsed, the "box type", which announce the name of the box, are in the
90
+ * RxPlayer encoded as unsigned 32 bit integers.
91
+ *
92
+ * When debugging or in logs, the textual fourCC format (e.g. `moov`, `mdat`,
93
+ * `pssh` etc.) is much more readable. Thus this function allows to convert
94
+ * between the two.
95
+ * @param {number} n - The box type as a "number" (32 bit unsigned integer).
96
+ * @returns {string} - its fourCC ASCII correspondance
97
+ */
98
+ declare function boxTypeToFourCC(n: number): string;
88
99
  /**
89
100
  * For the next encountered box, return byte offsets corresponding to:
90
101
  * 1. the starting byte offset for the next box (should always be equal to
@@ -103,5 +114,5 @@ declare function getNextBoxOffsets(buf: Uint8Array): [
103
114
  number,
104
115
  number
105
116
  ] | null;
106
- export { getBox, getBoxContent, getBoxesContent, getBoxOffsets, getChildBox, getNextBoxOffsets, getUuidContent, };
117
+ export { boxTypeToFourCC, getBox, getBoxContent, getBoxesContent, getBoxOffsets, getChildBox, getNextBoxOffsets, getUuidContent, };
107
118
  //# sourceMappingURL=get_box.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_box.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/get_box.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;;;;;GAOG;AACH,iBAAS,WAAW,CAAC,CAAC,SAAS,eAAe,EAC5C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAUtB;AAED;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,CAAC,SAAS,eAAe,EAC9C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAGtB;AAED;;;;;;;GAOG;AACH,iBAAS,eAAe,CAAC,CAAC,SAAS,eAAe,EAChD,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,GACd,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAetB;AAED;;;;;;;GAOG;AACH,iBAAS,MAAM,CAAC,CAAC,SAAS,eAAe,EACvC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAGtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,aAAa,CACpB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,GAEb;IACE,MAAM;IACN,MAAM;IACN,MAAM;CACP,GACD,IAAI,CAsCP;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,cAAc,CAAC,CAAC,SAAS,eAAe,EAC/C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAkC3B;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,iBAAiB,CACxB,GAAG,EAAE,UAAU,GAEb;IACE,CAAC;IACD,MAAM;IACN,MAAM;CACP,GACD,IAAI,CA+BP;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"get_box.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/get_box.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;;;;;GAOG;AACH,iBAAS,WAAW,CAAC,CAAC,SAAS,eAAe,EAC5C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAUtB;AAED;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,CAAC,SAAS,eAAe,EAC9C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAGtB;AAED;;;;;;;GAOG;AACH,iBAAS,eAAe,CAAC,CAAC,SAAS,eAAe,EAChD,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,GACd,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAetB;AAED;;;;;;;GAOG;AACH,iBAAS,MAAM,CAAC,CAAC,SAAS,eAAe,EACvC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAGtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,aAAa,CACpB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,GAEb;IACE,MAAM;IACN,MAAM;IACN,MAAM;CACP,GACD,IAAI,CAsCP;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,cAAc,CAAC,CAAC,SAAS,eAAe,EAC/C,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAkC3B;AAED;;;;;;;;;GASG;AACH,iBAAS,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1C;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,iBAAiB,CACxB,GAAG,EAAE,UAAU,GAEb;IACE,CAAC;IACD,MAAM;IACN,MAAM;CACP,GACD,IAAI,CA+BP;AAED,OAAO,EACL,eAAe,EACf,MAAM,EACN,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,cAAc,GACf,CAAC"}
@@ -26,6 +26,7 @@ var __values = (this && this.__values) || function(o) {
26
26
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.boxTypeToFourCC = boxTypeToFourCC;
29
30
  exports.getBox = getBox;
30
31
  exports.getBoxContent = getBoxContent;
31
32
  exports.getBoxesContent = getBoxesContent;
@@ -209,6 +210,21 @@ function getUuidContent(buf, id1, id2, id3, id4) {
209
210
  }
210
211
  }
211
212
  }
213
+ /**
214
+ * When parsed, the "box type", which announce the name of the box, are in the
215
+ * RxPlayer encoded as unsigned 32 bit integers.
216
+ *
217
+ * When debugging or in logs, the textual fourCC format (e.g. `moov`, `mdat`,
218
+ * `pssh` etc.) is much more readable. Thus this function allows to convert
219
+ * between the two.
220
+ * @param {number} n - The box type as a "number" (32 bit unsigned integer).
221
+ * @returns {string} - its fourCC ASCII correspondance
222
+ */
223
+ function boxTypeToFourCC(n) {
224
+ return [(n >>> 24) & 0xff, (n >>> 16) & 0xff, (n >>> 8) & 0xff, n & 0xff]
225
+ .map(function (b) { return String.fromCharCode(b); })
226
+ .join("");
227
+ }
212
228
  /**
213
229
  * For the next encountered box, return byte offsets corresponding to:
214
230
  * 1. the starting byte offset for the next box (should always be equal to
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import extractCompleteChunks, { extractInitSegment } from "./extract_complete_chunks";
17
17
  import findCompleteBox from "./find_complete_box";
18
+ import removeDolbyVisionConfigData from "./remove_dolby_vision_config_data";
18
19
  import takePSSHOut, { getPsshSystemID } from "./take_pssh_out";
19
20
  export { extractInitSegment };
20
21
  export { createBox, createBoxWithChildren } from "./create_box";
@@ -22,5 +23,5 @@ export { getBox, getBoxContent, getNextBoxOffsets, getBoxOffsets, getUuidContent
22
23
  export { getMDAT, getMDIA, getTRAF } from "./read";
23
24
  export type { IEMSG, ISidxSegment } from "./utils";
24
25
  export { getMDHDTimescale, getPlayReadyKIDFromPrivateData, getTrackFragmentDecodeTime, getDurationFromTrun, getSegmentsFromSidx, patchPssh, updateBoxLength, } from "./utils";
25
- export { extractCompleteChunks, findCompleteBox, getPsshSystemID, takePSSHOut };
26
+ export { extractCompleteChunks, findCompleteBox, getPsshSystemID, removeDolbyVisionConfigData, takePSSHOut, };
26
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,qBAAqB,EAAE,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,WAAW,EAAE,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,qBAAqB,EAAE,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,2BAA2B,MAAM,mCAAmC,CAAC;AAC5E,OAAO,WAAW,EAAE,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,WAAW,GACZ,CAAC"}
@@ -15,12 +15,14 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.takePSSHOut = exports.getPsshSystemID = exports.findCompleteBox = exports.extractCompleteChunks = exports.updateBoxLength = exports.patchPssh = exports.getSegmentsFromSidx = exports.getDurationFromTrun = exports.getTrackFragmentDecodeTime = exports.getPlayReadyKIDFromPrivateData = exports.getMDHDTimescale = exports.getTRAF = exports.getMDIA = exports.getMDAT = exports.getUuidContent = exports.getBoxOffsets = exports.getNextBoxOffsets = exports.getBoxContent = exports.getBox = exports.createBoxWithChildren = exports.createBox = exports.extractInitSegment = void 0;
18
+ exports.takePSSHOut = exports.removeDolbyVisionConfigData = exports.getPsshSystemID = exports.findCompleteBox = exports.extractCompleteChunks = exports.updateBoxLength = exports.patchPssh = exports.getSegmentsFromSidx = exports.getDurationFromTrun = exports.getTrackFragmentDecodeTime = exports.getPlayReadyKIDFromPrivateData = exports.getMDHDTimescale = exports.getTRAF = exports.getMDIA = exports.getMDAT = exports.getUuidContent = exports.getBoxOffsets = exports.getNextBoxOffsets = exports.getBoxContent = exports.getBox = exports.createBoxWithChildren = exports.createBox = exports.extractInitSegment = void 0;
19
19
  var extract_complete_chunks_1 = require("./extract_complete_chunks");
20
20
  exports.extractCompleteChunks = extract_complete_chunks_1.default;
21
21
  Object.defineProperty(exports, "extractInitSegment", { enumerable: true, get: function () { return extract_complete_chunks_1.extractInitSegment; } });
22
22
  var find_complete_box_1 = require("./find_complete_box");
23
23
  exports.findCompleteBox = find_complete_box_1.default;
24
+ var remove_dolby_vision_config_data_1 = require("./remove_dolby_vision_config_data");
25
+ exports.removeDolbyVisionConfigData = remove_dolby_vision_config_data_1.default;
24
26
  var take_pssh_out_1 = require("./take_pssh_out");
25
27
  exports.takePSSHOut = take_pssh_out_1.default;
26
28
  Object.defineProperty(exports, "getPsshSystemID", { enumerable: true, get: function () { return take_pssh_out_1.getPsshSystemID; } });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Replace every dvcC/dvvC/dvwC box in an ISOBMFF segment with FREE boxes.
3
+ * Useful to strip Dolby Vision configuration when the decoder cannot handle it.
4
+ *
5
+ * Unlike PSSH (which sits directly under `moov`), DV config boxes are nested
6
+ * deep inside each track: moov > trak > mdia > minf > stbl > stsd > <codec> > dvcC|dvvC|dvwC
7
+ * There may be multiple `trak` boxes, so we walk all of them.
8
+ *
9
+ * @param {Uint8Array} data - the ISOBMFF segment
10
+ * @returns {void}
11
+ */
12
+ export default function removeDolbyVisionConfigData(data: Uint8Array<ArrayBuffer>): void;
13
+ //# sourceMappingURL=remove_dolby_vision_config_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove_dolby_vision_config_data.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/remove_dolby_vision_config_data.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CA6BvF"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.default = removeDolbyVisionConfigData;
15
+ var log_1 = require("../../../log");
16
+ var byte_parsing_1 = require("../../../utils/byte_parsing");
17
+ var get_box_1 = require("./get_box");
18
+ /**
19
+ * Replace every dvcC/dvvC/dvwC box in an ISOBMFF segment with FREE boxes.
20
+ * Useful to strip Dolby Vision configuration when the decoder cannot handle it.
21
+ *
22
+ * Unlike PSSH (which sits directly under `moov`), DV config boxes are nested
23
+ * deep inside each track: moov > trak > mdia > minf > stbl > stsd > <codec> > dvcC|dvvC|dvwC
24
+ * There may be multiple `trak` boxes, so we walk all of them.
25
+ *
26
+ * @param {Uint8Array} data - the ISOBMFF segment
27
+ * @returns {void}
28
+ */
29
+ function removeDolbyVisionConfigData(data) {
30
+ var moov = (0, get_box_1.getBoxContent)(data, 0x6d6f6f76 /* moov */);
31
+ if (moov === null) {
32
+ return;
33
+ }
34
+ // Walk every trak box inside moov
35
+ var trakStart = 0;
36
+ while (trakStart < moov.length) {
37
+ var trakOffsets = void 0;
38
+ try {
39
+ trakOffsets = (0, get_box_1.getBoxOffsets)(moov.subarray(trakStart), 0x7472616b /* trak */);
40
+ }
41
+ catch (e) {
42
+ var err = e instanceof Error ? e : "";
43
+ log_1.default.warn("isobmff", "Error while iterating trak boxes in ISOBMFF", err);
44
+ return;
45
+ }
46
+ if (trakOffsets === null) {
47
+ break;
48
+ }
49
+ var trak = (0, get_box_1.getBoxContent)(moov.subarray(trakStart), 0x7472616b /* trak */);
50
+ if (trak !== null) {
51
+ removeDvcCFromTrak(trak);
52
+ }
53
+ // Advance past this trak box to find the next one
54
+ trakStart += trakOffsets[2];
55
+ }
56
+ }
57
+ /**
58
+ * Walk the stsd box inside a trak and replace any dvcC/dvvC/dvwC boxes
59
+ * with free boxes.
60
+ * @param {Uint8Array} trak - content of a trak box
61
+ */
62
+ function removeDvcCFromTrak(trak) {
63
+ var e_1, _a;
64
+ var DV_BOX_TYPES = [
65
+ 0x64766343 /* dvcC */, 0x64767643 /* dvvC */, 0x64767743 /* dvwC */,
66
+ ];
67
+ // Descend: trak > mdia > minf > stbl > stsd
68
+ var mdia = (0, get_box_1.getBoxContent)(trak, 0x6d646961 /* mdia */);
69
+ if (mdia === null) {
70
+ return;
71
+ }
72
+ var minf = (0, get_box_1.getBoxContent)(mdia, 0x6d696e66 /* minf */);
73
+ if (minf === null) {
74
+ return;
75
+ }
76
+ var stbl = (0, get_box_1.getBoxContent)(minf, 0x7374626c /* stbl */);
77
+ if (stbl === null) {
78
+ return;
79
+ }
80
+ var stsd = (0, get_box_1.getBoxContent)(stbl, 0x73747364 /* stsd */);
81
+ if (stsd === null) {
82
+ return;
83
+ }
84
+ var stsdChildren = stsd.subarray(8);
85
+ // Each codec box (avc1, hvc1, av01 …) may contain a dvcC/dvvC/dvwC child.
86
+ var codecStart = 0;
87
+ while (codecStart < stsdChildren.length) {
88
+ if (codecStart + 8 > stsdChildren.length) {
89
+ break;
90
+ }
91
+ var codecBoxSize = (0, byte_parsing_1.be4toi)(stsdChildren, codecStart);
92
+ var codecBoxType = (0, byte_parsing_1.be4toi)(stsdChildren, codecStart + 4);
93
+ if (codecBoxSize < 8 || codecStart + codecBoxSize > stsdChildren.length) {
94
+ break;
95
+ }
96
+ // The codec box is a VisualSampleEntry (or a wrapper like encv/enca).
97
+ // Its layout is: size(4)+type(4)+reserved(6)+data_ref_idx(2) = 16 bytes,
98
+ // then codec-specific fixed fields before child boxes begin.
99
+ // We scan forward from offset 16 (past the mandatory SampleEntry header)
100
+ // looking for the first plausible box boundary, then walk child boxes from
101
+ // there.
102
+ var codecBox = stsdChildren.subarray(codecStart, codecStart + codecBoxSize);
103
+ // Find where children start: scan from offset 16 for a size+fourcc that
104
+ // fits entirely within the box.
105
+ var childrenStart = findNextChildrenStartOffset(codecBox);
106
+ if (childrenStart === null) {
107
+ codecStart += codecBoxSize;
108
+ continue;
109
+ }
110
+ var codecChildren = codecBox.subarray(childrenStart);
111
+ try {
112
+ // Now search for and erase DV boxes
113
+ for (var DV_BOX_TYPES_1 = (e_1 = void 0, __values(DV_BOX_TYPES)), DV_BOX_TYPES_1_1 = DV_BOX_TYPES_1.next(); !DV_BOX_TYPES_1_1.done; DV_BOX_TYPES_1_1 = DV_BOX_TYPES_1.next()) {
114
+ var dvBoxType = DV_BOX_TYPES_1_1.value;
115
+ var dvStart = 0;
116
+ while (dvStart < codecChildren.length) {
117
+ var dvOffsets = void 0;
118
+ try {
119
+ dvOffsets = (0, get_box_1.getBoxOffsets)(codecChildren.subarray(dvStart), dvBoxType);
120
+ }
121
+ catch (e) {
122
+ var err = e instanceof Error ? e : "";
123
+ log_1.default.warn("isobmff", "Error while patching out dvcC/dvvC/dvwC from ISOBMFF", err);
124
+ break;
125
+ }
126
+ if (dvOffsets === null) {
127
+ break;
128
+ }
129
+ if (log_1.default.hasLevel("DEBUG")) {
130
+ log_1.default.debug("isobmff", "Found '".concat((0, get_box_1.boxTypeToFourCC)(dvBoxType), "' inside '").concat((0, get_box_1.boxTypeToFourCC)(codecBoxType), "', overwriting with 'free'"));
131
+ }
132
+ // Overwrite the 4-byte box type with `free` (0x66726565)
133
+ var typeByteOffset = dvStart + dvOffsets[0] + 4;
134
+ codecChildren[typeByteOffset] = 0x66; /* f */
135
+ codecChildren[typeByteOffset + 1] = 0x72; /* r */
136
+ codecChildren[typeByteOffset + 2] = 0x65; /* e */
137
+ codecChildren[typeByteOffset + 3] = 0x65; /* e */
138
+ // Advance past this box (size of box relative to the current slice)
139
+ dvStart += dvOffsets[2] - dvOffsets[0];
140
+ }
141
+ }
142
+ }
143
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
144
+ finally {
145
+ try {
146
+ if (DV_BOX_TYPES_1_1 && !DV_BOX_TYPES_1_1.done && (_a = DV_BOX_TYPES_1.return)) _a.call(DV_BOX_TYPES_1);
147
+ }
148
+ finally { if (e_1) throw e_1.error; }
149
+ }
150
+ codecStart += codecBoxSize;
151
+ }
152
+ }
153
+ /**
154
+ * Scan a codec box (VisualSampleEntry or wrapper) to find the byte offset
155
+ * where child boxes begin. We skip the mandatory SampleEntry header (16 bytes)
156
+ * and then look for the first offset whose size+type looks like a valid box
157
+ * that fits within the parent.
158
+ */
159
+ function findNextChildrenStartOffset(box) {
160
+ // SampleEntry header: size(4)+type(4)+reserved(6)+data_ref_idx(2) = 16 bytes minimum.
161
+ // Children can only start after that.
162
+ for (var off = 16; off + 8 <= box.length; off++) {
163
+ var size = (0, byte_parsing_1.be4toi)(box, off);
164
+ if (size < 8 || off + size > box.length) {
165
+ continue;
166
+ }
167
+ // Check that the four-byte type is all printable ASCII as a sanity check.
168
+ var allPrint = true;
169
+ for (var i = off + 4; i < off + 8; i++) {
170
+ if (box[i] < 0x20 || box[i] > 0x7e) {
171
+ allPrint = false;
172
+ break;
173
+ }
174
+ }
175
+ if (allPrint) {
176
+ return off;
177
+ }
178
+ }
179
+ return null;
180
+ }
@@ -186,14 +186,14 @@ function createManifest(mplData, manifests, parserOptions) {
186
186
  };
187
187
  var newIndex = new representation_index_1.default(currentRepresentation.index, [contentOffset, contentEnd], content.transport, baseContentMetadata);
188
188
  var supplementalCodecs = void 0;
189
- if (currentRepresentation.codecs.length > 1) {
190
- if (currentRepresentation.codecs.length > 2) {
189
+ if (currentRepresentation.baseCodecs.length > 1) {
190
+ if (currentRepresentation.baseCodecs.length > 2) {
191
191
  log_1.default.warn("metaplaylist", "MetaPlaylist relying on more than 2 groups of " +
192
192
  "codecs with retro-compatibility");
193
193
  }
194
- supplementalCodecs = currentRepresentation.codecs[0];
194
+ supplementalCodecs = currentRepresentation.baseCodecs[0];
195
195
  }
196
- var codecs = currentRepresentation.codecs[currentRepresentation.codecs.length - 1];
196
+ var codecs = currentRepresentation.baseCodecs[currentRepresentation.baseCodecs.length - 1];
197
197
  representations.push({
198
198
  bitrate: currentRepresentation.bitrate,
199
199
  index: newIndex,
@@ -1 +1 @@
1
- {"version":3,"file":"segment_parser.d.ts","sourceRoot":"","sources":["../../../../src/transports/dash/segment_parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,UAAU,CAAC;AAKlB;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,EACtD,6BAA6B,GAC9B,EAAE;IACD,6BAA6B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrD,GAAG,cAAc,CAChB,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,EAC5C,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAC7C,CA6JA"}
1
+ {"version":3,"file":"segment_parser.d.ts","sourceRoot":"","sources":["../../../../src/transports/dash/segment_parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,UAAU,CAAC;AAKlB;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,EACtD,6BAA6B,GAC9B,EAAE;IACD,6BAA6B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrD,GAAG,cAAc,CAChB,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,EAC5C,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAC7C,CAuKA"}
@@ -16,6 +16,8 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.default = generateAudioVideoSegmentParser;
19
+ var should_patch_out_dolby_vision_config_data_from_mp4_1 = require("../../compat/should_patch_out_dolby_vision_config_data_from_mp4");
20
+ var log_1 = require("../../log");
19
21
  var isobmff_1 = require("../../parsers/containers/isobmff");
20
22
  var utils_1 = require("../../parsers/containers/isobmff/utils");
21
23
  var matroska_1 = require("../../parsers/containers/matroska");
@@ -123,6 +125,10 @@ function generateAudioVideoSegmentParser(_a) {
123
125
  segmentList = (0, matroska_1.getSegmentsFromCues)(chunkData, 0);
124
126
  }
125
127
  else if (seemsToBeMP4) {
128
+ if ((0, should_patch_out_dolby_vision_config_data_from_mp4_1.default)(context.baseCodecs, context.chosenCodec)) {
129
+ log_1.default.debug("dash", "patching out Dolby Vision metadata from segment");
130
+ (0, isobmff_1.removeDolbyVisionConfigData)(chunkData);
131
+ }
126
132
  segmentList = (0, isobmff_1.getSegmentsFromSidx)(chunkData, Array.isArray(indexRange) ? indexRange[0] : 0);
127
133
  // This is a very specific handling for streams we know have a very
128
134
  // specific problem at Canal+: The last reference gives a truncated
@@ -1 +1 @@
1
- {"version":3,"file":"text_parser.d.ts","sourceRoot":"","sources":["../../../../src/transports/dash/text_parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAEV,cAAc,EAGd,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAgKlB;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,6BAA6B,GAC9B,EAAE;IACD,6BAA6B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrD,GAAG,cAAc,CAChB,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,GAAG,IAAI,EACrD,qBAAqB,GAAG,IAAI,CAC7B,CA4DA"}
1
+ {"version":3,"file":"text_parser.d.ts","sourceRoot":"","sources":["../../../../src/transports/dash/text_parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAEV,cAAc,EAGd,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAoKlB;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,6BAA6B,GAC9B,EAAE;IACD,6BAA6B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrD,GAAG,cAAc,CAChB,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,GAAG,IAAI,EACrD,qBAAqB,GAAG,IAAI,CAC7B,CA4DA"}