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.
- package/CHANGELOG.md +3 -1
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/compat/browser_compatibility_types.d.ts +16 -14
- package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
- package/dist/commonjs/compat/browser_compatibility_types.js +7 -4
- package/dist/commonjs/compat/browser_version.d.ts +2 -1
- package/dist/commonjs/compat/browser_version.d.ts.map +1 -1
- package/dist/commonjs/compat/browser_version.js +13 -0
- package/dist/commonjs/compat/disable_remote_playback_on_managed_media_source.d.ts.map +1 -1
- package/dist/commonjs/compat/disable_remote_playback_on_managed_media_source.js +1 -1
- package/dist/commonjs/compat/is_codec_supported.d.ts.map +1 -1
- package/dist/commonjs/compat/is_codec_supported.js +4 -3
- package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts +26 -0
- package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts.map +1 -0
- package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.js +45 -0
- package/dist/commonjs/core/entry/utils.js +3 -3
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +2 -1
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +2 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +8 -6
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +4 -3
- package/dist/commonjs/initialize_worker.js +1 -1
- package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +3 -3
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +24 -12
- package/dist/commonjs/manifest/classes/adaptation.d.ts.map +1 -1
- package/dist/commonjs/manifest/classes/adaptation.js +3 -1
- package/dist/commonjs/manifest/classes/representation.d.ts +6 -2
- package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
- package/dist/commonjs/manifest/classes/representation.js +45 -23
- package/dist/commonjs/manifest/types.d.ts +14 -6
- package/dist/commonjs/manifest/types.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.js +4 -4
- package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
- package/dist/commonjs/mse/main_media_source_interface.js +3 -2
- package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
- package/dist/commonjs/parsers/containers/isobmff/get_box.d.ts +12 -1
- package/dist/commonjs/parsers/containers/isobmff/get_box.d.ts.map +1 -1
- package/dist/commonjs/parsers/containers/isobmff/get_box.js +16 -0
- package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -1
- package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
- package/dist/commonjs/parsers/containers/isobmff/index.js +3 -1
- package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts +13 -0
- package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts.map +1 -0
- package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.js +180 -0
- package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +4 -4
- package/dist/commonjs/transports/dash/segment_parser.d.ts.map +1 -1
- package/dist/commonjs/transports/dash/segment_parser.js +6 -0
- package/dist/commonjs/transports/dash/text_parser.d.ts.map +1 -1
- package/dist/commonjs/transports/dash/text_parser.js +5 -1
- package/dist/commonjs/transports/local/text_parser.d.ts.map +1 -1
- package/dist/commonjs/transports/local/text_parser.js +5 -1
- package/dist/commonjs/transports/metaplaylist/pipelines.d.ts.map +1 -1
- package/dist/commonjs/transports/metaplaylist/pipelines.js +2 -1
- package/dist/commonjs/transports/smooth/pipelines.js +3 -3
- package/dist/commonjs/transports/types.d.ts +28 -2
- package/dist/commonjs/transports/types.d.ts.map +1 -1
- package/dist/commonjs/transports/utils/parse_text_track.d.ts +9 -2
- package/dist/commonjs/transports/utils/parse_text_track.d.ts.map +1 -1
- package/dist/commonjs/transports/utils/parse_text_track.js +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/compat/browser_compatibility_types.d.ts +16 -14
- package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
- package/dist/es2017/compat/browser_compatibility_types.js +7 -1
- package/dist/es2017/compat/browser_version.d.ts +2 -1
- package/dist/es2017/compat/browser_version.d.ts.map +1 -1
- package/dist/es2017/compat/browser_version.js +13 -1
- package/dist/es2017/compat/disable_remote_playback_on_managed_media_source.d.ts.map +1 -1
- package/dist/es2017/compat/disable_remote_playback_on_managed_media_source.js +2 -2
- package/dist/es2017/compat/is_codec_supported.d.ts.map +1 -1
- package/dist/es2017/compat/is_codec_supported.js +2 -1
- package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts +26 -0
- package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts.map +1 -0
- package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.js +42 -0
- package/dist/es2017/core/entry/utils.js +4 -4
- package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/segment/segment_fetcher.js +2 -1
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +2 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +3 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +2 -1
- package/dist/es2017/initialize_worker.js +1 -1
- package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.js +3 -3
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +9 -7
- package/dist/es2017/manifest/classes/adaptation.d.ts.map +1 -1
- package/dist/es2017/manifest/classes/adaptation.js +3 -1
- package/dist/es2017/manifest/classes/representation.d.ts +6 -2
- package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
- package/dist/es2017/manifest/classes/representation.js +45 -23
- package/dist/es2017/manifest/types.d.ts +14 -6
- package/dist/es2017/manifest/types.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.js +4 -4
- package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
- package/dist/es2017/mse/main_media_source_interface.js +2 -1
- package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
- package/dist/es2017/parsers/containers/isobmff/get_box.d.ts +12 -1
- package/dist/es2017/parsers/containers/isobmff/get_box.d.ts.map +1 -1
- package/dist/es2017/parsers/containers/isobmff/get_box.js +16 -1
- package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -1
- package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
- package/dist/es2017/parsers/containers/isobmff/index.js +2 -1
- package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts +13 -0
- package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts.map +1 -0
- package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.js +155 -0
- package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +4 -4
- package/dist/es2017/transports/dash/segment_parser.d.ts.map +1 -1
- package/dist/es2017/transports/dash/segment_parser.js +7 -1
- package/dist/es2017/transports/dash/text_parser.d.ts.map +1 -1
- package/dist/es2017/transports/dash/text_parser.js +5 -1
- package/dist/es2017/transports/local/text_parser.d.ts.map +1 -1
- package/dist/es2017/transports/local/text_parser.js +5 -1
- package/dist/es2017/transports/metaplaylist/pipelines.d.ts.map +1 -1
- package/dist/es2017/transports/metaplaylist/pipelines.js +2 -1
- package/dist/es2017/transports/smooth/pipelines.js +3 -3
- package/dist/es2017/transports/types.d.ts +28 -2
- package/dist/es2017/transports/types.d.ts.map +1 -1
- package/dist/es2017/transports/utils/parse_text_track.d.ts +9 -2
- package/dist/es2017/transports/utils/parse_text_track.d.ts.map +1 -1
- package/dist/es2017/transports/utils/parse_text_track.js +1 -1
- package/dist/worker.js +6 -6
- package/eslint.config.mjs +1 -14
- package/package.json +1 -1
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/compat/__tests__/browser_compatibility_types.test.ts +15 -26
- package/src/compat/__tests__/browser_version.test.ts +57 -18
- package/src/compat/__tests__/clear_element_src.test.ts +20 -40
- package/src/compat/__tests__/is_codec_supported.test.ts +39 -44
- package/src/compat/__tests__/is_vtt_cue.test.ts +5 -8
- package/src/compat/__tests__/make_vtt_cue.test.ts +20 -31
- package/src/compat/__tests__/remove_cue.test.ts +8 -20
- package/src/compat/__tests__/should_patch_out_dolby_vision_config_data_from_mp4.test.ts +78 -0
- package/src/compat/browser_compatibility_types.ts +8 -1
- package/src/compat/browser_version.ts +17 -1
- package/src/compat/disable_remote_playback_on_managed_media_source.ts +2 -2
- package/src/compat/is_codec_supported.ts +2 -1
- package/src/compat/should_patch_out_dolby_vision_config_data_from_mp4.ts +50 -0
- package/src/core/adaptive/__tests__/adaptive_representation_selector.test.ts +68 -28
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +26 -84
- package/src/core/entry/__tests__/utils.test.ts +7 -1
- package/src/core/entry/utils.ts +4 -4
- package/src/core/fetchers/segment/segment_fetcher.ts +2 -1
- package/src/errors/__tests__/format_error.test.ts +23 -24
- package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +2 -1
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +106 -0
- package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/HDCPPolicy.test.ts +19 -42
- package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/decodingInfo.test.ts +33 -40
- package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/defaultCodecsFinder.test.ts +44 -68
- package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/mediaContentType.test.ts +45 -80
- package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +3 -1
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +2 -1
- package/src/features/__tests__/add_features.test.ts +12 -27
- package/src/initialize_worker.ts +1 -1
- package/src/main_thread/api/__tests__/option_utils.test.ts +38 -67
- package/src/main_thread/api/__tests__/public_api.test.ts +56 -138
- package/src/main_thread/api/debug/modules/segment_buffer_content.ts +3 -3
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/main_thread/decrypt/__tests__/__global__/find_key_system.test.ts +46 -28
- package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +40 -10
- package/src/main_thread/decrypt/__tests__/__global__/init_data.test.ts +112 -129
- package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +282 -377
- package/src/main_thread/decrypt/__tests__/__global__/media_keys.test.ts +70 -63
- package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +73 -54
- package/src/main_thread/decrypt/__tests__/__global__/utils.ts +43 -83
- package/src/main_thread/decrypt/__tests__/find_key_system.test.ts +36 -17
- package/src/main_thread/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +44 -48
- package/src/main_thread/init/utils/__tests__/are_same_stream_events.test.ts +7 -22
- package/src/main_thread/init/utils/__tests__/refresh_scheduled_events_list.test.ts +3 -6
- package/src/main_thread/init/utils/__tests__/update_manifest_codec_support.test.ts +42 -19
- package/src/main_thread/init/utils/update_manifest_codec_support.ts +8 -6
- package/src/manifest/classes/__tests__/adaptation.test.ts +69 -125
- package/src/manifest/classes/__tests__/manifest.test.ts +88 -95
- package/src/manifest/classes/__tests__/period.test.ts +167 -117
- package/src/manifest/classes/__tests__/representation.test.ts +84 -25
- package/src/manifest/classes/__tests__/update_periods.test.ts +96 -225
- package/src/manifest/classes/adaptation.ts +4 -1
- package/src/manifest/classes/representation.ts +59 -27
- package/src/manifest/types.ts +14 -6
- package/src/manifest/utils.ts +4 -4
- package/src/mse/__tests__/main_media_source_interface.test.ts +3 -1
- package/src/mse/__tests__/worker_media_source_interface.test.ts +608 -0
- package/src/mse/main_media_source_interface.ts +2 -1
- package/src/mse/worker_media_source_interface.ts +2 -2
- package/src/parsers/containers/isobmff/__tests__/get_box.test.ts +449 -0
- package/src/parsers/containers/isobmff/__tests__/remove_dolby_vision_config_data.test.ts +282 -0
- package/src/parsers/containers/isobmff/get_box.ts +17 -0
- package/src/parsers/containers/isobmff/index.ts +8 -1
- package/src/parsers/containers/isobmff/remove_dolby_vision_config_data.ts +179 -0
- package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +19 -25
- package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +7 -19
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +26 -37
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +24 -53
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +31 -78
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +6 -4
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +79 -87
- package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +20 -26
- package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.ts +2 -7
- package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +33 -30
- package/src/parsers/texttracks/webvtt/__tests__/parse_style_block.test.ts +33 -100
- package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +16 -18
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +73 -78
- package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +36 -37
- package/src/transports/dash/segment_parser.ts +13 -0
- package/src/transports/dash/text_parser.ts +5 -1
- package/src/transports/local/text_parser.ts +5 -1
- package/src/transports/metaplaylist/pipelines.ts +2 -1
- package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +150 -127
- package/src/transports/smooth/pipelines.ts +3 -3
- package/src/transports/types.ts +28 -2
- package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +49 -75
- package/src/transports/utils/parse_text_track.ts +10 -3
- 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":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAItE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAInE;;;GAGG;AACH,cAAM,cAAe,YAAW,uBAAuB;IACrD,2EAA2E;IAC3E,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC;;OAEG;IACI,OAAO,EAAE,MAAM,CAAC;IACvB;;OAEG;IACI,SAAS,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACI,KAAK,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;;OASG;IACI,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC1C;;OAEG;IACI,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C;;OAEG;IACI,
|
|
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
|
|
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.
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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 (
|
|
87
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
177
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
408
|
-
*
|
|
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
|
-
|
|
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,
|
|
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:
|
|
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,
|
|
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:
|
|
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;
|
|
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
|
-
|
|
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
|
|
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,
|
|
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.
|
|
190
|
-
if (currentRepresentation.
|
|
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.
|
|
194
|
+
supplementalCodecs = currentRepresentation.baseCodecs[0];
|
|
195
195
|
}
|
|
196
|
-
var codecs = currentRepresentation.
|
|
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;
|
|
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;
|
|
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"}
|