shaka-player 4.4.0 → 4.4.2

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 (75) hide show
  1. package/.github/workflows/deflake.yaml +8 -5
  2. package/.github/workflows/release-please.yaml +64 -16
  3. package/.github/workflows/report-incremental-coverage.yaml +2 -2
  4. package/.github/workflows/shaka-bot-commands/command-help.sh +27 -0
  5. package/.github/workflows/shaka-bot-commands/command-test.sh +56 -0
  6. package/.github/workflows/shaka-bot-commands/lib.sh +83 -0
  7. package/.github/workflows/shaka-bot-commands/main.sh +51 -0
  8. package/.github/workflows/talk-to-shaka-bot.yaml +29 -0
  9. package/.github/workflows/update-issues.yaml +2 -1
  10. package/.github/workflows/validate-pr-title.yaml +3 -11
  11. package/CHANGELOG.md +33 -0
  12. package/CONTRIBUTORS +1 -0
  13. package/demo/custom.js +5 -5
  14. package/dist/demo.compiled.debug.js +3 -3
  15. package/dist/demo.compiled.debug.map +1 -1
  16. package/dist/demo.compiled.js +3 -3
  17. package/dist/demo.compiled.map +1 -1
  18. package/dist/deps.js +2 -2
  19. package/dist/locales.js +32 -32
  20. package/dist/shaka-player.compiled.d.ts +18 -2
  21. package/dist/shaka-player.compiled.debug.d.ts +18 -2
  22. package/dist/shaka-player.compiled.debug.externs.js +38 -1
  23. package/dist/shaka-player.compiled.debug.js +289 -280
  24. package/dist/shaka-player.compiled.debug.map +3 -3
  25. package/dist/shaka-player.compiled.externs.js +38 -1
  26. package/dist/shaka-player.compiled.js +944 -940
  27. package/dist/shaka-player.compiled.map +4 -4
  28. package/dist/shaka-player.ui.d.ts +18 -2
  29. package/dist/shaka-player.ui.debug.d.ts +18 -2
  30. package/dist/shaka-player.ui.debug.externs.js +38 -1
  31. package/dist/shaka-player.ui.debug.js +352 -343
  32. package/dist/shaka-player.ui.debug.map +3 -3
  33. package/dist/shaka-player.ui.externs.js +38 -1
  34. package/dist/shaka-player.ui.js +1037 -1034
  35. package/dist/shaka-player.ui.map +4 -4
  36. package/docs/tutorials/fairplay.md +8 -0
  37. package/docs/tutorials/faq.md +1 -1
  38. package/externs/shaka/namespace.js +2 -2
  39. package/externs/shaka/text.js +7 -0
  40. package/externs/shaka/transmuxer.js +2 -1
  41. package/lib/dash/segment_template.js +3 -0
  42. package/lib/hls/hls_parser.js +9 -4
  43. package/lib/media/media_source_engine.js +23 -3
  44. package/lib/mss/mss_parser.js +1 -0
  45. package/lib/player.js +8 -57
  46. package/lib/text/lrc_text_parser.js +8 -0
  47. package/lib/text/mp4_ttml_parser.js +8 -0
  48. package/lib/text/mp4_vtt_parser.js +8 -0
  49. package/lib/text/sbv_text_parser.js +8 -0
  50. package/lib/text/simple_text_displayer.js +0 -1
  51. package/lib/text/srt_text_parser.js +8 -0
  52. package/lib/text/ssa_text_parser.js +8 -0
  53. package/lib/text/text_engine.js +8 -1
  54. package/lib/text/ttml_text_parser.js +10 -1
  55. package/lib/text/ui_text_displayer.js +49 -3
  56. package/lib/text/vtt_text_parser.js +21 -5
  57. package/lib/transmuxer/aac_transmuxer.js +1 -1
  58. package/lib/transmuxer/ac3_transmuxer.js +1 -0
  59. package/lib/transmuxer/ec3_transmuxer.js +1 -0
  60. package/lib/transmuxer/mp3_transmuxer.js +1 -0
  61. package/lib/transmuxer/ts_transmuxer.js +84 -100
  62. package/lib/util/error.js +16 -10
  63. package/lib/util/mp4_generator.js +27 -20
  64. package/lib/util/player_configuration.js +2 -2
  65. package/lib/util/stream_utils.js +13 -11
  66. package/lib/util/ts_parser.js +137 -117
  67. package/package.json +2 -2
  68. package/test/hls/hls_parser_unit.js +12 -13
  69. package/test/media/media_source_engine_integration.js +2 -2
  70. package/test/mss/mss_player_integration.js +1 -1
  71. package/test/text/text_engine_unit.js +4 -2
  72. package/test/text/ttml_text_parser_unit.js +3 -4
  73. package/test/text/vtt_text_parser_unit.js +17 -2
  74. package/test/text/web_vtt_layout_integration.js +0 -1
  75. package/ui/language_utils.js +0 -15
@@ -2087,6 +2087,7 @@ declare namespace shaka.text {
2087
2087
  private noStructuralTyping_shaka_text_LrcTextParser : any;
2088
2088
  parseInit (data : any ) : any ;
2089
2089
  parseMedia (data : any , time : any ) : any ;
2090
+ setManifestType (manifestType : any ) : any ;
2090
2091
  setSequenceMode (sequenceMode : any ) : any ;
2091
2092
  }
2092
2093
  }
@@ -2096,6 +2097,7 @@ declare namespace shaka.text {
2096
2097
  private noStructuralTyping_shaka_text_Mp4TtmlParser : any;
2097
2098
  parseInit (data : any ) : any ;
2098
2099
  parseMedia (data : any , time : any ) : any ;
2100
+ setManifestType (manifestType : any ) : any ;
2099
2101
  setSequenceMode (sequenceMode : any ) : any ;
2100
2102
  }
2101
2103
  }
@@ -2105,6 +2107,7 @@ declare namespace shaka.text {
2105
2107
  private noStructuralTyping_shaka_text_Mp4VttParser : any;
2106
2108
  parseInit (data : any ) : any ;
2107
2109
  parseMedia (data : any , time : any ) : any ;
2110
+ setManifestType (manifestType : any ) : any ;
2108
2111
  setSequenceMode (sequenceMode : any ) : any ;
2109
2112
  }
2110
2113
  }
@@ -2114,6 +2117,7 @@ declare namespace shaka.text {
2114
2117
  private noStructuralTyping_shaka_text_SbvTextParser : any;
2115
2118
  parseInit (data : any ) : any ;
2116
2119
  parseMedia (data : any , time : any ) : any ;
2120
+ setManifestType (manifestType : any ) : any ;
2117
2121
  setSequenceMode (sequenceMode : any ) : any ;
2118
2122
  }
2119
2123
  }
@@ -2141,6 +2145,7 @@ declare namespace shaka.text {
2141
2145
  private noStructuralTyping_shaka_text_SrtTextParser : any;
2142
2146
  parseInit (data : any ) : any ;
2143
2147
  parseMedia (data : any , time : any ) : any ;
2148
+ setManifestType (manifestType : any ) : any ;
2144
2149
  setSequenceMode (sequenceMode : any ) : any ;
2145
2150
  /**
2146
2151
  * Convert a SRT format to WebVTT
@@ -2158,6 +2163,7 @@ declare namespace shaka.text {
2158
2163
  private noStructuralTyping_shaka_text_SsaTextParser : any;
2159
2164
  parseInit (data : any ) : any ;
2160
2165
  parseMedia (data : any , time : any ) : any ;
2166
+ setManifestType (manifestType : any ) : any ;
2161
2167
  setSequenceMode (sequenceMode : any ) : any ;
2162
2168
  }
2163
2169
  }
@@ -2178,6 +2184,7 @@ declare namespace shaka.text {
2178
2184
  private noStructuralTyping_shaka_text_TtmlTextParser : any;
2179
2185
  parseInit (data : any ) : any ;
2180
2186
  parseMedia (data : any , time : any ) : any ;
2187
+ setManifestType (manifestType : any ) : any ;
2181
2188
  setSequenceMode (sequenceMode : any ) : any ;
2182
2189
  }
2183
2190
  }
@@ -2207,6 +2214,7 @@ declare namespace shaka.text {
2207
2214
  private noStructuralTyping_shaka_text_VttTextParser : any;
2208
2215
  parseInit (data : any ) : any ;
2209
2216
  parseMedia (data : any , time : any ) : any ;
2217
+ setManifestType (manifestType : any ) : any ;
2210
2218
  setSequenceMode (sequenceMode : any ) : any ;
2211
2219
  }
2212
2220
  }
@@ -2362,7 +2370,7 @@ declare namespace shaka.transmuxer {
2362
2370
  * Check if the mime type and the content type is supported.
2363
2371
  */
2364
2372
  isSupported (mimeType : string , contentType ? : string ) : boolean ;
2365
- transmux (data : any , stream : any , reference : any , duration : any ) : any ;
2373
+ transmux (data : any , stream : any , reference : any , duration : any , contentType : any ) : any ;
2366
2374
  }
2367
2375
  }
2368
2376
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.externs.js
@@ -3701,6 +3709,10 @@ declare namespace shaka.util {
3701
3709
  * Return the audio data
3702
3710
  */
3703
3711
  getVideoData ( ) : shaka.extern.MPEG_PES [] ;
3712
+ /**
3713
+ * Return the video information
3714
+ */
3715
+ getVideoInfo ( ) : { codec : string | null , height : string | null , width : string | null } ;
3704
3716
  /**
3705
3717
  * Return the video data
3706
3718
  */
@@ -5174,6 +5186,10 @@ declare namespace shaka.extern {
5174
5186
  * @param timeContext The time information that should be used to adjust the times values for each cue.
5175
5187
  */
5176
5188
  parseMedia (data : Uint8Array , timeContext : shaka.extern.TextParser.TimeContext ) : shaka.text.Cue [] ;
5189
+ /**
5190
+ * Notifies the manifest type.
5191
+ */
5192
+ setManifestType (manifestType : string ) : any ;
5177
5193
  /**
5178
5194
  * Notifies the stream if the manifest is in sequence mode or not.
5179
5195
  */
@@ -5217,7 +5233,7 @@ declare namespace shaka.extern {
5217
5233
  * Transmux a input data to MP4.
5218
5234
  * @param reference The segment reference, or null for init segments
5219
5235
  */
5220
- transmux (data : ArrayBuffer | ArrayBufferView , stream : shaka.extern.Stream , reference : shaka.media.SegmentReference | null , duration : number ) : Promise < Uint8Array > ;
5236
+ transmux (data : ArrayBuffer | ArrayBufferView , stream : shaka.extern.Stream , reference : shaka.media.SegmentReference | null , duration : number , contentType : string ) : Promise < Uint8Array > ;
5221
5237
  }
5222
5238
  }
5223
5239
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/transmuxer.js
@@ -2087,6 +2087,7 @@ declare namespace shaka.text {
2087
2087
  private noStructuralTyping_shaka_text_LrcTextParser : any;
2088
2088
  parseInit (data : any ) : any ;
2089
2089
  parseMedia (data : any , time : any ) : any ;
2090
+ setManifestType (manifestType : any ) : any ;
2090
2091
  setSequenceMode (sequenceMode : any ) : any ;
2091
2092
  }
2092
2093
  }
@@ -2096,6 +2097,7 @@ declare namespace shaka.text {
2096
2097
  private noStructuralTyping_shaka_text_Mp4TtmlParser : any;
2097
2098
  parseInit (data : any ) : any ;
2098
2099
  parseMedia (data : any , time : any ) : any ;
2100
+ setManifestType (manifestType : any ) : any ;
2099
2101
  setSequenceMode (sequenceMode : any ) : any ;
2100
2102
  }
2101
2103
  }
@@ -2105,6 +2107,7 @@ declare namespace shaka.text {
2105
2107
  private noStructuralTyping_shaka_text_Mp4VttParser : any;
2106
2108
  parseInit (data : any ) : any ;
2107
2109
  parseMedia (data : any , time : any ) : any ;
2110
+ setManifestType (manifestType : any ) : any ;
2108
2111
  setSequenceMode (sequenceMode : any ) : any ;
2109
2112
  }
2110
2113
  }
@@ -2114,6 +2117,7 @@ declare namespace shaka.text {
2114
2117
  private noStructuralTyping_shaka_text_SbvTextParser : any;
2115
2118
  parseInit (data : any ) : any ;
2116
2119
  parseMedia (data : any , time : any ) : any ;
2120
+ setManifestType (manifestType : any ) : any ;
2117
2121
  setSequenceMode (sequenceMode : any ) : any ;
2118
2122
  }
2119
2123
  }
@@ -2141,6 +2145,7 @@ declare namespace shaka.text {
2141
2145
  private noStructuralTyping_shaka_text_SrtTextParser : any;
2142
2146
  parseInit (data : any ) : any ;
2143
2147
  parseMedia (data : any , time : any ) : any ;
2148
+ setManifestType (manifestType : any ) : any ;
2144
2149
  setSequenceMode (sequenceMode : any ) : any ;
2145
2150
  /**
2146
2151
  * Convert a SRT format to WebVTT
@@ -2158,6 +2163,7 @@ declare namespace shaka.text {
2158
2163
  private noStructuralTyping_shaka_text_SsaTextParser : any;
2159
2164
  parseInit (data : any ) : any ;
2160
2165
  parseMedia (data : any , time : any ) : any ;
2166
+ setManifestType (manifestType : any ) : any ;
2161
2167
  setSequenceMode (sequenceMode : any ) : any ;
2162
2168
  }
2163
2169
  }
@@ -2178,6 +2184,7 @@ declare namespace shaka.text {
2178
2184
  private noStructuralTyping_shaka_text_TtmlTextParser : any;
2179
2185
  parseInit (data : any ) : any ;
2180
2186
  parseMedia (data : any , time : any ) : any ;
2187
+ setManifestType (manifestType : any ) : any ;
2181
2188
  setSequenceMode (sequenceMode : any ) : any ;
2182
2189
  }
2183
2190
  }
@@ -2207,6 +2214,7 @@ declare namespace shaka.text {
2207
2214
  private noStructuralTyping_shaka_text_VttTextParser : any;
2208
2215
  parseInit (data : any ) : any ;
2209
2216
  parseMedia (data : any , time : any ) : any ;
2217
+ setManifestType (manifestType : any ) : any ;
2210
2218
  setSequenceMode (sequenceMode : any ) : any ;
2211
2219
  }
2212
2220
  }
@@ -2362,7 +2370,7 @@ declare namespace shaka.transmuxer {
2362
2370
  * Check if the mime type and the content type is supported.
2363
2371
  */
2364
2372
  isSupported (mimeType : string , contentType ? : string ) : boolean ;
2365
- transmux (data : any , stream : any , reference : any , duration : any ) : any ;
2373
+ transmux (data : any , stream : any , reference : any , duration : any , contentType : any ) : any ;
2366
2374
  }
2367
2375
  }
2368
2376
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
@@ -3701,6 +3709,10 @@ declare namespace shaka.util {
3701
3709
  * Return the audio data
3702
3710
  */
3703
3711
  getVideoData ( ) : shaka.extern.MPEG_PES [] ;
3712
+ /**
3713
+ * Return the video information
3714
+ */
3715
+ getVideoInfo ( ) : { codec : string | null , height : string | null , width : string | null } ;
3704
3716
  /**
3705
3717
  * Return the video data
3706
3718
  */
@@ -5174,6 +5186,10 @@ declare namespace shaka.extern {
5174
5186
  * @param timeContext The time information that should be used to adjust the times values for each cue.
5175
5187
  */
5176
5188
  parseMedia (data : Uint8Array , timeContext : shaka.extern.TextParser.TimeContext ) : shaka.text.Cue [] ;
5189
+ /**
5190
+ * Notifies the manifest type.
5191
+ */
5192
+ setManifestType (manifestType : string ) : any ;
5177
5193
  /**
5178
5194
  * Notifies the stream if the manifest is in sequence mode or not.
5179
5195
  */
@@ -5217,7 +5233,7 @@ declare namespace shaka.extern {
5217
5233
  * Transmux a input data to MP4.
5218
5234
  * @param reference The segment reference, or null for init segments
5219
5235
  */
5220
- transmux (data : ArrayBuffer | ArrayBufferView , stream : shaka.extern.Stream , reference : shaka.media.SegmentReference | null , duration : number ) : Promise < Uint8Array > ;
5236
+ transmux (data : ArrayBuffer | ArrayBufferView , stream : shaka.extern.Stream , reference : shaka.media.SegmentReference | null , duration : number , contentType : string ) : Promise < Uint8Array > ;
5221
5237
  }
5222
5238
  }
5223
5239
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/transmuxer.js
@@ -2028,6 +2028,11 @@ shaka.util.TsParser = class {
2028
2028
  * @return {{height: ?string, width: ?string}}
2029
2029
  */
2030
2030
  getVideoResolution() {}
2031
+ /**
2032
+ * Return the video information
2033
+ * @return {{height: ?string, width: ?string, codec: ?string}}
2034
+ */
2035
+ getVideoInfo() {}
2031
2036
  /**
2032
2037
  * Check if the passed data corresponds to an MPEG2-TS
2033
2038
  * @param {Uint8Array} data
@@ -4523,6 +4528,10 @@ shaka.text.LrcTextParser = class {
4523
4528
  * @override
4524
4529
  */
4525
4530
  setSequenceMode(sequenceMode) {}
4531
+ /**
4532
+ * @override
4533
+ */
4534
+ setManifestType(manifestType) {}
4526
4535
  /**
4527
4536
  * @override
4528
4537
  */
@@ -4540,6 +4549,10 @@ shaka.text.TtmlTextParser = class {
4540
4549
  * @override
4541
4550
  */
4542
4551
  setSequenceMode(sequenceMode) {}
4552
+ /**
4553
+ * @override
4554
+ */
4555
+ setManifestType(manifestType) {}
4543
4556
  /**
4544
4557
  * @override
4545
4558
  */
@@ -4559,6 +4572,10 @@ shaka.text.Mp4TtmlParser = class {
4559
4572
  * @override
4560
4573
  */
4561
4574
  setSequenceMode(sequenceMode) {}
4575
+ /**
4576
+ * @override
4577
+ */
4578
+ setManifestType(manifestType) {}
4562
4579
  /**
4563
4580
  * @override
4564
4581
  */
@@ -4578,6 +4595,10 @@ shaka.text.VttTextParser = class {
4578
4595
  * @override
4579
4596
  */
4580
4597
  setSequenceMode(sequenceMode) {}
4598
+ /**
4599
+ * @override
4600
+ */
4601
+ setManifestType(manifestType) {}
4581
4602
  /**
4582
4603
  * @override
4583
4604
  */
@@ -4597,6 +4618,10 @@ shaka.text.Mp4VttParser = class {
4597
4618
  * @override
4598
4619
  */
4599
4620
  setSequenceMode(sequenceMode) {}
4621
+ /**
4622
+ * @override
4623
+ */
4624
+ setManifestType(manifestType) {}
4600
4625
  /**
4601
4626
  * @override
4602
4627
  */
@@ -4614,6 +4639,10 @@ shaka.text.SbvTextParser = class {
4614
4639
  * @override
4615
4640
  */
4616
4641
  setSequenceMode(sequenceMode) {}
4642
+ /**
4643
+ * @override
4644
+ */
4645
+ setManifestType(manifestType) {}
4617
4646
  /**
4618
4647
  * @override
4619
4648
  */
@@ -4633,6 +4662,10 @@ shaka.text.SrtTextParser = class {
4633
4662
  * @override
4634
4663
  */
4635
4664
  setSequenceMode(sequenceMode) {}
4665
+ /**
4666
+ * @override
4667
+ */
4668
+ setManifestType(manifestType) {}
4636
4669
  /**
4637
4670
  * @override
4638
4671
  */
@@ -4658,6 +4691,10 @@ shaka.text.SsaTextParser = class {
4658
4691
  * @override
4659
4692
  */
4660
4693
  setSequenceMode(sequenceMode) {}
4694
+ /**
4695
+ * @override
4696
+ */
4697
+ setManifestType(manifestType) {}
4661
4698
  /**
4662
4699
  * @override
4663
4700
  */
@@ -4925,7 +4962,7 @@ shaka.transmuxer.TsTransmuxer = class {
4925
4962
  /**
4926
4963
  * @override
4927
4964
  */
4928
- transmux(data, stream, reference, duration) {}
4965
+ transmux(data, stream, reference, duration, contentType) {}
4929
4966
  };
4930
4967
  /**
4931
4968
  * @implements {shaka.extern.IUIElement}