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

Emit and handle FRAG_PARSING_ERROR from transmuxers #5018

Merged

Conversation

robwalch
Copy link
Collaborator

This PR will...

  • Make transmuxer.flush results async each time that transmuxer.push returns a promise so that they push->flush results are received in order
  • Handle Uncaught Promise Exceptions in transmuxer push and flush by emitting FRAG_PARSING_ERROR event (Example: MP4Demuxer.demuxSampleAes returns rejected Promise throwing "The MP4 demuxer does not support SAMPLE-AES decryption"
  • Route FRAG_PARSING_ERROR (and KEY errors) through level-controller levelSwitch error handling and escalate to fatal when switching is not possible

Are there any points in the code the reviewer needs to double check?

These changes are on top of #4930

Resolves issues:

Related to #5011 (does not yet handle fall-through probe and empty transmux response flows)

Checklist

  • changes have been done against master branch, and PR does not conflict
  • new unit / functional tests have been added (whenever applicable)
  • API or design changes are documented in API.md

@robwalch robwalch added this to the 1.3.0 milestone Nov 10, 2022
@robwalch robwalch force-pushed the feature/drm-fairplay-key-system branch from da4e9da to 6788118 Compare November 17, 2022 00:36
@robwalch robwalch force-pushed the bugfix/handle-frag-parsing-error branch from f6ff457 to c415b28 Compare November 17, 2022 00:46
@robwalch robwalch merged commit 620eac8 into feature/drm-fairplay-key-system Nov 17, 2022
@robwalch robwalch deleted the bugfix/handle-frag-parsing-error branch November 17, 2022 01:37
@robwalch robwalch mentioned this pull request Nov 17, 2022
3 tasks
robwalch added a commit that referenced this pull request Dec 10, 2022
* Emit and handle FRAG_PARSING_ERROR from transmuxers
Related to #5011
* Switch levels on Key and Fragment parsing errors or escalate to fatal error
robwalch added a commit that referenced this pull request Dec 15, 2022
* Add support for com.apple.fps keySystem

* Improve support for DRM key-systems and key handling
Resolves #2833 #2737 #4318 #4538

* Update README `licenseXhrSetup` example

* Update api-extractor markdown

* Attach CDM on start when even when initial fragments do not have a key associated with them

* Handle expired key status correctly

* Map key-sessions by key ID and log key ID more often than URI

* Support "clear-lead" key-session creation without new config

* Emit and handle FRAG_PARSING_ERROR from transmuxers (#5018)

* Emit and handle FRAG_PARSING_ERROR from transmuxers
Related to #5011
* Switch levels on Key and Fragment parsing errors or escalate to fatal error

* Route all key-system errors to `onFragmentOrKeyLoadError`

* Populate EMEKeyError.err for better demo error logging

* Remove `useEmeEncryptedEvent` and mark `widevineLicenseUrl` as deprecated in API.md

* Add support for EXT-X-SESSION-KEY tags (for key-system access on manifest loaded)
#4927

* Throw before licenseXhrSetup if key was removed

* Make key session promise chain more consice

* Stop on fatal key system errors

* Only request access to key-systems for keys matching those found in the config one at time (to avoid gaining access to WV and PR on Edge)

* Modify key-system helpers so that it's easier to support additional key-system strings

* Add undocumented `generateRequest` ("Content ID") filter

Co-authored-by: Vincent Valot <vincent.valot@bedrockstreaming.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant