CHANGELOG.md
68.3 KB
2.12.0 (2021-11-08)
Features
Tests
2.11.2 (2021-10-27)
Bug Fixes
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
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
- only register reloadSourceOnError once (#1191) (9aeb77b)
- We should skip gaps that are seeked into. (#1192) (61b8eef)
2.10.3 (2021-09-03)
Bug Fixes
- only register reloadSourceOnError once (#1191) (9aeb77b)
- We should skip gaps that are seeked into. (#1192) (61b8eef)
2.10.2 (2021-08-24)
Bug Fixes
2.10.2 (2021-08-24)
Bug Fixes
2.10.1 (2021-08-17)
Bug Fixes
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
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
Tests
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
Tests
2.9.3 (2021-07-19)
Bug Fixes
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
- 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)
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
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
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
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
- 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)
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
- 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)
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
Documentation
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
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)
Chores
- add legacy avc source (#1050) (b34a770)
- add pdt test sources (#1067) (112148b)
- better worker build and synchronous web worker (#1033) (f0732af)
Documentation
Tests
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
- 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)
Features
- 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
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
- 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)
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
Tests
2.2.0 (2020-09-25)
Features
- default handleManfiestRedirect to true (#927) (556321f)
- support MPD.Location (#926) (c4a43d7)
- Update minimumUpdatePeriod handling (#942) (8648e76)
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
- 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)
Performance Improvements
1.10.1 (2019-04-16)
Bug Fixes
Reverts
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
1.9.3 (2019-03-21)
Bug Fixes
- id3: ignore unsupported id3 frames (#437) (7040b7d), closes videojs/video.js#5823
Documentation
1.9.2 (2019-03-14)
Bug Fixes
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
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
Tests
1.8.0 (2019-01-10)
Features
Bug Fixes
1.7.0 (2019-01-04)
Features
1.6.0 (2018-12-21)
Features
Chores
Documentation
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
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
1.4.0 (2018-10-24)
Features
- limited experimental DASH multiperiod support (#268) (a213807)
- smoothQualityChange flag (#235) (0e4fdf9)
Bug Fixes
1.3.1 (2018-10-15)
Bug Fixes
1.3.0 (2018-10-05)
Features
Documentation
1.2.6 (2018-09-21)
Bug Fixes
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
1.2.3 (2018-08-09)
Chores
- link to minified example in main page (#189) (15a7f92)
- use netlify for easier testing (#188) (d2e0d35)
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
1.2.1 (2018-07-17)
Bug Fixes
1.2.0 (2018-07-16)
Features
Chores
1.1.0 (2018-06-06)
Features
Chores
1.0.2 (2018-05-17)
Bug Fixes
Documentation
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
- Initial release, based on videojs-contrib-hls 5.12.2