rx-player 3.26.2 → 3.26.3-dev.2022021400
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/.github/workflows/perfs.yml +22 -0
- package/CHANGELOG.md +19 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +6 -2
- package/dist/_esm5.processed/core/abr/buffer_based_chooser.d.ts +28 -6
- package/dist/_esm5.processed/core/abr/buffer_based_chooser.js +63 -12
- package/dist/_esm5.processed/core/abr/network_analyzer.d.ts +1 -1
- package/dist/_esm5.processed/core/abr/pending_requests_store.js +3 -5
- package/dist/_esm5.processed/core/abr/representation_estimator.d.ts +1 -1
- package/dist/_esm5.processed/core/abr/representation_estimator.js +2 -2
- package/dist/_esm5.processed/core/api/media_element_track_choice_manager.d.ts +6 -0
- package/dist/_esm5.processed/core/api/media_element_track_choice_manager.js +20 -3
- package/dist/_esm5.processed/core/api/public_api.d.ts +3 -3
- package/dist/_esm5.processed/core/api/public_api.js +2 -2
- package/dist/_esm5.processed/core/api/track_choice_manager.d.ts +6 -6
- package/dist/_esm5.processed/core/eme/__tests__/__global__/utils.d.ts +0 -2
- package/dist/_esm5.processed/core/eme/__tests__/__global__/utils.js +5 -10
- package/dist/_esm5.processed/core/eme/find_key_system.js +15 -5
- package/dist/_esm5.processed/core/eme/types.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +4 -4
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +5 -1
- package/dist/_esm5.processed/core/fetchers/utils/try_urls_with_backoff.js +1 -1
- package/dist/_esm5.processed/core/init/initialize_directfile.d.ts +2 -2
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +1 -1
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +4 -4
- package/dist/_esm5.processed/core/init/stream_events_emitter/are_same_stream_events.d.ts +4 -4
- package/dist/_esm5.processed/core/init/stream_events_emitter/types.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +3 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +32 -31
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +4 -4
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +3 -4
- package/dist/_esm5.processed/errors/request_error.js +3 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +1 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +3 -3
- package/dist/_esm5.processed/manifest/adaptation.d.ts +2 -2
- package/dist/_esm5.processed/manifest/adaptation.js +3 -1
- package/dist/_esm5.processed/manifest/manifest.d.ts +9 -9
- package/dist/_esm5.processed/manifest/period.d.ts +3 -3
- package/dist/_esm5.processed/manifest/representation.d.ts +2 -2
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +18 -18
- package/dist/_esm5.processed/manifest/types.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +6 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +14 -14
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +17 -17
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +28 -20
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +19 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +17 -35
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +24 -23
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +8 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +18 -27
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +25 -23
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +21 -15
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +19 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +15 -38
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +8 -8
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +30 -30
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +7 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +8 -8
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +28 -28
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +15 -5
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.d.ts +11 -1
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +31 -19
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -1
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +1 -1
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -1
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +1 -1
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/dash/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/text_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/text_loader.js +1 -1
- package/dist/_esm5.processed/transports/dash/text_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_loader.d.ts +1 -2
- package/dist/_esm5.processed/transports/local/segment_loader.js +1 -1
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +1 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +0 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +2 -2
- package/dist/_esm5.processed/transports/types.d.ts +36 -30
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -1
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +1 -1
- package/dist/_esm5.processed/utils/cancellable_sleep.js +1 -1
- package/dist/_esm5.processed/utils/cast_to_observable.d.ts +1 -2
- package/dist/_esm5.processed/utils/cast_to_observable.js +1 -1
- package/dist/_esm5.processed/utils/request/fetch.d.ts +4 -5
- package/dist/_esm5.processed/utils/request/fetch.js +7 -4
- package/dist/_esm5.processed/utils/request/xhr.d.ts +6 -6
- package/dist/_esm5.processed/utils/request/xhr.js +2 -1
- package/dist/_esm5.processed/utils/rx-from_cancellable_promise.d.ts +1 -2
- package/dist/rx-player.js +404 -321
- package/dist/rx-player.min.js +1 -1
- package/package.json +3 -4
- package/scripts/doc-generator/generate_header_html.js +6 -7
- package/scripts/doc-generator/generate_page_html.js +3 -4
- package/scripts/doc-generator/generate_page_list_html.js +4 -5
- package/scripts/doc-generator/generate_sidebar_html.js +4 -7
- package/scripts/doc-generator/utils.js +0 -11
- package/scripts/generate_demo_list.js +3 -3
- package/scripts/generate_documentation_list.js +3 -3
- package/scripts/launch_static_server.js +127 -67
- package/scripts/run_standalone_demo.js +1 -0
- package/scripts/start_demo_web_server.js +1 -0
- package/sonar-project.properties +1 -1
- package/src/compat/__tests__/fullscreen.test.ts +7 -7
- package/src/compat/__tests__/is_vtt_cue.test.ts +1 -1
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +1 -1
- package/src/compat/eme/custom_media_keys/index.ts +7 -3
- package/src/core/abr/__tests__/{get_estimate_from_buffer_levels.test.ts → buffer_based_chooser.test.ts} +94 -123
- package/src/core/abr/buffer_based_chooser.ts +85 -20
- package/src/core/abr/network_analyzer.ts +1 -1
- package/src/core/abr/pending_requests_store.ts +3 -5
- package/src/core/abr/representation_estimator.ts +6 -3
- package/src/core/api/media_element_track_choice_manager.ts +22 -3
- package/src/core/api/public_api.ts +6 -6
- package/src/core/api/track_choice_manager.ts +10 -9
- package/src/core/eme/__tests__/__global__/utils.ts +5 -10
- package/src/core/eme/find_key_system.ts +14 -12
- package/src/core/eme/types.ts +2 -2
- package/src/core/fetchers/manifest/manifest_fetcher.ts +5 -5
- package/src/core/fetchers/segment/segment_fetcher.ts +6 -3
- package/src/core/fetchers/utils/try_urls_with_backoff.ts +1 -1
- package/src/core/init/initialize_directfile.ts +2 -2
- package/src/core/init/initialize_media_source.ts +2 -2
- package/src/core/init/manifest_update_scheduler.ts +7 -7
- package/src/core/init/stream_events_emitter/are_same_stream_events.ts +4 -4
- package/src/core/init/stream_events_emitter/types.ts +2 -2
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +3 -3
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +32 -31
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +4 -4
- package/src/core/stream/representation/force_garbage_collection.ts +3 -5
- package/src/errors/request_error.ts +4 -1
- package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +3 -6
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +1 -1
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +3 -3
- package/src/experimental/tools/mediaCapabilitiesProber/types.ts +3 -3
- package/src/manifest/adaptation.ts +6 -4
- package/src/manifest/manifest.ts +10 -10
- package/src/manifest/period.ts +3 -3
- package/src/manifest/representation.ts +2 -2
- package/src/manifest/representation_index/types.ts +18 -18
- package/src/manifest/types.ts +3 -3
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +1 -0
- package/src/parsers/manifest/dash/common/get_hdr_information.ts +1 -1
- package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +3 -3
- package/src/parsers/manifest/dash/common/indexes/base.ts +6 -6
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +4 -2
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +2 -2
- package/src/parsers/manifest/dash/common/indexes/list.ts +14 -14
- package/src/parsers/manifest/dash/common/indexes/template.ts +17 -16
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +1 -1
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +50 -22
- package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +2 -2
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +1 -1
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +58 -70
- package/src/parsers/manifest/dash/common/parse_mpd.ts +8 -8
- package/src/parsers/manifest/dash/common/parse_periods.ts +80 -79
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +83 -75
- package/src/parsers/manifest/dash/common/parse_representations.ts +44 -63
- package/src/parsers/manifest/dash/node_parser_types.ts +30 -30
- package/src/parsers/manifest/dash/parsers_types.ts +3 -3
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -1
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +4 -4
- package/src/parsers/manifest/smooth/create_parser.ts +23 -21
- package/src/parsers/manifest/smooth/representation_index.ts +14 -14
- package/src/parsers/manifest/types.ts +28 -28
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +31 -33
- package/src/parsers/manifest/utils/clear_timeline_from_position.ts +15 -6
- package/src/parsers/manifest/utils/index_helpers.ts +2 -2
- package/src/parsers/manifest/utils/update_segment_timeline.ts +32 -21
- package/src/parsers/texttracks/webvtt/html/to_html.ts +2 -2
- package/src/parsers/texttracks/webvtt/parse_cue_block.ts +1 -1
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +2 -2
- package/src/transports/dash/image_pipelines.ts +1 -1
- package/src/transports/dash/init_segment_loader.ts +1 -1
- package/src/transports/dash/manifest_parser.ts +1 -1
- package/src/transports/dash/segment_loader.ts +7 -7
- package/src/transports/dash/segment_parser.ts +3 -1
- package/src/transports/dash/text_loader.ts +2 -2
- package/src/transports/dash/text_parser.ts +3 -1
- package/src/transports/local/segment_loader.ts +4 -4
- package/src/transports/metaplaylist/manifest_loader.ts +1 -1
- package/src/transports/metaplaylist/pipelines.ts +1 -1
- package/src/transports/smooth/pipelines.ts +7 -7
- package/src/transports/smooth/segment_loader.ts +8 -8
- package/src/transports/types.ts +37 -30
- package/src/transports/utils/call_custom_manifest_loader.ts +6 -6
- package/src/transports/utils/generate_manifest_loader.ts +1 -1
- package/src/utils/__tests__/flat_map.test.ts +12 -7
- package/src/utils/cancellable_sleep.ts +1 -1
- package/src/utils/cast_to_observable.ts +1 -2
- package/src/utils/request/fetch.ts +16 -13
- package/src/utils/request/xhr.ts +9 -7
- package/src/utils/rx-from_cancellable_promise.ts +1 -2
- package/tsconfig.json +1 -2
- package/tsconfig.modules.json +1 -2
- package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.d.ts +0 -29
- package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.js +0 -67
- package/src/core/abr/get_estimate_from_buffer_levels.ts +0 -85
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import { CustomLoaderError } from "../../errors";
|
|
19
18
|
import {
|
|
20
19
|
ILocalManifestInitSegmentLoader,
|
|
21
20
|
ILocalManifestSegmentLoader,
|
|
22
21
|
} from "../../parsers/manifest/local";
|
|
23
22
|
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
23
|
+
import PPromise from "../../utils/promise";
|
|
24
24
|
import {
|
|
25
25
|
CancellationError,
|
|
26
26
|
CancellationSignal,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
function loadInitSegment(
|
|
40
40
|
customSegmentLoader : ILocalManifestInitSegmentLoader,
|
|
41
41
|
cancelSignal : CancellationSignal
|
|
42
|
-
) :
|
|
42
|
+
) : Promise<ISegmentLoaderResultSegmentLoaded<ArrayBuffer | null>> {
|
|
43
43
|
return new PPromise((res, rej) => {
|
|
44
44
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
45
45
|
let hasFinished = false;
|
|
@@ -107,7 +107,7 @@ function loadSegment(
|
|
|
107
107
|
segment : { time : number; duration : number; timestampOffset? : number },
|
|
108
108
|
customSegmentLoader : ILocalManifestSegmentLoader,
|
|
109
109
|
cancelSignal : CancellationSignal
|
|
110
|
-
) :
|
|
110
|
+
) : Promise< ISegmentLoaderResultSegmentLoaded<ArrayBuffer | null>> {
|
|
111
111
|
return new PPromise((res, rej) => {
|
|
112
112
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
113
113
|
let hasFinished = false;
|
|
@@ -191,7 +191,7 @@ export default function segmentLoader(
|
|
|
191
191
|
content : ISegmentContext,
|
|
192
192
|
cancelSignal : CancellationSignal,
|
|
193
193
|
_callbacks : ISegmentLoaderCallbacks<ArrayBuffer | null>
|
|
194
|
-
) :
|
|
194
|
+
) : Promise<ISegmentLoaderResultSegmentLoaded<ArrayBuffer | null>> {
|
|
195
195
|
const { segment } = content;
|
|
196
196
|
const privateInfos = segment.privateInfos;
|
|
197
197
|
if (segment.isInit) {
|
|
@@ -43,7 +43,7 @@ function regularManifestLoader(
|
|
|
43
43
|
* @returns {Function}
|
|
44
44
|
*/
|
|
45
45
|
export default function generateManifestLoader(
|
|
46
|
-
{ customManifestLoader } : { customManifestLoader?: ICustomManifestLoader }
|
|
46
|
+
{ customManifestLoader } : { customManifestLoader?: ICustomManifestLoader | undefined }
|
|
47
47
|
) : (
|
|
48
48
|
url : string | undefined,
|
|
49
49
|
cancelSignal : CancellationSignal
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import features from "../../features";
|
|
19
18
|
import Manifest, {
|
|
20
19
|
Adaptation,
|
|
@@ -29,6 +28,7 @@ import parseMetaPlaylist, {
|
|
|
29
28
|
import { IParsedManifest } from "../../parsers/manifest/types";
|
|
30
29
|
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
31
30
|
import objectAssign from "../../utils/object_assign";
|
|
31
|
+
import PPromise from "../../utils/promise";
|
|
32
32
|
import { CancellationSignal } from "../../utils/task_canceller";
|
|
33
33
|
import {
|
|
34
34
|
IChunkTimeInfo,
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import features from "../../features";
|
|
19
18
|
import log from "../../log";
|
|
20
19
|
import Manifest, {
|
|
@@ -25,6 +24,7 @@ import { getMDAT } from "../../parsers/containers/isobmff";
|
|
|
25
24
|
import createSmoothManifestParser, {
|
|
26
25
|
SmoothRepresentationIndex,
|
|
27
26
|
} from "../../parsers/manifest/smooth";
|
|
27
|
+
import PPromise from "../../utils/promise";
|
|
28
28
|
import request from "../../utils/request";
|
|
29
29
|
import {
|
|
30
30
|
strToUtf8,
|
|
@@ -178,8 +178,8 @@ export default function(options : ITransportOptions) : ITransportPipelines {
|
|
|
178
178
|
content : ISegmentContext,
|
|
179
179
|
cancelSignal : CancellationSignal,
|
|
180
180
|
callbacks : ISegmentLoaderCallbacks<ILoadedAudioVideoSegmentFormat>
|
|
181
|
-
) :
|
|
182
|
-
|
|
181
|
+
) : Promise<ISegmentLoaderResultSegmentLoaded<ILoadedAudioVideoSegmentFormat> |
|
|
182
|
+
ISegmentLoaderResultSegmentCreated<ILoadedAudioVideoSegmentFormat>>
|
|
183
183
|
{
|
|
184
184
|
return segmentLoader(url, content, cancelSignal, callbacks);
|
|
185
185
|
},
|
|
@@ -255,8 +255,8 @@ export default function(options : ITransportOptions) : ITransportPipelines {
|
|
|
255
255
|
content : ISegmentContext,
|
|
256
256
|
cancelSignal : CancellationSignal,
|
|
257
257
|
callbacks : ISegmentLoaderCallbacks<ILoadedTextSegmentFormat>
|
|
258
|
-
) :
|
|
259
|
-
|
|
258
|
+
) : Promise<ISegmentLoaderResultSegmentLoaded<ILoadedTextSegmentFormat> |
|
|
259
|
+
ISegmentLoaderResultSegmentCreated<ILoadedTextSegmentFormat>> {
|
|
260
260
|
const { segment, representation } = content;
|
|
261
261
|
if (segment.isInit || url === null) {
|
|
262
262
|
return PPromise.resolve({ resultType: "segment-created",
|
|
@@ -436,8 +436,8 @@ export default function(options : ITransportOptions) : ITransportPipelines {
|
|
|
436
436
|
content : ISegmentContext,
|
|
437
437
|
cancelSignal : CancellationSignal,
|
|
438
438
|
callbacks : ISegmentLoaderCallbacks<ILoadedImageSegmentFormat>
|
|
439
|
-
) :
|
|
440
|
-
|
|
439
|
+
) : Promise<ISegmentLoaderResultSegmentLoaded<ILoadedImageSegmentFormat> |
|
|
440
|
+
ISegmentLoaderResultSegmentCreated<ILoadedImageSegmentFormat>> {
|
|
441
441
|
if (content.segment.isInit || url === null) {
|
|
442
442
|
// image do not need an init segment. Passthrough directly to the parser
|
|
443
443
|
return PPromise.resolve({ resultType: "segment-created" as const,
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import { CustomLoaderError } from "../../errors";
|
|
19
18
|
import assert from "../../utils/assert";
|
|
19
|
+
import PPromise from "../../utils/promise";
|
|
20
20
|
import request from "../../utils/request";
|
|
21
21
|
import {
|
|
22
22
|
CancellationError,
|
|
@@ -51,7 +51,7 @@ function regularSegmentLoader(
|
|
|
51
51
|
content : ISegmentContext,
|
|
52
52
|
callbacks : ISegmentLoaderCallbacks<Uint8Array | ArrayBuffer | null>,
|
|
53
53
|
cancelSignal : CancellationSignal,
|
|
54
|
-
checkMediaSegmentIntegrity? : boolean
|
|
54
|
+
checkMediaSegmentIntegrity? : boolean | undefined
|
|
55
55
|
) : Promise<ISegmentLoaderResultSegmentLoaded<Uint8Array | ArrayBuffer | null>> {
|
|
56
56
|
let headers;
|
|
57
57
|
const range = content.segment.range;
|
|
@@ -85,8 +85,8 @@ const generateSegmentLoader = ({
|
|
|
85
85
|
checkMediaSegmentIntegrity,
|
|
86
86
|
customSegmentLoader,
|
|
87
87
|
} : {
|
|
88
|
-
checkMediaSegmentIntegrity? : boolean;
|
|
89
|
-
customSegmentLoader? : ICustomSegmentLoader;
|
|
88
|
+
checkMediaSegmentIntegrity? : boolean | undefined;
|
|
89
|
+
customSegmentLoader? : ICustomSegmentLoader | undefined;
|
|
90
90
|
}) => (
|
|
91
91
|
url : string | null,
|
|
92
92
|
content : ISegmentContext,
|
|
@@ -165,7 +165,7 @@ const generateSegmentLoader = ({
|
|
|
165
165
|
checkMediaSegmentIntegrity);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
return new
|
|
168
|
+
return new PPromise((res, rej) => {
|
|
169
169
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
170
170
|
let hasFinished = false;
|
|
171
171
|
|
|
@@ -176,8 +176,8 @@ const generateSegmentLoader = ({
|
|
|
176
176
|
*/
|
|
177
177
|
const resolve = (_args : {
|
|
178
178
|
data : ArrayBuffer|Uint8Array;
|
|
179
|
-
size? : number;
|
|
180
|
-
duration? : number;
|
|
179
|
+
size? : number | undefined;
|
|
180
|
+
duration? : number | undefined;
|
|
181
181
|
}) => {
|
|
182
182
|
if (hasFinished || cancelSignal.isCancelled) {
|
|
183
183
|
return;
|
|
@@ -231,7 +231,7 @@ const generateSegmentLoader = ({
|
|
|
231
231
|
const progress = (
|
|
232
232
|
_args : { duration : number;
|
|
233
233
|
size : number;
|
|
234
|
-
totalSize? : number; }
|
|
234
|
+
totalSize? : number | undefined; }
|
|
235
235
|
) => {
|
|
236
236
|
if (hasFinished || cancelSignal.isCancelled) {
|
|
237
237
|
return;
|
package/src/transports/types.ts
CHANGED
|
@@ -373,7 +373,7 @@ export interface IManifestParserResult {
|
|
|
373
373
|
* This property should only be set when a unique URL is sufficient to
|
|
374
374
|
* retrieve the whole data.
|
|
375
375
|
*/
|
|
376
|
-
url? : string;
|
|
376
|
+
url? : string | undefined;
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
/**
|
|
@@ -416,11 +416,11 @@ export interface ITextTrackSegmentData {
|
|
|
416
416
|
* This is mostly needed for "sami" subtitles, to know which cues can / should
|
|
417
417
|
* be parsed.
|
|
418
418
|
*/
|
|
419
|
-
language? : string;
|
|
419
|
+
language? : string | undefined;
|
|
420
420
|
/** start time from which the segment apply, in seconds. */
|
|
421
|
-
start? : number;
|
|
421
|
+
start? : number | undefined;
|
|
422
422
|
/** end time until which the segment apply, in seconds. */
|
|
423
|
-
end? : number;
|
|
423
|
+
end? : number | undefined;
|
|
424
424
|
}
|
|
425
425
|
|
|
426
426
|
/** Format under which image data is decodable by the RxPlayer. */
|
|
@@ -487,21 +487,21 @@ interface IServerSyncInfos { serverTimestamp : number;
|
|
|
487
487
|
clientTime : number; }
|
|
488
488
|
|
|
489
489
|
export interface ITransportOptions {
|
|
490
|
-
aggressiveMode? : boolean;
|
|
491
|
-
checkMediaSegmentIntegrity? : boolean;
|
|
490
|
+
aggressiveMode? : boolean | undefined;
|
|
491
|
+
checkMediaSegmentIntegrity? : boolean | undefined;
|
|
492
492
|
lowLatencyMode : boolean;
|
|
493
|
-
manifestLoader?: ICustomManifestLoader;
|
|
494
|
-
manifestUpdateUrl? : string;
|
|
495
|
-
referenceDateTime? : number;
|
|
496
|
-
representationFilter? : IRepresentationFilter;
|
|
497
|
-
segmentLoader? : ICustomSegmentLoader;
|
|
498
|
-
serverSyncInfos? : IServerSyncInfos;
|
|
493
|
+
manifestLoader?: ICustomManifestLoader | undefined;
|
|
494
|
+
manifestUpdateUrl? : string | undefined;
|
|
495
|
+
referenceDateTime? : number | undefined;
|
|
496
|
+
representationFilter? : IRepresentationFilter | undefined;
|
|
497
|
+
segmentLoader? : ICustomSegmentLoader | undefined;
|
|
498
|
+
serverSyncInfos? : IServerSyncInfos | undefined;
|
|
499
499
|
/* eslint-disable import/no-deprecated */
|
|
500
|
-
supplementaryImageTracks? : ISupplementaryImageTrack[];
|
|
501
|
-
supplementaryTextTracks? : ISupplementaryTextTrack[];
|
|
500
|
+
supplementaryImageTracks? : ISupplementaryImageTrack[] | undefined;
|
|
501
|
+
supplementaryTextTracks? : ISupplementaryTextTrack[] | undefined;
|
|
502
502
|
/* eslint-enable import/no-deprecated */
|
|
503
503
|
|
|
504
|
-
__priv_patchLastSegmentInSidx? : boolean;
|
|
504
|
+
__priv_patchLastSegmentInSidx? : boolean | undefined;
|
|
505
505
|
}
|
|
506
506
|
|
|
507
507
|
export type ICustomSegmentLoader = (
|
|
@@ -521,7 +521,13 @@ export type ICustomSegmentLoader = (
|
|
|
521
521
|
duration? : number | undefined; }) => void;
|
|
522
522
|
|
|
523
523
|
reject : (err? : unknown) => void;
|
|
524
|
-
fallback
|
|
524
|
+
fallback : () => void;
|
|
525
|
+
progress : (
|
|
526
|
+
info : { duration : number;
|
|
527
|
+
size : number;
|
|
528
|
+
totalSize? : number | undefined; }
|
|
529
|
+
) => void;
|
|
530
|
+
}
|
|
525
531
|
) =>
|
|
526
532
|
// returns either the aborting callback or nothing
|
|
527
533
|
(() => void)|void;
|
|
@@ -532,14 +538,15 @@ export type ICustomManifestLoader = (
|
|
|
532
538
|
|
|
533
539
|
// second argument: callbacks
|
|
534
540
|
callbacks : { resolve : (args : { data : ILoadedManifestFormat;
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
541
|
+
url? : string | undefined;
|
|
542
|
+
sendingTime? : number | undefined;
|
|
543
|
+
receivingTime? : number | undefined;
|
|
544
|
+
size? : number | undefined;
|
|
545
|
+
duration? : number | undefined; })
|
|
539
546
|
=> void;
|
|
540
547
|
|
|
541
548
|
reject : (err? : Error) => void;
|
|
542
|
-
fallback
|
|
549
|
+
fallback : () => void; }
|
|
543
550
|
) =>
|
|
544
551
|
// returns either the aborting callback or nothing
|
|
545
552
|
(() => void)|void;
|
|
@@ -597,7 +604,7 @@ export interface ISegmentLoadingProgressInformation {
|
|
|
597
604
|
/** Size of the data already downloaded, in bytes. */
|
|
598
605
|
size : number;
|
|
599
606
|
/** Size of whole data to download (data already-loaded included), in bytes. */
|
|
600
|
-
totalSize? : number;
|
|
607
|
+
totalSize? : number | undefined;
|
|
601
608
|
}
|
|
602
609
|
|
|
603
610
|
/**
|
|
@@ -646,19 +653,19 @@ export interface IChunkCompleteInformation {
|
|
|
646
653
|
* This property should only be set when a unique URL is sufficient to
|
|
647
654
|
* retrieve the whole data.
|
|
648
655
|
*/
|
|
649
|
-
url? : string;
|
|
656
|
+
url? : string | undefined;
|
|
650
657
|
/**
|
|
651
658
|
* Time at which the request began in terms of `performance.now`.
|
|
652
659
|
* If fetching the corresponding data necessitated to perform multiple
|
|
653
660
|
* requests, this time corresponds to the first request made.
|
|
654
661
|
*/
|
|
655
|
-
sendingTime? : number;
|
|
662
|
+
sendingTime? : number | undefined;
|
|
656
663
|
/**
|
|
657
664
|
* Time at which the request ended in terms of `performance.now`.
|
|
658
665
|
* If fetching the corresponding data necessitated to perform multiple
|
|
659
666
|
* requests, this time corresponds to the last request to end.
|
|
660
667
|
*/
|
|
661
|
-
receivedTime? : number;
|
|
668
|
+
receivedTime? : number | undefined;
|
|
662
669
|
/** Size in bytes of the loaded data. `undefined` if we don't know. */
|
|
663
670
|
size : number | undefined;
|
|
664
671
|
}
|
|
@@ -702,7 +709,7 @@ export interface ISegmentParserParsedInitChunk<DataType> {
|
|
|
702
709
|
* Timescale metadata found inside this initialization segment.
|
|
703
710
|
* That timescale might be useful when parsing further merdia segments.
|
|
704
711
|
*/
|
|
705
|
-
initTimescale? : number;
|
|
712
|
+
initTimescale? : number | undefined;
|
|
706
713
|
/**
|
|
707
714
|
* If set to `true`, some protection information has been found in this
|
|
708
715
|
* initialization segment and lead the corresponding `Representation`
|
|
@@ -757,7 +764,7 @@ export interface ISegmentParserParsedMediaChunk<DataType> {
|
|
|
757
764
|
* If set and not empty, then "events" have been encountered in this parsed
|
|
758
765
|
* chunks.
|
|
759
766
|
*/
|
|
760
|
-
inbandEvents? : IInbandEvent[];
|
|
767
|
+
inbandEvents? : IInbandEvent[] | undefined;
|
|
761
768
|
/**
|
|
762
769
|
* If set to `true`, then parsing this chunk revealed that the current
|
|
763
770
|
* Manifest instance needs to be refreshed.
|
|
@@ -791,19 +798,19 @@ export interface IRequestedData<T> {
|
|
|
791
798
|
* This property should only be set when a unique URL is sufficient to
|
|
792
799
|
* retrieve the whole data.
|
|
793
800
|
*/
|
|
794
|
-
url? : string;
|
|
801
|
+
url? : string | undefined;
|
|
795
802
|
/**
|
|
796
803
|
* Time at which the request began in terms of `performance.now`.
|
|
797
804
|
* If fetching the corresponding data necessitated to perform multiple
|
|
798
805
|
* requests, this time corresponds to the first request made.
|
|
799
806
|
*/
|
|
800
|
-
sendingTime? : number;
|
|
807
|
+
sendingTime? : number | undefined;
|
|
801
808
|
/**
|
|
802
809
|
* Time at which the request ended in terms of `performance.now`.
|
|
803
810
|
* If fetching the corresponding data necessitated to perform multiple
|
|
804
811
|
* requests, this time corresponds to the last request to end.
|
|
805
812
|
*/
|
|
806
|
-
receivedTime? : number;
|
|
813
|
+
receivedTime? : number | undefined;
|
|
807
814
|
/** Size in bytes of the loaded data. `undefined` if we don't know. */
|
|
808
815
|
size : number | undefined;
|
|
809
816
|
}
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import { CustomLoaderError } from "../../errors";
|
|
18
|
+
import PPromise from "../../utils/promise";
|
|
19
19
|
import {
|
|
20
20
|
CancellationError,
|
|
21
21
|
CancellationSignal,
|
|
@@ -51,11 +51,11 @@ export default function callCustomManifestLoader(
|
|
|
51
51
|
* @param {Object} args
|
|
52
52
|
*/
|
|
53
53
|
const resolve = (_args : { data : ILoadedManifestFormat;
|
|
54
|
-
size? : number;
|
|
55
|
-
duration? : number;
|
|
56
|
-
url? : string;
|
|
57
|
-
receivingTime? : number;
|
|
58
|
-
sendingTime? : number; }) =>
|
|
54
|
+
size? : number | undefined;
|
|
55
|
+
duration? : number | undefined;
|
|
56
|
+
url? : string | undefined;
|
|
57
|
+
receivingTime? : number | undefined;
|
|
58
|
+
sendingTime? : number | undefined; }) =>
|
|
59
59
|
{
|
|
60
60
|
if (hasFinished || cancelSignal.isCancelled) {
|
|
61
61
|
return;
|
|
@@ -66,7 +66,7 @@ function generateRegularManifestLoader(
|
|
|
66
66
|
* @returns {Function}
|
|
67
67
|
*/
|
|
68
68
|
export default function generateManifestLoader(
|
|
69
|
-
{ customManifestLoader } : { customManifestLoader?: ICustomManifestLoader },
|
|
69
|
+
{ customManifestLoader } : { customManifestLoader?: ICustomManifestLoader | undefined },
|
|
70
70
|
preferredType: "arraybuffer" | "text" | "document"
|
|
71
71
|
) : (
|
|
72
72
|
url : string | undefined,
|
|
@@ -19,12 +19,15 @@
|
|
|
19
19
|
|
|
20
20
|
import flatMap from "../flat_map";
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
flatMap
|
|
22
|
+
interface IProtoWithFlatMap {
|
|
23
|
+
flatMap? : (<U, This = undefined>(
|
|
24
24
|
callback: (this: This, value: unknown, index: number, array: unknown[]) => U | U[],
|
|
25
|
-
thisArg?: This
|
|
26
|
-
)
|
|
27
|
-
}
|
|
25
|
+
thisArg?: This | undefined
|
|
26
|
+
) => U[]) | undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
const proto = Array.prototype as unknown as IProtoWithFlatMap;
|
|
28
31
|
|
|
29
32
|
/* eslint-disable @typescript-eslint/unbound-method */
|
|
30
33
|
const initialFlatMap = proto.flatMap;
|
|
@@ -32,7 +35,7 @@ const initialFlatMap = proto.flatMap;
|
|
|
32
35
|
|
|
33
36
|
describe("utils - starts-with", () => {
|
|
34
37
|
beforeEach(() => {
|
|
35
|
-
proto.flatMap
|
|
38
|
+
delete proto.flatMap;
|
|
36
39
|
});
|
|
37
40
|
|
|
38
41
|
afterEach(() => {
|
|
@@ -49,7 +52,9 @@ describe("utils - starts-with", () => {
|
|
|
49
52
|
if (typeof initialFlatMap === "function") {
|
|
50
53
|
it("should call the original flatMap function if available", () => {
|
|
51
54
|
proto.flatMap = initialFlatMap;
|
|
52
|
-
|
|
55
|
+
// TODO find what bother typescript here instead of adding "as any"
|
|
56
|
+
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
|
|
57
|
+
const flatMapSpy = jest.spyOn(proto as any, "flatMap");
|
|
53
58
|
const func1 = (x : number) : number[] => [x, x + 1, x - 1];
|
|
54
59
|
const func2 = (x : number) : string => String(x) + "a";
|
|
55
60
|
expect(flatMap([1, 2, 3], func1))
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import {
|
|
19
18
|
from as observableFrom,
|
|
20
19
|
Observable,
|
|
21
20
|
of as observableOf,
|
|
22
21
|
} from "rxjs";
|
|
23
22
|
import isNullOrUndefined from "./is_null_or_undefined";
|
|
23
|
+
import PPromise from "./promise";
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Try to cast the given value into an observable.
|
|
@@ -30,7 +30,6 @@ import isNullOrUndefined from "./is_null_or_undefined";
|
|
|
30
30
|
*/
|
|
31
31
|
function castToObservable<T>(value : Observable<T> |
|
|
32
32
|
Promise<T> |
|
|
33
|
-
PPromise<T> |
|
|
34
33
|
Exclude<T, Observable<T>>) : Observable<T> {
|
|
35
34
|
if (value instanceof Observable) {
|
|
36
35
|
return value;
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import config from "../../config";
|
|
19
18
|
import {
|
|
20
19
|
NetworkErrorTypes,
|
|
@@ -61,14 +60,14 @@ export interface IFetchedDataObject {
|
|
|
61
60
|
* Value of the "Content-Length" header, which should (yet also might not be)
|
|
62
61
|
* the size of the complete data that will be fetched.
|
|
63
62
|
*/
|
|
64
|
-
totalSize
|
|
63
|
+
totalSize : number | undefined;
|
|
65
64
|
/**
|
|
66
65
|
* Current available chunk, which might only be a sub-part of the whole
|
|
67
66
|
* data.
|
|
68
67
|
* To retrieve the whole data, all `chunk` received from `fetchRequest` can be
|
|
69
68
|
* concatenated.
|
|
70
69
|
*/
|
|
71
|
-
chunk: ArrayBuffer;
|
|
70
|
+
chunk : ArrayBuffer;
|
|
72
71
|
}
|
|
73
72
|
|
|
74
73
|
/** Options for the `fetchRequest` utils function. */
|
|
@@ -88,13 +87,13 @@ export interface IFetchOptions {
|
|
|
88
87
|
*/
|
|
89
88
|
cancelSignal : CancellationSignal;
|
|
90
89
|
/** Optional headers for the HTTP GET request perfomed by `fetchRequest`. */
|
|
91
|
-
headers? : { [ header: string ] : string }|null;
|
|
90
|
+
headers? : { [ header: string ] : string } | undefined | null;
|
|
92
91
|
/**
|
|
93
92
|
* Optional timeout for the HTTP GET request perfomed by `fetchRequest`.
|
|
94
93
|
* This timeout is just enabled until the HTTP response from the server, even
|
|
95
94
|
* if not all data has been received yet.
|
|
96
95
|
*/
|
|
97
|
-
timeout? : number;
|
|
96
|
+
timeout? : number | undefined;
|
|
98
97
|
}
|
|
99
98
|
|
|
100
99
|
const { DEFAULT_REQUEST_TIMEOUT } = config;
|
|
@@ -112,7 +111,7 @@ const _AbortController : IAbortControllerConstructor|null =
|
|
|
112
111
|
|
|
113
112
|
export default function fetchRequest(
|
|
114
113
|
options : IFetchOptions
|
|
115
|
-
) :
|
|
114
|
+
) : Promise<IFetchedStreamComplete> {
|
|
116
115
|
let headers : Headers | { [key : string ] : string } | undefined;
|
|
117
116
|
if (!isNullOrUndefined(options.headers)) {
|
|
118
117
|
if (isNullOrUndefined(_Headers)) {
|
|
@@ -161,12 +160,16 @@ export default function fetchRequest(
|
|
|
161
160
|
abortFetch();
|
|
162
161
|
});
|
|
163
162
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
163
|
+
const fetchOpts : RequestInit = { method: "GET" };
|
|
164
|
+
if (headers !== undefined) {
|
|
165
|
+
fetchOpts.headers = headers;
|
|
166
|
+
}
|
|
167
|
+
fetchOpts.signal = !isNullOrUndefined(abortController) ? abortController.signal :
|
|
168
|
+
null;
|
|
169
|
+
return fetch(
|
|
170
|
+
options.url,
|
|
171
|
+
fetchOpts
|
|
172
|
+
).then((response : Response) : Promise<IFetchedStreamComplete> => {
|
|
170
173
|
if (!isNullOrUndefined(timeout)) {
|
|
171
174
|
clearTimeout(timeout);
|
|
172
175
|
}
|
|
@@ -192,7 +195,7 @@ export default function fetchRequest(
|
|
|
192
195
|
|
|
193
196
|
return readBufferAndSendEvents();
|
|
194
197
|
|
|
195
|
-
async function readBufferAndSendEvents() :
|
|
198
|
+
async function readBufferAndSendEvents() : Promise<IFetchedStreamComplete> {
|
|
196
199
|
const data = await reader.read();
|
|
197
200
|
|
|
198
201
|
if (!data.done && !isNullOrUndefined(data.value)) {
|
package/src/utils/request/xhr.ts
CHANGED
|
@@ -18,6 +18,7 @@ import config from "../../config";
|
|
|
18
18
|
import { RequestError } from "../../errors";
|
|
19
19
|
import isNonEmptyString from "../is_non_empty_string";
|
|
20
20
|
import isNullOrUndefined from "../is_null_or_undefined";
|
|
21
|
+
import PPromise from "../promise";
|
|
21
22
|
import {
|
|
22
23
|
CancellationError,
|
|
23
24
|
CancellationSignal,
|
|
@@ -138,7 +139,7 @@ export default function request<T>(
|
|
|
138
139
|
options.timeout,
|
|
139
140
|
};
|
|
140
141
|
|
|
141
|
-
return new
|
|
142
|
+
return new PPromise((resolve, reject) => {
|
|
142
143
|
const { onProgress, cancelSignal } = options;
|
|
143
144
|
const { url,
|
|
144
145
|
headers,
|
|
@@ -279,25 +280,26 @@ export interface IRequestOptions<ResponseType> {
|
|
|
279
280
|
url : string;
|
|
280
281
|
/** Dictionary of headers you want to set. `null` or `undefined` for no header. */
|
|
281
282
|
headers? : { [ header: string ] : string } |
|
|
282
|
-
null
|
|
283
|
+
null |
|
|
284
|
+
undefined;
|
|
283
285
|
/** Wanted format for the response */
|
|
284
|
-
responseType? : ResponseType;
|
|
286
|
+
responseType? : ResponseType | undefined;
|
|
285
287
|
/**
|
|
286
288
|
* Optional timeout, in milliseconds, after which we will cancel a request.
|
|
287
289
|
* Set to DEFAULT_REQUEST_TIMEOUT by default.
|
|
288
290
|
*/
|
|
289
|
-
timeout? : number;
|
|
291
|
+
timeout? : number | undefined;
|
|
290
292
|
/**
|
|
291
293
|
* "Cancelation token" used to be able to cancel the request.
|
|
292
294
|
* When this token is "cancelled", the request will be aborted and the Promise
|
|
293
295
|
* returned by `request` will be rejected.
|
|
294
296
|
*/
|
|
295
|
-
cancelSignal? : CancellationSignal;
|
|
297
|
+
cancelSignal? : CancellationSignal | undefined;
|
|
296
298
|
/**
|
|
297
299
|
* When defined, this callback will be called on each XHR "progress" event
|
|
298
300
|
* with data related to this request's progress.
|
|
299
301
|
*/
|
|
300
|
-
onProgress? : (info : IProgressInfo) => void;
|
|
302
|
+
onProgress? : ((info : IProgressInfo) => void) | undefined;
|
|
301
303
|
}
|
|
302
304
|
|
|
303
305
|
/** Data emitted by `request`'s Promise when the request succeeded. */
|
|
@@ -330,5 +332,5 @@ export interface IProgressInfo {
|
|
|
330
332
|
size : number;
|
|
331
333
|
sendingTime : number;
|
|
332
334
|
url : string;
|
|
333
|
-
totalSize? : number;
|
|
335
|
+
totalSize? : number | undefined;
|
|
334
336
|
}
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import PPromise from "pinkie";
|
|
18
17
|
import { Observable } from "rxjs";
|
|
19
18
|
import TaskCanceller from "./task_canceller";
|
|
20
19
|
|
|
@@ -41,7 +40,7 @@ import TaskCanceller from "./task_canceller";
|
|
|
41
40
|
*/
|
|
42
41
|
export default function fromCancellablePromise<T>(
|
|
43
42
|
canceller : TaskCanceller,
|
|
44
|
-
fn : () =>
|
|
43
|
+
fn : () => Promise<T>
|
|
45
44
|
) : Observable<T> {
|
|
46
45
|
return new Observable((obs) => {
|
|
47
46
|
let isUnsubscribedFrom = false;
|
package/tsconfig.json
CHANGED
package/tsconfig.modules.json
CHANGED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export interface IBufferBasedChooserPlaybackObservation {
|
|
17
|
-
bufferGap: number;
|
|
18
|
-
currentBitrate?: number;
|
|
19
|
-
currentScore?: number;
|
|
20
|
-
speed: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* From the buffer gap, choose a representation.
|
|
24
|
-
* @param {Object} playbackObservation
|
|
25
|
-
* @param {Array.<Number>} bitrates
|
|
26
|
-
* @param {Array.<Number>} bufferLevels
|
|
27
|
-
* @returns {Object|undefined}
|
|
28
|
-
*/
|
|
29
|
-
export default function getEstimateFromBufferLevels(playbackObservation: IBufferBasedChooserPlaybackObservation, bitrates: number[], bufferLevels: number[]): number | undefined;
|