3.0.0 (2022-11-21)
- add compatibility layer for video.js 7 and 8 (#1322) (b9d26e5)
- add frameRate property to the representation class. (#1289) (fd2898f)
- enable LLHLS support by default and remove experimental prefix on options (#1301) (02c3c77)
- remove handleManifestRedirects and always use XHR.responseURL if available (#1226) (3ad3120)
- rename many things to
main
(#1309) (54cbab3) - Skip gaps immediately (#1267) (f85c153)
- update tooling to remove ie 11 transpiling, update tests (#1306) (206f099)
- add Video.js 8 to the dep version range (#1307) (325a98e)
- cache aes keys for text tracks (#973) (#1228) (66a5b17)
- output-restricted event handling for unplayable streams (#1305) (1c62a98)
- remove deprecation hls options, properties, and events; add migration guide (#1229) (43fce26)
- Restart mainPlaylistLoader after media change (#1339) (cf340f2)
- resume loading on segment timeout for
bufferBasedABR
(#1333) (969589e)
- docs: Remove outdated information in collaborators' guide (#1271) (6100750)
- package: update dependencies to use new ES6 builds (#1320) (9ae6695)
- package: update m3u8-parser to v6.0.0 (#1330) (fe15751)
- remove old-index since IE is no longer supported (#1308) (5ba3a77)
- update karma-config to 8 to drop ie11 and older browsers (#1227) (44c12ea)
- update mpd-parser (#1337) (7ff95b9)
- update package-lock (1806b46)
- update package-lock.json (#1319) (c7aa9c1)
- clean up parameters of excludePlaylist (#1304) (ca3162b)
- Remove deprecated smooth quality change (#1268) (6041014)
- rename 'blacklist' to 'exclude' (#1274) (d79d783)
- change source for live DASH playback test to fix test failures (#1303) (128b3d7)
- fix IE11 encrypted VTT tests by using an actual encrypted VTT segment (#1291) (57c0e72)
- package: manifests with tags lacking colons (:) are no longer supported
- package: This updates bundled libraries to no longer be transpiled to ES5, which means IE will no longer be supported.
- This changes the arguments for the
PlaylistController#excludePlaylist
method to take a single object instead of multiple arguments. - This renames four experimental options to no longer be experimental and enables Low Latency HLS support by default (
llhls: false
will still disable it, if desired). - rename PlaylistController
- rename HAVE_MASTER to HAVE_MAIN_MANIFEST
- playlist loaders updateMain and .main prop rename
- manifest.js exports mainForMedia and addPropertiesToMain
- rename media groups prop to isMainPlaylist
- rename property to mainPlaylistLoader_
- rename to PlaylistController#main()
- This removes support entirely for IE11 (and older) as well as any other platforms that do not support ES6.
- remove ^6 from the dependency version ranges.
- Skips detected gaps immediately instead of waiting the duration of the gap before skipping
- Removes deprecated
smoothQualityChange
option - remove deprecated options, properties, events.
- remove handleManifestRedirects option. Now XHR.responseURL will always be used when available.
3.0.0-2 (2022-09-30)
3.0.0-1 (2022-09-30)
- add compatibility layer for video.js 7 and 8 (#1322) (b9d26e5)
- add frameRate property to the representation class. (#1289) (fd2898f)
- package: manifests with tags lacking colons (:) are no longer supported
3.0.0-0 (2022-08-19)
- enable LLHLS support by default and remove experimental prefix on options (#1301) (02c3c77)
- remove handleManifestRedirects and always use XHR.responseURL if available (#1226) (3ad3120)
- rename many things to
main
(#1309) (54cbab3) - Skip gaps immediately (#1267) (f85c153)
- update tooling to remove ie 11 transpiling, update tests (#1306) (206f099)
- add Video.js 8 to the dep version range (#1307) (325a98e)
- cache aes keys for text tracks (#973) (#1228) (66a5b17)
- output-restricted event handling for unplayable streams (#1305) (1c62a98)
- remove deprecation hls options, properties, and events; add migration guide (#1229) (43fce26)
- docs: Remove outdated information in collaborators' guide (#1271) (6100750)
- package: update dependencies to use new ES6 builds (#1320) (9ae6695)
- remove old-index since IE is no longer supported (#1308) (5ba3a77)
- update karma-config to 8 to drop ie11 and older browsers (#1227) (44c12ea)
- update package-lock.json (#1319) (c7aa9c1)
- clean up parameters of excludePlaylist (#1304) (ca3162b)
- Remove deprecated smooth quality change (#1268) (6041014)
- rename 'blacklist' to 'exclude' (#1274) (d79d783)
- change source for live DASH playback test to fix test failures (#1303) (128b3d7)
- fix IE11 encrypted VTT tests by using an actual encrypted VTT segment (#1291) (57c0e72)
- package: This updates bundled libraries to no longer be transpiled to ES5, which means IE will no longer be supported.
- This changes the arguments for the
PlaylistController#excludePlaylist
method to take a single object instead of multiple arguments. - This renames four experimental options to no longer be experimental and enables Low Latency HLS support by default (
llhls: false
will still disable it, if desired). - rename PlaylistController
- rename HAVE_MASTER to HAVE_MAIN_MANIFEST
- playlist loaders updateMain and .main prop rename
- manifest.js exports mainForMedia and addPropertiesToMain
- rename media groups prop to isMainPlaylist
- rename property to mainPlaylistLoader_
- rename to PlaylistController#main()
- This removes support entirely for IE11 (and older) as well as any other platforms that do not support ES6.
- remove ^6 from the dependency version ranges.
- Skips detected gaps immediately instead of waiting the duration of the gap before skipping
- Removes deprecated
smoothQualityChange
option - remove deprecated options, properties, events.
- remove handleManifestRedirects option. Now XHR.responseURL will always be used when available.
2.14.2 (2022-04-13)
2.14.1 (2022-04-06)
2.14.0 (2022-03-14)
2.13.1 (2021-12-20)
2.13.0 (2021-12-20)
- set up required key sessions on waitingforkey event (#1232) (3ed24a4)
- use new mpd-parser API for handling live DASH refreshes (#1231) (f109078)
2.12.1 (2021-12-10)
- fix seekable not updating after the first change for live streams (#1233) (3d8755c)
- mp4 sources that use bigint numbers (#1217) (bfd0ad0)
- support legacy hls option for overrideNative (#1222) (4f9ce7a)
- add a test to verify that seekable updates with a live stream (#1234) (7495ead), closes #1233
- playack: make live dash test take 5 seconds (#1235) (b66e124)
2.12.0 (2021-11-08)
2.11.2 (2021-10-27)
2.11.1 (2021-10-14)
- 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)
2.11.0 (2021-09-22)
- 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)
2.10.3 (2021-09-03)
- only register reloadSourceOnError once (#1191) (9aeb77b)
- We should skip gaps that are seeked into. (#1192) (61b8eef)
2.10.3 (2021-09-03)
- only register reloadSourceOnError once (#1191) (9aeb77b)
- We should skip gaps that are seeked into. (#1192) (61b8eef)
2.10.2 (2021-08-24)
2.10.2 (2021-08-24)
2.10.1 (2021-08-17)
- 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)
- 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)
- add experimental pixel diff selector behind a flag defaulted off (#786) (a0c0359)
- Add experimentalExactManifestTimings which forgoes TIME_FUDGE_FACTOR during segment choice (#1165) (67a1201)
- 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)
2.10.0 (2021-07-28)
- add experimental pixel diff selector behind a flag defaulted off (#786) (a0c0359)
- Add experimentalExactManifestTimings which forgoes TIME_FUDGE_FACTOR during segment choice (#1165) (67a1201)
- 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)
2.9.3 (2021-07-19)
2.9.2 (2021-07-14)
- 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)
- 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)
- update maxPlaylistRetries outline level (93b293a)
2.9.1 (2021-06-22)
- 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)
2.9.0 (2021-06-11)
- Add support for encrypted init segments (#1132) (4449ed5)
- allow clients to limit the number of times a playlist attempts to reload following an error (#1098) (44905d4)
- Caption services (608/708) metadata (#1138) (39782c6), closes /datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-08#section-4 videojs/mpd-parser#131
- do fast rendition changes on fullscreen changes and user actions (#1074) (5405c18)
- stats for timeToLoadedData, appendsToLoadedData, mainAppendsToLoadedData, audioAppendsToLoadedData, and mediaAppends (#1106) (3124fbc)
- Use ll-hls query directives: segment skipping and requesting a specific segment/part (#1079) (458be2c)
- 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)
2.8.2 (2021-05-20)
2.8.1 (2021-05-19)
- 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)
2.8.0 (2021-04-28)
- 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)
- 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)
2.7.0 (2021-04-06)
- 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)
- 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)
- never skip main ci runs (#1108) (b2d2c91)
- turn checkWatch back on for rollup (87947fc)
- update to mux.js@5.11.0 (#1109) (af5841c)
2.6.4 (2021-03-12)
- 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)
- Get test coverage working again with mock/sync worker (#1094) (035e8c0)
- pin CI to ubuntu 18.04 (#1091) (01ca182)
2.6.3 (2021-03-05)
- 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)
2.6.2 (2021-02-24)
2.6.1 (2021-02-19)
- 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)
2.6.0 (2021-02-11)
- allow xhr override globally, for super advanced use cases only (#1059) (6279675)
- expose m3u8-parser logging in debug log (#1048) (0e8bd4b)
- do not request manifests until play when preload is none (#1060) (49249d5), closes #126
- store
transmuxQueue
andcurrentTransmux
ontransmuxer
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)
- add legacy avc source (#1050) (b34a770)
- add pdt test sources (#1067) (112148b)
- better worker build and synchronous web worker (#1033) (f0732af)
2.5.0 (2021-01-20)
- 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)
- handle rollover and don't set wrong timing info for segments with high PTS/DTS values (#1040) (9919b85)
2.4.1 (2020-12-22)
- if a playlist was last requested less than half target duration, delay retry (#1038) (2e237ee)
- programmatically create Config getters/setters (8454da5)
- demo: clear type on manual source change (#1030) (d39276d)
- mark many more sources as working (#1035) (904153f)
- move playback tests to a separate ci run (#1028) (f1d9f6e)
- remove replace and update packages (#1031) (0976212)
2.4.0 (2020-12-07)
- playback watcher: Configurable live seekable window (#997) (ad5c270)
- log on mislabeled segment durations for HLS (#1010) (4109a7f)
- update to mux.js 5.7.0 (#1014) (5f14909), closes #1001 #909
- 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
- add multiple soon-to-work sources (#1007) (030469f)
- don't run tests on release (#1006) (d13b737)
- skip duplicate ci workflows (#1021) (20cc4a3)
- switch from travis to github actions for ci (#989) (c9b195b)
- demo page: add an overrideNative button (default on) (#1027) (197daab)
- 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)
2.3.0 (2020-11-05)
- 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)
2.2.0 (2020-09-25)
- default handleManfiestRedirect to true (#927) (556321f)
- support MPD.Location (#926) (c4a43d7)
- Update minimumUpdatePeriod handling (#942) (8648e76)
- 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)
- 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)
2.1.0 (2020-07-28)
- 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)
- 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)
- 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)
- remove duplicate bufferIntersection code in util/buffer.js (#880) (0ca43bd)
- simplify setupEmeOptions and add tests (#869) (e3921ed)
2.0.0 (2020-06-16)
- add external vhs properties and deprecate hls and dash references (#859) (22af0b2)
- Use VHS playback on any non-Safari browser (#843) (225d127)
- fix demo page on firefox, always use vhs on safari (#851) (d567b7d)
- stats: update vhs usage in the stats page (#867) (4dda42a)
- Move caption parser to webworker, saving 5732b offloading work (#863) (491d194)
- remove aes-decrypter objects from Hls saving 1415gz bytes (#860) (a4f8302)
- "fix: Use middleware and a wrapped function for seeking instead of relying on unreliable 'seeking' events (#161)"(#856) (1165f8e)
- The Hls object which was exposed on videojs no longer has Decrypter, AsyncStream, and decrypt from aes-decrypter.
1.10.2 (2019-05-13)
- clear the blacklist for other playlists if final rendition errors (#479) (fe3b378), closes #396 #471
- development: rollup watch, via
npm run watch
, should work for es/cjs (#484) (ad6f292) - HLSe: slice keys properly on IE11 (#506) (681cd6f)
- package: update mpd-parser to version 0.8.1 🚀 (#490) (a49ad3a)
- package: update mux.js to version 5.1.2 🚀 (#477) (57a38e9), closes #503 #504
- source-updater: run callbacks after setting timestampOffset (#480) (6ecf859)
- livestream timeout issues (#469) (cf3fafc), closes segment#16 segment#15 segment#16 segment#15 segment#16
- remove both vttjs listeners to prevent leaking one of them (#495) (1db1e72)
1.10.1 (2019-04-16)
1.10.0 (2019-04-12)
- add option to cache encrpytion keys in the player (#446) (599b94d), closes #140
- add support for dash manifests describing sidx boxes (#455) (80dde16)
- 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)
1.9.3 (2019-03-21)
- id3: ignore unsupported id3 frames (#437) (7040b7d), closes videojs/video.js#5823
1.9.2 (2019-03-14)
1.9.1 (2019-03-05)
- 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)