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
|
@@ -29,12 +29,12 @@ class Representation {
|
|
|
29
29
|
* @param {string} trackType
|
|
30
30
|
*/
|
|
31
31
|
constructor(args, trackType, cachedCodecSupport) {
|
|
32
|
-
var _a, _b, _c, _d
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
33
|
this.id = args.id;
|
|
34
34
|
this.uniqueId = generateRepresentationUniqueId();
|
|
35
35
|
this.shouldBeAvoided = false;
|
|
36
36
|
this.bitrate = args.bitrate;
|
|
37
|
-
this.
|
|
37
|
+
this.baseCodecs = [];
|
|
38
38
|
this.trackType = trackType;
|
|
39
39
|
if (args.isSpatialAudio !== undefined) {
|
|
40
40
|
this.isSpatialAudio = args.isSpatialAudio;
|
|
@@ -61,31 +61,44 @@ class Representation {
|
|
|
61
61
|
this.index = args.index;
|
|
62
62
|
const isEncrypted = this.contentProtections !== undefined;
|
|
63
63
|
if (trackType === "audio" || trackType === "video") {
|
|
64
|
+
/**
|
|
65
|
+
* - `true` -> We found a supported codec linked to this Representation
|
|
66
|
+
* - `false` -> We did not find yet a supported codec linked to this
|
|
67
|
+
* Representation
|
|
68
|
+
* - `undefined` -> The current prefered codec has its support not
|
|
69
|
+
* known yet.
|
|
70
|
+
*/
|
|
71
|
+
let foundSupportedCodec = false;
|
|
64
72
|
// Supplemental codecs are defined as backwards-compatible codecs enhancing
|
|
65
73
|
// the experience of a base layer codec
|
|
66
74
|
if (args.supplementalCodecs !== undefined) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
75
|
+
this.baseCodecs.push(args.supplementalCodecs);
|
|
76
|
+
foundSupportedCodec = cachedCodecSupport.isSupported((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", (_b = args.supplementalCodecs) !== null && _b !== void 0 ? _b : "", isEncrypted);
|
|
77
|
+
if (foundSupportedCodec === true) {
|
|
78
|
+
log.debug("manifest", "supplementalCodec is supported as per the cache", {
|
|
79
|
+
codec: args.supplementalCodecs,
|
|
80
|
+
});
|
|
81
|
+
this.chosenCodec = args.supplementalCodecs;
|
|
71
82
|
}
|
|
72
83
|
}
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
// We couldn't check for support of another supplemental codec.
|
|
76
|
-
// Just push that codec without testing support yet, we'll check
|
|
77
|
-
// support later.
|
|
78
|
-
this.codecs.push((_c = args.codecs) !== null && _c !== void 0 ? _c : "");
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
this.codecs = args.codecs === undefined ? [] : [args.codecs];
|
|
82
|
-
this.isSupported = cachedCodecSupport.isSupported((_d = this.mimeType) !== null && _d !== void 0 ? _d : "", (_e = args.codecs) !== null && _e !== void 0 ? _e : "", isEncrypted);
|
|
83
|
-
}
|
|
84
|
+
if (args.codecs !== undefined) {
|
|
85
|
+
this.baseCodecs.push(args.codecs);
|
|
84
86
|
}
|
|
87
|
+
if (foundSupportedCodec === false) {
|
|
88
|
+
foundSupportedCodec = cachedCodecSupport.isSupported((_c = this.mimeType) !== null && _c !== void 0 ? _c : "", (_d = args.codecs) !== null && _d !== void 0 ? _d : "", isEncrypted);
|
|
89
|
+
// Put the generic codec as a fallback anyway if supplemental ones
|
|
90
|
+
// aren't present or supported.
|
|
91
|
+
log.debug("manifest", "codec is supported as per the cache", {
|
|
92
|
+
codec: args.codecs,
|
|
93
|
+
});
|
|
94
|
+
this.chosenCodec = args.codecs;
|
|
95
|
+
}
|
|
96
|
+
this.isSupported = foundSupportedCodec;
|
|
85
97
|
}
|
|
86
98
|
else {
|
|
87
99
|
if (args.codecs !== undefined) {
|
|
88
|
-
this.
|
|
100
|
+
this.baseCodecs.push(args.codecs);
|
|
101
|
+
this.chosenCodec = args.codecs;
|
|
89
102
|
}
|
|
90
103
|
this.isSupported = true;
|
|
91
104
|
}
|
|
@@ -110,7 +123,7 @@ class Representation {
|
|
|
110
123
|
const isEncrypted = this.contentProtections !== undefined;
|
|
111
124
|
let isSupported = false;
|
|
112
125
|
const mimeType = (_a = this.mimeType) !== null && _a !== void 0 ? _a : "";
|
|
113
|
-
let codecs = (_b = this.
|
|
126
|
+
let codecs = (_b = this.baseCodecs) !== null && _b !== void 0 ? _b : [];
|
|
114
127
|
if (codecs.length === 0) {
|
|
115
128
|
codecs = [""];
|
|
116
129
|
}
|
|
@@ -118,7 +131,8 @@ class Representation {
|
|
|
118
131
|
for (const codec of codecs) {
|
|
119
132
|
isSupported = cachedCodecSupport.isSupported(mimeType, codec, isEncrypted);
|
|
120
133
|
if (isSupported === true) {
|
|
121
|
-
|
|
134
|
+
log.debug("manifest", "codec is found to be supported", { codec });
|
|
135
|
+
this.chosenCodec = codec;
|
|
122
136
|
break;
|
|
123
137
|
}
|
|
124
138
|
if (isSupported === undefined) {
|
|
@@ -149,8 +163,15 @@ class Representation {
|
|
|
149
163
|
* @returns {string}
|
|
150
164
|
*/
|
|
151
165
|
getMimeTypeString() {
|
|
152
|
-
var _a
|
|
153
|
-
|
|
166
|
+
var _a;
|
|
167
|
+
let codec = this.chosenCodec;
|
|
168
|
+
if (codec === undefined) {
|
|
169
|
+
log.warn("manifest", "Asked for mimetype string when codec support is yet unknown, attempting with first known linked codec");
|
|
170
|
+
if (this.baseCodecs !== undefined) {
|
|
171
|
+
codec = this.baseCodecs[0];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return `${(_a = this.mimeType) !== null && _a !== void 0 ? _a : ""};codecs="${codec !== null && codec !== void 0 ? codec : ""}"`;
|
|
154
175
|
}
|
|
155
176
|
/**
|
|
156
177
|
* Returns encryption initialization data linked to the given DRM's system ID.
|
|
@@ -350,7 +371,8 @@ class Representation {
|
|
|
350
371
|
id: this.id,
|
|
351
372
|
uniqueId: this.uniqueId,
|
|
352
373
|
bitrate: this.bitrate,
|
|
353
|
-
|
|
374
|
+
baseCodecs: this.baseCodecs,
|
|
375
|
+
chosenCodec: this.chosenCodec,
|
|
354
376
|
mimeType: this.mimeType,
|
|
355
377
|
width: this.width,
|
|
356
378
|
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":"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"}
|
|
@@ -215,11 +215,11 @@ export function toVideoTrack(adaptation, filterPlayable) {
|
|
|
215
215
|
* @returns {Object}
|
|
216
216
|
*/
|
|
217
217
|
export function toAudioRepresentation(representation) {
|
|
218
|
-
const { id, bitrate,
|
|
218
|
+
const { id, bitrate, chosenCodec, isSpatialAudio, isSupported, decipherable } = representation;
|
|
219
219
|
return {
|
|
220
220
|
id,
|
|
221
221
|
bitrate,
|
|
222
|
-
codec:
|
|
222
|
+
codec: chosenCodec,
|
|
223
223
|
isSpatialAudio,
|
|
224
224
|
isCodecSupported: isSupported,
|
|
225
225
|
decipherable,
|
|
@@ -230,14 +230,14 @@ export function toAudioRepresentation(representation) {
|
|
|
230
230
|
* @returns {Object}
|
|
231
231
|
*/
|
|
232
232
|
export function toVideoRepresentation(representation) {
|
|
233
|
-
const { id, bitrate, frameRate, width, height,
|
|
233
|
+
const { id, bitrate, frameRate, width, height, chosenCodec, hdrInfo, isSupported, decipherable, contentProtections, } = representation;
|
|
234
234
|
return {
|
|
235
235
|
id,
|
|
236
236
|
bitrate,
|
|
237
237
|
frameRate,
|
|
238
238
|
width,
|
|
239
239
|
height,
|
|
240
|
-
codec:
|
|
240
|
+
codec: chosenCodec,
|
|
241
241
|
hdrInfo,
|
|
242
242
|
isCodecSupported: isSupported,
|
|
243
243
|
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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BROWSER_GLOBALS from "../compat/browser_compatibility_types";
|
|
2
2
|
import tryToChangeSourceBufferType from "../compat/change_source_buffer_type";
|
|
3
3
|
import { onSourceClose, onSourceEnded, onSourceOpen } from "../compat/event_listeners";
|
|
4
4
|
import { MediaError, SourceBufferError } from "../errors";
|
|
@@ -29,6 +29,7 @@ export default class MainMediaSourceInterface extends EventEmitter {
|
|
|
29
29
|
this.id = id;
|
|
30
30
|
this.sourceBuffers = [];
|
|
31
31
|
this._canceller = new TaskCanceller("MainMediaSourceInterface");
|
|
32
|
+
const { MediaSource_ } = BROWSER_GLOBALS;
|
|
32
33
|
if (isNullOrUndefined(MediaSource_)) {
|
|
33
34
|
throw new MediaError("MEDIA_SOURCE_NOT_SUPPORTED", "No MediaSource Object was found in the current browser.");
|
|
34
35
|
}
|
|
@@ -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":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,wCAAwC,EACxC,wBAAwB,EACxB,2BAA2B,EAC3B,qCAAqC,EACtC,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAElF,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,4CAA4C,EAC5C,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAajB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,0BACnB,SAAQ,YAAY,CAAC,2BAA2B,CAChD,YAAW,qBAAqB;IAEzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,EAAE,2BAA2B,EAAE,CAAC;IAC7C,UAAU,EAAE,UAAU,CAAC;IAC9B,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,cAAc,CAA2C;gBAG/D,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,wCAAwC;IAiBlD,8BAA8B,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAiB5D,eAAe,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,sBAAsB;IAmBlB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO;IAWxD,wBAAwB;IAQxB,mBAAmB;IAQnB,eAAe;IAQtB;;;;OAIG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CAS1C;AAED,MAAM,MAAM,wCAAwC,GAAG,CACrD,GAAG,EACC,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,GACvB,6BAA6B,GAC7B,2BAA2B,GAC3B,qCAAqC,GACrC,wCAAwC,GACxC,uBAAuB,GACvB,2BAA2B,GAC3B,8BAA8B,EAClC,aAAa,CAAC,EAAE,YAAY,EAAE,KAC3B,IAAI,CAAC;AAEV,qBAAa,2BAA4B,YAAW,sBAAsB;IACxE,+DAA+D;IACxD,KAAK,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACI,IAAI,EAAE,gBAAgB,CAAC;IAC9B;;;;OAIG;IACI,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IAChD;;;OAGG;IACI,kBAAkB,EAAE,GAAG,CAC5B,MAAM,EACN;QACE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QACpC,MAAM,EAAE,CAAC,GAAG,EAAE,iBAAiB,GAAG,iBAAiB,KAAK,IAAI,CAAC;KAC9D,CACF,CAAC;IACF;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAS;IAC/B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC,kDAAkD;IAClD,OAAO,CAAC,cAAc,CAA2C;gBAG/D,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,wCAAwC;IAWlD,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAa/D,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,4BAA4B,GAAG;QAAE,SAAS,EAAE,mBAAmB,CAAA;KAAE,GACvE,IAAI;IA4BA,YAAY,CACjB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,4CAA4C,GACnD,OAAO,CAAC,MAAM,EAAE,CAAC;IA+Cb,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiCrD,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKzC,WAAW,IAAI,SAAS;IAI/B,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,qCAAqC;CAoD9C;AAED,KAAK,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,mBAAW,gBAAgB;IACzB,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAED,UAAU,cAAc;IACtB,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,UAAU,gBAAgB;IACxB,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,UAAU,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC"}
|
|
@@ -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"}
|
|
@@ -178,6 +178,21 @@ function getUuidContent(buf, id1, id2, id3, id4) {
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* When parsed, the "box type", which announce the name of the box, are in the
|
|
183
|
+
* RxPlayer encoded as unsigned 32 bit integers.
|
|
184
|
+
*
|
|
185
|
+
* When debugging or in logs, the textual fourCC format (e.g. `moov`, `mdat`,
|
|
186
|
+
* `pssh` etc.) is much more readable. Thus this function allows to convert
|
|
187
|
+
* between the two.
|
|
188
|
+
* @param {number} n - The box type as a "number" (32 bit unsigned integer).
|
|
189
|
+
* @returns {string} - its fourCC ASCII correspondance
|
|
190
|
+
*/
|
|
191
|
+
function boxTypeToFourCC(n) {
|
|
192
|
+
return [(n >>> 24) & 0xff, (n >>> 16) & 0xff, (n >>> 8) & 0xff, n & 0xff]
|
|
193
|
+
.map((b) => String.fromCharCode(b))
|
|
194
|
+
.join("");
|
|
195
|
+
}
|
|
181
196
|
/**
|
|
182
197
|
* For the next encountered box, return byte offsets corresponding to:
|
|
183
198
|
* 1. the starting byte offset for the next box (should always be equal to
|
|
@@ -221,4 +236,4 @@ function getNextBoxOffsets(buf) {
|
|
|
221
236
|
}
|
|
222
237
|
return [0, lastOffset, boxSize];
|
|
223
238
|
}
|
|
224
|
-
export { getBox, getBoxContent, getBoxesContent, getBoxOffsets, getChildBox, getNextBoxOffsets, getUuidContent, };
|
|
239
|
+
export { boxTypeToFourCC, getBox, getBoxContent, getBoxesContent, getBoxOffsets, getChildBox, getNextBoxOffsets, getUuidContent, };
|
|
@@ -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,10 +15,11 @@
|
|
|
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";
|
|
21
22
|
export { getBox, getBoxContent, getNextBoxOffsets, getBoxOffsets, getUuidContent, } from "./get_box";
|
|
22
23
|
export { getMDAT, getMDIA, getTRAF } from "./read";
|
|
23
24
|
export { getMDHDTimescale, getPlayReadyKIDFromPrivateData, getTrackFragmentDecodeTime, getDurationFromTrun, getSegmentsFromSidx, patchPssh, updateBoxLength, } from "./utils";
|
|
24
|
-
export { extractCompleteChunks, findCompleteBox, getPsshSystemID, takePSSHOut };
|
|
25
|
+
export { extractCompleteChunks, findCompleteBox, getPsshSystemID, removeDolbyVisionConfigData, takePSSHOut, };
|
|
@@ -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,155 @@
|
|
|
1
|
+
import log from "../../../log";
|
|
2
|
+
import { be4toi } from "../../../utils/byte_parsing";
|
|
3
|
+
import { boxTypeToFourCC, getBoxContent, getBoxOffsets } from "./get_box";
|
|
4
|
+
/**
|
|
5
|
+
* Replace every dvcC/dvvC/dvwC box in an ISOBMFF segment with FREE boxes.
|
|
6
|
+
* Useful to strip Dolby Vision configuration when the decoder cannot handle it.
|
|
7
|
+
*
|
|
8
|
+
* Unlike PSSH (which sits directly under `moov`), DV config boxes are nested
|
|
9
|
+
* deep inside each track: moov > trak > mdia > minf > stbl > stsd > <codec> > dvcC|dvvC|dvwC
|
|
10
|
+
* There may be multiple `trak` boxes, so we walk all of them.
|
|
11
|
+
*
|
|
12
|
+
* @param {Uint8Array} data - the ISOBMFF segment
|
|
13
|
+
* @returns {void}
|
|
14
|
+
*/
|
|
15
|
+
export default function removeDolbyVisionConfigData(data) {
|
|
16
|
+
const moov = getBoxContent(data, 0x6d6f6f76 /* moov */);
|
|
17
|
+
if (moov === null) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// Walk every trak box inside moov
|
|
21
|
+
let trakStart = 0;
|
|
22
|
+
while (trakStart < moov.length) {
|
|
23
|
+
let trakOffsets;
|
|
24
|
+
try {
|
|
25
|
+
trakOffsets = getBoxOffsets(moov.subarray(trakStart), 0x7472616b /* trak */);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
const err = e instanceof Error ? e : "";
|
|
29
|
+
log.warn("isobmff", "Error while iterating trak boxes in ISOBMFF", err);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (trakOffsets === null) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
const trak = getBoxContent(moov.subarray(trakStart), 0x7472616b /* trak */);
|
|
36
|
+
if (trak !== null) {
|
|
37
|
+
removeDvcCFromTrak(trak);
|
|
38
|
+
}
|
|
39
|
+
// Advance past this trak box to find the next one
|
|
40
|
+
trakStart += trakOffsets[2];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Walk the stsd box inside a trak and replace any dvcC/dvvC/dvwC boxes
|
|
45
|
+
* with free boxes.
|
|
46
|
+
* @param {Uint8Array} trak - content of a trak box
|
|
47
|
+
*/
|
|
48
|
+
function removeDvcCFromTrak(trak) {
|
|
49
|
+
const DV_BOX_TYPES = [
|
|
50
|
+
0x64766343 /* dvcC */, 0x64767643 /* dvvC */, 0x64767743 /* dvwC */,
|
|
51
|
+
];
|
|
52
|
+
// Descend: trak > mdia > minf > stbl > stsd
|
|
53
|
+
const mdia = getBoxContent(trak, 0x6d646961 /* mdia */);
|
|
54
|
+
if (mdia === null) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const minf = getBoxContent(mdia, 0x6d696e66 /* minf */);
|
|
58
|
+
if (minf === null) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const stbl = getBoxContent(minf, 0x7374626c /* stbl */);
|
|
62
|
+
if (stbl === null) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const stsd = getBoxContent(stbl, 0x73747364 /* stsd */);
|
|
66
|
+
if (stsd === null) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const stsdChildren = stsd.subarray(8);
|
|
70
|
+
// Each codec box (avc1, hvc1, av01 …) may contain a dvcC/dvvC/dvwC child.
|
|
71
|
+
let codecStart = 0;
|
|
72
|
+
while (codecStart < stsdChildren.length) {
|
|
73
|
+
if (codecStart + 8 > stsdChildren.length) {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
const codecBoxSize = be4toi(stsdChildren, codecStart);
|
|
77
|
+
const codecBoxType = be4toi(stsdChildren, codecStart + 4);
|
|
78
|
+
if (codecBoxSize < 8 || codecStart + codecBoxSize > stsdChildren.length) {
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
// The codec box is a VisualSampleEntry (or a wrapper like encv/enca).
|
|
82
|
+
// Its layout is: size(4)+type(4)+reserved(6)+data_ref_idx(2) = 16 bytes,
|
|
83
|
+
// then codec-specific fixed fields before child boxes begin.
|
|
84
|
+
// We scan forward from offset 16 (past the mandatory SampleEntry header)
|
|
85
|
+
// looking for the first plausible box boundary, then walk child boxes from
|
|
86
|
+
// there.
|
|
87
|
+
const codecBox = stsdChildren.subarray(codecStart, codecStart + codecBoxSize);
|
|
88
|
+
// Find where children start: scan from offset 16 for a size+fourcc that
|
|
89
|
+
// fits entirely within the box.
|
|
90
|
+
const childrenStart = findNextChildrenStartOffset(codecBox);
|
|
91
|
+
if (childrenStart === null) {
|
|
92
|
+
codecStart += codecBoxSize;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const codecChildren = codecBox.subarray(childrenStart);
|
|
96
|
+
// Now search for and erase DV boxes
|
|
97
|
+
for (const dvBoxType of DV_BOX_TYPES) {
|
|
98
|
+
let dvStart = 0;
|
|
99
|
+
while (dvStart < codecChildren.length) {
|
|
100
|
+
let dvOffsets;
|
|
101
|
+
try {
|
|
102
|
+
dvOffsets = getBoxOffsets(codecChildren.subarray(dvStart), dvBoxType);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
const err = e instanceof Error ? e : "";
|
|
106
|
+
log.warn("isobmff", "Error while patching out dvcC/dvvC/dvwC from ISOBMFF", err);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
if (dvOffsets === null) {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
if (log.hasLevel("DEBUG")) {
|
|
113
|
+
log.debug("isobmff", `Found '${boxTypeToFourCC(dvBoxType)}' inside '${boxTypeToFourCC(codecBoxType)}', overwriting with 'free'`);
|
|
114
|
+
}
|
|
115
|
+
// Overwrite the 4-byte box type with `free` (0x66726565)
|
|
116
|
+
const typeByteOffset = dvStart + dvOffsets[0] + 4;
|
|
117
|
+
codecChildren[typeByteOffset] = 0x66; /* f */
|
|
118
|
+
codecChildren[typeByteOffset + 1] = 0x72; /* r */
|
|
119
|
+
codecChildren[typeByteOffset + 2] = 0x65; /* e */
|
|
120
|
+
codecChildren[typeByteOffset + 3] = 0x65; /* e */
|
|
121
|
+
// Advance past this box (size of box relative to the current slice)
|
|
122
|
+
dvStart += dvOffsets[2] - dvOffsets[0];
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
codecStart += codecBoxSize;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Scan a codec box (VisualSampleEntry or wrapper) to find the byte offset
|
|
130
|
+
* where child boxes begin. We skip the mandatory SampleEntry header (16 bytes)
|
|
131
|
+
* and then look for the first offset whose size+type looks like a valid box
|
|
132
|
+
* that fits within the parent.
|
|
133
|
+
*/
|
|
134
|
+
function findNextChildrenStartOffset(box) {
|
|
135
|
+
// SampleEntry header: size(4)+type(4)+reserved(6)+data_ref_idx(2) = 16 bytes minimum.
|
|
136
|
+
// Children can only start after that.
|
|
137
|
+
for (let off = 16; off + 8 <= box.length; off++) {
|
|
138
|
+
const size = be4toi(box, off);
|
|
139
|
+
if (size < 8 || off + size > box.length) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
// Check that the four-byte type is all printable ASCII as a sanity check.
|
|
143
|
+
let allPrint = true;
|
|
144
|
+
for (let i = off + 4; i < off + 8; i++) {
|
|
145
|
+
if (box[i] < 0x20 || box[i] > 0x7e) {
|
|
146
|
+
allPrint = false;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (allPrint) {
|
|
151
|
+
return off;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
@@ -135,14 +135,14 @@ function createManifest(mplData, manifests, parserOptions) {
|
|
|
135
135
|
};
|
|
136
136
|
const newIndex = new MetaRepresentationIndex(currentRepresentation.index, [contentOffset, contentEnd], content.transport, baseContentMetadata);
|
|
137
137
|
let supplementalCodecs;
|
|
138
|
-
if (currentRepresentation.
|
|
139
|
-
if (currentRepresentation.
|
|
138
|
+
if (currentRepresentation.baseCodecs.length > 1) {
|
|
139
|
+
if (currentRepresentation.baseCodecs.length > 2) {
|
|
140
140
|
log.warn("metaplaylist", "MetaPlaylist relying on more than 2 groups of " +
|
|
141
141
|
"codecs with retro-compatibility");
|
|
142
142
|
}
|
|
143
|
-
supplementalCodecs = currentRepresentation.
|
|
143
|
+
supplementalCodecs = currentRepresentation.baseCodecs[0];
|
|
144
144
|
}
|
|
145
|
-
const codecs = currentRepresentation.
|
|
145
|
+
const codecs = currentRepresentation.baseCodecs[currentRepresentation.baseCodecs.length - 1];
|
|
146
146
|
representations.push({
|
|
147
147
|
bitrate: currentRepresentation.bitrate,
|
|
148
148
|
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"}
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
16
|
+
import shouldPatchOutDolbyVisionConfigDataFromMp4 from "../../compat/should_patch_out_dolby_vision_config_data_from_mp4";
|
|
17
|
+
import logger from "../../log";
|
|
18
|
+
import { getMDHDTimescale, getSegmentsFromSidx, takePSSHOut, removeDolbyVisionConfigData, } from "../../parsers/containers/isobmff";
|
|
17
19
|
import { getKeyIdFromInitSegment, parseEmsgBoxes, } from "../../parsers/containers/isobmff/utils";
|
|
18
20
|
import { getSegmentsFromCues, getTimeCodeScale } from "../../parsers/containers/matroska";
|
|
19
21
|
import { toUint8Array } from "../../utils/byte_parsing";
|
|
@@ -119,6 +121,10 @@ export default function generateAudioVideoSegmentParser({ __priv_patchLastSegmen
|
|
|
119
121
|
segmentList = getSegmentsFromCues(chunkData, 0);
|
|
120
122
|
}
|
|
121
123
|
else if (seemsToBeMP4) {
|
|
124
|
+
if (shouldPatchOutDolbyVisionConfigDataFromMp4(context.baseCodecs, context.chosenCodec)) {
|
|
125
|
+
logger.debug("dash", "patching out Dolby Vision metadata from segment");
|
|
126
|
+
removeDolbyVisionConfigData(chunkData);
|
|
127
|
+
}
|
|
122
128
|
segmentList = getSegmentsFromSidx(chunkData, Array.isArray(indexRange) ? indexRange[0] : 0);
|
|
123
129
|
// This is a very specific handling for streams we know have a very
|
|
124
130
|
// 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"}
|
|
@@ -79,7 +79,11 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale,
|
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
const chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
|
|
82
|
-
const chunkData = getISOBMFFEmbeddedTextTrackData(
|
|
82
|
+
const chunkData = getISOBMFFEmbeddedTextTrackData({
|
|
83
|
+
segment: context.segment,
|
|
84
|
+
codecs: context.chosenCodec,
|
|
85
|
+
language: context.language,
|
|
86
|
+
}, chunkBytes, initTimescale, chunkInfos, isChunked);
|
|
83
87
|
const chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
|
|
84
88
|
return {
|
|
85
89
|
segmentType: "media",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text_parser.d.ts","sourceRoot":"","sources":["../../../../src/transports/local/text_parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,6BAA6B,EAC7B,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"text_parser.d.ts","sourceRoot":"","sources":["../../../../src/transports/local/text_parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,6BAA6B,EAC7B,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAqIlB;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,aAAa,EAAE;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,EACrE,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,GAE/B,6BAA6B,CAAC,IAAI,CAAC,GACnC,8BAA8B,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAsC/D"}
|
|
@@ -57,7 +57,11 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale)
|
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
const chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
|
|
60
|
-
const chunkData = getISOBMFFEmbeddedTextTrackData(
|
|
60
|
+
const chunkData = getISOBMFFEmbeddedTextTrackData({
|
|
61
|
+
segment: context.segment,
|
|
62
|
+
codecs: context.chosenCodec,
|
|
63
|
+
language: context.language,
|
|
64
|
+
}, chunkBytes, initTimescale, chunkInfos, isChunked);
|
|
61
65
|
const chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
|
|
62
66
|
return {
|
|
63
67
|
segmentType: "media",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../../src/transports/metaplaylist/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,OAAO,KAAK,EAiBV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../../src/transports/metaplaylist/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,OAAO,KAAK,EAiBV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAmElB,MAAM,CAAC,OAAO,WAAW,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,CAySxE"}
|