google / google/ExoPlayer

DASH Live key rotation handling implementation question.

Open
#9,068 2 comments 0 reactions 1 assignee Assigned to @icbaker View on GitHub
bug
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

DASH Live key rotation within a single period normally has following cases:
1. the PSSH is in the segment's MOOF only.
2. the PSSH is Manifest, init segment MOOV and segment's MOOF.

Currently, exoplayer com.google.android.exoplayer2.drm.DrmInitData createSessionCreationData() implementation will use the schemeData(PSSH) from manifest when manifest contains non-empty schemeData. If manifest doesn't contain scheme data, it will use the one from the mediaData (either from init or data segment).

When using shaka packager to generate a DASH live key rotation stream, normally there is no scheme data in manifest, So exoplayer can play these key rotation stream as expected.

However when using Harmonic VOS packager to generate a DASH live key rotation stream:
- the manifest does contain scheme data, the identical scheme data is may also in init segment,
- the scheme data in manifest and init segment are NOT changed, even when key is rotated.
- the scheme data in data segment MOOF always contains latest scheme data.
- the scheme data from manifest is same as the one from the data segment at live service first available.
In this case, there is no new license request when the key is rotated.

What's the reason behind that DrmInitData.createSessionCreationData function implementation always treat the scheme data from manifest with higher priority and ignore the schemeData that stored in data segment MOOF?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.