Skip to content

v4.4.0

Compare
Choose a tag to compare
@github-actions github-actions released this 30 Aug 22:31
e1eca51

4.4.0 (2023-08-30)

Features

  • ABR: Abr improvement config (#5400) (b51ee6e)
  • Add a Mp4Generator (#5127) (d475a73)
  • Add AAC silent frame getter (#5557) (933f039)
  • Add AAC transmuxer (#5240) (00d3a45)
  • Add AC-3 and EC-3 support in Mp4Generator (#5235) (28d18ad)
  • Add AC-3 detection in TS (#4931) (48c30bc)
  • Add AC3 transmuxer (#5297) (6f83997)
  • Add EC-3 detection in TS (#5144) (24a3b7d)
  • Add EC3 transmuxer (#5352) (7d24e14)
  • Add ExpressPlay FairPlay util (#4926) (7fa40fd)
  • add feature-flag to insert fake encryption in init segments on broken platforms (#5561) (f14f295)
  • Add getManifestType method (#5021) (c7c5e94)
  • Add liveSync configuration to catch up on live streams (#5304) (db44dc8)
  • Add missing export in TsParser (#5145) (412a7e8)
  • Add MP3 transmuxer (#5208) (82e905b)
  • add Occitan locale (#4900) (68486a3)
  • Add originalLanguage to the Track structure (#5409) (f53349f)
  • Add preferredAudioLabel to PlayerConfiguration (#4763) (aadecd6)
  • Add preferredVideoHdrLevel config. (#5370) (2f511a2)
  • Add safeMargin as a parameter of the player selectAudioLanguage method (#5316) (e4a4138)
  • Add support for AC-3 and EC-3 audio in DVB streams (#5484) (9bd559b)
  • Add support for changing codecs in MediaSourceEngine (#5217) (464f33c)
  • Add support for Document Picture-in-Picture (#4969) (3828fd6)
  • Add support to old EMSG schemeId for ID3 (#5320) (cd9ee09)
  • Add support to streamDataCallback when using prefetch (#5310) (6104b57)
  • Add TS transmuxer (#5386) (eec25b2)
  • Ads: Add ads config (#5085) (dfe263a)
  • Ads: Add control AdsRenderingSettings (#5536) (d37143e)
  • ads: Add getPodIndex to CS and SS ads (#5524) (65cf077)
  • ads: Add new methods to Ads (#5107) (2b33315)
  • Ads: Allow multiple calls to requestAds in CS (#5542) (837e0fb)
  • Ads: Allow use a custom playhead tracker in CS (#5543) (362f03f)
  • Ads: Disable custom playback on iOS 10+ browsers for client-side ads (29e022e)
  • ads: Dispatch a player event for client-side ad errors (#5045) (673b7fc)
  • Allow custom plugins for transmuxing (#4854) (fac721d)
  • Allow generate muxed content with Mp4Generator (#5555) (1112d1d)
  • Allow generate segments with Mp4Generator (#5185) (8da971f)
  • allow reuse of persistent license sessions (#4461) (cc97da1)
  • Allow VTT files with erroneous linebreaks (#2394) (9b1c614), closes #2358
  • Cache mediaCapabilities.decodingInfo results (#4789) (b7781f0), closes #4775
  • Caching and other efficiency improvements for mcap polyfill (#4708) (884c4ca), closes #4574
  • cea: Add CEA parser for TS (#4697) (70fad8d)
  • CEA: Add support to vertical position in CEA-608 (#5531) (47224ff)
  • Config to require a minimum HDCP version (#4883) (61613cf)
  • Convert CEA parsers to plugins (#5195) (7bda65d)
  • DASH: Achieve better latency in LL streams (#5291) (f4bcc87)
  • DASH: Add support for <dashif:Laurl> (#4849) (b441518), closes #4748
  • DASH: Add support for service descriptions (#5394) (693abd5)
  • DASH: Expose accessibility purpose in track (#5216) (654a028), closes #5211
  • dash: Improve DASH SegmentTemplate performance with on-demand segment references (#5061) (f1c5a1c)
  • DASH: Remove MIN_UPDATE_PERIOD_ to achieve better latency in Live (#5286) (1515b7a)
  • Demo: Add Low Latency filter in demo page (#5392) (c378e10)
  • Demo: Add MSS Playready asset (#5485) (89ca242)
  • demo: Improve bug report button in demo (#5510) (4329d79), closes #5056
  • DRM: use preferredKeySystems to reduce requestMediaKeySystemAccess() calls (#5391) (6d75d89)
  • Enable variant failover for BAD_HTTP_STATUS and TIMEOUT (#4769) (b46012d)
  • export period combiner (#5324) (e9ba2f4), closes #5307
  • HLS: Add HLS config to ignore manifest timestamps when in segments mode (#5103) (4d487e4)
  • HLS: Add HLS support for non-sequence mode (#4623) (2b50b88)
  • HLS: Add support to _HLS_msn query param in LL streams (#5262) (2ece86f)
  • HLS: Add support to _HLS_part query param in LL streams (#5265) (ec8804d)
  • HLS: Add support to blocking playlist reload by adding the CAN-BLOCK-RELOAD=YES (#5279) (090554b)
  • HLS: Add support to BYTERANGE-LENGTH in EXT-X-PRELOAD-HINT (#5267) (ea97a5a)
  • HLS: Add support to HLS-AES128 low latency (#4982) (07787a8)
  • HLS: Add support to HOLD-BACK in EXT-X-SERVER-CONTROL (#5281) (bb2c06a)
  • HLS: Allow delivery directives in Live streams (#5292) (aedf634)
  • HLS: Fix update time when using LL-HLS and byterange optimization (#5495) (bba7537)
  • HLS: Get resolution from TS when load a Media Playlist (#5058) (42a9f96)
  • HLS: Improve detection of basic info from Media Playlist (#4809) (d465942)
  • HLS: Improve HLS parsing time (#5264) (2ca7d0b)
  • HLS: Improve Low Latency performance in HLS (#4952) (5514385)
  • HLS: Optimization of LL-HLS with byterange (#5319) (9e6655a)
  • HLS: Optimize LL-HLS with byterange (#5342) (53d6378)
  • HLS: Parse #EXT-X-BITRATE (#5550) (123183d)
  • HLS: Parse SAMPLE-RATE attribute (#5375) (5af34ad)
  • HLS: Poll HLS playlists using last segment duration (#4779) (1ba3806), closes #4771
  • HLS: Support byterange optimization on servers with support to blocking playlist reload (#5347) (263a17b)
  • Improve live latency on load (#5268) (236dacb)
  • Improve parsing time in DASH and HLS (#5261) (f1e35fd)
  • Improve performance of multi-period DASH parsing (#5350) (5b0b429)
  • Improve performance of setStreamProperties on low-end devices (#5380) (ddbc249)
  • Improve sequence mode start time (#5326) (80cacf6)
  • Include stack trace in errors dispatched from production builds (#5407) (7d049eb), closes #5406
  • logs: Add extra logging for 3015 errors (#4932) (67a2451)
  • Make gap jump timer time configurable (#5525) (97b7412)
  • Move forceTransmux from streaming to mediasource config (#4783) (b491a6b)
  • MSS: Add support for Microsoft Smooth Streaming (VOD only) (#5002) (f80bf20)
  • MSS: Fix MSS PlayReady support (#5486) (1dd9809)
  • net: Added advanced type to filters (#5006) (fbce38a), closes #4966
  • Optimize appendBuffer operations for init segments (#5377) (68f7a0e)
  • Parses a PRFT Box, with a loss of precision beyond 53 bits (#5354) (a797651)
  • Parses a TFDT Box, with a loss of precision beyond 53 bits (#5329) (db73e1f)
  • Parses a TFDT Box, with a loss of precision beyond 53 bits (#5501) (c6e8449)
  • Raise fatal error on linear manifest request update failure (#5138) (3ff7ba3)
  • Set segmentPrefetchLimit to 2 by default for low latency streaming (#5275) (62f24d2)
  • SRT: Support stylized payload in SRT format (#5500) (963cf61)
  • Support customizing clearBuffers and safeMargin when select variants by label (#4770) (c724625)
  • Support Parallel Segment Fetching (#4784) (de6abde)
  • Support private-use language tags (#5223) (fa041d7)
  • UI: Add HDR label to resolution when the track is HDR (#5373) (3f9eade)
  • UI: Add PageUp and PageDown to UI seek bar (#5519) (8e22a50)
  • UI: Add thumbnails to the UI (#5502) (c483975)
  • UI: Allow customizing FullScreen element (#4963) (c471d23)
  • UI: Remove copyStyleSheets (#5273) (fe43ed3)
  • UI: Use Intl.DisplayNames to show the language name (#5365) (35cb193)
  • Use local assets for transmuxer tests (#5549) (a75e776)
  • Use shaka.text.Cue everywhere instead of shaka.extern.Cue (#5529) (62156ba)
  • utils: Export shaka.util.StreamUtils.meetsRestrictions (#5100) (3543e57)
  • WebVTT: Add support to auto position (#5532) (a8f7c41)
  • webvtt: webvtt colors output (#4954) (ed7a736)

Bug Fixes

  • config.streaming.preferNativeHls only applies to HLS streams (#5167) (bf4b4a5), closes #5166
  • add MIME type for HTML5 tracks (#5452) (4f1a119)
  • Add missing AdvancedRequestType in some requests (#5113) (b60bf16)
  • Add missing StreamInfo value in AAC transmuxer (#5260) (5175e88)
  • Add mux.js to support.html (#4923) (d9fa4eb)
  • Adds missing CMCD params to some http requests (#5072) (fe38e45), closes #5067 #5094
  • ads: Fix ads starting muted behavior (#5153) (211624f), closes #5125
  • Ads: Fix CS volume ad (#5016) (492b5f3)
  • Ads: Fix SS configure (#5155) (49ed4ab)
  • Ads: Fix usage of EventManager on CS (#5017) (541badc)
  • Ads: Fix usage of EventManager on CS (#5084) (122f5f3)
  • ads: Fix VMAP ads stay muted on muted autoplay (#4995) (d074afc)
  • Ads: Initialize correctly the IMA ads manager (#5541) (4428adf)
  • Allow the playback of TS without mux.js (#5041) (0b785f7)
  • Avoid unnecessary timestampOffset updates when using HLS segments mode (#5270) (9059944)
  • Caption can not turn off at iOS Safari (#4978) (9d2c325)
  • cast: Added existence checks for MediaDecodingConfig.{audio|video} in decodingInfo(). (#4796) (36db83d)
  • cast: Use cast platform APIs in MediaCapabilties polyfill (#4727) (5d6f56a)
  • CEA 608 captions not work with H.265 video streams (#5252) (f0ee16b), closes #5251
  • cea: Fix MAX_ROWS in CEA-708 window (#4757) (e89eeb6)
  • cea: Fix not rendering CEA-608 on encrypted mp4 segments (#4756) (d600109)
  • chapters: removed duplicate chapters by id (#4810) (151bdda)
  • cmcd not applying configuration changes (#5119) (58aa45f)
  • Correct default initDataTransform for legacy Apple Media Keys (#4797) (67a5d56)
  • DASH: Avoid "Possible encoding problem detected!" when appending chunked data (#5376) (2071e3a)
  • DASH: Fix bufferBehind with image tracks regression (#5210) (2d9f566)
  • DASH: Fix dynamic manifests from edgeware (#4914) (056588b)
  • DASH: Fix seeking on multiperiod content after variant change (#5110) (3b0f013)
  • DASH: Ignore minBufferTime when using LL (#5285) (fea46d8)
  • Default language to 'und' for native tracks (#5464) (8cd3e2d)
  • Demo: Allow enable LL only with Low Latency Mode config (#5266) (70823f9)
  • Demo: Allow manifest type for DAI custom assets (#4977) (1e50630)
  • Demo: Fix deployment of codem-isoboxer in the Demo (#5257) (03b39f7)
  • Demo: Fix error link width to avoid overlap with close button (#5309) (08317d0)
  • demo: Fix native controls pointer events stolen by LCEVC canvas (#5065) (6508f40)
  • Demo: Show correctly external text in the Demo (#5521) (e2bf1de)
  • Demo: Trim custom manifestUri to avoid copy-paste errors (#5378) (0e32256)
  • Dispatch all emsg boxes, even if they are ID3 (#5428) (25ecfa7)
  • docs: fix player configuration code in drm config tutorial (#5359) (5487236)
  • Document Picture-in-Picture: Use width/height instead of initialAspectRatio (#5224) (0da63a0)
  • don't use navigator.connection event listener if it isn't implemented (#5157) (fb68306), closes #4542
  • DRM: broken keySystemsMapping due to multiple references of drmInfo (#5388) (6513ac0)
  • DrmEngine exception thrown when using FairPlay (#4971) (eebf18c)
  • exclude "future" segments from presentation timeline auto correct drift calculations (#4945) (ea6774a), closes #4944
  • Explicitly specify @externs in transmuxer externs. (#4999) (ef8078a)
  • Failed to set 'currentTime' property on 'HTMLMediaElement' on a Hisense TV (#4962) (5d93b8f)
  • Fallback to isTypeSupported when cast namespace is undefined (#5012) (50d0645)
  • Fire correctly MIN_HDCP_VERSION_NOT_MATCH error (2ae5a99)
  • Fix bufferBehind setting broken by image segments (#4718) (cd1b7c0), closes #4717
  • Fix buffering on the end of MSS streams (#5196) (a8e3c9a)
  • Fix captions from MP4s with multiple trun boxes (#5422) (bccfdbc), closes #5328
  • Fix compiler error on static use of "this" (#4699) (b06fd6a)
  • Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients (#5345) (226ffa9)
  • Fix DRM workaround for Tizen and Xbox with hvc1/hev1 boxes (#4743) (a61c084), closes #4742
  • Fix duplicate updates in StreamingEngine (#4840) (224207b), closes #4831
  • Fix duration error when HLS goes from LIVE to VOD (#5001) (1aee989)
  • Fix error when network status changes on src= playbacks (#5305) (07ca8f5)
  • Fix exception enabling captions on HLS (#4894) (b7b2a7c), closes #4889
  • Fix exception on Tizen due to unsupported Array method (#5429) (8ff2917)
  • Fix exiting fullscreen on Safari (#5439) (ed93a0c), closes #5437
  • Fix failure when drivers lag behind browser (#5423) (a909ed4)
  • Fix fetch plugin with old implementations (#5091) (36bcc37)
  • Fix flattenedCues in WebVttGenerator (#4867) (15232dd)
  • Fix gap jump at start when first jump lands in a new gap (f56d49b)
  • Fix handling of CC when switching between codecs (#5160) (6937325)
  • Fix HEAD request exception (#5194) (330f04b), closes #5164
  • Fix implementation of AAC and MP3 transmuxers (#5296) (df18f10)
  • Fix legacy codec support by rewriting codec metadata (#4858) (e351395)
  • Fix media source duration when using sequence mode (#4848) (1762267)
  • Fix MediaCapabilities polyfill on Hisense (#4927) (6a48cfe)
  • Fix memory leak on SimpleAbrManager (#5478) (e8f3ed0)
  • Fix missing originalUri in response filters (#5114) (8bffb99)
  • Fix parsing error on Chromecast when resyncing HLS (#4869) (afca6af), closes #4589
  • Fix playRangeEnd does not work with HLS streams (#5494) (1775672)
  • Fix potential AV sync issues after seek or adaptation (#4886) (c42565c), closes #4589
  • Fix potential duplicate segments, AV sync issues (#4884) (52f4b63), closes #4589
  • Fix race that allows multiple text streams to be loaded (#5129) (2ae9095)
  • Fix rare exception after StreamingEngine teardown (#4830) (234beef), closes #4813
  • Fix selectVariantsByLabel using src= (#5154) (e7d94f7)
  • Fix subtitles not added to DOM region (#4733) (4081434), closes #4680
  • Fix temporarily disable streams on network error (#5057) (fdc5cb1), closes #5055 #5150
  • Fix timestamp offset for ID3 on DAI-HLS (#4696) (386a28a)
  • Fix usage of WebCrypto in old browsers (#4711) (9afce3b)
  • Fix video/mp2t mimetype conversion. (#5039) (2d0e4cc)
  • Fix WebVTT parser failure on REGION blocks (#4915) (da84a2c)
  • gap jumping when gap exists at start position (#5384) (6c71b0e)
  • Get the correct timescale when there are two trak boxes (#5327) (022f6b9)
  • gettting maxWidth and maxHeight for restrictToElementSize option (#5481) (9a3ac18)
  • Handle empty media segments for Mp4VttParser (#5131) (6fd44c4), closes #4429
  • HLS: Add .tsa and .tsv file extensions as valid MPEG2-TS. (#5034) (a22bdc5)
  • HLS: Add subtitle role when there are no roles (#5357) (7de6340), closes #5355
  • HLS: Adding support for DTS Express in HLS fMP4 (#5112) (#5117) (67b1e90)
  • HLS: Avoid "Possible encoding problem detected!" when is a preload reference (#5332) (bd18a9d)
  • HLS: Avoid HLS resync when there is a gap in the stream (#5284) (b8c2004)
  • HLS: Avoid variable substitution if no variables (#5269) (5a5a7ac)
  • HLS: Consider skipped segments to calculate next media sequence (#5414) (b7d2305)
  • HLS: don't do sequence mode workaround unless there's a text stream (#5079) (fb22669)
  • HLS: Don't do sequence mode workaround unless there's a text stream (#5315) (019dcfd)
  • HLS: Fix AV sync over ad boundaries (#4824) (35033bb), closes #4589
  • HLS: Fix avoid prefetch missing segments (#5372) (7f8e051)
  • HLS: Fix detection of Media Playlist for audio and video only in MP4 (#4803) (76f96b9)
  • HLS: Fix detection of WebVTT subtitles in HLS by extension (#4928) (15b0388), closes #4929
  • HLS: Fix discontinuity tracking (#4881) (fc3d5c1), closes #4589
  • HLS: Fix dvh1 and dvhe detection as video codec (#5364) (37b7be6)
  • HLS: Fix external subtitles out of sync in HLS (#5491) (de19884)
  • HLS: Fix HLS seekRange for live streams (#5263) (258962f)
  • HLS: fix lazy load with multiple raw audio tracks (#4715) (76149ae)
  • HLS: Fix live playlist update when using no LL in a LL stream (#5282) (ad2eef6)
  • HLS: Fix load of LL-HLS when the partial segment is not independent (#5277) (ed5915e)
  • HLS: Fix lowLatencyPresentationDelay when using autoLowLatencyMode (#4712) (877e954)
  • HLS: Fix missing roles (#4760) (2bc481d), closes #4759
  • HLS: Fix prefetch with LL-HLS stream (#5274) (551422a)
  • HLS: Fix seek on LL streams when using segments mode (#5283) (d4f3f5c)
  • HLS: Fix seekRange for EVENT playlist not using EXT-X-PLAYLIST-TYPE (#5220) (1c89204)
  • HLS: Fix support for mixed AES-128/NONE decryption (#4847) (452694d)
  • HLS: Fix support legacy AVC1 codec used in HLS (#4716) (c3ff8e5)
  • HLS: Fix support of fragmented WebVTT (#5156) (9c4a61f)
  • hls: Fix type error in lazy-loading (#4687) (28b73b9)
  • HLS: Ignore segments with zero duration (#5371) (c25b26a)
  • HLS: IMSC1 subtitles not working in a HLS stream (#4942) (974f5dc)
  • HLS: Mark first partial segment as independent always (#5312) (ea896d5)
  • HLS: Parse EXT-X-PART-INF as media playlist tag (#5311) (d29f4bc)
  • HLS: Parse the correct codec for AVC and MP4A in HLS parser (#5515) (f3fa4f8)
  • HLS: preserve discontinuitySequence in SegmentIndex#fit (#5066) (36a15f6)
  • HLS: Report HLS playlist updates as media playlist in network filters (#5120) (c2a59d0)
  • HLS: Require SegmentIndex to return independent segments only (#5288) (9f80e3c)
  • HLS: Single alternative video renditions not working (#4785) (6915a97)
  • HLS: Skip EXT-X-PRELOAD-HINT without full byterange info (#5294) (32d141d)
  • HLS: support discontinuities in segments mode (#5102) (71affe7)
  • HLS: Supports syncTime in partial segments (#5280) (9dddc09)
  • Increase IndexedDB timeout (#4984) (ea290ab)
  • logging: Simplify log code. (#5050) (6944976), closes #5032
  • Make encoding problem detection more robust (#4885) (0e3621c), closes #4589
  • Manually order key for decodingInfo cache (#4795) (806a9a8)
  • MCap: Remove robustness when robustness value is default (#4953) (7439a26)
  • media source object URL revocation (#5214) (fecb11a)
  • media: Fix region checking in livestreams (#5361) (9fffcb9), closes #5213
  • mitigate uncaught type error in media_source_engine (#5069) (e19fa80), closes #4903
  • net: Fix HEAD requests in new Chromium (#5180) (5155493), closes #5164
  • Only parse/probe TS if the reference is not an MP4 and not WebM (#5381) (b1e7cc4)
  • Orange set top box is incorrectly categorized as Apple (#5545) (937484e)
  • PERIOD_FLATTENING_FAILED error with shaka 4.3.4 that did not occur with shaka 3.1.2 #5183 (#5188) (e855326)
  • Polyfill missing AbortController on Tizen (#4707) (75ef975)
  • Populate HDR correctly (#5369) (1ad75ec)
  • prevent access to null config_ in SimpleAbrManager (#5362) (d1db694)
  • Prevent bad calls to MediaSource.endOfStream (#5071) (64389a2), closes #5070
  • Prevent content from being restarted after Postroll ads (#4979) (64e94f1), closes #4445
  • prevent memory leak in SimpleAbrManager while destroying (#5149) (bbf228c)
  • Reject TS content on Edge (#5043) (8818a02)
  • Release region timeline when unloading (#4871) (a236180), closes #4850
  • Remove duplicate adaptation event before init (#5492) (e3b2e7d)
  • Remove sourcebuffer before create a new media source instance (#5533) (0056c0a)
  • Ship to NPM without node version restrictions (#5253) (524a80b), closes #5243
  • stream property of request context obfuscated in production builds (#5118) (93baba2)
  • Support fLaC and Opus codec strings in HLS (#5454) (ccc3d2f), closes #5453
  • Sync each segment against EXT-X-PROGRAM-DATE-TIME (#4870) (50c9df4), closes #4589
  • Tizen video error fixed by checking the extended MIME type (#4973) (eb01c60), closes #4634
  • Transmux containerless to the correct mimetype (#5205) (bb40d3b)
  • Treat regions uniquely (#4841) (5681efe), closes #4839
  • TTML: Add font-family mapping (#4801) (db8987d)
  • TTML: Fix duplicate cues overlapping segment boundaries (#4798) (bd75032), closes #4631
  • Typing of PeriodCombiner.Period was incorrect (#5442) (845649b)
  • ui: Avoid submitting form if player is inside form (#4866) (da21850), closes #4861
  • ui: Check event cancelable before event.preventDefault (#4690) (6d8de72)
  • UI: Disable right click on range elements (#5497) (3333ca4)
  • ui: Fix iOS fullscreen on rotation (#4679) (86256f4)
  • UI: Fix playback restarts in safari when click on seekbar end (#5527) (4235658)
  • UI: Fix resolution selection on src= (#5367) (3863c73)
  • UI: Suppress error log from fullscreen button on desktop (#4823) (99da4ce), closes #4822
  • UI: Use pagehide instead of unload for PiP (#5303) (a543b80)
  • unnecessary parsing of in-band pssh when pssh is in the manifest (#5198) (05aa931), closes #5197
  • Update karma-local-wd-launcher to fix Chromedriver >= 115, fix M1 mac (#5489) (c8a27ca)
  • Update karma-local-wd-launcher to fix Edge >= 115 (#5506) (3104a76)
  • VTT: Fix combining style selectors (#4934) (128562d)
  • VTT: Fix spacing between text lines (#4961) (2d0469f)
  • WebVTT: Add support to  , ‎ and ‏ (#4920) (726ef42)
  • WebVTT: Add support to middle position (#5366) (5691d5e)
  • WebVTT: Fix horizontal positioning with cue box size (#4949) (f456318)
  • WebVTT: Fix text-shadow in WebVTT not working (#5499) (ac6a92a)
  • WebVTT: Fix voice tag styles (a5f8b43)
  • WebVTT: Fix voices with styles and support to multiple styles (#4922) (68968c1)
  • WebVTT: Tags in the WebVTT subtitle are not parsed (#4960) (d4fc54f)

Performance Improvements

  • Caching mediaSource support for browser engine (#4778) (ad6c085)