@svta/cml-abr changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.3.0 - 2026-10-26
Added
ThroughputSelectorOptions.ignoreTimeToFirstByte. Whentrue, the selector ignores the time to first byte in every pick and in the starvation guard. Defaultfalse.
Changed
- The starvation guard of both selectors adds the time to first byte to the download time of a rung. The value is the mean of
responseStart - startTimeover the last four finished samples. The guard ignores a sample whoseresponseStartis missing or outside the response (#587) - When a call has
segmentDuration, the throughput selector picks the highest rung whose download fits in one segment. The download time is the time to first byte plus the transfer atthroughput * safetyFactor. Before, the pick was the highest rung at or belowthroughput * safetyFactor / playbackRate. - The BOLA startup pick and oscillation guard bound the pick by the download time of one segment at
throughput * safetyFactor, with a budget ofsegmentDuration / playbackRate. Before, both used the highest rung at or belowthroughput * safetyFactorand ignoredplaybackRate. The buffer score, the placeholder, and the delay do not change. - The README states that the throughput selector accepts a
selectcall during a download and that BOLA does not. - The README now has a When to use section. The section names the tasks that the package covers and the entry point of each task.
- The README no longer describes the peer dependencies. The website lists them from
package.jsonon the package page.
0.2.0 - 2026-10-21
Added
createBolaSelector, which creates a buffer-based selector that implements BOLA, as the BOLA selector RFC defines (#358)BolaSelector,BolaDecision,BolaSelectorOptions,BolaState, andBOLA_DEFAULT_BUFFER_TARGET(18)- The
starvationSafetyFactoroption ofcreateBolaSelector, andDEFAULT_STARVATION_SAFETY_FACTOR(0.7). The BOLA selector runs the starvation guard when the input hassegmentDuration.
0.1.1 - 2026-10-18
Changed
- The
@svta/cml-utilspeer dependency range is now^1.6.2instead of*. The published package no longer accepts a later major version of@svta/cml-utils.
Fixed
createThroughputSelectornow picks rung 0 for athroughputof 0 instead of the current rung. A negative value,NaN, orInfinitystill counts as unknown (#532)
0.1.0 - 2026-10-18
Added
- Initial implementation of the bitrate selector RFC
BitrateSelector, the type that every bitrate selection algorithm implements, with itsBitrateSelectorInput,LadderRung,BitrateDecision, andSegmentSampletypescreateThroughputSelector, which creates a rate-based selector with a safety factor, an upgrade factor for the hysteresis, and a two-pass starvation guardDEFAULT_SAFETY_FACTOR(0.9),DEFAULT_UPGRADE_FACTOR(0.7), andDEFAULT_STARVATION_TOLERANCE(4)