Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emergency switch to lower bandwidth rendition on aborted fragment load not working #6079

Closed
5 tasks done
CaseV7 opened this issue Jan 5, 2024 · 0 comments · Fixed by #6082
Closed
5 tasks done

Emergency switch to lower bandwidth rendition on aborted fragment load not working #6079

CaseV7 opened this issue Jan 5, 2024 · 0 comments · Fixed by #6082

Comments

@CaseV7
Copy link

CaseV7 commented Jan 5, 2024

What version of Hls.js are you using?

v1.5.0-beta.3

What browser (including version) are you using?

Firefox

What OS (including version) are you using?

MacOS 13.5.1

Test stream

No response

Configuration

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": false,
  "backBufferLength": 60,
   "fragLoadPolicy": {
    "default": {
      "maxTimeToFirstByteMs": 6000,
      "maxLoadTimeMs": 15000,
      "timeoutRetry": {
        "maxNumRetry": 10,
        "retryDelayMs": 0,
        "maxRetryDelayMs": 0
       },
      "errorRetry": {
        "maxNumRetry": 5,
        "retryDelayMs": 3000,
        "maxRetryDelayMs": 15000,
        "backoff": "linear"
      }
    }
  }
}

Additional player setup steps

The player is in "auto" mode.

Checklist

Steps to reproduce

  1. Load a stream as normal and get a full buffer
  2. Flip on Network link conditioner to cause timeouts (Setting the download "Bandwidth" to something small that allows small segments to transfer in less than 15 seconds, but causes high resolution segments to timeout)

Expected behaviour

HLS.js should emergency switch down to the lowest bandwidth rendition to continue playback.

What actually happened?

Playback stalls.

In the console there is an attempted switch to 0:

[abr] Fragment 264 of level 4 is loading too slowly; Time to underbuffer: 0.000 s Estimated load time for current fragment: 0.291 s Estimated load time for down switch fragment: 0.071 s TTFB estimate: -1 Current BW estimate: 406592.719 Kb/s New BW estimate: 406592.719 Kb/s Aborting and switching to level 0

Then there are a bunch of lines showing the player attempting to switch from 4->4 (which doesn't work).

[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 [abr-controller.ts:814:17](https://04777092.hls-js-dev.pages.dev/dist/src/controller/abr-controller.ts)

[info] > [abr] buffer is empty, optimal quality level 4

Console output

Error event: 
Object { type: "networkError", details: "fragLoadTimeOut", fatal: false, frag: {…}, error: Error, networkDetails: XMLHttpRequest, stats: {…}, errorAction: {…} }
​
details: "fragLoadTimeOut"
​
error: Error: Timeout after 6000ms
​
errorAction: Object { action: 5, flags: 0, retryCount: 6, … }
​
fatal: false
​
frag: Object { _url: "https://media-production.nebula.app/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDQ0ODk3MDh9.3hbZer9X_cpqpTOYzR52d5yqRlDKcYzwTZqpwgROAJ0/nebula-content/videos/74cd1841-5714-4480-b0d1-51da9310fdbd/video_upload:fb88040a-73c9-49ba-8fc2-f9b3de3cd0d1/audio/en/mp4a.40.2/seg-266.m4s", baseurl: "https://media-production.nebula.app/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDQ0ODk3MDh9.3hbZer9X_cpqpTOYzR52d5yqRlDKcYzwTZqpwgROAJ0/nebula-content/videos/74cd1841-5714-4480-b0d1-51da9310fdbd/video_upload:fb88040a-73c9-49ba-8fc2-f9b3de3cd0d1/audio/en/mp4a.40.2/media.m3u8", relurl: "seg-266.m4s", … }
​
networkDetails: XMLHttpRequest { readyState: 0, timeout: 0, withCredentials: false, … }
​
stats: Object { aborted: true, loaded: 0, retry: 0, … }
​
type: "networkError"<prototype>: Object { … }
main.js:734:12
Error event: 
Object { type: "mediaError", details: "bufferStalledError", fatal: false, error: Error, buffer: 0, errorAction: {…} }
​
buffer: 0
​
details: "bufferStalledError"
​
error: Error: Playback stalling at @1584.019875 due to low buffer ({"len":0,"start":1584.019875,"end":1584.019875})
​
errorAction: Object { action: 0, flags: 0 }
​
fatal: false
​
type: "mediaError"<prototype>: Object { … }
main.js:734:12
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[log] > [stream-controller]: Level 0 loaded [0,379][part-379--1], cc [0, 0] duration:2276.5833333333335 stream-controller.ts:638:9
[log] > [stream-controller]: WAITING_LEVEL->IDLE base-stream-controller.ts:1779:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4 abr-controller.ts:588:11
[log] > [stream-controller]: Loading fragment initSegment cc: 0 of [0-379] level: 0, target: 0 base-stream-controller.ts:746:9
[log] > [stream-controller]: IDLE->FRAG_LOADING base-stream-controller.ts:1779:11
[log] > [stream-controller]: FRAG_LOADING->IDLE base-stream-controller.ts:1779:11
[info] > [abr] switch candidate:4->4 adjustedbw(395533397)-bitrate=376465802 ttfb:0.0 avgDuration:6.0 maxFetchDuration:4.0 fetchDuration:0.3 firstSelection:false codecSet:avc1,mp4a videoRange:SDR hls.loadLevel:0 abr-controller.ts:814:17
[info] > [abr] buffer is empty, optimal quality level 4

Chrome media internals output

No response

@CaseV7 CaseV7 added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Jan 5, 2024
@robwalch robwalch removed the Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. label Jan 5, 2024
robwalch added a commit that referenced this issue Jan 6, 2024
@robwalch robwalch added this to the 1.5.0 milestone Jan 6, 2024
robwalch added a commit that referenced this issue Jan 6, 2024
robwalch added a commit that referenced this issue Jan 8, 2024
robwalch added a commit that referenced this issue Jan 8, 2024
Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves #6079
robwalch added a commit that referenced this issue Jan 8, 2024
Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves #6079
robwalch added a commit that referenced this issue Jan 8, 2024
Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves #6079
robwalch added a commit that referenced this issue Jan 9, 2024
Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves #6079
eowino added a commit to DiceTechnology/hls.js that referenced this issue Jan 15, 2024
* chore(deps): update dependency chromedriver to v118 (video-dev#5919)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency lint-staged to v15 (video-dev#5920)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update tjenkinson/gh-action-auto-merge-dependency-updates action to v1.3.5 (video-dev#5922)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency lint-staged to v15.0.1

* chore(deps): update dependency lint-staged to v15.0.2

* chore(deps): update dependency chromedriver to v118.0.1

* chore(deps): update dependency @rollup/plugin-replace to v5.0.4

* chore(deps): update dependency wrangler to v3.13.2

* chore(deps): update dependency wrangler to v3.14.0

* chore(deps): update dependency @types/chai to v4.3.9

* chore(deps): update dependency @rollup/plugin-commonjs to v25.0.7

* chore(deps): update typescript-eslint monorepo to v6.8.0

* chore(deps): update typescript-eslint monorepo to v6.9.0

* chore(deps): update dependency @types/mocha to v10.0.3

* chore(deps): update dependency @types/chart.js to v2.9.39

* chore(deps): update dependency @types/sinon-chai to v3.2.11

* chore(deps): update dependency sinon to v16.1.1

* chore(deps): update dependency eslint-plugin-import to v2.29.0

* chore(deps): update dependency sinon to v16.1.3

* chore(deps): update dependency eslint to v8.52.0

* chore(deps): update dependency wrangler to v3.15.0

* chore(deps): update dependency @rollup/plugin-replace to v5.0.5

* Add named exports for classes and enums to ESM output
Resolves video-dev#5630

* chore(deps): update dependency @microsoft/api-documenter to v7.23.10

* chore(deps): update dependency @microsoft/api-extractor to v7.38.1

* chore(deps): update dependency @microsoft/api-documenter to v7.23.11

* chore(deps): update dependency @microsoft/api-extractor to v7.38.2

* chore(deps): update typescript-eslint monorepo to v6.9.1

* chore(deps): update typescript-eslint monorepo to v6.10.0

* chore(deps): update dependency eslint to v8.53.0

* Update README.md

* Update README.md

* Update README.md

* chore(deps): update dependency @types/mocha to v10.0.4

* chore(deps): update dependency selenium-webdriver to v4.15.0

* chore(deps): update dependency @types/chart.js to v2.9.40

* chore(deps): update dependency @types/chai to v4.3.10

* chore(deps): update dependency @types/sinon-chai to v3.2.12

* Fix detach attach behavior dropping one of two SourceBuffers

* Use Content Steering Pathways to manage Redundant Streams (video-dev#5970)

* Use Content Steering Pathways to manage Redundant Streams and resolve their errors
* Ensure correct Pathway penalization on Playlist loading errors
* Do not reload Content Steering manifest while media is ended or detached

* chore(deps): update babel monorepo to v7.23.3

* Remove use of `self` from `enableLogger` (video-dev#5936)

Fixes video-dev#5905

* Refactor CMCD controller and tests to use the common media library utilities (video-dev#5903)

* refactor CMCD controller and test to use common media library
* update build script to transpile the @svta package
* add ability to specify cmcd keys

* chore(deps): update dependency lint-staged to v15.1.0

* chore(deps): update dependency @microsoft/api-extractor to v7.38.3

* chore(deps): update typescript-eslint monorepo to v6.11.0

* chore(deps): update typescript-eslint monorepo to v6.12.0

* chore(deps): update dependency @microsoft/api-documenter to v7.23.12

* Fix regression introduced with video-dev#5689 Lazy init CEA608 parsers found in video-dev#5953 (video-dev#5986)

* Fix issues with long cea608 captions. video-dev#5952

In mp4-tools.ts

* Fixed parsing for sei_message, by always consuming the entire message,
  before parsing the message according to payload_type

* Fixed payloadType / payloadSize parsing to ensure they never exceed
  255, as the field is restricted to 8 bytes.

* chore(deps): update dependency node to v20 (video-dev#5928)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency sinon to v17 (video-dev#5944)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update actions/setup-node action to v4 (video-dev#5948)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency chromedriver to v119 [security] (video-dev#5965)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency prettier to v3.1.0 (video-dev#5983)

* chore(deps): update dependency prettier to v3.1.0

* Run prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>

* Configure typescript, eslint and prettier caches (video-dev#5990)

* Rollup 4 (video-dev#5886)

* Update karma-rollup-preprocessor to version that works in watch mode (video-dev#5991)

* chore(deps): update dependency @svta/common-media-library to v0.5.1

* chore(deps): update dependency wrangler to v3.16.0

* chore(deps): update dependency wrangler to v3.17.1

* chore(deps): update dependency rollup to v4.5.2

* chore(deps): update dependency eslint to v8.54.0

* API enhancements for audio and subtitle selection
Resolves video-dev#5532

* Remove note about "canplay" that references code removed from the example (related to autoplay policy)
Closes video-dev#3153

* Fix issues parsing sei_messages

In mp4-tools.ts

* Fixed parsing for sei_message to remove the incorrect masking to 8
  bits for the sei message size.

* Remove SEI payload type masking

* chore(deps): update dependency @types/chart.js to v2.9.41

* chore(deps): update dependency @types/chai to v4.3.11

* chore(deps): update dependency @types/mocha to v10.0.5

* chore(deps): update dependency @types/mocha to v10.0.6

* Expand isSupported check to test other codecs
Resolves video-dev#6004

* Add `videoPreference` config option for HDR/SDR VIDEO-RANGE selection and priority
Resolves video-dev#2489

* Recover from media error after MediaSource ended following SourceBuffer update error event

* Fix exception on 2019 Tizen where MediaCapabilities is undefined

* Add `isMSESupported` check
Add named exports for and expose statically: `isSupported`, `isMSESupported`, and `getMediaSource`

* chore(deps): update dependency @rollup/plugin-alias to v5.1.0

* chore(deps): update dependency rollup to v4.6.0

* chore(deps): update dependency rollup to v4.6.1

* chore(deps): update typescript-eslint monorepo to v6.13.0

* chore(deps): update typescript-eslint monorepo to v6.13.2

* chore(deps): update babel monorepo to v7.23.5

* Remove use of deprecated WebKitDataCue and hand Cue instantiation and custom property setting errors
Fixes video-dev#6020

* Add polyfill for isSafeInteger

* Fix esds box parsing for for usac audio

* Update README Compatibility section

* chore(deps): update dependency @svta/common-media-library to v0.6.0

* chore(deps): update dependency wrangler to v3.18.0

* chore(deps): update dependency wrangler to v3.19.0

* chore(deps): update dependency eslint to v8.55.0

* chore(deps): update dependency eslint-config-prettier to v9.1.0

* chore(deps): update dependency lint-staged to v15.2.0

* chore(deps): update dependency @microsoft/api-documenter to v7.23.13

* chore(deps): update dependency @microsoft/api-extractor to v7.38.4

* chore(deps): update dependency @microsoft/api-extractor to v7.38.5

* chore(deps): update dependency @microsoft/api-documenter to v7.23.14

* Use addEventListener for MediaKeySession events
video-dev#6034

* chore(deps): update dependency selenium-webdriver to v4.16.0

* fix(latency-controller): only sync live stream

* chore(deps): update actions/github-script action to v7 (video-dev#5996)

* Ignore #EXT-X-INDEPENDENT-SEGMENTS so that it is not added to Fragment tagList

* Fix handling of the DATERANGE END-ON-NEXT attribute

* chore(deps): update dependency rollup to v4.7.0

* chore(deps): update dependency rollup to v4.9.0

* Store deployments in json file, and generate md and txt file from that (video-dev#6044)

* Fix deployment branch update commit messages

Just noticed this has been broken for a while

* Fix path to deployment readme script

* Fix path to script again

* Add the final `/` at the end of deployment url

* Remove tab at end of deployments readme

Which is causing the list to be really spaced out for some reason

* chore(deps): update dependency typescript to v5.3.3 (video-dev#5999)

* chore(deps): update dependency typescript to v5.3.3

* Include api extractor changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>

* Exclude PS4 from TextDecoder use

On PS4 TextDecoder is defined but it is partially implemented and does not function properly. This will force manual decoding approach for PS4 platform.

* Ignore #EXT-X-INDEPENDENT-SEGMENTS (video-dev#6047)

Fixes video-dev#6039

* chore(deps): update babel monorepo to v7.23.6

* chore(deps): update dependency prettier to v3.1.1

* chore(deps): update typescript-eslint monorepo to v6.14.0

* chore(deps): update typescript-eslint monorepo to v6.15.0

* chore(deps): update dependency wrangler to v3.20.0

* chore(deps): update dependency wrangler to v3.22.0

* Fix base-stream-controller onHandlerDestroying callback evocation
Remove circular references left after destroying player

* chore(deps): update dependency eslint-plugin-import to v2.29.1

* chore(deps): update dependency eslint to v8.56.0

* chore(deps): update dependency @svta/common-media-library to v0.6.1

* chore(deps): update dependency rollup to v4.9.1

* chore(deps): update dependency @microsoft/api-documenter to v7.23.15

* chore(deps): update dependency @microsoft/api-extractor to v7.39.0

* chore(deps): update dependency chromedriver to v120 (video-dev#6052)

* chore(deps): update github/codeql-action action to v3 (video-dev#6058)

* chore(deps): update dependency wrangler to v3.22.1

* Abort fetch loader as long as loading has not ended
Fixes video-dev#6054

* chore(deps): update dependency chromedriver to v120.0.1

* chore(deps): update typescript-eslint monorepo to v6.16.0

* chore(deps): update typescript-eslint monorepo to v6.17.0

* chore(deps): update babel monorepo to v7.23.7

* chore(deps): update dependency rollup to v4.9.2

* chore(deps): update dependency rollup to v4.9.4

* Fix codec parsing for AVC streams (video-dev#6077)

* Force auto level on emergency switch down (video-dev#6082)

Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves video-dev#6079

* chore(deps): update dependency wrangler to v3.22.2

* chore(deps): update dependency wrangler to v3.22.4

* chore(deps): update dependency @microsoft/api-documenter to v7.23.16

* chore(deps): update dependency @microsoft/api-extractor to v7.39.1

* Null CMCD callbacks on destroy (video-dev#6098)

* Fix regression where subtitle options with AUTOSELECT and FORCED are enabled at start (video-dev#6094)

* Do not enable subtitle options with AUTOSELECT=YES attribute
* Update and add initial selection tests for subtitle-controller
* Only pick forced subtitle option if it is the only one
Add default field to audio and subtitle selection options and forced field to subtitle selection option
* Address TextTrack change event overriding subtitle preference
Fix _TRACKS_UPDATED and _TRACK_SWITCH event order when preference is selected
* Do not auto select subtitle options with FORCED=YES attribute

* Update artifact actions (video-dev#6099)

* Update functional tests to run on Safari using MacOS 13 (video-dev#6101)

* Update functional tests to run on Safari using MacOS 13

* Skip smooth switch test in Safari on streams with overlapping appends

* Omit VOD "ended" event tests with overlapping appends from Safari

* chore(deps): update dependency chai to v4.4.0

* chore(deps): update dependency chai to v4.4.1

* chore(deps): update typescript-eslint monorepo to v6.18.0

* chore(deps): update typescript-eslint monorepo to v6.18.1

* Use AAC SBR (HE-AAC) workaround on Pale Moon (video-dev#6111)

---------

Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Rob Walch <rwalch@apple.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Casey Occhialini <1508707+littlespex@users.noreply.github.com>
Co-authored-by: Joey Ekstrom <jekstrom@xumo.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: Evan Burton <eburton2@apple.com>
Co-authored-by: 曾智锋 <zengzhifeng@cvte.com>
Co-authored-by: Agajan Jumakuliyev <agajan.tm@gmail.com>
Co-authored-by: Jakub Perżyło <qizot1405@gmail.com>
Co-authored-by: Pat Nafarrete <pnaf@users.noreply.github.com>
eowino added a commit to DiceTechnology/hls.js that referenced this issue Apr 5, 2024
* chore(deps): update typescript-eslint monorepo to v6.17.0

* chore(deps): update babel monorepo to v7.23.7

* chore(deps): update dependency rollup to v4.9.2

* chore(deps): update dependency rollup to v4.9.4

* Fix codec parsing for AVC streams (video-dev#6077)

* Force auto level on emergency switch down (video-dev#6082)

Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves video-dev#6079

* chore(deps): update dependency wrangler to v3.22.2

* chore(deps): update dependency wrangler to v3.22.4

* chore(deps): update dependency @microsoft/api-documenter to v7.23.16

* chore(deps): update dependency @microsoft/api-extractor to v7.39.1

* Null CMCD callbacks on destroy (video-dev#6098)

* Fix regression where subtitle options with AUTOSELECT and FORCED are enabled at start (video-dev#6094)

* Do not enable subtitle options with AUTOSELECT=YES attribute
* Update and add initial selection tests for subtitle-controller
* Only pick forced subtitle option if it is the only one
Add default field to audio and subtitle selection options and forced field to subtitle selection option
* Address TextTrack change event overriding subtitle preference
Fix _TRACKS_UPDATED and _TRACK_SWITCH event order when preference is selected
* Do not auto select subtitle options with FORCED=YES attribute

* Update artifact actions (video-dev#6099)

* Update functional tests to run on Safari using MacOS 13 (video-dev#6101)

* Update functional tests to run on Safari using MacOS 13

* Skip smooth switch test in Safari on streams with overlapping appends

* Omit VOD "ended" event tests with overlapping appends from Safari

* chore(deps): update dependency chai to v4.4.0

* chore(deps): update dependency chai to v4.4.1

* chore(deps): update typescript-eslint monorepo to v6.18.0

* chore(deps): update typescript-eslint monorepo to v6.18.1

* Use AAC SBR (HE-AAC) workaround on Pale Moon (video-dev#6111)

* Patch/v1.4.0 doris (#79)

* Patch/v1.3.3 doris (#76)

* MPEG-TS probe improvement (video-dev#5186)

Fixes video-dev#5183

* Support AES-128 Encrypted Low-Latency HLS Parts (video-dev#5214)

* Log error and detach if MediaSource 'sourceopen' is interrupted (video-dev#5206)

* fix: merge DiceTechnology/hls.js changes.

* fix: Transition from Clear to DRM content

* fix:Sometimes play AES-128 stream failed

* test: modify test case

---------

Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>

* 1.3.4

* docs: modify api doc.

* chore: Modify version.

---------

Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Hongfei Huang <hongfei.huang@endeavorstreaming.com>

* Patch/v1.4.1 doris (#80)

* reference v1 jsdelivr url in v1 api doc

people should be using that over latest so that things don't break when we release v2 with potentially breaking changes. Main readme already used v1 url

* chore(deps): update dependency @rollup/plugin-alias to v4.0.4

* chore(deps): update dependency @microsoft/api-documenter to v7.21.7

* chore(deps): update dependency @rollup/plugin-typescript to v11.1.0

* chore(deps): update dependency @rollup/plugin-node-resolve to v15.0.2

* chore(deps): update dependency wrangler to v2.15.0

* chore(deps): update dependency @rollup/plugin-alias to v5

* Fix readme logos & add Mux logo (video-dev#5390)

* docs: replace broken logo with Mux

* docs: fix TED logo

* docs: replace broken logos

* chore(deps): update dependency lint-staged to v13.2.1

* chore(deps): update dependency typescript to v5.0.4

* chore(deps): update dependency eslint to v8.38.0

* chore(deps): update dependency es-check to v7.1.1

* chore(deps): update dependency @rollup/plugin-terser to v0.4.1

* chore(deps): update typescript-eslint monorepo to v5.58.0

* chore(deps): update dependency semver to v7.4.0

* chore(deps): update dependency @rollup/plugin-commonjs to v24.1.0

* chore(deps): update dependency semver to v7.5.0

* chore(deps): update typescript-eslint monorepo to v5.59.0

* Setup npm provenance statements (video-dev#5406)

* give publish job permissions for npm provenance

* add `—provenance` flag to `npm publish`

* remove unneeded `contents` permission

* chore(deps): update dependency chromedriver to v112 (video-dev#5393)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>

* set `internalChecksAsSuccess` renovate option

* chore(deps): update dependency wrangler to v2.15.1

* set renovate `prNotPendingHours` to 0

* chore(deps): update dependency wrangler to v2.16.0

* chore(deps): update dependency rollup to v3.20.3

* chore(deps): update dependency rollup to v3.20.7

* chore(deps): update dependency rollup to v3.21.0

* chore(deps): update tjenkinson/gh-action-auto-merge-dependency-updates digest to 01b22a9 (video-dev#5324)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* tweak renovate options again

see renovatebot/renovate#21720

* reset remainderData in resetContiguity (video-dev#5410)

* docs: add Media Chrome for custom UI (video-dev#5391)

* Perform playlist retries before redundant failover and level switch (video-dev#5420)

(Pathway switch is still prioritized over retries when available)
Fixes video-dev#5419

* chore(deps): update dependency sinon to v15.0.4

* chore(deps): update dependency karma-chrome-launcher to v3.2.0

* chore(deps): update dependency selenium-webdriver to v4.9.0

* Update audio-track-controller.ts (video-dev#5431)

Sometimes STABLE-RENDITION_ID of tracks is undefined. Adding a guard for it, otherwise audio track doesn't switch.

* chore(deps): update dependency eslint to v8.39.0

* chore(deps): update dependency karma to v6.4.2

* chore(deps): update dependency prettier to v2.8.8

* Fix incorrect HEVC main profile codec id (video-dev#5438)

* fix: move `types` condition to the front (video-dev#5439)

* chore(deps): update dependency wrangler to v2.17.0

* chore(deps): update typescript-eslint monorepo to v5.59.1

* chore(deps): update typescript-eslint monorepo to v5.59.2

* Fix Low-Latency part and fragment tracking (video-dev#5423)

* Fix Low-Latency part and fragment tracking regression introduced in video-dev#5102

* Fix issues with reuse of player instance when loading additional assets
Fixes video-dev#5425

* Reset SourceBuffers in `loadSource()` when the asset URL has changed, or buffer-controller setup has begun

* Remove old parts from the fragment tracker on frag buffered

* Remove old parts from the fragment tracker on frag buffered

* Reset eme-controller key format promise on manifest loading

* chore(deps): update dependency lint-staged to v13.2.2

* Always use MediaSource returned by utils module (video-dev#5448)

* chore(deps): update dependency @microsoft/api-documenter to v7.22.0

* chore(deps): update dependency @microsoft/api-documenter to v7.22.4

* chore: Modify version

* chore: remove package-lock.json

---------

Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: Wesley Luyten <me@wesleyluyten.com>
Co-authored-by: Billy Chiu <billychiu98@gmail.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Agajan J <agajan.tm@gmail.com>
Co-authored-by: Sta Zhu <zhusidayoyo@hotmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: yajin2021 <gene.jin@endeavorstreaming.com>

* Update DiceTechnology/hls.js to v1.4.3(#81)

* Patch/v1.4.4 doris (#82)

* reference v1 jsdelivr url in v1 api doc

people should be using that over latest so that things don't break when we release v2 with potentially breaking changes. Main readme already used v1 url

* chore(deps): update dependency @rollup/plugin-alias to v4.0.4

* chore(deps): update dependency @microsoft/api-documenter to v7.21.7

* chore(deps): update dependency @rollup/plugin-typescript to v11.1.0

* chore(deps): update dependency @rollup/plugin-node-resolve to v15.0.2

* chore(deps): update dependency wrangler to v2.15.0

* chore(deps): update dependency @rollup/plugin-alias to v5

* Fix readme logos & add Mux logo (video-dev#5390)

* docs: replace broken logo with Mux

* docs: fix TED logo

* docs: replace broken logos

* chore(deps): update dependency lint-staged to v13.2.1

* chore(deps): update dependency typescript to v5.0.4

* chore(deps): update dependency eslint to v8.38.0

* chore(deps): update dependency es-check to v7.1.1

* chore(deps): update dependency @rollup/plugin-terser to v0.4.1

* chore(deps): update typescript-eslint monorepo to v5.58.0

* chore(deps): update dependency semver to v7.4.0

* chore(deps): update dependency @rollup/plugin-commonjs to v24.1.0

* chore(deps): update dependency semver to v7.5.0

* chore(deps): update typescript-eslint monorepo to v5.59.0

* Setup npm provenance statements (video-dev#5406)

* give publish job permissions for npm provenance

* add `—provenance` flag to `npm publish`

* remove unneeded `contents` permission

* chore(deps): update dependency chromedriver to v112 (video-dev#5393)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>

* set `internalChecksAsSuccess` renovate option

* chore(deps): update dependency wrangler to v2.15.1

* set renovate `prNotPendingHours` to 0

* chore(deps): update dependency wrangler to v2.16.0

* chore(deps): update dependency rollup to v3.20.3

* chore(deps): update dependency rollup to v3.20.7

* chore(deps): update dependency rollup to v3.21.0

* chore(deps): update tjenkinson/gh-action-auto-merge-dependency-updates digest to 01b22a9 (video-dev#5324)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* tweak renovate options again

see renovatebot/renovate#21720

* reset remainderData in resetContiguity (video-dev#5410)

* docs: add Media Chrome for custom UI (video-dev#5391)

* Perform playlist retries before redundant failover and level switch (video-dev#5420)

(Pathway switch is still prioritized over retries when available)
Fixes video-dev#5419

* chore(deps): update dependency sinon to v15.0.4

* chore(deps): update dependency karma-chrome-launcher to v3.2.0

* chore(deps): update dependency selenium-webdriver to v4.9.0

* Update audio-track-controller.ts (video-dev#5431)

Sometimes STABLE-RENDITION_ID of tracks is undefined. Adding a guard for it, otherwise audio track doesn't switch.

* chore(deps): update dependency eslint to v8.39.0

* chore(deps): update dependency karma to v6.4.2

* chore(deps): update dependency prettier to v2.8.8

* Fix incorrect HEVC main profile codec id (video-dev#5438)

* fix: move `types` condition to the front (video-dev#5439)

* chore(deps): update dependency wrangler to v2.17.0

* chore(deps): update typescript-eslint monorepo to v5.59.1

* chore(deps): update typescript-eslint monorepo to v5.59.2

* Fix Low-Latency part and fragment tracking (video-dev#5423)

* Fix Low-Latency part and fragment tracking regression introduced in video-dev#5102

* Fix issues with reuse of player instance when loading additional assets
Fixes video-dev#5425

* Reset SourceBuffers in `loadSource()` when the asset URL has changed, or buffer-controller setup has begun

* Remove old parts from the fragment tracker on frag buffered

* Remove old parts from the fragment tracker on frag buffered

* Reset eme-controller key format promise on manifest loading

* chore(deps): update dependency lint-staged to v13.2.2

* Always use MediaSource returned by utils module (video-dev#5448)

* chore(deps): update dependency @microsoft/api-documenter to v7.22.0

* chore(deps): update dependency @microsoft/api-documenter to v7.22.4

* chore(deps): update babel monorepo to v7.21.5

* chore(deps): update dependency @microsoft/api-extractor to v7.34.5

* chore(deps): update dependency @babel/core to v7.21.8

* chore(deps): update dependency @microsoft/api-extractor to v7.34.6

* chore(deps): update dependency @microsoft/api-extractor to v7.34.8

* chore(deps): update dependency @types/chai to v4.3.5

* chore(deps): update dependency rollup to v3.21.1

* chore(deps): update dependency rollup to v3.21.5

* chore(deps): update dependency eventemitter3 to v5.0.1

* fix: partial audiovideo fragments not being treated as partial (video-dev#5460)

Fragments which contain both audio and video also need to be checked if
they are partial. We check for them individually, but there are cases
when only the one flag is set.

* Fix AV desync regression in v1.4.0 when mp4 audio track timestamps start before video track timestamps (video-dev#5471)

Fixes video-dev#5452

* chore(deps): update dependency wrangler to v2.18.0

* chore(deps): update dependency chromedriver to v112.0.1

* chore(deps): update dependency wrangler to v2.20.0

* Allow live level loading to recover from net::ERR_NETWORK_IO_SUSPENDED errors (video-dev#5473)

* Remove startLoad() as recovery method from API.md doc (video-dev#5478)

video-dev#5476

* Fix first fragment ejection tracking (video-dev#5480)

Fixes video-dev#5482

* Provide light ESM dist file (video-dev#5486)

* Playlist loading errors are fatal after all levels and retries exhausted (video-dev#5498)

Fixes video-dev#5488

* Adjust parsed TS AVC samples when start PTS overlaps with last DTS (video-dev#5500)

Resolves video-dev#5477

* Fix TS probing false positives by requiring 2-3 packet start bytes to be matched or more if first byte does not match sync word (video-dev#5503)

Fixes video-dev#5501

* Use input timescale when normalizing metadata cue timestamps (video-dev#5505)

Fixes video-dev#5504

* chore: change package.json

---------

Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: Wesley Luyten <me@wesleyluyten.com>
Co-authored-by: Billy Chiu <billychiu98@gmail.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Agajan J <agajan.tm@gmail.com>
Co-authored-by: Sta Zhu <zhusidayoyo@hotmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: Troy <troybensonsa@gmail.com>
Co-authored-by: Chocobozzz <chocobozzz@cpy.re>

* 1.5.1

* chore(deps): update dependency rollup to v4.9.5

* chore(deps): update dependency @rollup/plugin-typescript to v11.1.6

* chore(deps): update dependency @babel/preset-env to v7.23.8

* chore(deps): update typescript-eslint monorepo to v6.19.0

* chore(deps): update typescript-eslint monorepo to v6.19.1

* Use WebCrypto by default and only use software as a fallback if enabled (video-dev#6015)

Fixes use of  `enableSoftwareAES` to match the docs and the intended behavior when added in video-dev#99

* Null inline class JavaScript Event callback properties on destroy (video-dev#6102)

* chore(deps): update dependency @microsoft/api-documenter to v7.23.17

* chore(deps): update dependency @microsoft/api-documenter to v7.23.18

* chore(deps): update dependency @microsoft/api-documenter to v7.23.19

* chore(deps): update dependency wrangler to v3.22.5

* chore(deps): update dependency wrangler to v3.24.0

* Remove user-agent check from "mp4a.40.34" to "mp3" and "audio/mpeg" fallback (video-dev#6130)

Fixes video-dev#6125

* Adding AES-256 and AES-256-CTR encryption modes

* fix: generate silent aac frame based on original codec (video-dev#6123)

* Lazy init CEA608 parsers (2) (video-dev#6127)

* Use average for level sorting and abandon rules check (video-dev#6135)

Fixes video-dev#6122

* User unique logger configurations across instances of Hls(js)
Resolves video-dev#2461

* chore(deps): update dependency @svta/common-media-library to v0.6.2

* Use average for level sorting and abandon rules check (video-dev#6135) (video-dev#6146)

Fixes video-dev#6122

* Add MEDIA_ENDED event (forwards "ended" event, or emits when stalling begins near end of VOD) (video-dev#6141)

* chore(deps): update dependency chromedriver to v120.0.2

* chore(deps): update dependency rollup to v4.9.6

* feat: add support for CMCD nor (video-dev#6091)

* feat: add support for CMCD nor
* deps: update @svta/common-media-library to version 0.6.2
Resolves video-dev#6088

* fix(Remuxer): Safari segment overlap ensure PTS order (video-dev#6132)

* fix(Remuxer): Safari segment overlap ensure PTS alignment

* Fix regression in hls.light.js selection (video-dev#6155)

Fixes video-dev#6151

* chore(deps): update dependency selenium-webdriver to v4.17.0

* chore(deps): update dependency @microsoft/api-extractor to v7.39.2

* chore(deps): update dependency @microsoft/api-extractor to v7.39.4

* Fix regression in hls.light.js selection (video-dev#6157)

Fixes video-dev#6151

* chore(deps): update dependency husky to v9 (video-dev#6165)

* chore(deps): update dependency husky to v9

* Make changes for new husky

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>

* chore(deps): update actions/cache action to v4 (video-dev#6143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency prettier to v3.2.4 (video-dev#6124)

* chore(deps): update dependency prettier to v3.2.4

* Run prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>

* Disable `AppleAdvancedHevcAvcHls` stream for now due to cors errors (video-dev#6176)

* chore(deps): update babel monorepo to v7.23.9

* chore(deps): update dependency @microsoft/api-documenter to v7.23.20

* chore(deps): update dependency wrangler to v3.25.0

* chore(deps): update dependency chromedriver to v121 (video-dev#6162)

* chore(deps): update dependency wrangler to v3.26.0

* chore(deps): replace dependency npm-run-all with npm-run-all2 5.0.0 (video-dev#6153)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency npm-run-all2 to v5.0.2

* chore(deps): update dependency husky to v9.0.7

* chore(deps): update dependency husky to v9.0.10

* chore(deps): update typescript-eslint monorepo to v6.20.0

* chore(deps): update typescript-eslint monorepo to v6.21.0

* Revert "Disable `AppleAdvancedHevcAvcHls` stream for now due to cors errors (…" (video-dev#6187)

This reverts commit e3f4d4d.

* Use main playlist details to determine start position of audio and subtitle streaming controllers
Fixes video-dev#6126

* Fix regression that removed (unofficial) support for `startLevel` above max level index
Fixes video-dev#6172

* Account for overlapping sidx subsegment durations by parsing earlierstPresentationTime
Fixes video-dev#6191

* Use main playlist details to determine start position of audio and subtitle streaming controllers
Fixes video-dev#6126

(cherry picked from commit 35c773d)

* Fix regression that removed (unofficial) support for `startLevel` above max level index
Fixes video-dev#6172

(cherry picked from commit 88d54a9)

* Account for overlapping sidx subsegment durations by parsing earlierstPresentationTime
Fixes video-dev#6191

(cherry picked from commit aadb239)

* Handle ManagedMediaSource endStreaming events without aborting requests

* Feature/mpeg ts hevc (video-dev#5847)

* Modify video parser and ts-demuxer to support NALu streams other than AVC
* Process HEVC in mpeg-ts container
---------
Co-authored-by: vladimir.vyatkin <vladimir.vyatkin@portal59.ru>

* Do not include HEVC in TS support in hls.light (compiled out by __USE_M2TS_ADVANCED_CODECS__)

* chore(deps): update dependency lint-staged to v15.2.1

* chore(deps): update dependency lint-staged to v15.2.2

* Update API.md for CMCD `includeKeys`

* Global exported logger uses the log methods from last call to `enableLogs`
Follow up to video-dev#6131

* Skip segment and part directives when last LL-HLS response is older than three target durations
Fix Media Playlist 'advanced' state when no Multivariant Playlist is provided
Related to video-dev#6076

* Switch between part and fragment loading at start and on segment boundary appends

* Fix subtitle stream controller buffered TimeRanges

* chore(deps): update dependency semver to v7.6.0

* chore(deps): update dependency @microsoft/api-documenter to v7.23.21

* chore(deps): update dependency @microsoft/api-documenter to v7.23.23

* chore(deps): update dependency @microsoft/api-extractor to v7.39.5

* chore(deps): update dependency @microsoft/api-extractor to v7.40.1

* Fix subtitle stream controller buffered TimeRanges

* chore(deps): update dependency wrangler to v3.27.0

* chore(deps): update dependency wrangler to v3.28.2

* chore(deps): update dependency mocha to v10.3.0

* Fix issues with detached and destroyed level selection (video-dev#6216)

* Fix issues with detached and destroyed level selection (video-dev#6216)

* chore(deps): update dependency rollup to v4.10.0

* chore(deps): update dependency rollup to v4.12.0

* fix index offset in sidx parsing (video-dev#6221)

* fix index offset in sidx parsing (video-dev#6221)

(cherry picked from commit e18d394)

* Add no-op comment to empty statement (fix lint error)

* Block audio append queue to keep AV appends in lock-step

* Reduce length of ESDS box guard statement

* rutube logo for they use section

* chore(deps): update dependency husky to v9.0.11

* Don't flush buffer on cap-level change when in manual selection mode (video-dev#6223)

* Don't switch level if current already greater or equal
* Don't switch level if autoLevel disabled
---------
Co-authored-by: Vladimir Polomanov <vpolomanov@rutube.ru>

* Fix audio/subtitles stream controllers restarting on switch after stopped
Update stream controller access specifiers

* Cleanup buffer-helper functions and remove nested try-catch statements

* Fix pauseBuffering() dev regression

* chore(deps): update dependency chromedriver to v121.0.1

* chore(deps): update dependency eslint-plugin-mocha to v10.3.0

* chore(deps): update dependency chromedriver to v121.0.2

* chore(deps): update dependency wrangler to v3.28.3

* chore(deps): update dependency @microsoft/api-documenter to v7.23.24

* chore(deps): update dependency @microsoft/api-extractor to v7.40.2

* chore(deps): update dependency @microsoft/api-extractor to v7.40.6

* chore(deps): update dependency wrangler to v3.29.0

* chore(deps): update dependency @microsoft/api-documenter to v7.23.30

* Fix compatibility of ManagedMediaSource implementation with Edge 18
Fixes video-dev#6243

* chore(deps): update dependency selenium-webdriver to v4.18.1

* Clean up base-stream-controller

* Don't pass log functions with player id to global logger

* Clear media from cap-level-controller on detach

* remove iphone compatibility note since its supported through mms

* added more info for iOS 17.1+ support

* Run Prettier to address lint error

* chore(deps): update dependency @types/chai to v4.3.12

* Ensure media element references are removed after calling detachMedia

* chore(deps): update dependency eslint to v8.57.0

* chore(deps): update dependency karma to v6.4.3

* chore(deps): update dependency @microsoft/api-extractor to v7.41.0

* chore(deps): update dependency @microsoft/api-extractor to v7.42.2

* chore(deps): update dependency @microsoft/api-documenter to v7.23.31

* chore(deps): update dependency @microsoft/api-documenter to v7.23.35

* chore(deps): update dependency wrangler to v3.30.0

* chore(deps): update dependency wrangler to v3.31.0

* chore(deps): update babel monorepo to v7.24.0

* chore(deps): update dependency @svta/common-media-library to v0.6.3

* chore(deps): update dependency @svta/common-media-library to v0.6.4

* chore(deps): update dependency chromedriver to v122 (video-dev#6250)

* chore(deps): update typescript-eslint monorepo to v7 (video-dev#6225)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency npm-run-all2 to v6 (video-dev#6179)

* chore(deps): update dependency @microsoft/api-documenter to v7.23.36

* chore(deps): update dependency @microsoft/api-documenter to v7.23.37

* chore(deps): update dependency @microsoft/api-extractor to v7.42.3

* chore(deps): update typescript-eslint monorepo to v7.1.1

* chore(deps): update typescript-eslint monorepo to v7.2.0

* chore(deps): update dependency rollup to v4.12.1

* chore(deps): update dependency rollup to v4.13.0

* chore(deps): update dependency typescript to v5.4.2

* chore(deps): update dependency eslint-plugin-mocha to v10.4.0

* chore(deps): update dependency eslint-plugin-mocha to v10.4.1

* chore(deps): update dependency wrangler to v3.32.0

* chore(deps): update dependency wrangler to v3.34.2

* chore(deps): update dependency chromedriver to v122.0.5

* chore(deps): update dependency chromedriver to v122.0.6

* 1.5.7

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: Jakub Perżyło <qizot1405@gmail.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: Pat Nafarrete <pnaf@users.noreply.github.com>
Co-authored-by: yajin2021 <83813017+yajin2021@users.noreply.github.com>
Co-authored-by: Hongfei Huang <hongfei.huang@endeavorstreaming.com>
Co-authored-by: Hongfei Huang <83795629+hongfeih-es@users.noreply.github.com>
Co-authored-by: Wesley Luyten <me@wesleyluyten.com>
Co-authored-by: Billy Chiu <billychiu98@gmail.com>
Co-authored-by: Agajan J <agajan.tm@gmail.com>
Co-authored-by: Sta Zhu <zhusidayoyo@hotmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: yajin2021 <gene.jin@endeavorstreaming.com>
Co-authored-by: Troy <troybensonsa@gmail.com>
Co-authored-by: Chocobozzz <chocobozzz@cpy.re>
Co-authored-by: root <root@jvarydeb>
Co-authored-by: FredTsang <zengzhifeng@cvte.com>
Co-authored-by: Rob Walch <rwalch@apple.com>
Co-authored-by: Casey Occhialini <1508707+littlespex@users.noreply.github.com>
Co-authored-by: Asen-O-Nikolov <98342935+Asen-O-Nikolov@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>
Co-authored-by: Vladmir Vyatkin <voldemarpro@hotmail.com>
Co-authored-by: Nikola Hristov <nklhtv@gmail.com>
Co-authored-by: Pavel Fomin <pfomin@rutube.ru>
Co-authored-by: Vladimir Polomanov <67444538+corndev27@users.noreply.github.com>
Co-authored-by: Felix Groove <felix.groove@lhind.dlh.de>
Co-authored-by: Rob Walch <rob@jwplayer.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants