shaka-player 4.2.5 → 4.3.1
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/build-and-test.yaml +7 -0
- package/.github/workflows/sync-labels.yaml +1 -1
- package/.github/workflows/update-issues.yaml +1 -1
- package/AUTHORS +4 -0
- package/CHANGELOG.md +114 -74
- package/CONTRIBUTORS +4 -0
- package/README.md +14 -0
- package/conditional/dummy_cast_proxy.js +120 -0
- package/demo/common/assets.js +58 -0
- package/demo/common/message_ids.js +22 -1
- package/demo/config.js +89 -5
- package/demo/demo.less +7 -1
- package/demo/index.html +8 -1
- package/demo/locales/en.json +21 -1
- package/demo/locales/source.json +82 -2
- package/demo/main.js +57 -1
- package/demo/search.js +2 -0
- package/demo/visualizer.js +337 -0
- package/demo/visualizer_button.js +103 -0
- package/dist/controls.css +1 -1
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +107 -88
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +107 -88
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +21 -13
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +75 -77
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +75 -77
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +181 -27
- package/dist/shaka-player.compiled.debug.d.ts +181 -27
- package/dist/shaka-player.compiled.debug.externs.js +169 -31
- package/dist/shaka-player.compiled.debug.js +510 -450
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +169 -31
- package/dist/shaka-player.compiled.js +912 -874
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +181 -27
- package/dist/shaka-player.ui.debug.d.ts +181 -27
- package/dist/shaka-player.ui.debug.externs.js +169 -31
- package/dist/shaka-player.ui.debug.js +533 -471
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +169 -31
- package/dist/shaka-player.ui.js +1073 -1036
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/lcevc-architecture.png +0 -0
- package/docs/design/lcevc-demo.png +0 -0
- package/docs/design/lcevc-integration.md +72 -0
- package/docs/tutorials/fairplay.md +7 -0
- package/docs/tutorials/faq.md +1 -1
- package/docs/tutorials/ui.md +7 -7
- package/docs/tutorials/upgrade.md +6 -0
- package/externs/ima.js +13 -1
- package/externs/lcevc.js +81 -0
- package/externs/mux.js +1 -42
- package/externs/shaka/ads.js +11 -1
- package/externs/shaka/manifest_parser.js +5 -1
- package/externs/shaka/mp4_parser.js +3 -0
- package/externs/shaka/player.js +178 -15
- package/lib/abr/simple_abr_manager.js +7 -0
- package/lib/ads/ad_manager.js +0 -8
- package/lib/ads/client_side_ad.js +15 -0
- package/lib/ads/client_side_ad_manager.js +21 -8
- package/lib/ads/server_side_ad.js +15 -0
- package/lib/ads/server_side_ad_manager.js +3 -3
- package/lib/cast/cast_utils.js +2 -0
- package/lib/cea/dummy_cea_parser.js +28 -0
- package/lib/cea/i_cea_parser.js +14 -2
- package/lib/cea/mp4_cea_parser.js +108 -5
- package/lib/config/auto_show_text.js +33 -0
- package/lib/dash/dash_parser.js +1 -1
- package/lib/hls/hls_parser.js +808 -384
- package/lib/lcevc/lcevc_dil.js +152 -0
- package/lib/media/closed_caption_parser.js +9 -6
- package/lib/media/drm_engine.js +14 -6
- package/lib/media/media_source_capabilities.js +36 -0
- package/lib/media/media_source_engine.js +113 -28
- package/lib/media/presentation_timeline.js +26 -11
- package/lib/media/segment_reference.js +49 -1
- package/lib/media/streaming_engine.js +142 -12
- package/lib/media/transmuxer.js +78 -21
- package/lib/offline/storage.js +1 -0
- package/lib/player.js +456 -77
- package/lib/polyfill/media_capabilities.js +9 -5
- package/lib/polyfill/patchedmediakeys_apple.js +63 -4
- package/lib/text/vtt_text_parser.js +35 -1
- package/lib/util/dom_utils.js +0 -1
- package/lib/util/error.js +17 -0
- package/lib/util/fake_event.js +2 -0
- package/lib/util/id3_utils.js +300 -0
- package/lib/util/mime_utils.js +3 -6
- package/lib/util/mp4_box_parsers.js +39 -5
- package/lib/util/mp4_parser.js +35 -0
- package/lib/util/player_configuration.js +23 -1
- package/lib/util/stream_utils.js +5 -3
- package/lib/util/ts_parser.js +499 -0
- package/maintained-branches.md +2 -2
- package/package.json +7 -4
- package/roadmap.md +5 -3
- package/test/ads/ad_manager_unit.js +182 -29
- package/test/cast/cast_utils_unit.js +3 -1
- package/test/dash/dash_parser_content_protection_unit.js +1 -0
- package/test/dash/dash_parser_live_unit.js +1 -0
- package/test/dash/dash_parser_manifest_unit.js +93 -1
- package/test/dash/dash_parser_segment_base_unit.js +1 -0
- package/test/dash/dash_parser_segment_list_unit.js +1 -0
- package/test/dash/dash_parser_segment_template_unit.js +1 -0
- package/test/demo/demo_unit.js +2 -1
- package/test/hls/hls_live_unit.js +253 -19
- package/test/hls/hls_parser_unit.js +631 -12
- package/test/media/closed_caption_parser_unit.js +2 -1
- package/test/media/drm_engine_integration.js +3 -1
- package/test/media/media_source_engine_integration.js +71 -6
- package/test/media/media_source_engine_unit.js +10 -5
- package/test/media/streaming_engine_integration.js +4 -1
- package/test/media/streaming_engine_unit.js +144 -1
- package/test/media/transmuxer_integration.js +21 -10
- package/test/player_integration.js +224 -82
- package/test/player_unit.js +5 -2
- package/test/polyfill/media_capabilities_unit.js +21 -23
- package/test/polyfill/patchedmediakeys_apple_unit.js +130 -0
- package/test/test/assets/id3-metadata.aac +0 -0
- package/test/test/assets/id3-metadata.ts +0 -0
- package/test/test/assets/thumbnails-sprites.vtt +10 -0
- package/test/test/assets/thumbnails.vtt +10 -0
- package/test/test/util/dash_parser_util.js +2 -0
- package/test/test/util/fake_ad.js +21 -0
- package/test/test/util/fake_media_source_engine.js +7 -0
- package/test/test/util/id3_generator.js +100 -0
- package/test/test/util/manifest_generator.js +3 -6
- package/test/test/util/simple_fakes.js +4 -0
- package/test/test/util/stream_generator.js +38 -0
- package/test/test/util/test_scheme.js +43 -14
- package/test/text/vtt_text_parser_unit.js +11 -0
- package/test/util/id3_utils_unit.js +116 -0
- package/test/util/ts_parser_unit.js +77 -0
- package/third_party/closure-uri/uri.js +1 -1
- package/ui/less/containers.less +7 -0
- package/ui/ui.js +43 -4
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
|
|
2
|
+
# Shaka Player LCEVC integration
|
|
3
|
+
|
|
4
|
+
# Introduction
|
|
5
|
+
|
|
6
|
+
This article describes the V-Nova LCEVC Shaka Player integration.
|
|
7
|
+
|
|
8
|
+
# LCEVC Integration
|
|
9
|
+
|
|
10
|
+
## Adding V-Nova required files
|
|
11
|
+
### Importing DIL - Decoder Integration Layer
|
|
12
|
+
|
|
13
|
+
V-Nova LCEVC DIL Libraries are included using the same approach that the other external libraries are currently using. The necessary V-Nova LCEVC DIL files need to be imported in the HTML page that is going to be used by Shaka Player to decode LCEVC. Checks are inplace that make sure the necessary objects are available.
|
|
14
|
+
|
|
15
|
+
Npm package : <https://www.npmjs.com/package/lcevc_dil.js>
|
|
16
|
+
|
|
17
|
+
```javascript
|
|
18
|
+
<!-- MPEG-5 Part2 LCEVC support is enabled by including this: -->
|
|
19
|
+
<script defer src="../node_modules/lcevc_dil.js/dist/lcevc_dil.min.js"></script>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
To allow the Closure compiler to use the objects and methods that are exported by the DIL.js a new `extern` is created.
|
|
23
|
+
|
|
24
|
+
### Defining an Extern for LCEVC
|
|
25
|
+
|
|
26
|
+
`externs/lcevc.js` exposes the functions from the LCEVC DIL library required for LCEVC Decoding.
|
|
27
|
+
|
|
28
|
+
## Integration point
|
|
29
|
+
|
|
30
|
+
### The shaka.lcevc.Dil class - (DIL : Decoder Integration Layer)
|
|
31
|
+
|
|
32
|
+
The main logic of the LCEVC integration is located in the `lib/lcevc_dil.min.js` file. In this file the shaka.lcevc.Dil is exported to be used in the project. This class is in charge of creating the Dil object using the mentioned externs, checking if LCEVC DIL library is available, etc.
|
|
33
|
+
|
|
34
|
+
### Modifications in the player
|
|
35
|
+
|
|
36
|
+
The shaka.Player class, defined in the `lib/player.js` file, is the main player object for Shaka Player. There is a setter function for setting up a `canvas` element that is received from the user.
|
|
37
|
+
If shaka.ui is used the `canvas` is created in line with the video element in the same container overlaying the video element. If user provides a custom canvas using the setter function, The user is responsible for placing the canvas element in the desired position and resizing it.
|
|
38
|
+
|
|
39
|
+
`shaka.externs.LcevcConfiguration` is added to the `playerConfiguration` that is used as configuration for the LCEVC DIL Library.
|
|
40
|
+
|
|
41
|
+
The Dil object is created in the `onLoad_()` event that is triggered when a new video is loaded in Shaka Player. Attaching to a media element is defined as:
|
|
42
|
+
|
|
43
|
+
- Registering error listeners to the media element.
|
|
44
|
+
- Catching the video element for use outside of the load graph.
|
|
45
|
+
|
|
46
|
+
The Dil object is created only if LCEVC is supported (LCEVC libs are loaded on the page) and also when it was not already created in another `onLoad_()` event execution.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Feeding the Dil
|
|
50
|
+
|
|
51
|
+
The logic that Shaka Player uses to communicate with the Media Source Extensions (MSE) is located in the `media/media_source_engine.js` file.
|
|
52
|
+
|
|
53
|
+

|
|
54
|
+
|
|
55
|
+
`append_()` function that is used to feed the MSE Source Buffer is intercepted and modified to pass the video buffers to the LCEVC DIL Libraries before appending to the MSE Source Buffers.
|
|
56
|
+
|
|
57
|
+
## Demo page
|
|
58
|
+
|
|
59
|
+
The relevant libraries are added in the Demo Page like so:
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
<!-- MPEG-5 Part2 LCEVC support is enabled by including this: -->
|
|
63
|
+
<script defer src="../node_modules/lcevc_dil.js/dist/lcevc_dil.min.js"></script>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
And a new video sample with enhancement data is added to the `demo/common/assets.js` file under a new source `MPEG-5 Part 2 LCEVC`.
|
|
67
|
+
|
|
68
|
+
After these changes the demo page looks like :
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
|
|
@@ -8,6 +8,13 @@ Modern EME yet, you can use legacy Apple Media Keys with:
|
|
|
8
8
|
shaka.polyfill.PatchedMediaKeysApple.install();
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
If you need to use both legacy and Modern EME, for example if you have to support
|
|
12
|
+
multiple DRM providers, it is possible to enable uninstalling the polyfill:
|
|
13
|
+
```js
|
|
14
|
+
shaka.polyfill.PatchedMediaKeysApple.install(/* enableUninstall= */ true);
|
|
15
|
+
shaka.polyfill.PatchedMediaKeysApple.uninstall();
|
|
16
|
+
```
|
|
17
|
+
|
|
11
18
|
The support in each case would be the following:
|
|
12
19
|
|
|
13
20
|
| |Modern EME |legacy Apple Media Keys|
|
package/docs/tutorials/faq.md
CHANGED
|
@@ -164,7 +164,7 @@ shaka.net.NetworkingEngine.registerScheme('file', shaka.net.HttpXHRPlugin);
|
|
|
164
164
|
contain said captions. Edge and Chromecast, however, have native TS support and
|
|
165
165
|
thus are not required to transmux.
|
|
166
166
|
In order to force those platforms to transmux, set the
|
|
167
|
-
{@link shaka.extern.StreamingConfiguration|`.streaming.
|
|
167
|
+
{@link shaka.extern.StreamingConfiguration|`.streaming.forceTransmux`}
|
|
168
168
|
configuration to true.
|
|
169
169
|
|
|
170
170
|
<hr>
|
package/docs/tutorials/ui.md
CHANGED
|
@@ -30,7 +30,7 @@ Set up controls with HTML data attributes:
|
|
|
30
30
|
The data-shaka-player-cast-receiver-id tag allows you to provide a Cast Application ID that
|
|
31
31
|
the cast button will cast to; the value provided here is the sample cast receiver. -->
|
|
32
32
|
<div data-shaka-player-container style="max-width:40em"
|
|
33
|
-
data-shaka-player-cast-receiver-id="
|
|
33
|
+
data-shaka-player-cast-receiver-id="8D8C71A7">
|
|
34
34
|
<!-- The data-shaka-player tag will make the UI library use this video element.
|
|
35
35
|
If no video is provided, the UI will automatically make one inside the container div. -->
|
|
36
36
|
<video autoplay data-shaka-player id="video" style="width:100%;height:100%"></video>
|
|
@@ -111,7 +111,7 @@ set up a listener for the 'caststatuschanged' events.
|
|
|
111
111
|
<!-- Add a data-shaka-player-cast-receiver-id tag to provide a Cast Application ID that
|
|
112
112
|
the cast button will cast to; the value provided here is the sample cast receiver. -->
|
|
113
113
|
<div data-shaka-player-container style="max-width:40em"
|
|
114
|
-
data-shaka-player-cast-receiver-id="
|
|
114
|
+
data-shaka-player-cast-receiver-id="8D8C71A7">
|
|
115
115
|
</div>
|
|
116
116
|
```
|
|
117
117
|
|
|
@@ -139,7 +139,7 @@ casting to an Android receiver app.
|
|
|
139
139
|
|
|
140
140
|
```html
|
|
141
141
|
<div data-shaka-player-container style="max-width:40em"
|
|
142
|
-
data-shaka-player-cast-receiver-id="
|
|
142
|
+
data-shaka-player-cast-receiver-id="8D8C71A7"
|
|
143
143
|
data-shaka-player-cast-android-receiver-compatible="true">
|
|
144
144
|
<!-- The manifest url in the src attribute will be automatically loaded -->
|
|
145
145
|
<video autoplay data-shaka-player id="video" style="width:100%;height:100%"
|
|
@@ -154,7 +154,7 @@ or a `<source>` tag inside it to enable auto loading of the specified content.
|
|
|
154
154
|
|
|
155
155
|
```html
|
|
156
156
|
<div data-shaka-player-container style="max-width:40em"
|
|
157
|
-
data-shaka-player-cast-receiver-id="
|
|
157
|
+
data-shaka-player-cast-receiver-id="8D8C71A7">
|
|
158
158
|
<!-- The manifest url in the src attribute will be automatically loaded -->
|
|
159
159
|
<video autoplay data-shaka-player id="video" style="width:100%;height:100%"
|
|
160
160
|
src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"></video>
|
|
@@ -165,7 +165,7 @@ or
|
|
|
165
165
|
|
|
166
166
|
```html
|
|
167
167
|
<div data-shaka-player-container style="max-width:40em"
|
|
168
|
-
data-shaka-player-cast-receiver-id="
|
|
168
|
+
data-shaka-player-cast-receiver-id="8D8C71A7">
|
|
169
169
|
<video autoplay data-shaka-player id="video" style="width:100%;height:100%">
|
|
170
170
|
<!-- The manifest url in the src attribute will be auto loaded -->
|
|
171
171
|
<source src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"/>
|
|
@@ -178,7 +178,7 @@ call to the first one fails.
|
|
|
178
178
|
|
|
179
179
|
```html
|
|
180
180
|
<div data-shaka-player-container style="max-width:40em"
|
|
181
|
-
data-shaka-player-cast-receiver-id="
|
|
181
|
+
data-shaka-player-cast-receiver-id="8D8C71A7">
|
|
182
182
|
<video autoplay data-shaka-player id="video" style="width:100%;height:100%">
|
|
183
183
|
<!-- Try this first -->
|
|
184
184
|
<source src="https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd"/>
|
|
@@ -222,7 +222,7 @@ const video = controls.getVideo();
|
|
|
222
222
|
// Receiver Compatability.
|
|
223
223
|
ui.configure({
|
|
224
224
|
// Set the castReceiverAppId
|
|
225
|
-
'castReceiverAppId': '
|
|
225
|
+
'castReceiverAppId': '8D8C71A7',
|
|
226
226
|
// Enable casting to native Android Apps (e.g. Android TV Apps)
|
|
227
227
|
'castAndroidReceiverCompatible': true,
|
|
228
228
|
});
|
|
@@ -90,3 +90,9 @@ application:
|
|
|
90
90
|
clearly-named `lineBreak` (deprecated in v3.1.0)
|
|
91
91
|
- `IUIElement` plugins must have a `release()` method (not `destroy()`)
|
|
92
92
|
(deprecated in v3.0.0)
|
|
93
|
+
|
|
94
|
+
## v5.0 (unreleased)
|
|
95
|
+
|
|
96
|
+
- Configuration changes:
|
|
97
|
+
- `streaming.forceTransmuxTS` has been renamed to `streaming.forceTransmux`
|
|
98
|
+
(deprecated in v4.3.0)
|
package/externs/ima.js
CHANGED
|
@@ -143,7 +143,7 @@ google.ima.AdsManagerLoadedEvent.Type = {
|
|
|
143
143
|
|
|
144
144
|
/** @const */
|
|
145
145
|
google.ima.AdEvent = class extends Event {
|
|
146
|
-
/** @return {
|
|
146
|
+
/** @return {?google.ima.Ad} */
|
|
147
147
|
getAd() {}
|
|
148
148
|
};
|
|
149
149
|
|
|
@@ -167,6 +167,12 @@ google.ima.Ad = class {
|
|
|
167
167
|
|
|
168
168
|
/** @return {boolean} */
|
|
169
169
|
isLinear() {}
|
|
170
|
+
|
|
171
|
+
/** @return {string} */
|
|
172
|
+
getTitle() {}
|
|
173
|
+
|
|
174
|
+
/** @return {string} */
|
|
175
|
+
getDescription() {}
|
|
170
176
|
};
|
|
171
177
|
|
|
172
178
|
|
|
@@ -389,6 +395,12 @@ google.ima.dai.api.Ad = class {
|
|
|
389
395
|
|
|
390
396
|
/** @return {boolean} */
|
|
391
397
|
isSkippable() {}
|
|
398
|
+
|
|
399
|
+
/** @return {string} */
|
|
400
|
+
getTitle() {}
|
|
401
|
+
|
|
402
|
+
/** @return {string} */
|
|
403
|
+
getDescription() {}
|
|
392
404
|
};
|
|
393
405
|
|
|
394
406
|
|
package/externs/lcevc.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Externs for LcevcDil
|
|
3
|
+
* compiler.
|
|
4
|
+
*
|
|
5
|
+
* @externs
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// This empty namespace is declared to check if LcevcDil libraries are loaded.
|
|
9
|
+
var libDPIModule = {};
|
|
10
|
+
var LcevcDil = {};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* LCEVC DIL constructor
|
|
14
|
+
* @constructor
|
|
15
|
+
*/
|
|
16
|
+
LcevcDil.LcevcDIL = class {
|
|
17
|
+
/**
|
|
18
|
+
* @param {HTMLVideoElement} media
|
|
19
|
+
* @param {HTMLCanvasElement} canvas
|
|
20
|
+
* @param {shaka.extern.LcevcConfiguration} dilConfig
|
|
21
|
+
*/
|
|
22
|
+
constructor(media, canvas, dilConfig) {
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Append the video buffers before they are appended to
|
|
27
|
+
* Media Source Extensions SourceBuffer. Here the lcevc data
|
|
28
|
+
* will be parsed and managed to enhance frames based on timestamps.
|
|
29
|
+
*
|
|
30
|
+
* @param {!BufferSource} data Video Buffer Data.
|
|
31
|
+
* @param {string} type Type of Video Buffer Data.
|
|
32
|
+
* @param {number} variantId Variant that the fragment belongs to.
|
|
33
|
+
*/
|
|
34
|
+
appendBuffer(data, type, variantId) {}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Set current variant as variantId to the LCEVC decoder
|
|
38
|
+
* @param {!number} variantId
|
|
39
|
+
* @param {!boolean} autoBufferSwitch is lcevcDil mode that switches variant
|
|
40
|
+
* when the downloaded buffer from last variant has finished playing and
|
|
41
|
+
* buffers from the new variant starts to play.
|
|
42
|
+
*/
|
|
43
|
+
setLevelSwitching(variantId, autoBufferSwitch) {}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Set container Format for LCEVC Data Parsing.
|
|
47
|
+
* @param {!number} containerFormat container type of the stream.
|
|
48
|
+
*/
|
|
49
|
+
setContainerFormat(containerFormat) {}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Close LCEVC DIL
|
|
53
|
+
*/
|
|
54
|
+
close() {}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* LCEVC Support Check
|
|
59
|
+
*/
|
|
60
|
+
LcevcDil.SupportObject = {
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Check if canvas has WebGL support
|
|
64
|
+
* @param {HTMLCanvasElement} canvas
|
|
65
|
+
* @return {boolean} true if requirements are met.
|
|
66
|
+
*/
|
|
67
|
+
webGLSupport(canvas) {},
|
|
68
|
+
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* LCEVC Support Checklist Result
|
|
73
|
+
* @type {boolean}
|
|
74
|
+
*/
|
|
75
|
+
LcevcDil.SupportObject.SupportStatus;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* LCEVC Support CheckList Error if any.
|
|
79
|
+
* @type {string}
|
|
80
|
+
*/
|
|
81
|
+
LcevcDil.SupportObject.SupportError;
|
package/externs/mux.js
CHANGED
|
@@ -84,15 +84,13 @@ muxjs.mp4.Transmuxer = class {
|
|
|
84
84
|
* @typedef {{
|
|
85
85
|
* initSegment: !Uint8Array,
|
|
86
86
|
* data: !Uint8Array,
|
|
87
|
-
* captions: !Array
|
|
88
|
-
* metadata: !Array
|
|
87
|
+
* captions: !Array
|
|
89
88
|
* }}
|
|
90
89
|
*
|
|
91
90
|
* @description Transmuxed data from mux.js.
|
|
92
91
|
* @property {!Uint8Array} initSegment
|
|
93
92
|
* @property {!Uint8Array} data
|
|
94
93
|
* @property {!Array} captions
|
|
95
|
-
* @property {!Array} metadata
|
|
96
94
|
* @exportDoc
|
|
97
95
|
*/
|
|
98
96
|
muxjs.mp4.Transmuxer.Segment;
|
|
@@ -173,42 +171,3 @@ muxjs.mp4.ParsedClosedCaptions;
|
|
|
173
171
|
*/
|
|
174
172
|
muxjs.mp4.ClosedCaption;
|
|
175
173
|
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* @typedef {{
|
|
179
|
-
* cueTime: number,
|
|
180
|
-
* data: !Uint8Array,
|
|
181
|
-
* dispatchType: string,
|
|
182
|
-
* dts: number,
|
|
183
|
-
* frames: !Array.<muxjs.mp4.MetadataFrame>,
|
|
184
|
-
* pts: number
|
|
185
|
-
* }}
|
|
186
|
-
*
|
|
187
|
-
* @description metadata parsed from mux.js.
|
|
188
|
-
* @property {number} cueTime
|
|
189
|
-
* @property {number} data
|
|
190
|
-
* @property {number} dispatchType
|
|
191
|
-
* @property {number} dts
|
|
192
|
-
* @property {string} frames
|
|
193
|
-
* @property {string} pts
|
|
194
|
-
*/
|
|
195
|
-
muxjs.mp4.Metadata;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* @typedef {{
|
|
200
|
-
* data: string,
|
|
201
|
-
* description: string,
|
|
202
|
-
* id: string,
|
|
203
|
-
* key: string,
|
|
204
|
-
* value: string
|
|
205
|
-
* }}
|
|
206
|
-
*
|
|
207
|
-
* @description metadata parsed from mux.js.
|
|
208
|
-
* @property {number} data
|
|
209
|
-
* @property {number} description
|
|
210
|
-
* @property {number} id
|
|
211
|
-
* @property {number} key
|
|
212
|
-
* @property {string} value
|
|
213
|
-
*/
|
|
214
|
-
muxjs.mp4.MetadataFrame;
|
package/externs/shaka/ads.js
CHANGED
|
@@ -120,7 +120,7 @@ shaka.extern.IAdManager = class extends EventTarget {
|
|
|
120
120
|
onHlsTimedMetadata(metadata, timestampOffset) {}
|
|
121
121
|
|
|
122
122
|
/**
|
|
123
|
-
* @param {shaka.extern.
|
|
123
|
+
* @param {shaka.extern.MetadataFrame} value
|
|
124
124
|
*/
|
|
125
125
|
onCueMetadataChange(value) {}
|
|
126
126
|
};
|
|
@@ -227,4 +227,14 @@ shaka.extern.IAd = class {
|
|
|
227
227
|
* @return {number}
|
|
228
228
|
*/
|
|
229
229
|
getPositionInSequence() {}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* @return {string}
|
|
233
|
+
*/
|
|
234
|
+
getTitle() {}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* @return {string}
|
|
238
|
+
*/
|
|
239
|
+
getDescription() {}
|
|
230
240
|
};
|
|
@@ -112,7 +112,8 @@ shaka.extern.ManifestParser = class {
|
|
|
112
112
|
* isLowLatencyMode: function():boolean,
|
|
113
113
|
* isAutoLowLatencyMode: function():boolean,
|
|
114
114
|
* enableLowLatencyMode: function(),
|
|
115
|
-
* updateDuration: function()
|
|
115
|
+
* updateDuration: function(),
|
|
116
|
+
* newDrmInfo: function(shaka.extern.Stream)
|
|
116
117
|
* }}
|
|
117
118
|
*
|
|
118
119
|
* @description
|
|
@@ -150,6 +151,9 @@ shaka.extern.ManifestParser = class {
|
|
|
150
151
|
* Enable low latency streaming mode.
|
|
151
152
|
* @property {function()} updateDuration
|
|
152
153
|
* Update the presentation duration based on PresentationTimeline.
|
|
154
|
+
* @property {function(shaka.extern.Stream)} newDrmInfo
|
|
155
|
+
* Inform the player of new DRM info that needs to be processed for the given
|
|
156
|
+
* stream.
|
|
153
157
|
* @exportDoc
|
|
154
158
|
*/
|
|
155
159
|
shaka.extern.ManifestParser.PlayerInterface;
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @typedef {{
|
|
14
|
+
* name: string,
|
|
14
15
|
* parser: !shaka.util.Mp4Parser,
|
|
15
16
|
* partialOkay: boolean,
|
|
16
17
|
* start: number,
|
|
@@ -21,6 +22,8 @@
|
|
|
21
22
|
* has64BitSize: boolean
|
|
22
23
|
* }}
|
|
23
24
|
*
|
|
25
|
+
* @property {string} name
|
|
26
|
+
* The box name, a 4-character string (fourcc).
|
|
24
27
|
* @property {!shaka.util.Mp4Parser} parser
|
|
25
28
|
* The parser that parsed this box. The parser can be used to parse child
|
|
26
29
|
* boxes where the configuration of the current parser is needed to parsed
|