Skip to content

feat: Drm - #24

Merged
includeamin merged 19 commits into
mainfrom
drm
Oct 1, 2026
Merged

includeamin merged 19 commits into
mainfrom
drm

Conversation

@includeamin

Copy link
Copy Markdown
Owner

What and why

How it was tested

Checklist

  • make ci passes
  • There is a test that fails without this change
  • Anything read from a file or a mapper is bounded before it is allocated
  • The handbook is updated if operators, mapper authors, or players see the change
  • Every commit is signed off (git commit -s)
  • I did not copy or adapt code from a project with an incompatible licence (see CONTRIBUTING.md)

The encrypted bytes now stay under the segment-job slot taken to read
them, handed to the stream instead of a second slot, so resident
encrypted segments are bounded by max_segment_jobs. The header region is
streamed in stream_chunk_bytes pieces, so a client that stops reading an
encrypted segment hits the idle timeout. The payload buffer is allocated
once and the header is spliced in front of it instead of copying the
payload. A failed encryption task counts as an encryption failure.

Docs state the real bound: max_segment_jobs x max_segment_bytes.
RFC 8216 forbids two session keys with the same METHOD, URI, IV,
KEYFORMAT and KEYFORMATVERSIONS, and KEYID does not tell them apart.
Split keys repeated every system's line; each now appears once, for the
first key. Identical split keys also count as one distinct key.
FairPlay's HLS key line carries no key ID, so a player could not ask for
the audio key apart from the video one. validate() refuses the
combination naming the field, and the mapper API and TDD 0009 examples
now use one key for all tracks.
A 304 means nothing in the answer changed, encryption included, so a
re-keyed asset must be answered with 200 and a new version. Also say that
Widevine and PlayReady without a pssh are DASH-only, that large pssh
boxes need a larger resolver.http.max_response_bytes, and that video
encryption is H.264 for now.
@includeamin includeamin changed the title Drm feat: Drm Oct 1, 2026
@includeamin
includeamin merged commit f35c1d2 into main Oct 1, 2026
8 of 9 checks passed
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