Test: Playback of content in ExoPlayerDemo.apk Bug: 203837661 Change-Id: Ic62b483b92215d2369b05bc2adc33d754ef5de5e
54 lines
2.3 KiB
Plaintext
54 lines
2.3 KiB
Plaintext
ExoPlayerDemo.apk can be used to do end-to-end verification of Modular DRM.
|
|
|
|
To install, side load ExoPlayerDemo.apk app to your device:
|
|
|
|
adb install ExoPlayerDemo.apk
|
|
|
|
To run, launch ExoPlayer, then choose the clip to play.
|
|
The Widevine-encrypted DASH CENC assets are in the "WIDEVINE DASH (policy tests)"
|
|
section.
|
|
|
|
These assets test various configurations of the Key Control Block (KCB)
|
|
with various protections and expirations:
|
|
|
|
Security Level Checks:
|
|
SW secure crypto (SW crypto required)
|
|
SW secure decode (SW crypto and decode required)
|
|
HW secure crypto (HW crypto required)
|
|
HW secure decode (HW crypto and decode required)
|
|
HW secure all (HW secure video path required (L1))
|
|
|
|
License Timer Policy:
|
|
30s license (timer stops at 30 seconds, playback should stop)
|
|
|
|
HDCP Policies
|
|
HDCP not required (KCB: Observe_HDCP=true && HDCP=not required && DataPath=normal)
|
|
HDCP 1.0 required (KCB: Observe_HDCP=true && HDCP=required && DataPath=normal)
|
|
HDCP 2.0 required (Requires HDCP 2.0+ to play)
|
|
HDCP 2.1 required (Requires HDCP 2.1+ to play)
|
|
HDCP 2.2 required (Requires HDCP 2.2+ to play)
|
|
HDCP no digital output (Output to connected devices not allowed)
|
|
|
|
There are also Widevine-encrypted DASH CENC assets for various container
|
|
formats as well.
|
|
Widevine DASH (MP4, H264): Contains cenc and cbcs encryption samples
|
|
Widevine DASH (WebM, VP9): Contains full-sample and sub-sample cenc
|
|
samples
|
|
Widevine DASH (MP4, H265): Contains cenc samples only
|
|
|
|
Notes:
|
|
|
|
- The demo app shows up in the launcher as "ExoPlayer"
|
|
|
|
- The demo app contains a crude adaptive algorithm. It starts at 480p and will not switch up for 15
|
|
seconds. This is expected (and has the benefit of more or less guaranteeing there's at least one
|
|
switch during any playback beyond this length).
|
|
|
|
- If your device is running KLP or later, and the decoder claims to support adaptive, then ExoPlayer
|
|
will do seamless resolution switching. If the decoder doesn't claim this then you'll still get the
|
|
old nearly-seamless-switch (codec release/re-acquire) behavior.
|
|
|
|
- The player will attempt to hook into the
|
|
AudioTrack.getTimestamp API to do A/V sync. It will fall back to a legacy approach if
|
|
the API isn't available.
|