fix(deps): update dependency hls.js to ^1.7.0 - #625
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/hls.js-1.x
branch
2 times, most recently
from
August 12, 2026 06:00
9e7bb6c to
829e7f2
Compare
renovate
Bot
force-pushed
the
renovate/hls.js-1.x
branch
from
August 12, 2026 21:58
829e7f2 to
910cf40
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^1.6.16→^1.7.0Release Notes
video-dev/hls.js (hls.js)
v1.7.0Compare Source
Summary
HLS.js v1.7.0 adds I-frame playlist support, improved playback of protected content, and CMCD v2 for standardized streaming analytics. It also delivers smoother audio-track switching, faster startup through parallel init-segment loading, and fixes across Low-Latency HLS, subtitles, interstitials, and live streaming.
Highlights to try in this release:
hls.createIFramePlayer()andloadMediaAt(time)to render frames from a stream's#EXT-X-I-FRAME-STREAM-INFvariants in a video element, or load an#EXT-X-I-FRAMES-ONLYmedia playlist directly.hls.nextAudioTrack(or pass{ flushImmediate: true }tosetAudioOptionfor an immediate one) to schedule a seamless audio-rendition change that avoids stalls and added live latency.cmcd.version: 2to enable it, and configurecmcd.eventTargetsto send standardized event reports to an external analytics endpoint. Not all CMCD v2 events, fields, and HLS.js features are supported as of this release.loopBackBufferFlushconfig option flushes the lower-quality back buffer on looped streams.abrSwitchIntervalthrottles automatic quality switches, anderrorPenaltyExpireMslets a level penalized by a load error be re-elected instead of being avoided for the rest of the session.liveMaxUnchangedPlaylistRefreshto error out withPLAYLIST_UNCHANGED_ERRORafter a set number of unchanged playlist reloads instead of polling a dead playlist indefinitely.appendTimeoutbounds aSourceBufferappend that never completes, whileMEDIA_SOURCE_REQUIRES_RESETandBUFFER_APPEND_NO_PROGRESSreport a MediaSource that has to be reset and fragments that append without ever buffering.Demo page
https://073606d7.hls-js-dev.pages.dev/demo/
Breaking changes
No public exports were removed and no runtime behavior changes are required to upgrade from v1.6 to v1.7. TypeScript consumers might see new compile errors where previously loose types have been narrowed. Each is listed with upgrade guidance in the migration guide:
https://github.com/video-dev/hls.js/blob/v1.7.0/MIGRATING.md#migrating-from-hlsjs-16-to-17
Some exported type dependencies ("eventemitter3", "@svta/cml-cmcd", "@svta/cml-utils", "@svta/cml-structured-field-values") have not been bundled with hls.d.ts. This will be addressed in an upcoming patch.
Changes since the last release
Features
#EXT-X-I-FRAME-STREAM-INFand#EXT-X-I-FRAMES-ONLY(#7757, #7791) @robwalchtfhddefault_sample_sizecorrectly (#7884) @rudemateoec(#7887) @cotid-qualabshls.nextAudioTrackAPI (#7575) @krseagerflushImmediateaudio switch option (#7795) @krseagerNew API, error details, and config options
Nothing below is required to upgrade. Every addition is opt-in. Each entry links to its v1.7.0 API documentation.
Config options
abrSwitchInterval(0) minimum seconds between automatic ABR switchesappendTimeout(Infinity) milliseconds before anappendBuffer()operation is treated as timed outemsgKLVSchemaUri(undefined) URN matched when extracting MISB KLV metadata from CMAFemsgboxes, defaulting tourn:misb:KLV:bin:1910.1errorPenaltyExpireMs(0) milliseconds after which a level penalized for a load error can be re-electedhandleMpegTsVideoIntegrityErrors('process'or'skip') how corrupt MPEG-TS video is handlediframeCacheLimit(2 * 1024 * 1024) bytes of I-frame data retained by I-frame player instancesliveMaxUnchangedPlaylistRefresh(Infinity, minimum2) unchanged live reloads beforePLAYLIST_UNCHANGED_ERRORloopBackBufferFlush(undefined) flush the lower-quality back buffer on an upswitch whenmedia.loopistruenextAudioTrackBufferFlushForwardOffset(0.25) forward audio buffer retained on a scheduled audio switchskipBufferHolePadding(0.1) padding added to the buffer-hole skip targetloggerId(undefined) prefixes debug logs for anHlsinstance (assetPlayerIdstill fills in for it)cmcdsub-options for CMCD v2:version(1or2),eventTargets(v2 event report endpoints),rtpSafetyFactor(5),loader, andreporterCallback(receives aCmcdCustomReporterforupdateCustomData()andrecordCustomEvent()).includeKeysis retyped fromstring[]toCmcdKey[]streamController,gapController,latencyController,id3TrackController, andiframeControllerDRM callback arguments
drmSystems[KEY-SYSTEM].generateRequestreceiveskeyContext & { decryptdata: LevelKey, reason: LicenseRequestReason }and returnsGenerateRequestFilterResultlicenseXhrSetupandlicenseResponseCallbackreceivekeyContext & { decryptdata: LevelKey }, andlicenseXhrSetupcan now return or resolve astringas well as aUint8ArrayMethods
hls.createIFramePlayer(configOverride?)returnsHlsIFramesOnly | null, a player that renders#EXT-X-I-FRAME-STREAM-INFvariants in a video elementhls.createImageIFramePlayer(configOverride?)returnsHlsImageIFramesOnly | null, a player for"mjpg"image I-frame variantsiframePlayer.loadMediaAt(time, options?)loads, appends, and seeks to the I-frame attime(optionsisPartial<LoadMediaAtOptions>)imagePlayer.attachImage(image)andimagePlayer.detachImage()attach or detach theHTMLImageElementused for renderinghls.setAudioOption(option, flushImmediate?)takes an optional second argument to switch immediately rather than on scheduleGetters and setters
hls.iframeVariantsgetLevelParsed[]of the multivariant playlist's I-frame variantshls.audioForwardBufferInfogetBufferInfo | nullfor the alternate audio bufferhls.nextAudioTrackget and set thenumberindex of the audio track scheduled for a seamless switchError details
This release adds three
Hls.ErrorDetailsmembers and no newHls.Eventsmembers.PLAYLIST_UNCHANGED_ERROR(NETWORK_ERROR, non-fatal) a live playlist hitliveMaxUnchangedPlaylistRefreshconsecutive unchanged reloadsBUFFER_APPEND_NO_PROGRESS(MEDIA_ERROR, non-fatal) an append cycle completed without increasing the fragment's buffered coverage, and addsappendsWithoutProgresstoErrorDataMEDIA_SOURCE_REQUIRES_RESET(MEDIA_ERROR) the MediaSource closed while attached or ended on an append error, withResetMediaSourceinerrorAction.flagsEvent payload and behavior changes
iframeVariantsadded toMANIFEST_LOADEDandMANIFEST_PARSEDchunkMeta: ChunkMetadataadded toFRAG_PARSEDandFRAG_BUFFEREDsubtitleTrackandclosedCaptionsadded toCUES_PARSEDflushImmediateadded toAudioSelectionOptionandAUDIO_TRACK_SWITCHINGpreviousFragadded toFRAG_CHANGED,parttoSUBTITLE_FRAG_PROCESSEDandFRAG_DECRYPTED,timestampOffsetstoINIT_PTS_FOUND,start,end, anderrortoBUFFER_FLUSHED, andcontexttoLEVEL_LOADED,AUDIO_TRACK_LOADED, andSUBTITLE_TRACK_LOADEDnetworkDetailson playlist, fragment, asset-list, and error events is narrowed fromanytoNullableNetworkDetailsFRAG_PARSING_USERDATAis only emitted when text samples are foundMEDIA_DETACHEDis now triggered synchronously bydetachMedia()andtransferMedia()hls.loadingEnabledisfalseonce the stream controller has stopped, not just afterstopLoad()Enhancements
Content protection (DRM)
setMediaKeysonce attached (#7879, #7615) @robwalchEXT-X-KEYPSSH (andencryptedevent initData) when HLS playlistKEYIDattribute is absent (#7775, #7415) @robwalch @yajin2021Audio switching, live, and buffering
hls.audioForwardBufferInfogetter for audio-specific forward buffer info (#7865) @robwalchStability and error handling
abrSwitchIntervalto throttle automatic level switches (#7669) @christriantserrorPenaltyExpireMshas passed (#7771) @Harshit661000143PLAYLIST_UNCHANGED_ERRORnon-fatal so playback can reach the end of the playlist (#7812) @robwalchMEDIA_SOURCE_REQUIRES_RESETerror so applications can handle it before automatic recovery (#7699) @christriantsTimed metadata and track management
subtitleTrackandclosedCaptionsto theCUES_PARSEDevent (#7843) @robwalchFRAG_PARSING_USERDATAwhen text samples are found (#7686) @XephyrKenny<track>elements overHTMLMediaElement.addTextTrack()which does not allow removal)Networking and resilience
xhrSetupand export loader context types (#7831 @robwalch, #7762 @dzianis-dashkevich)Performance, memory, and lifecycle
ResizeObserver, and makenextLevelSwitchmore responsive (#7108) @robwalchdestroy()(#7863)destroy()(#7864)Bug fixes
Playback start, seeking, and timestamps
recoverMediaError()whenautoStartLoadis disabled (#7693) @robwalchcomputeInitPtsrollover that caused a segment-0 loop (#7752) @christriantsMedia parsing and codecs
Audio tracks
AUDIO_TRACK_LOAD_TIMEOUTfrom following theerrorRetrypolicy inplaylistLoadPolicy(#7506) @CongCong-1228Content protection (DRM)
licenseXhrSetupreturn types and aselectKeySystemnested-Promise anti-pattern (#7888) @robwalchSubtitles and captions
X-TIMESTAMP-MAPheader with the media timeline (#7852) @robwalchTextTrackso the browser does not remove them (#7809) @robwalchLive, interstitials, and content steering
_HLS_start_offsetmissing from asset-list requests on live join (#7846, #7944)PRE,ONCEpreroll starting at the wrong position (#7908)media.play()returns no Promise (#7586) @malickyeuURI-REPLACEMENTHOSTto the hostname only (#7655)PARAMSafterPER-VARIANT-URIS(#7710)Live updates and playlist parsing
EXT-X-DISCONTINUITY-SEQUENCEdeclaration after the first media segment (#7750)endListFragmentsis stale (#7754) @alchemyyyhls.loadSource()(#7875) @robwalchmapPartIntersectionloop bounds (#7859) @sugarzycEXT-X-MEDIA-SEQUENCEdeclaration afterEXT-X-SKIP(#7905) @hongjun-baeBuffering, memory, recovery, startup, and teardown
QuotaExceededErrorby evicting the back buffer and retrying (#7749) @alchemyyypart.gapwritable and handle part muxing errors as gaps (#7814)BUFFER_APPEND_NO_PROGRESSerror detail (see Error details above)Regressions in development and v1.7 beta
autoStartLoad:falseand deferredstartPosition(#7903)Build and CI
networkDetailson playlist, fragment, and error events instead ofany(#7458) @ondreianreleaseenvironment for npm publish (#7544) @tjenkinsonDocumentation and README
Demo
hlsjsConfigquery param to populate the demo editor (#7473) @quentinmsSpecial thanks
Beyond the code contributors credited above, thank you to the community members whose issue reports drove fixes and improvements in this release:
Feedback
Provide feedback in GitHub Issues. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.
v1.6.18Compare Source
Summary
HLS.js v1.6.18 includes bug fixes previously scheduled to land in v1.7.
Changes Since The Last Release
(Cherry-picked from
45a1576of #7880 and #7700 - Fixes #7932) @robwalchDemo Page
https://12b4538a.hls-js-dev.pages.dev/demo/
Feedback
Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.
v1.6.17Compare Source
Summary
HLS.js v1.6.17 includes bug fixes previously scheduled to land in v1.7.
Changes Since The Last Release
hls.loadSource()(#7875) @robwalchDemo Page
https://e5f5c274.hls-js-dev.pages.dev/demo/
Feedback
Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.