CHANGELOG.md 68.3 KB

2.12.0 (2021-11-08)

Features

  • Add an option to use the NetworkInformation API, when available (#1218) (061cf3c)

Tests

  • Don't run networkInfo tests against ie11 (#1221) (aaedde3)

2.11.2 (2021-10-27)

Bug Fixes

  • Various fixes for llhls so that we start closer to live, and stay closer to live (#1201) (bf4a458)

2.11.1 (2021-10-14)

Bug Fixes

  • package: update mpd-parser to 0.19.2 (#1211) (7420296)
  • package: update mux.js to 5.14.1 (#1215) (d7f6b63)
  • reset transmuxer in resetEverything to fix seeking backwards in some cases (#1213) (a83ea37)

Chores

2.11.0 (2021-09-22)

Features

  • Add ability to pass encoding value for 708 captions via captionServices (#1194) (e2b46e7)

Bug Fixes

  • do not try to save expired segment information for gaps greater than 86400 (#1204) (0dc0b61)
  • mark global/window/document as external globals (#1205) (324af10)
  • Only check/fix bad seeks after seeking, without seeked, and an append (#1195) (9d6505a)
  • use URL to add searchParams for LLHLS (#1199) (a8d3c1a)

Chores

Tests

2.10.3 (2021-09-03)

Bug Fixes

2.10.3 (2021-09-03)

Bug Fixes

2.10.2 (2021-08-24)

Bug Fixes

  • update mpd-parser and mux.js to fix an xmldom vulnerability (#1190) (37b4b04)

2.10.2 (2021-08-24)

Bug Fixes

  • update mpd-parser and mux.js to fix an xmldom vulnerability (#1190) (37b4b04)

2.10.1 (2021-08-17)

Bug Fixes

  • keep media update timeout alive so live playlists can recover from network issues (#1176) (8b3533c)

Chores

  • add a github-release action to automate github releases on version tags (#1182) (e8230a9)
  • consistent source selection on demo start (#1185) (ff34277)
  • update the demo page (#1184) (55f0bde)
  • various demo page fixes and enhancements (#1186) (eef29d4)

2.10.1 (2021-08-17)

Bug Fixes

  • keep media update timeout alive so live playlists can recover from network issues (#1176) (8b3533c)

Chores

  • add a github-release action to automate github releases on version tags (#1182) (e8230a9)
  • consistent source selection on demo start (#1185) (ff34277)
  • update the demo page (#1184) (55f0bde)
  • various demo page fixes and enhancements (#1186) (eef29d4)

2.10.0 (2021-07-28)

Features

  • add experimental pixel diff selector behind a flag defaulted off (#786) (a0c0359)
  • Add experimentalExactManifestTimings which forgoes TIME_FUDGE_FACTOR during segment choice (#1165) (67a1201)

Bug Fixes

  • exclude playlists on DRM key status of output-restricted (#1171) (de5baa7)
  • Generate the correct number of segments for segment template multi period dash (#1175) (413fee3)
  • update vhs-utils to correctly detect mp4 starting with moof/moov (#1173) (464a365)

Chores

  • add tests/sources for manifest object urls (#1168) (5f60612)

Tests

  • refactor tests so that players/blob urls/ and media elements are cleaned up (#1174) (b3d1ec0)

2.10.0 (2021-07-28)

Features

  • add experimental pixel diff selector behind a flag defaulted off (#786) (a0c0359)
  • Add experimentalExactManifestTimings which forgoes TIME_FUDGE_FACTOR during segment choice (#1165) (67a1201)

Bug Fixes

  • exclude playlists on DRM key status of output-restricted (#1171) (de5baa7)
  • Generate the correct number of segments for segment template multi period dash (#1175) (413fee3)
  • update vhs-utils to correctly detect mp4 starting with moof/moov (#1173) (464a365)

Chores

  • add tests/sources for manifest object urls (#1168) (5f60612)

Tests

  • refactor tests so that players/blob urls/ and media elements are cleaned up (#1174) (b3d1ec0)

2.9.3 (2021-07-19)

Bug Fixes

  • Prevent audio groups without a playlist from being requested. (#1167) (8c10733)

2.9.2 (2021-07-14)

Bug Fixes

  • Default to using segmentInfo.trackInfo over this.currentMediaInfo_ to get segment track info. (#1162) (1d6bb55)
  • encode correct video width/height in transmuxed mp4 (#1166) (d32801a)
  • include all master playlists in default audio group (#1149) (297e2c7)
  • Prevent skipping frames in adts data via mux.js 5.11.3 (#1153) (253849a)

Chores

  • log transmuxer log events via segment loader (#1155) (1e2f7a4)
  • prevent debugger statement removal and soucemap updating via rollup-plugin-strip (#1147) (62f9c1c)
  • skip playback tests in forks (#1148) (063e163)
  • update utils/stats (#1146) (c504b0d)
  • use the new npm cache option when setting up node (#1157) (b7942ff)

Documentation

  • update maxPlaylistRetries outline level (93b293a)

Tests

2.9.1 (2021-06-22)

Bug Fixes

  • actually default maxPlaylistRetries to Infinity (#1142) (4428e3a), closes #1098
  • don't decay average bandwidth value if system bandwidth did not change (#1137) (c22749b)
  • ts segments that don't define all streams in the first pmt (#1144) (36a8be4)

Tests

2.9.0 (2021-06-11)

Features

Bug Fixes

  • add part level sync points, fix LL hls sync issues, add part timing info (#1125) (ee5841d)
  • Append valid syncRequests, better sync request choice, less getMediaInfoForTime rounding (#1127) (ce03f66)

Chores

2.8.2 (2021-05-20)

Bug Fixes

  • add tests for data uri, fix data uri in demo page (#1133) (0be51eb)

2.8.1 (2021-05-19)

Bug Fixes

  • add master referenced id/uri for audio playlists. Add playlists to hls media groups (#1124) (740d2ee)
  • m3u8-parser/eme updates (#1131) (29ece75)
  • only append/request init segments when they change (#1128) (a4af004)
  • set audio status on loaders when setting up media groups (#1126) (a44f984)

Chores

2.8.0 (2021-04-28)

Features

  • add initialBandwidth option at the tech level (#1122) (2071008)

Bug Fixes

  • don't clear DASH minimum update period timeout on pause of a media loader (#1118) (82ff4f5)
  • null check sidx on sidxmapping, check that end > start on remove (#1121) (92f1333)

Code Refactoring

  • drop support for the partial muxer and handlePartial (#1119) (ab305f8)
  • offload mp4/ts probe to the web worker (#1117) (3c9f721)
  • segment/part choice and add more logging around the choice (#1097) (b8a5aa5)

2.7.1 (2021-04-09)

Bug Fixes

  • experimentalLLHLS option should always be passed (#1114) (684fd08)

Chores

2.7.0 (2021-04-06)

Features

  • Add EXT-X-PART support behind a flag for LL-HLS (#1055) (b33e109)
  • mark Video.js as a peer dependency (#1111) (99480d5)
  • support serverControl and preloadSegment behind experimentalLLHLS flag (#1078) (fa1b6b5)
  • usage and logging on rendition change with reasons (#1088) (1b990f1)

Bug Fixes

  • audio only media group playlists, audio group playlists, and audio switches for audio only (#1100) (6d83de3)
  • better time to first frame for live playlists (#1105) (1e94680)
  • catch remove errors, remove all data on QUOTA_EXCEEDED (#1101) (86f77fe)
  • Only add sidxMapping on successful sidx request and parse. (#1099) (de0b55b), closes #1107
  • support automatic configuration of audio and video only DRM sources (#1090) (9b116ce)

Chores

2.6.4 (2021-03-12)

Bug Fixes

  • Monitor playback for stalls due to gaps in the beginning of stream when a new source is loaded (#1087) (64a1f35)
  • retry appends on QUOTA_EXCEEDED_ERR (#1093) (008aeaf)

Chores

2.6.3 (2021-03-05)

Bug Fixes

  • playback-watcher: Skip over playback gaps that occur in the beginning of streams (#1085) (ccd9352)
  • Add exclude reason and skip duplicate playlist-unchanged (#1082) (0dceb5b)
  • prevent changing undefined baseStartTime to NaN (#1086) (43aa69a)
  • update to mux.js 5.10.0 (#1089) (1cfdab6)

Chores

2.6.2 (2021-02-24)

Bug Fixes

Tests

2.6.1 (2021-02-19)

Bug Fixes

  • allow buffer removes when there's no current media info in loader (#1070) (97ab712)
  • live dash segment changes should be considered a playlist update (#1065) (1ce7838)
  • sometimes subtitlesTrack_.cues is null (#1073) (6778ca1)
  • unbreak the minified build by updating rollup-plugin-worker-factory (#1072) (e583b26)

Chores

  • mirror player.src on the demo page using sourceset (#1071) (fee7309)

Documentation

  • README: fix useBandwidthFromLocalStorage and limitRenditionByPlayerDimensions (#1075) (cf2efcb)

2.6.0 (2021-02-11)

Features

  • allow xhr override globally, for super advanced use cases only (#1059) (6279675)
  • expose m3u8-parser logging in debug log (#1048) (0e8bd4b)

Bug Fixes

  • do not request manifests until play when preload is none (#1060) (49249d5), closes #126
  • store transmuxQueue and currentTransmux on transmuxer instead of globally (#1045) (a34b4da)
  • use a separate ProgramDateTime mapping to player time per timeline (#1063) (5e9b4f1)
  • wait for endedtimeline event from transmuxer when reaching the end of a timeline (#1058) (b01ab72)

Chores

Documentation

  • sample-aes encryption isn't currently supported (#923) (30f9b14)

Tests

  • for IE11, add colon to timezone in Date strings of PDT mapping tests (#1068) (f81c5a9)

2.5.0 (2021-01-20)

Features

Chores

Tests

  • clear segment transmuxer in media segment request tests (#1043) (83057a8)
  • don't show QUnit UI in regular test runs (#1044) (25c7f64)

2.4.2 (2021-01-07)

Bug Fixes

  • handle rollover and don't set wrong timing info for segments with high PTS/DTS values (#1040) (9919b85)

2.4.1 (2020-12-22)

Bug Fixes

  • if a playlist was last requested less than half target duration, delay retry (#1038) (2e237ee)
  • programmatically create Config getters/setters (8454da5)

Chores

2.4.0 (2020-12-07)

Features

Bug Fixes

  • abort all loaders on earlyabort (#965) (e7cb63a)
  • don't save bandwidth and throughput for really small segments (#1024) (a29e241)
  • filter out unsupported subtitles for dash (#962) (124834a)
  • keep running the minimumUpdatePeriod unless cancelled or changed (#1016) (f7b528c)
  • prevent double source buffer ready on IE11 (#1015) (b1c2969)
  • remove duplicate cues with same time interval and text (#1005) (6db2b6a)
  • support tracks with id 0 for fmp4 playlists (#1018) (bf63692)
  • Wait for EME initialization before appending content (#1002) (93132b7)
  • when changing renditions over a discontinuity, don't use buffered end as segment start (#1023) (40caa45)
  • experimentalBufferBasedABR: start ABR timer on main playlist load (#1026) (27de9a5), closes #1025

Chores

Code Refactoring

  • Add a better distinction between master and child dash loaders (#992) (56592bc)
  • add sidx segments to playlist object instead of re-parsing xml (#994) (e41f856)
  • unify sidx/master/error request logic (#998) (fe57e60)

Tests

2.3.0 (2020-11-05)

Features

Bug Fixes

  • appendsdone abort and handle multiple id3 sections. (#971) (329d50a)
  • check tech error before pause loaders (#969) (0c7b2cb)
  • inline json version (#967) (326ce1c)
  • experimentalBufferBasedABR: call selectPlaylist and change media on an interval (#978) (200c87b), closes #886 #966 #964
  • only prevent audio group creation if no other playlists are using it (#981) (645e979)
  • playback-watcher: ignore subtitles (#980) (ca7655e)

Chores

  • package: update aes-decrypter, m3u8 and mpd parser for vhs-utils (#988) (c31dee2)

Tests

2.2.0 (2020-09-25)

Features

Bug Fixes

  • audio groups with the same uri as media do not count (#952) (3927c0c)
  • dash manifest not refreshed if only some playlists are updated (#949) (31d3441)
  • detect demuxed video underflow gaps (#948) (d0ef298)
  • MPD not refreshed if minimumUpdatePeriod is 0 (#954) (3a0682f), closes #942
  • noop vtt segment loader handle data (#959) (d1dcd7b)
  • report the correct buffered regardless of playlist change (#950) (043ccc6)
  • Throw a player error when trying to play DRM content without eme (#938) (ce4d6fd)
  • use playlist NAME when available as its ID (#929) (2269464)
  • use TIME_FUDGE_FACTOR rather than rounding by decimal digits (#881) (7eb112d)

Chores

  • package: remove engine check in pkcs7 (#947) (89392fa)
  • mark angel one dash subs as broken (#956) (56a0970)
  • mediaConfig_ -> staringMediaInfo_, startingMedia_ -> currentMediaInfo_ (#953) (8801d1c)
  • playlist selector logging (#921) (ccdbaef)
  • update m3u8-parser to v4.4.3 (#928) (af5b4ee)

Reverts

2.1.0 (2020-07-28)

Features

  • Easier manual playlist switching, add codecs to renditions (#850) (f60fa1f)
  • exclude all incompatable browser/muxer codecs (#903) (2d0f0d7)
  • expose canChangeType on the VHS property (#911) (a4ab285)
  • let back buffer be configurable (8c96e6c)
  • Support codecs switching when possible via sourceBuffer.changeType (#841) (267cc34)

Bug Fixes

  • always append init segment after trackinfo change (#913) (ea3650a)
  • cleanup mediasource listeners on dispose (#871) (e50f4c9)
  • do not try to use unsupported audio (#896) (7711b26)
  • do not use remove source buffer on ie 11 (#904) (1ab0f07)
  • do not wait for audio appends for muxed segments (#894) (406cbcd)
  • Fixed issue with MPEG-Dash MPD Playlist Finalisation during Live Play. (#874) (c807930)
  • handle null return value from CaptionParser.parse (#890) (7b8fff2), closes #863
  • have reloadSourceOnError get src from player (#893) (1e50bc5), closes videojs/video.js#6744
  • initialize EME for all playlists and PSSH values (#872) (e0e497f)
  • more conservative stalled download check, better logging (#884) (615e77f)
  • pause/abort loaders before an exclude, preventing bad appends (#902) (c9126e1)
  • stop alt loaders on main mediachanging to prevent append race (#895) (8690c78)
  • Support aac data with or without id3 tags by using mux.js@5.6.6 (#899) (9c742ce)
  • Use revokeObjectURL dispose for created MSE blob urls (#849) (ca73cac)
  • Wait for sourceBuffer creation so drm setup uses valid codecs (#878) (f879563)

Chores

  • Add vhs & mpc (vhs.masterPlaylistController_) to window of index.html (#875) (bab61d6)
  • demo: add a representations selector to the demo page (#901) (0a54ae2)
  • fix tears of steal playready on the demo page (#915) (29a10d0)
  • keep window vhs/mpc up to date on source switch (#883) (3ba85fd)
  • update DASH stream urls (#918) (902c2a5)
  • update local video.js (#876) (c2cc9aa)
  • use playready license server (#916) (6728837)

Code Refactoring

  • remove duplicate bufferIntersection code in util/buffer.js (#880) (0ca43bd)
  • simplify setupEmeOptions and add tests (#869) (e3921ed)

2.0.0 (2020-06-16)

Features

  • add external vhs properties and deprecate hls and dash references (#859) (22af0b2)
  • Use VHS playback on any non-Safari browser (#843) (225d127)

Chores

  • fix demo page on firefox, always use vhs on safari (#851) (d567b7d)
  • stats: update vhs usage in the stats page (#867) (4dda42a)

Code Refactoring

  • Move caption parser to webworker, saving 5732b offloading work (#863) (491d194)
  • remove aes-decrypter objects from Hls saving 1415gz bytes (#860) (a4f8302)

Documentation

Reverts

  • "fix: Use middleware and a wrapped function for seeking instead of relying on unreliable 'seeking' events (#161)"(#856) (1165f8e)

BREAKING CHANGES

  • The Hls object which was exposed on videojs no longer has Decrypter, AsyncStream, and decrypt from aes-decrypter.

1.10.2 (2019-05-13)

Bug Fixes

Performance Improvements

  • don't enable captionParser for audio or subtitle loaders (#487) (358877f)

1.10.1 (2019-04-16)

Bug Fixes

  • dash-playlist-loader: clear out timers on dispose (#472) (2f1c222)

Reverts

  • "fix: clear the blacklist for other playlists if final rendition errors (#396)" (#471) (dd55028)

1.10.0 (2019-04-12)

Features

  • add option to cache encrpytion keys in the player (#446) (599b94d), closes #140
  • add support for dash manifests describing sidx boxes (#455) (80dde16)

Bug Fixes

  • clear the blacklist for other playlists if final rendition errors (#396) (6e6c8c2)
  • on dispose, don't call abort on SourceBuffer until after remove() has finished (3806750)

Documentation

  • README: update broken link to full docs (#440) (fbd615c)

1.9.3 (2019-03-21)

Bug Fixes

Documentation

1.9.2 (2019-03-14)

Bug Fixes

  • expose custom segment property in the segment metadata track (#429) (17510da)

1.9.1 (2019-03-05)

Bug Fixes

  • fix for streams that would occasionally never fire an ended event (fc09926)
  • Fix video playback freezes caused by not using absolute current time (#401) (957ecfd)
  • only fire seekablechange when values of seekable ranges actually change (#415) (a4c056e)
  • Prevent infinite buffering at the start of looped video on edge (#392) (b6d1b97)

Code Refactoring

  • align DashPlaylistLoader closer to PlaylistLoader states (#386) (5d80fe7)

1.9.0 (2019-02-07)

Features

  • Use exposed transmuxer time modifications for more accurate conversion between program and player times (#371) (41df5c0)

Bug Fixes

  • m3u8 playlist is not updating when only endList changes (#373) (c7d1306)
  • Prevent exceptions from being thrown by the MediaSource (#389) (8c06366)

Chores

  • Update mux.js to the latest version 🚀 (#397) (38ec2a5)

Tests

  • added test for playlist not updating when only endList changes (#394) (39d0be2)

1.8.0 (2019-01-10)

Features

Bug Fixes

  • id3: cuechange event not being triggered on audio-only HLS streams (#334) (bab70fd), closes #130

1.7.0 (2019-01-04)

Features

1.6.0 (2018-12-21)

Features

  • Add allowSeeksWithinUnsafeLiveWindow property (#320) (74b28e8)

Chores

  • add clock.ticks to now async operations in tests (#315) (895c86a)

Documentation

  • Add README entry on DRM and videojs-contrib-eme (#307) (93b6167)

1.5.1 (2018-12-06)

Bug Fixes

  • added missing manifest information on to segments (EXT-X-PROGRAM-DATE-TIME) (#236) (a35dd09)
  • remove player props on dispose to stop middleware (#229) (cd13f9f)

Documentation

  • add dash to package.json description (#267) (3296c68)
  • add documentation for reloadSourceOnError (#266) (7448b37)

1.5.0 (2018-11-13)

Features

  • Add useBandwidthFromLocalStorage option (#275) (60c88ae)

Bug Fixes

  • don't wait for requests to finish when encountering an error in media-segment-request (#286) (970e3ce)
  • throttle final playlist reloads when using DASH (#277) (1c2887a)

1.4.2 (2018-11-01)

Chores

1.4.1 (2018-10-25)

Bug Fixes

  • subtitles: set default property if default and autoselect are both enabled (#239) (ee594e5)

1.4.0 (2018-10-24)

Features

Bug Fixes

1.3.1 (2018-10-15)

Bug Fixes

1.3.0 (2018-10-05)

Features

  • add an option to ignore player size in selection logic (#238) (7ae42b1)

Documentation

1.2.6 (2018-09-21)

Bug Fixes

  • stutter after fast quality change in IE/Edge (#213) (2c0d9b2)

Documentation

  • update issue template to link to the troubleshooting guide (#215) (413f0e8)
  • update README notes for video.js 7 (#200) (d68ce0c)
  • update troubleshooting guide for Edge/mobile Chrome (#216) (21e5335)

1.2.5 (2018-08-24)

Bug Fixes

1.2.4 (2018-08-13)

Bug Fixes

  • Remove buffered data on fast quality switches (#113) (bc94fbb)

1.2.3 (2018-08-09)

Chores

1.2.2 (2018-08-07)

Bug Fixes

  • typeof minification (#182) (7c68335)
  • Use middleware and a wrapped function for seeking instead of relying on unreliable 'seeking' events (#161) (6c68761)

Chores

Documentation

Tests

  • add support for real segments in tests (#178) (2b07fca)

1.2.1 (2018-07-17)

Bug Fixes

1.2.0 (2018-07-16)

Features

  • captions: write in-band captions from DASH fmp4 segments to the textTrack API (#108) (7c11911)

Chores

  • add welcome bot config from video.js (#150) (922cfee)

1.1.0 (2018-06-06)

Features

  • Utilize option to override native on tech (#76) (5c7ab4c)

Chores

  • update tests and pages for video.js 7 (#102) (d6f5005)

1.0.2 (2018-05-17)

Bug Fixes

  • make project Video.js 7 ready (#92) (decad87)
  • make sure that es build is babelified (#97) (5f0428d)

Documentation

  • update documentation with a glossary and intro page, added DASH background (#94) (4b0fde9)

1.0.1 (2018-04-12)

Bug Fixes

1.0.0 (2018-04-10)

Chores

Documentation

  • update docs for overrideNative (#77) (98ca6d3)
  • update known issues for fmp4 captions (#79) (c418301)

0.9.0 (2018-03-30)

Features

0.8.0 (2018-03-30)

Code Refactoring

0.7.0

  • feat: Live support for DASH

0.6.1

  • use webwackify for webworkers to support webpack bundle (#50)

0.5.3

  • fix: program date time handling (#45)
    • update m3u8-parser to v4.2.0
    • use segment program date time info
  • feat: Adding support for segments in Period and Representation (#47)
  • wait for both main and audio loaders for endOfStream if main starting media unknown (#44)

0.5.2

  • add debug logging statement for seekable updates (#40)

0.5.1

  • Fix audio only streams with EXT-X-MEDIA tags (#34)
  • Merge videojs-contrib-hls master into http-streaming master (#35)
    • Update sinon to 1.10.3=
    • Update videojs-contrib-quality-levels to 2.0.4
    • Fix test for event handler cleanup on dispose by calling event handling methods
  • fix: Don't reset eme options (#32)

0.5.0

  • update mpd-parser to support more segment list types (#27)

0.4.0

  • Removed Flash support (#15)
  • Blacklist playlists not supported by browser media source before initial selection (#17)

0.3.1

  • Skip flash-based source handler with DASH sources (#14)

0.3.0

  • Added additional properties to the stats object (#10)

0.2.1

  • Updated the mpd-parser to fix IE11 DASH support (#12)

0.2.0

  • Initial DASH Support (#8)

0.1.0