Files
android/libwvdrmengine/test/demo/readme.txt
Kyle Alexander b705d68631 Update ExoPlayerDemo.apk
Test: Playback of content in ExoPlayerDemo.apk

Bug: 203837661
Change-Id: Ic62b483b92215d2369b05bc2adc33d754ef5de5e
2022-03-23 15:29:57 -07:00

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.