Skip to content

Releases: video-dev/hls.js

v0.1.0

20 Jul 14:10
Compare
Choose a tag to compare

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

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

18 Jun 12:24
Compare
Choose a tag to compare

improvement

hls API:

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

20 May 11:11
Compare
Choose a tag to compare

Firefox : fix hls.currentLevel / hls.nextLevel not working when multiple buffer ranges are available in sourcebuffer
fix one level playlist (without master manifest) not working

v0.0.7

11 May 12:55
Compare
Choose a tag to compare

also flush backBuffer upon setting hls.nextLevel

v0.0.6

11 May 08:56
Compare
Choose a tag to compare

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

v0.0.5

05 May 12:07
Compare
Choose a tag to compare

introduce FRAG_PLAYING event, triggered when starting playback of a new fragment
update demo page (add button for level selection, log FRAG_PLAYING event and loadeddata event)
improve demuxer : handle NAL unit and AAC frames overlapping between PES packet

v0.0.4

14 Apr 16:45
Compare
Choose a tag to compare

introduce hls.firstLevel
fix hls.destroy() not working
demo page : adding canvas to monitor level switch

v0.0.3

14 Apr 11:50
Compare
Choose a tag to compare

decouple loadSource() from attachVideo()
these two actions could now be performed asynchronously.
i.e. the manifest could be retrieved and parsed without hls.js needing HTML video element.

v0.0.2

13 Apr 12:40
Compare
Choose a tag to compare

update hls.js/hls.min.js
fix lint

v0.0.1

13 Apr 12:09
Compare
Choose a tag to compare

initial release