Skip to content

DASH Widevine CBC1 and CBCS encrypted content not playing on Android 7.1 #4022

@jhughes

Description

@jhughes

Issue description

I'm testing DASH manifests encrypted with CBC1 and CBCS with Widevine DRM.
On Android 7.1, Exoplayer playback exits with an exception when it reaches the first encrypted segment.

The same manifests play OK on Android 8.0 and 8.1.
DASH manifest encrypted with CENC plays OK on Android 7.1, the issue seems to be with CBC.

Exception excerpt:

WVCdm   : Decrypt error result in session sid2 during encrypted block: 176
ExoPlayerImplInternal: Renderer error.
ExoPlayerImplInternal: com.google.android.exoplayer2.ExoPlaybackException
ExoPlayerImplInternal:         at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:765)
ExoPlayerImplInternal:         at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:568)
ExoPlayerImplInternal:         at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518)
ExoPlayerImplInternal:         at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301)
ExoPlayerImplInternal:         at android.os.Handler.dispatchMessage(Handler.java:98)
ExoPlayerImplInternal:         at android.os.Looper.loop(Looper.java:154)
ExoPlayerImplInternal:         at android.os.HandlerThread.run(HandlerThread.java:61)
ExoPlayerImplInternal: Caused by: android.media.MediaCodec$CryptoException: Unknown Error
ExoPlayerImplInternal:         at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)
ExoPlayerImplInternal:         at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2480)
ExoPlayerImplInternal:         at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:756)
ExoPlayerImplInternal:         ... 6 more

Reproduction steps

Play provided test content using the demo player for at least 10 seconds (The first encrypted segment occurs at 10 seconds)

Link to test content

The failing content is from the demo application:

{
  "name": "WV: Secure SD & HD (cbc1,MP4,H264)",
  "uri": "https://storage.googleapis.com/wvmedia/cbc1/h264/tears/tears_aes_cbc1.mpd",
  "drm_scheme": "widevine",
  "drm_license_url": "https://proxy.uat.widevine.com/proxy?provider=widevine_test"
},
{
  "name": "WV: Secure SD & HD (cbcs,MP4,H264)",
  "uri": "https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd",
  "drm_scheme": "widevine",
  "drm_license_url": "https://proxy.uat.widevine.com/proxy?provider=widevine_test"
}

Version of ExoPlayer being used

Exoplayer 2.7.0

Device(s) and version(s) of Android being used

Tested with Pixel XL (Android 7.1)

A full bug report captured from the device

Bug report for Pixel XL provided in email.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions