Releases: video-dev/hls.js
Releases · video-dev/hls.js
v0.1.0
improvement
- support #EXT-X-DISCONTINUITY on VoD and live streams
API change
- introduce MANIFEST_LOADING event.
- LEVEL_LOADED/LEVEL_SWITCH event: use level instead of levelId to report level Index
- hls.stats : also report add fragLastKbps/fragLastKbps
- review error handling. now all errors are reported through one unique event.
refer to https://github.com/dailymotion/hls.js/blob/master/API.md#fifth-step--error-handling for more details- add new error FRAG_LOOP_LOADING_ERROR, raised upon detection of same fragment being requested in loop.
behavior change
- detailed behavior and error handling is documented in https://github.com/dailymotion/hls.js/blob/master/design.md
Packaging/Formatting/Docs
- document design
- document hello world
- demo page : clean-up, use jquery instead of vanilla JS
bugfixes
- live playlist : fix playback being stuck when switching between quality level after a long time.
- tsdemuxer:avoid spurious undefined errors on broken streams
- tsdemuxer:handle AAC PES with offsetted ADTS header
- tsdemuxer: fix playback freezing with long stream (correctly handle PTS looping)
- level-controller: avoid LEVEL_SWITCH_ERROR reporting in case of setting hls.loadLevel to -1
v0.0.9
improvement
hls API:
- hls constructor can now take an optional configuration object, refer to https://github.com/dailymotion/hls.js#configuration-parameters
- it is now possible to override default xhr loader (useful for testing/P2P)
- add hls.stats getter, provides playback session statistics. refer to https://github.com/dailymotion/hls.js#hlsstats
- add hls.recoverError() : calling this function will destroy and reinstanciate both MediaSource and SourceBuffer(s).it helps recovering playback if any video error happens (in case of audio codec switch for example)
hls Events:
- remove useless VIDEO_ERROR event. it can already be retrieved through standard HTML Video Element
- introduce new FRAG_APPENDING_ERROR event.this event will be raised in case of source buffer appending error.
- FRAG_PARSING_DATA: add nb of parsed samples in event data. this will be useful to detect frames drop.
- replace LOAD_ERROR event by FRAG_LOAD_ERROR/LEVEL_LOAD_ERROR
- introduce FRAG_LOAD_TIMEOUT/LEVEL_LOAD_TIMEOUT
behavior change:
- buffer controller : max buffer Length is now max(60MB of buffer size,30s of buffer duration), instead of min.
This allows longer buffer if bandwidth is "low". - upon fragment or level load error/timeout, hls.js will notify error event(s) and try to reload.
Packaging/Formatting
- move from 6to5ify to Babel
- use String templates
- remove a couple of globals
- demo page : display hls.stats, hide metrics by default, allow video width customization
bugfixes
- Firefox: properly signal audio codecs to avoid SourceBuffer append error while switching between AAC/HE-AAC streams (fix issue with x2qm99a)
- avoid appending empty buffer in case audio or video are advertised in manifest but not present in the TS (fix playback of x2sex2v)
- Chrome : fix standard AAC 22kHz codec handling
- Chrome: fix video error while trying to playback streams with mono audio AAC with freq >= 24 kHz
- TS demuxer : fix sourceBuffer append error when seeking back to position 0, with seek level != startLevel. if there is any drift between level & startLevel, initPTS/initDTS could become negative and lead to sourcebuffer append errors
- live playlist : fix random out of order segment loading
- live playlist : fix playback being stuck when end of buffer moves out of live sliding window.when this happens, seek to 3 fragments from live sliding edge
v0.0.8
v0.0.7
v0.0.6
replace hls.level by hls.currentLevel/hls.nextLevel/hls.loadLevel (get/set)
currentLevel : immediately switch to new quality level
nextLevel : smooth switch to new quality level
loadLevel : bandwidth conservative switch to new quality level, without flushing any buffered data
refer to README for explanation
IE11/Win8.1 support