shaka-player 3.2.2 → 3.3.0
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/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/ISSUE_TEMPLATE/feature_request.md +1 -1
- package/.github/ISSUE_TEMPLATE/question.md +1 -1
- package/AUTHORS +6 -5
- package/CHANGELOG.md +247 -0
- package/CONTRIBUTORS +4 -2
- package/build/types/core +3 -0
- package/build/types/offline +1 -0
- package/build/types/polyfill +1 -0
- package/build/types/ui +2 -0
- package/demo/common/assets.js +18 -0
- package/demo/common/message_ids.js +13 -1
- package/demo/config.js +31 -1
- package/demo/index.html +1 -1
- package/demo/locales/en.json +12 -0
- package/demo/locales/source.json +48 -0
- package/dist/controls.css +26 -2
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +19 -16
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +19 -16
- package/dist/demo.compiled.map +3 -3
- package/dist/deps.js +18 -11
- package/dist/locales.js +28 -26
- package/dist/receiver.compiled.debug.js +11 -9
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +11 -9
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +205 -15
- package/dist/shaka-player.compiled.debug.d.ts +205 -15
- package/dist/shaka-player.compiled.debug.externs.js +256 -6
- package/dist/shaka-player.compiled.debug.js +406 -354
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +256 -6
- package/dist/shaka-player.compiled.js +826 -800
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +221 -16
- package/dist/shaka-player.ui.debug.d.ts +221 -16
- package/dist/shaka-player.ui.debug.externs.js +283 -6
- package/dist/shaka-player.ui.debug.js +547 -476
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +283 -6
- package/dist/shaka-player.ui.js +1019 -980
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/bg-fetch-after.gv +29 -0
- package/docs/design/bg-fetch-after.gv.png +0 -0
- package/docs/design/bg-fetch-before.gv +18 -0
- package/docs/design/bg-fetch-before.gv.png +0 -0
- package/docs/design/bg-fetch.md +134 -0
- package/docs/tutorials/blob-url.md +15 -0
- package/docs/tutorials/index.json +1 -0
- package/docs/tutorials/ui-customization.md +66 -0
- package/docs/tutorials/ui.md +5 -5
- package/externs/ima.js +3 -0
- package/externs/shaka/ads.js +5 -0
- package/externs/shaka/manifest.js +12 -1
- package/externs/shaka/manifest_parser.js +10 -1
- package/externs/shaka/net.js +20 -4
- package/externs/shaka/offline.js +31 -2
- package/externs/shaka/player.js +130 -5
- package/externs/shaka/text.js +14 -0
- package/externs/webcrypto.js +18 -0
- package/lib/abr/ewma.js +14 -0
- package/lib/abr/ewma_bandwidth_estimator.js +16 -2
- package/lib/abr/simple_abr_manager.js +6 -0
- package/lib/ads/client_side_ad.js +8 -0
- package/lib/ads/client_side_ad_manager.js +8 -4
- package/lib/ads/server_side_ad.js +7 -0
- package/lib/cast/cast_utils.js +1 -0
- package/lib/dash/dash_parser.js +48 -14
- package/lib/dash/segment_base.js +25 -1
- package/lib/dash/segment_list.js +18 -9
- package/lib/dash/segment_template.js +23 -10
- package/lib/hls/hls_parser.js +86 -23
- package/lib/media/quality_observer.js +291 -0
- package/lib/media/segment_index.js +6 -0
- package/lib/media/segment_reference.js +18 -3
- package/lib/media/streaming_engine.js +42 -4
- package/lib/net/http_fetch_plugin.js +31 -11
- package/lib/net/http_plugin_utils.js +1 -0
- package/lib/net/http_xhr_plugin.js +40 -14
- package/lib/net/networking_engine.js +81 -18
- package/lib/offline/download_info.js +68 -0
- package/lib/offline/download_manager.js +13 -5
- package/lib/offline/indexeddb/base_storage_cell.js +35 -0
- package/lib/offline/indexeddb/storage_mechanism.js +1 -1
- package/lib/offline/indexeddb/v5_storage_cell.js +5 -0
- package/lib/offline/storage.js +393 -284
- package/lib/offline/stored_content_utils.js +2 -0
- package/lib/player.js +206 -7
- package/lib/polyfill/random_uuid.js +52 -0
- package/lib/text/cue.js +12 -0
- package/lib/text/ttml_text_parser.js +25 -2
- package/lib/text/ui_text_displayer.js +2 -2
- package/lib/util/cmcd_manager.js +826 -0
- package/lib/util/error.js +6 -0
- package/lib/util/language_utils.js +12 -0
- package/lib/util/mutex.js +52 -0
- package/lib/util/periods.js +98 -64
- package/lib/util/player_configuration.js +18 -0
- package/package.json +1 -1
- package/shaka-player.uncompiled.js +3 -0
- package/test/dash/dash_parser_content_protection_unit.js +2 -0
- package/test/dash/dash_parser_live_unit.js +101 -1
- package/test/dash/dash_parser_manifest_unit.js +35 -1
- package/test/dash/dash_parser_segment_base_unit.js +2 -0
- package/test/dash/dash_parser_segment_list_unit.js +2 -1
- package/test/dash/dash_parser_segment_template_unit.js +2 -1
- package/test/hls/hls_live_unit.js +2 -0
- package/test/hls/hls_parser_unit.js +2 -0
- package/test/media/quality_observer_unit.js +139 -0
- package/test/media/segment_reference_unit.js +16 -1
- package/test/media/streaming_engine_integration.js +2 -1
- package/test/media/streaming_engine_unit.js +2 -0
- package/test/net/http_plugin_unit.js +20 -15
- package/test/offline/storage_integration.js +108 -4
- package/test/player_integration.js +99 -0
- package/test/test/util/dash_parser_util.js +4 -0
- package/test/test/util/fake_ad.js +7 -0
- package/test/test/util/fake_drm_engine.js +9 -2
- package/test/test/util/manifest_generator.js +3 -2
- package/test/test/util/test_scheme.js +14 -1
- package/test/text/ttml_text_parser_unit.js +47 -0
- package/test/ui/ui_unit.js +250 -0
- package/test/util/cmcd_manager_unit.js +277 -0
- package/ui/airplay_button.js +1 -0
- package/ui/audio_language_selection.js +7 -0
- package/ui/cast_button.js +1 -0
- package/ui/context_menu.js +109 -0
- package/ui/controls.js +41 -7
- package/ui/controls.less +1 -0
- package/ui/enums.js +4 -0
- package/ui/externs/ui.js +28 -1
- package/ui/fast_forward_button.js +14 -5
- package/ui/fullscreen_button.js +1 -0
- package/ui/less/buttons.less +0 -4
- package/ui/less/containers.less +74 -0
- package/ui/less/overflow_menu.less +0 -10
- package/ui/less/tooltip.less +97 -0
- package/ui/locales/en.json +1 -0
- package/ui/locales/source.json +4 -0
- package/ui/loop_button.js +5 -0
- package/ui/mute_button.js +2 -1
- package/ui/overflow_menu.js +5 -25
- package/ui/pip_button.js +5 -0
- package/ui/play_button.js +2 -2
- package/ui/playback_rate_selection.js +8 -9
- package/ui/resolution_selection.js +7 -0
- package/ui/rewind_button.js +15 -6
- package/ui/seek_bar.js +4 -2
- package/ui/settings_menu.js +36 -4
- package/ui/small_play_button.js +1 -0
- package/ui/statistics_button.js +253 -0
- package/ui/text_selection.js +11 -4
- package/ui/ui.js +30 -0
- package/ui/volume_bar.js +1 -1
|
@@ -395,6 +395,13 @@ declare namespace shaka {
|
|
|
395
395
|
* <code>detach</code>, or <code>unload</code>.
|
|
396
396
|
*/
|
|
397
397
|
unload (initializeMediaSource ? : boolean ) : Promise < any > ;
|
|
398
|
+
/**
|
|
399
|
+
* Provides a way to update the stream start position during the media loading
|
|
400
|
+
* process. Can for example be called from the <code>manifestparsed</code>
|
|
401
|
+
* event handler to update the start position based on information in the
|
|
402
|
+
* manifest.
|
|
403
|
+
*/
|
|
404
|
+
updateStartTime (startTime : number ) : any ;
|
|
398
405
|
/**
|
|
399
406
|
* Return whether the browser provides basic support. If this returns false,
|
|
400
407
|
* Shaka Player cannot be used at all. In this case, do not construct a
|
|
@@ -628,6 +635,7 @@ declare namespace shaka.ads {
|
|
|
628
635
|
getSequenceLength ( ) : any ;
|
|
629
636
|
getTimeUntilSkippable ( ) : any ;
|
|
630
637
|
getVolume ( ) : any ;
|
|
638
|
+
isLinear ( ) : any ;
|
|
631
639
|
isMuted ( ) : any ;
|
|
632
640
|
isPaused ( ) : any ;
|
|
633
641
|
isSkippable ( ) : any ;
|
|
@@ -653,6 +661,7 @@ declare namespace shaka.ads {
|
|
|
653
661
|
getSequenceLength ( ) : any ;
|
|
654
662
|
getTimeUntilSkippable ( ) : any ;
|
|
655
663
|
getVolume ( ) : any ;
|
|
664
|
+
isLinear ( ) : any ;
|
|
656
665
|
isMuted ( ) : any ;
|
|
657
666
|
isPaused ( ) : any ;
|
|
658
667
|
isSkippable ( ) : any ;
|
|
@@ -816,7 +825,7 @@ declare namespace shaka.media {
|
|
|
816
825
|
*/
|
|
817
826
|
class InitSegmentReference {
|
|
818
827
|
private noStructuralTyping_shaka_media_InitSegmentReference : any;
|
|
819
|
-
constructor (uris : ( ) => string [] , startByte : number , endByte : number | null ) ;
|
|
828
|
+
constructor (uris : ( ) => string [] , startByte : number , endByte : number | null , mediaQuality ? : null | shaka.extern.MediaQualityInfo ) ;
|
|
820
829
|
/**
|
|
821
830
|
* Returns the offset from the start of the resource to the end of the
|
|
822
831
|
* segment, inclusive. A value of null indicates that the segment extends
|
|
@@ -1166,14 +1175,14 @@ declare namespace shaka.net {
|
|
|
1166
1175
|
* logic as Shaka when determining support.
|
|
1167
1176
|
*/
|
|
1168
1177
|
static isSupported ( ) : boolean ;
|
|
1169
|
-
static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated ) : shaka.extern.IAbortableOperation < any > ;
|
|
1178
|
+
static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated , headersReceived : shaka.extern.HeadersReceived ) : shaka.extern.IAbortableOperation < any > ;
|
|
1170
1179
|
}
|
|
1171
1180
|
}
|
|
1172
1181
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
1173
1182
|
declare namespace shaka.net {
|
|
1174
1183
|
class HttpXHRPlugin {
|
|
1175
1184
|
private noStructuralTyping_shaka_net_HttpXHRPlugin : any;
|
|
1176
|
-
static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated ) : shaka.extern.IAbortableOperation < any > ;
|
|
1185
|
+
static parse (uri : string , request : shaka.extern.Request , requestType : shaka.net.NetworkingEngine.RequestType , progressUpdated : shaka.extern.ProgressUpdated , headersReceived : shaka.extern.HeadersReceived ) : shaka.extern.IAbortableOperation < any > ;
|
|
1177
1186
|
}
|
|
1178
1187
|
}
|
|
1179
1188
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
@@ -1190,7 +1199,7 @@ declare namespace shaka.net {
|
|
|
1190
1199
|
* handle the actual request. A plugin is registered using registerScheme.
|
|
1191
1200
|
* Each scheme has at most one plugin to handle the request.
|
|
1192
1201
|
*/
|
|
1193
|
-
constructor (onProgressUpdated ? : (a : number , b : number ) => any ) ;
|
|
1202
|
+
constructor (onProgressUpdated ? : (a : number , b : number ) => any , onHeadersReceived ? : shaka.net.NetworkingEngine.OnHeadersReceived , onDownloadFailed ? : shaka.net.NetworkingEngine.OnDownloadFailed ) ;
|
|
1194
1203
|
/**
|
|
1195
1204
|
* Clears all request filters.
|
|
1196
1205
|
*/
|
|
@@ -1259,6 +1268,14 @@ declare namespace shaka.net.NetworkingEngine {
|
|
|
1259
1268
|
}
|
|
1260
1269
|
}
|
|
1261
1270
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
1271
|
+
declare namespace shaka.net.NetworkingEngine {
|
|
1272
|
+
type OnDownloadFailed = (a : shaka.extern.Request , b : shaka.util.Error | null , c : number , d : boolean ) => any ;
|
|
1273
|
+
}
|
|
1274
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
1275
|
+
declare namespace shaka.net.NetworkingEngine {
|
|
1276
|
+
type OnHeadersReceived = (a : { [ key: string ]: string } , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType ) => any ;
|
|
1277
|
+
}
|
|
1278
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
1262
1279
|
declare namespace shaka.net.NetworkingEngine {
|
|
1263
1280
|
/**
|
|
1264
1281
|
* A pending network request. This can track the current progress of the
|
|
@@ -1559,6 +1576,16 @@ declare namespace shaka.polyfill {
|
|
|
1559
1576
|
}
|
|
1560
1577
|
}
|
|
1561
1578
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
1579
|
+
declare namespace shaka.polyfill {
|
|
1580
|
+
class RandomUUID {
|
|
1581
|
+
private noStructuralTyping_shaka_polyfill_RandomUUID : any;
|
|
1582
|
+
/**
|
|
1583
|
+
* Install the polyfill if needed.
|
|
1584
|
+
*/
|
|
1585
|
+
static install ( ) : any ;
|
|
1586
|
+
}
|
|
1587
|
+
}
|
|
1588
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
1562
1589
|
declare namespace shaka.polyfill {
|
|
1563
1590
|
class StorageEstimate {
|
|
1564
1591
|
private noStructuralTyping_shaka_polyfill_StorageEstimate : any;
|
|
@@ -1640,6 +1667,8 @@ declare namespace shaka.text {
|
|
|
1640
1667
|
startTime : any ;
|
|
1641
1668
|
textAlign : any ;
|
|
1642
1669
|
textDecoration : any ;
|
|
1670
|
+
textStrokeColor : any ;
|
|
1671
|
+
textStrokeWidth : any ;
|
|
1643
1672
|
wrapLine : any ;
|
|
1644
1673
|
writingMode : any ;
|
|
1645
1674
|
}
|
|
@@ -2003,6 +2032,23 @@ declare namespace shaka.util {
|
|
|
2003
2032
|
}
|
|
2004
2033
|
}
|
|
2005
2034
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
2035
|
+
declare namespace shaka.util.CmcdManager {
|
|
2036
|
+
type ManifestInfo = { format : shaka.util.CmcdManager.StreamingFormat } ;
|
|
2037
|
+
}
|
|
2038
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
2039
|
+
declare namespace shaka.util.CmcdManager {
|
|
2040
|
+
type SegmentInfo = { bandwidth ? : number , codecs : string , duration : number , init : boolean , mimeType : string , type : string } ;
|
|
2041
|
+
}
|
|
2042
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
2043
|
+
declare namespace shaka.util.CmcdManager {
|
|
2044
|
+
enum StreamingFormat {
|
|
2045
|
+
DASH = 'd' ,
|
|
2046
|
+
HLS = 'h' ,
|
|
2047
|
+
OTHER = 'o' ,
|
|
2048
|
+
SMOOTH = 's' ,
|
|
2049
|
+
}
|
|
2050
|
+
}
|
|
2051
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
2006
2052
|
declare namespace shaka.util {
|
|
2007
2053
|
class ConfigUtils {
|
|
2008
2054
|
private noStructuralTyping_shaka_util_ConfigUtils : any;
|
|
@@ -2207,6 +2253,7 @@ declare namespace shaka.util.Error {
|
|
|
2207
2253
|
MEDIA_SOURCE_OPERATION_THREW = 3015.0 ,
|
|
2208
2254
|
MISSING_STORAGE_CELL = 9013.0 ,
|
|
2209
2255
|
MISSING_TEXT_PLUGIN = 2014.0 ,
|
|
2256
|
+
MODIFY_OPERATION_NOT_SUPPORTED = 9016.0 ,
|
|
2210
2257
|
MP4_SIDX_INVALID_TIMESCALE = 3005.0 ,
|
|
2211
2258
|
MP4_SIDX_TYPE_NOT_SUPPORTED = 3006.0 ,
|
|
2212
2259
|
MP4_SIDX_WRONG_BOX_TYPE = 3004.0 ,
|
|
@@ -2401,6 +2448,120 @@ declare namespace shaka.util {
|
|
|
2401
2448
|
}
|
|
2402
2449
|
}
|
|
2403
2450
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
2451
|
+
declare namespace shaka.util {
|
|
2452
|
+
class LanguageUtils {
|
|
2453
|
+
private noStructuralTyping_shaka_util_LanguageUtils : any;
|
|
2454
|
+
/**
|
|
2455
|
+
* Check if |locale1| and |locale2| are language-compatible.
|
|
2456
|
+
* Language compatible is when the language component of each locale matches.
|
|
2457
|
+
* This means that no matter what region they have (or don't have) as long as
|
|
2458
|
+
* the language components match, they are language-compatible.
|
|
2459
|
+
* Examples:
|
|
2460
|
+
* Locale A | Locale B | Language-Compatible
|
|
2461
|
+
* -----------------------------------------
|
|
2462
|
+
* en-US | en-US | true
|
|
2463
|
+
* en-US | en | true
|
|
2464
|
+
* en-US | en-CA | true
|
|
2465
|
+
* en-CA | fr-CA | false
|
|
2466
|
+
*/
|
|
2467
|
+
static areLanguageCompatible (locale1 : string , locale2 : string ) : boolean ;
|
|
2468
|
+
/**
|
|
2469
|
+
* Check if |locale1| and |locale2| are locale-compatible.
|
|
2470
|
+
* Locale-compatible is defined as all components in each locale match. Since
|
|
2471
|
+
* we only respect the language and region components, we only check that
|
|
2472
|
+
* the language and region components match.
|
|
2473
|
+
* Examples:
|
|
2474
|
+
* Locale A | Locale B | Locale Compatible
|
|
2475
|
+
* ---------------------------------------
|
|
2476
|
+
* en-US | en-US | true
|
|
2477
|
+
* en | en-US | false
|
|
2478
|
+
* en-US | en-CA | false
|
|
2479
|
+
*/
|
|
2480
|
+
static areLocaleCompatible (locale1 : string , locale2 : string ) : boolean ;
|
|
2481
|
+
/**
|
|
2482
|
+
* Check if two language codes are siblings. Language codes are siblings if
|
|
2483
|
+
* they share the same base language while neither one is the base language.
|
|
2484
|
+
* For example, "en-US" and "en-CA" are siblings but "en-US" and "en" are not
|
|
2485
|
+
* siblings.
|
|
2486
|
+
*/
|
|
2487
|
+
static areSiblings (a : string , b : string ) : boolean ;
|
|
2488
|
+
/**
|
|
2489
|
+
* Find the locale in |searchSpace| that comes closest to |target|. If no
|
|
2490
|
+
* locale is found to be close to |target|, then |null| will be returned.
|
|
2491
|
+
*/
|
|
2492
|
+
static findClosestLocale (target : string , searchSpace : Iterable < string > ) : string | null ;
|
|
2493
|
+
/**
|
|
2494
|
+
* Get the normalized base language for a language code.
|
|
2495
|
+
*/
|
|
2496
|
+
static getBase (lang : string ) : string ;
|
|
2497
|
+
/**
|
|
2498
|
+
* Get the normalized language of the given text stream. Will return 'und' if
|
|
2499
|
+
* a language is not found on the text stream.
|
|
2500
|
+
* This should always be used to get the language from a text stream.
|
|
2501
|
+
*/
|
|
2502
|
+
static getLocaleForText (stream : shaka.extern.Stream ) : string ;
|
|
2503
|
+
/**
|
|
2504
|
+
* Get the normalized locale for the given variant. This will look through
|
|
2505
|
+
* the variant to find the locale that represents the content in the variant.
|
|
2506
|
+
* This will return 'und' if no language can be found.
|
|
2507
|
+
* This should always be used to get the locale from a variant.
|
|
2508
|
+
*/
|
|
2509
|
+
static getLocaleForVariant (variant : shaka.extern.Variant ) : string ;
|
|
2510
|
+
/**
|
|
2511
|
+
* Check if |possibleParent| is the parent locale of |possibleChild|. Because
|
|
2512
|
+
* we do not support dialects, the parent-child relationship is a lot simpler.
|
|
2513
|
+
* In a parent child relationship:
|
|
2514
|
+
* - The parent and child have the same language-component
|
|
2515
|
+
* - The parent has no region-component
|
|
2516
|
+
* - The child has a region-component
|
|
2517
|
+
* Example:
|
|
2518
|
+
* Locale A | Locale B | Is A The parent of B?
|
|
2519
|
+
* --------------------------------------------
|
|
2520
|
+
* en-US | en-US | no
|
|
2521
|
+
* en-US | en | no
|
|
2522
|
+
* en | en-US | yes
|
|
2523
|
+
* en | en | no
|
|
2524
|
+
* en | fr | no
|
|
2525
|
+
*/
|
|
2526
|
+
static isParentOf (possibleParent : string , possibleChild : string ) : boolean ;
|
|
2527
|
+
/**
|
|
2528
|
+
* Check if |localeA| shares the same parent with |localeB|. Since we don't
|
|
2529
|
+
* support dialect, we will only look at language and region. For two locales
|
|
2530
|
+
* to be siblings:
|
|
2531
|
+
* - Both must have language-components
|
|
2532
|
+
* - Both must have region-components
|
|
2533
|
+
* - Both must have the same language-component
|
|
2534
|
+
* Example:
|
|
2535
|
+
* Locale A | Locale B | Siblings?
|
|
2536
|
+
* --------------------------------------------
|
|
2537
|
+
* en-US | en-US | yes
|
|
2538
|
+
* en-US | en-CA | yes
|
|
2539
|
+
* en-US | en | no
|
|
2540
|
+
* en | en-US | no
|
|
2541
|
+
* en | en | no
|
|
2542
|
+
* en | fr | no
|
|
2543
|
+
*/
|
|
2544
|
+
static isSiblingOf (localeA : string , localeB : string ) : boolean ;
|
|
2545
|
+
/**
|
|
2546
|
+
* Normalize a locale. This will take a locale and canonicalize it to a state
|
|
2547
|
+
* that we are prepared to work with.
|
|
2548
|
+
* We only support with:
|
|
2549
|
+
* - language
|
|
2550
|
+
* - language-REGION
|
|
2551
|
+
* If given a dialect, we will discard it. We will convert any 3-character
|
|
2552
|
+
* codes to 2-character codes. We will force language codes to lowercase and
|
|
2553
|
+
* region codes to uppercase.
|
|
2554
|
+
*/
|
|
2555
|
+
static normalize (locale : string ) : string ;
|
|
2556
|
+
/**
|
|
2557
|
+
* Compute a numerical relatedness for language codes. Language codes with a
|
|
2558
|
+
* higher relatedness are a better match. Unrelated language codes have a
|
|
2559
|
+
* relatedness score of 0.
|
|
2560
|
+
*/
|
|
2561
|
+
static relatedness (target : string , candidate : string ) : number ;
|
|
2562
|
+
}
|
|
2563
|
+
}
|
|
2564
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
|
|
2404
2565
|
declare namespace shaka.util {
|
|
2405
2566
|
class Mp4Parser {
|
|
2406
2567
|
private noStructuralTyping_shaka_util_Mp4Parser : any;
|
|
@@ -3165,6 +3326,7 @@ declare namespace shaka.extern {
|
|
|
3165
3326
|
getSequenceLength ( ) : number ;
|
|
3166
3327
|
getTimeUntilSkippable ( ) : number ;
|
|
3167
3328
|
getVolume ( ) : number ;
|
|
3329
|
+
isLinear ( ) : boolean ;
|
|
3168
3330
|
isMuted ( ) : boolean ;
|
|
3169
3331
|
isPaused ( ) : boolean ;
|
|
3170
3332
|
isSkippable ( ) : boolean ;
|
|
@@ -3245,7 +3407,7 @@ declare namespace shaka.extern {
|
|
|
3245
3407
|
}
|
|
3246
3408
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
|
|
3247
3409
|
declare namespace shaka.extern {
|
|
3248
|
-
type Stream = { audioSamplingRate : number | null , bandwidth ? : number , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , createSegmentIndex : shaka.extern.CreateSegmentIndexFunction , drmInfos : shaka.extern.DrmInfo [] , emsgSchemeIdUris : string [] | null , encrypted : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height ? : number , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segmentIndex : shaka.media.SegmentIndex | null , spatialAudio : boolean , tilesLayout ? : string , trickModeVideo : any , type : string , width ? : number } ;
|
|
3410
|
+
type Stream = { audioSamplingRate : number | null , bandwidth ? : number , channelsCount : number | null , closeSegmentIndex ? : ( ) => any , closedCaptions : Map < string , string > | null , codecs : string , createSegmentIndex : shaka.extern.CreateSegmentIndexFunction , drmInfos : shaka.extern.DrmInfo [] , emsgSchemeIdUris : string [] | null , encrypted : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height ? : number , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , matchedStreams ? : any [] , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segmentIndex : shaka.media.SegmentIndex | null , spatialAudio : boolean , tilesLayout ? : string , trickModeVideo : any , type : string , width ? : number } ;
|
|
3249
3411
|
}
|
|
3250
3412
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest.js
|
|
3251
3413
|
declare namespace shaka.extern {
|
|
@@ -3324,13 +3486,17 @@ declare namespace shaka.extern.ManifestParser {
|
|
|
3324
3486
|
}
|
|
3325
3487
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/manifest_parser.js
|
|
3326
3488
|
declare namespace shaka.extern.ManifestParser {
|
|
3327
|
-
type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any } ;
|
|
3489
|
+
type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any } ;
|
|
3328
3490
|
}
|
|
3329
3491
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/mp4_parser.js
|
|
3330
3492
|
declare namespace shaka.extern {
|
|
3331
3493
|
type ParsedBox = { flags : number | null , has64BitSize : boolean , parser : shaka.util.Mp4Parser , partialOkay : boolean , reader : shaka.util.DataViewReader , size : number , start : number , version : number | null } ;
|
|
3332
3494
|
}
|
|
3333
3495
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
|
|
3496
|
+
declare namespace shaka.extern {
|
|
3497
|
+
type HeadersReceived = (a : { [ key: string ]: string } ) => any ;
|
|
3498
|
+
}
|
|
3499
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
|
|
3334
3500
|
declare namespace shaka.extern {
|
|
3335
3501
|
type ProgressUpdated = (a : number , b : number , c : number ) => any ;
|
|
3336
3502
|
}
|
|
@@ -3350,7 +3516,7 @@ declare namespace shaka.extern {
|
|
|
3350
3516
|
}
|
|
3351
3517
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
|
|
3352
3518
|
declare namespace shaka.extern {
|
|
3353
|
-
type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , timeMs ? : number , uri : string } ;
|
|
3519
|
+
type Response = { data : ArrayBuffer | ArrayBufferView , fromCache ? : boolean , headers : { [ key: string ]: string } , status ? : number , timeMs ? : number , uri : string } ;
|
|
3354
3520
|
}
|
|
3355
3521
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
|
|
3356
3522
|
declare namespace shaka.extern {
|
|
@@ -3367,7 +3533,7 @@ declare namespace shaka.extern {
|
|
|
3367
3533
|
}
|
|
3368
3534
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/net.js
|
|
3369
3535
|
declare namespace shaka.extern {
|
|
3370
|
-
type SchemePlugin = (a : string , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType , d : shaka.extern.ProgressUpdated ) => shaka.extern.IAbortableOperation < shaka.extern.Response > ;
|
|
3536
|
+
type SchemePlugin = (a : string , b : shaka.extern.Request , c : shaka.net.NetworkingEngine.RequestType , d : shaka.extern.ProgressUpdated , e : shaka.extern.HeadersReceived ) => shaka.extern.IAbortableOperation < shaka.extern.Response > ;
|
|
3371
3537
|
}
|
|
3372
3538
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3373
3539
|
declare namespace shaka.extern {
|
|
@@ -3401,7 +3567,7 @@ declare namespace shaka.extern {
|
|
|
3401
3567
|
}
|
|
3402
3568
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3403
3569
|
declare namespace shaka.extern {
|
|
3404
|
-
type ManifestDB = { appMetadata : object | null , creationTime : number , drmInfo : shaka.extern.DrmInfo | null , duration : number , expiration : number , originalManifestUri : string , sessionIds : string [] , size : number , streams : shaka.extern.StreamDB [] } ;
|
|
3570
|
+
type ManifestDB = { appMetadata : object | null , creationTime : number , drmInfo : shaka.extern.DrmInfo | null , duration : number , expiration : number , isIncomplete ? : boolean , originalManifestUri : string , sessionIds : string [] , size : number , streams : shaka.extern.StreamDB [] } ;
|
|
3405
3571
|
}
|
|
3406
3572
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3407
3573
|
declare namespace shaka.extern {
|
|
@@ -3409,7 +3575,7 @@ declare namespace shaka.extern {
|
|
|
3409
3575
|
}
|
|
3410
3576
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3411
3577
|
declare namespace shaka.extern {
|
|
3412
|
-
type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
|
|
3578
|
+
type SegmentDB = { appendWindowEnd : number , appendWindowStart : number , dataKey : number , endTime : number , initSegmentKey : number | null , pendingInitSegmentRefId ? : string , pendingSegmentRefId ? : string , startTime : number , tilesLayout : string | null , timestampOffset : number } ;
|
|
3413
3579
|
}
|
|
3414
3580
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3415
3581
|
declare namespace shaka.extern {
|
|
@@ -3479,6 +3645,10 @@ declare namespace shaka.extern {
|
|
|
3479
3645
|
* @param onRemove A callback for when a segment is removed from the cell. The key of the segment will be passed to the callback.
|
|
3480
3646
|
*/
|
|
3481
3647
|
removeSegments (keys : number [] , onRemove : (a : number ) => any ) : Promise < any > ;
|
|
3648
|
+
/**
|
|
3649
|
+
* Updates the given manifest, stored at the given key.
|
|
3650
|
+
*/
|
|
3651
|
+
updateManifest (key : number , manifest : shaka.extern.ManifestDB ) : Promise < any > ;
|
|
3482
3652
|
/**
|
|
3483
3653
|
* Replace the expiration time of the manifest stored under |key| with
|
|
3484
3654
|
* |newExpiration|. If no manifest is found under |key| then this should
|
|
@@ -3533,7 +3703,7 @@ declare namespace shaka.extern {
|
|
|
3533
3703
|
}
|
|
3534
3704
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3535
3705
|
declare namespace shaka.extern {
|
|
3536
|
-
type StoredContent = { appMetadata : object | null , duration : number , expiration : number , offlineUri : string | null , originalManifestUri : string , size : number , tracks : shaka.extern.TrackList } ;
|
|
3706
|
+
type StoredContent = { appMetadata : object | null , duration : number , expiration : number , isIncomplete : boolean , offlineUri : string | null , originalManifestUri : string , size : number , tracks : shaka.extern.TrackList } ;
|
|
3537
3707
|
}
|
|
3538
3708
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/offline.js
|
|
3539
3709
|
declare namespace shaka.extern {
|
|
@@ -3581,7 +3751,11 @@ declare namespace shaka.extern {
|
|
|
3581
3751
|
}
|
|
3582
3752
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3583
3753
|
declare namespace shaka.extern {
|
|
3584
|
-
type AbrConfiguration = { bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
|
|
3754
|
+
type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
|
|
3755
|
+
}
|
|
3756
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3757
|
+
declare namespace shaka.extern {
|
|
3758
|
+
type AdvancedAbrConfiguration = { fastHalfLife : number , minBytes : number , minTotalBytes : number , slowHalfLife : number } ;
|
|
3585
3759
|
}
|
|
3586
3760
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3587
3761
|
declare namespace shaka.extern {
|
|
@@ -3600,6 +3774,10 @@ declare namespace shaka.extern {
|
|
|
3600
3774
|
type Chapter = { endTime : number , startTime : number , title : string } ;
|
|
3601
3775
|
}
|
|
3602
3776
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3777
|
+
declare namespace shaka.extern {
|
|
3778
|
+
type CmcdConfiguration = { contentId : string , enabled : boolean , sessionId : string , useHeaders : boolean } ;
|
|
3779
|
+
}
|
|
3780
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3603
3781
|
declare namespace shaka.extern {
|
|
3604
3782
|
type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , manifestPreprocessor : (a : Element ) => any , xlinkFailGracefully : boolean } ;
|
|
3605
3783
|
}
|
|
@@ -3617,7 +3795,7 @@ declare namespace shaka.extern {
|
|
|
3617
3795
|
}
|
|
3618
3796
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3619
3797
|
declare namespace shaka.extern {
|
|
3620
|
-
type HlsManifestConfiguration = { ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
|
|
3798
|
+
type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreTextStreamFailures : boolean , useFullSegmentsForStartTime : boolean } ;
|
|
3621
3799
|
}
|
|
3622
3800
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3623
3801
|
declare namespace shaka.extern {
|
|
@@ -3632,12 +3810,16 @@ declare namespace shaka.extern {
|
|
|
3632
3810
|
type ManifestConfiguration = { availabilityWindowOverride : number , dash : shaka.extern.DashManifestConfiguration , defaultPresentationDelay : number , disableAudio : boolean , disableText : boolean , disableThumbnails : boolean , disableVideo : boolean , hls : shaka.extern.HlsManifestConfiguration , retryParameters : shaka.extern.RetryParameters } ;
|
|
3633
3811
|
}
|
|
3634
3812
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3813
|
+
declare namespace shaka.extern {
|
|
3814
|
+
type MediaQualityInfo = { audioSamplingRate : number | null , bandwidth : number , channelsCount : number | null , codecs : string , contentType : string , frameRate : number | null , height : number | null , mimeType : string | null , pixelAspectRatio : string | null , width : number | null } ;
|
|
3815
|
+
}
|
|
3816
|
+
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3635
3817
|
declare namespace shaka.extern {
|
|
3636
3818
|
type OfflineConfiguration = { downloadSizeCallback : (a : number ) => Promise < boolean > , progressCallback : (a : shaka.extern.StoredContent , b : number ) => any , trackSelectionCallback : (a : shaka.extern.TrackList ) => Promise < shaka.extern.TrackList > , usePersistentLicense : boolean } ;
|
|
3637
3819
|
}
|
|
3638
3820
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3639
3821
|
declare namespace shaka.extern {
|
|
3640
|
-
type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , drm : shaka.extern.DrmConfiguration , manifest : shaka.extern.ManifestConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory } ;
|
|
3822
|
+
type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , cmcd : shaka.extern.CmcdConfiguration , drm : shaka.extern.DrmConfiguration , manifest : shaka.extern.ManifestConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory } ;
|
|
3641
3823
|
}
|
|
3642
3824
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3643
3825
|
declare namespace shaka.extern {
|
|
@@ -3653,7 +3835,7 @@ declare namespace shaka.extern {
|
|
|
3653
3835
|
}
|
|
3654
3836
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3655
3837
|
declare namespace shaka.extern {
|
|
3656
|
-
type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , jumpLargeGaps : boolean , lowLatencyMode : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , smallGapLimit : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
|
|
3838
|
+
type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , jumpLargeGaps : boolean , lowLatencyMode : boolean , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , smallGapLimit : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
|
|
3657
3839
|
}
|
|
3658
3840
|
// Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/externs/shaka/player.js
|
|
3659
3841
|
declare namespace shaka.extern {
|
|
@@ -3826,6 +4008,14 @@ declare namespace shaka.extern {
|
|
|
3826
4008
|
* and line through. Empty array means no decoration.
|
|
3827
4009
|
*/
|
|
3828
4010
|
textDecoration : shaka.text.Cue.textDecoration [] ;
|
|
4011
|
+
/**
|
|
4012
|
+
* Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
|
|
4013
|
+
*/
|
|
4014
|
+
textStrokeColor : string ;
|
|
4015
|
+
/**
|
|
4016
|
+
* Text stroke width as a CSS stroke-width value.
|
|
4017
|
+
*/
|
|
4018
|
+
textStrokeWidth : string ;
|
|
3829
4019
|
/**
|
|
3830
4020
|
* Whether or not line wrapping should be applied to the cue.
|
|
3831
4021
|
*/
|