shaka-player 4.3.7 → 4.3.9

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.
Files changed (86) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +11 -0
  2. package/.github/workflows/appspot.yaml +39 -0
  3. package/.github/workflows/build-and-test.yaml +8 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +3 -2
  5. package/.github/workflows/update-issues.yaml +1 -0
  6. package/CHANGELOG.md +44 -0
  7. package/CONTRIBUTORS +1 -0
  8. package/demo/custom.js +1 -1
  9. package/dist/demo.compiled.debug.js +2 -2
  10. package/dist/demo.compiled.debug.map +2 -2
  11. package/dist/demo.compiled.js +2 -2
  12. package/dist/demo.compiled.map +2 -2
  13. package/dist/deps.js +2 -2
  14. package/dist/locales.js +31 -31
  15. package/dist/shaka-player.compiled.d.ts +24 -2
  16. package/dist/shaka-player.compiled.debug.d.ts +24 -2
  17. package/dist/shaka-player.compiled.debug.js +251 -247
  18. package/dist/shaka-player.compiled.debug.map +3 -3
  19. package/dist/shaka-player.compiled.js +796 -793
  20. package/dist/shaka-player.compiled.map +4 -4
  21. package/dist/shaka-player.ui.d.ts +24 -2
  22. package/dist/shaka-player.ui.debug.d.ts +24 -2
  23. package/dist/shaka-player.ui.debug.js +289 -286
  24. package/dist/shaka-player.ui.debug.map +3 -3
  25. package/dist/shaka-player.ui.js +831 -827
  26. package/dist/shaka-player.ui.map +4 -4
  27. package/docs/tutorials/drm-config.md +9 -6
  28. package/docs/tutorials/selenium-grid-config.md +60 -8
  29. package/externs/ima.js +34 -0
  30. package/externs/shaka/manifest.js +5 -1
  31. package/externs/shaka/offline.js +5 -1
  32. package/karma.conf.js +50 -7
  33. package/lib/abr/simple_abr_manager.js +6 -6
  34. package/lib/cea/mp4_cea_parser.js +24 -18
  35. package/lib/dash/dash_parser.js +19 -3
  36. package/lib/hls/hls_parser.js +24 -4
  37. package/lib/media/drm_engine.js +14 -8
  38. package/lib/media/gap_jumping_controller.js +24 -2
  39. package/lib/media/media_source_engine.js +11 -8
  40. package/lib/media/playhead.js +11 -0
  41. package/lib/media/region_observer.js +19 -1
  42. package/lib/media/streaming_engine.js +41 -21
  43. package/lib/media/video_wrapper.js +6 -1
  44. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  45. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  46. package/lib/offline/manifest_converter.js +1 -0
  47. package/lib/offline/storage.js +1 -0
  48. package/lib/player.js +20 -9
  49. package/lib/polyfill/abort_controller.js +7 -0
  50. package/lib/polyfill/orientation.js +34 -7
  51. package/lib/text/vtt_text_parser.js +3 -1
  52. package/lib/util/manifest_parser_utils.js +5 -3
  53. package/lib/util/periods.js +2 -0
  54. package/lib/util/platform.js +14 -0
  55. package/lib/util/stream_utils.js +70 -26
  56. package/package.json +2 -2
  57. package/test/cast/cast_utils_unit.js +4 -1
  58. package/test/cea/mp4_cea_parser_unit.js +28 -5
  59. package/test/dash/dash_parser_manifest_unit.js +120 -0
  60. package/test/hls/hls_parser_unit.js +216 -0
  61. package/test/media/adaptation_set_unit.js +1 -0
  62. package/test/media/drm_engine_integration.js +2 -2
  63. package/test/media/media_source_engine_unit.js +1 -1
  64. package/test/media/region_observer_unit.js +2 -1
  65. package/test/media/segment_index_unit.js +3 -3
  66. package/test/media/streaming_engine_integration.js +14 -11
  67. package/test/media/streaming_engine_unit.js +26 -2
  68. package/test/offline/manifest_convert_unit.js +5 -0
  69. package/test/offline/offline_integration.js +6 -3
  70. package/test/player_external.js +19 -16
  71. package/test/player_integration.js +35 -48
  72. package/test/player_src_equals_integration.js +9 -5
  73. package/test/test/assets/multiple-trun-init.mp4 +0 -0
  74. package/test/test/assets/multiple-trun-segment.mp4 +0 -0
  75. package/test/test/util/fake_demo_main.js +7 -3
  76. package/test/test/util/layout_tests.js +2 -2
  77. package/test/test/util/manifest_generator.js +2 -0
  78. package/test/test/util/offline_utils.js +1 -0
  79. package/test/test/util/streaming_engine_util.js +3 -0
  80. package/test/test/util/ui_utils.js +9 -2
  81. package/test/test/util/util.js +6 -27
  82. package/test/test/util/waiter.js +73 -3
  83. package/test/ui/ad_ui_unit.js +9 -9
  84. package/test/util/stream_utils_unit.js +46 -0
  85. package/ui/range_element.js +5 -0
  86. package/ui/resolution_selection.js +7 -1
package/dist/deps.js CHANGED
@@ -122,7 +122,7 @@ goog.addDependency('../../../../lib/polyfill/encryption_scheme.js', ['shaka.poly
122
122
  goog.addDependency('../../../../lib/polyfill/fullscreen.js', ['shaka.polyfill.Fullscreen'], ['shaka.polyfill'], {'lang': 'es6'});
123
123
  goog.addDependency('../../../../lib/polyfill/media_capabilities.js', ['shaka.polyfill.MediaCapabilities'], ['shaka.log', 'shaka.media.Capabilities', 'shaka.polyfill', 'shaka.util.Platform'], {'lang': 'es8'});
124
124
  goog.addDependency('../../../../lib/polyfill/mediasource.js', ['shaka.polyfill.MediaSource'], ['shaka.log', 'shaka.polyfill', 'shaka.util.MimeUtils', 'shaka.util.Platform'], {'lang': 'es6'});
125
- goog.addDependency('../../../../lib/polyfill/orientation.js', ['shaka.polyfill.Orientation'], ['shaka.polyfill', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {'lang': 'es6'});
125
+ goog.addDependency('../../../../lib/polyfill/orientation.js', ['shaka.polyfill.Orientation'], ['shaka.log', 'shaka.polyfill', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {'lang': 'es6'});
126
126
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_apple.js', ['shaka.polyfill.PatchedMediaKeysApple'], ['goog.asserts', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.polyfill', 'shaka.util.BufferUtils', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.MediaReadyState', 'shaka.util.PublicPromise', 'shaka.util.StringUtils'], {'lang': 'es8'});
127
127
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_nop.js', ['shaka.polyfill.PatchedMediaKeysNop'], ['goog.asserts', 'shaka.log', 'shaka.polyfill'], {'lang': 'es6'});
128
128
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_webkit.js', ['shaka.polyfill.PatchedMediaKeysWebkit'], ['goog.asserts', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.polyfill', 'shaka.util.BufferUtils', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.PublicPromise', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.Uint8ArrayUtils'], {'lang': 'es6'});
@@ -224,7 +224,7 @@ goog.addDependency('../../../../ui/play_button.js', ['shaka.ui.PlayButton'], ['s
224
224
  goog.addDependency('../../../../ui/playback_rate_selection.js', ['shaka.ui.PlaybackRateSelection'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom'], {'lang': 'es6'});
225
225
  goog.addDependency('../../../../ui/presentation_time.js', ['shaka.ui.PresentationTimeTracker'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Utils', 'shaka.util.Dom'], {'lang': 'es6'});
226
226
  goog.addDependency('../../../../ui/range_element.js', ['shaka.ui.RangeElement'], ['shaka.ui.Element', 'shaka.util.Dom', 'shaka.util.Timer'], {'lang': 'es6'});
227
- goog.addDependency('../../../../ui/resolution_selection.js', ['shaka.ui.ResolutionSelection'], ['goog.asserts', 'shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {'lang': 'es6'});
227
+ goog.addDependency('../../../../ui/resolution_selection.js', ['shaka.ui.ResolutionSelection'], ['goog.asserts', 'shaka.Player', 'shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {'lang': 'es6'});
228
228
  goog.addDependency('../../../../ui/rewind_button.js', ['shaka.ui.RewindButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.util.Dom'], {'lang': 'es6'});
229
229
  goog.addDependency('../../../../ui/seek_bar.js', ['shaka.ui.SeekBar'], ['shaka.ads.AdManager', 'shaka.ui.Constants', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.RangeElement', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {'lang': 'es6'});
230
230
  goog.addDependency('../../../../ui/settings_menu.js', ['shaka.ui.SettingsMenu'], ['shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent', 'shaka.util.Iterables'], {'lang': 'es6'});
package/dist/locales.js CHANGED
@@ -721,45 +721,45 @@ shaka.ui.Locales.addTo = function(localization) {
721
721
  * @const
722
722
  */
723
723
  shaka.ui.Locales.Ids = {
724
- OFF: 'OFF',
725
- AD_DURATION: 'AD_DURATION',
726
- FULL_SCREEN: 'FULL_SCREEN',
727
- AUTO_QUALITY: 'AUTO_QUALITY',
728
- AD_PROGRESS: 'AD_PROGRESS',
729
- STATISTICS: 'STATISTICS',
730
- MUTE: 'MUTE',
731
- LOOP: 'LOOP',
732
- PLAY: 'PLAY',
724
+ VOLUME: 'VOLUME',
733
725
  REPLAY: 'REPLAY',
734
- QUALITY: 'QUALITY',
735
- CAPTIONS: 'CAPTIONS',
736
- REWIND: 'REWIND',
726
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
727
+ LANGUAGE: 'LANGUAGE',
728
+ MUTE: 'MUTE',
729
+ SKIP_AD: 'SKIP_AD',
730
+ BACK: 'BACK',
731
+ AIRPLAY: 'AIRPLAY',
732
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
737
733
  UNMUTE: 'UNMUTE',
734
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
735
+ LOOP: 'LOOP',
736
+ STATISTICS: 'STATISTICS',
738
737
  SEEK: 'SEEK',
738
+ OFF: 'OFF',
739
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
740
+ AD_PROGRESS: 'AD_PROGRESS',
739
741
  CAST: 'CAST',
740
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
741
- MORE_SETTINGS: 'MORE_SETTINGS',
742
+ RESOLUTION: 'RESOLUTION',
743
+ CAPTIONS: 'CAPTIONS',
744
+ NOT_APPLICABLE: 'NOT_APPLICABLE',
745
+ PLAY: 'PLAY',
746
+ QUALITY: 'QUALITY',
747
+ FAST_FORWARD: 'FAST_FORWARD',
748
+ AD_TIME: 'AD_TIME',
749
+ FULL_SCREEN: 'FULL_SCREEN',
742
750
  PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
743
- PLAYBACK_RATE: 'PLAYBACK_RATE',
744
751
  UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
745
- LIVE: 'LIVE',
746
- AD_TIME: 'AD_TIME',
747
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
748
- RESOLUTION: 'RESOLUTION',
749
- VOLUME: 'VOLUME',
752
+ AD_DURATION: 'AD_DURATION',
753
+ ON: 'ON',
754
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
755
+ AUTO_QUALITY: 'AUTO_QUALITY',
750
756
  PAUSE: 'PAUSE',
751
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
757
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
752
758
  UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
753
- FAST_FORWARD: 'FAST_FORWARD',
754
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
755
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
756
- ON: 'ON',
757
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
758
- AIRPLAY: 'AIRPLAY',
759
- NOT_APPLICABLE: 'NOT_APPLICABLE',
760
- LANGUAGE: 'LANGUAGE',
759
+ MORE_SETTINGS: 'MORE_SETTINGS',
760
+ LIVE: 'LIVE',
761
+ REWIND: 'REWIND',
761
762
  EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
762
763
  EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
763
- SKIP_AD: 'SKIP_AD',
764
- BACK: 'BACK',
764
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
765
765
  };
@@ -3156,6 +3156,28 @@ declare namespace google.ima {
3156
3156
  }
3157
3157
  }
3158
3158
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3159
+ declare namespace google.ima.dai.api {
3160
+ enum OmidAccessMode {
3161
+ DOMAIN = 'domain' ,
3162
+ FULL = 'full' ,
3163
+ LIMITED = 'limited' ,
3164
+ }
3165
+ }
3166
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3167
+ declare namespace google.ima.dai.api {
3168
+ enum OmidVerificationVendor {
3169
+ COMSCORE = 7.0 ,
3170
+ DOUBLEVERIFY = 3.0 ,
3171
+ GOOGLE = 9.0 ,
3172
+ INTEGRAL_AD_SCIENCE = 4.0 ,
3173
+ MEETRICS = 8.0 ,
3174
+ MOAT = 2.0 ,
3175
+ NIELSEN = 6.0 ,
3176
+ OTHER = 1.0 ,
3177
+ PIXELATE = 5.0 ,
3178
+ }
3179
+ }
3180
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3159
3181
  declare namespace google.ima.dai.api.StreamEvent {
3160
3182
  enum Type {
3161
3183
  AD_BREAK_ENDED = 'adBreakEnded' ,
@@ -3672,7 +3694,7 @@ declare namespace shaka.extern {
3672
3694
  }
3673
3695
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3674
3696
  declare namespace shaka.extern {
3675
- 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 } ;
3697
+ 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 , external : 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 } ;
3676
3698
  }
3677
3699
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3678
3700
  declare namespace shaka.extern {
@@ -3972,7 +3994,7 @@ declare namespace shaka.extern {
3972
3994
  }
3973
3995
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
3974
3996
  declare namespace shaka.extern {
3975
- type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , encrypted : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , width : number | null } ;
3997
+ type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , encrypted : boolean , external : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , width : number | null } ;
3976
3998
  }
3977
3999
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline_compat_v1.js
3978
4000
  declare namespace shaka.extern {
@@ -3156,6 +3156,28 @@ declare namespace google.ima {
3156
3156
  }
3157
3157
  }
3158
3158
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3159
+ declare namespace google.ima.dai.api {
3160
+ enum OmidAccessMode {
3161
+ DOMAIN = 'domain' ,
3162
+ FULL = 'full' ,
3163
+ LIMITED = 'limited' ,
3164
+ }
3165
+ }
3166
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3167
+ declare namespace google.ima.dai.api {
3168
+ enum OmidVerificationVendor {
3169
+ COMSCORE = 7.0 ,
3170
+ DOUBLEVERIFY = 3.0 ,
3171
+ GOOGLE = 9.0 ,
3172
+ INTEGRAL_AD_SCIENCE = 4.0 ,
3173
+ MEETRICS = 8.0 ,
3174
+ MOAT = 2.0 ,
3175
+ NIELSEN = 6.0 ,
3176
+ OTHER = 1.0 ,
3177
+ PIXELATE = 5.0 ,
3178
+ }
3179
+ }
3180
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/ima.js
3159
3181
  declare namespace google.ima.dai.api.StreamEvent {
3160
3182
  enum Type {
3161
3183
  AD_BREAK_ENDED = 'adBreakEnded' ,
@@ -3672,7 +3694,7 @@ declare namespace shaka.extern {
3672
3694
  }
3673
3695
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3674
3696
  declare namespace shaka.extern {
3675
- 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 } ;
3697
+ 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 , external : 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 } ;
3676
3698
  }
3677
3699
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3678
3700
  declare namespace shaka.extern {
@@ -3972,7 +3994,7 @@ declare namespace shaka.extern {
3972
3994
  }
3973
3995
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline.js
3974
3996
  declare namespace shaka.extern {
3975
- type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , encrypted : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , width : number | null } ;
3997
+ type StreamDB = { audioSamplingRate : number | null , channelsCount : number | null , closedCaptions : Map < string , string > | null , codecs : string , encrypted : boolean , external : boolean , forced : boolean , frameRate ? : number , hdr ? : string , height : number | null , id : number , keyIds : Set < string > , kind ? : string , label : string | null , language : string , mimeType : string , originalId : string | null , pixelAspectRatio ? : string , primary : boolean , roles : string [] , segments : shaka.extern.SegmentDB [] , spatialAudio : boolean , tilesLayout ? : string , type : string , variantIds : number [] , width : number | null } ;
3976
3998
  }
3977
3999
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/offline_compat_v1.js
3978
4000
  declare namespace shaka.extern {