Skip to content

Releases: video-dev/hls.js

v0.1.5

29 Jul 17:03
Compare
Choose a tag to compare

bugfixes

  • fix buffering stuck and FRAG_LOOP_LOADING_ERROR raised when stressing hls.currentLevel/hls.nextLevel setter

v0.1.4

29 Jul 10:24
Compare
Choose a tag to compare

bugfixes

  • fix video "ended" never triggered

v0.1.3

28 Jul 12:31
Compare
Choose a tag to compare

improvement

  • support redundant streams. level controller will switch to redundant streams in case of level/fragment loading error/timeout.

API change

  • also provide manifest loading stats in MANIFEST_PARSED event

bugfixes

  • ensure that FRAG_CHANGED event is triggered at startup, when first video frame is displayed and playback is paused.
  • tsdemuxer: support streams longer than 2^32/90000 = 13hours
  • handle playlist/fragments timestamp drift that could happen on long playlists
  • tsdemuxer : workaround any kind of timestamp looping happening on long streams

v0.1.2

23 Jul 09:11
Compare
Choose a tag to compare

API change

  • introduce hls.startLoad()``and``config.autoStartLoad.If set to false, it allows to manually start playlist/fragment loading after manifest has been parsed.

v0.1.1

20 Jul 15:35
Compare
Choose a tag to compare

disable FPS controller as it is broken.

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 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

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