Cannot Play HDR/DOVI videos with DRM
Version
ExoPlayer 2.18.2
More version details
We have updated to the latest version of media 3 and then started going back version and on version 2.18.1 this was not present. It got introduced in version 2.18.2
Devices that reproduce the issue
FireTV 4K
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
HDR/DOVI videos with DRM protection
Expected result
The media should play
Actual result
E playerFailed [eventTime=3.57, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_DECODING_FAILED
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(7, null, null, video/dolby-vision, dvhe.05.01, 4027624, null, [1280, 720, 24.0], [-1, -1]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:571)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: com.google.android.exoplayer2.video.MediaCodecVideoDecoderException: Decoder failed: OMX.MTK.VIDEO.DECODER.DVHE.STN.secure
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1629)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:813)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:994)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:495)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2584)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.dequeueOutputBufferIndex(SynchronousMediaCodecAdapter.java:106)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1830)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:792)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:994)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:495)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
]
Media
any drm protected hdr videos
Bug Report
- [X] You will email the zip file produced by
adb bugreportto [email protected] after filing this issue.
I have emailed the bug report as well
@dangelo-autodesk.
Thank you for reporting your issue. It would be great to see what decoder is selected in the case of the 2.18.1 version of the player in your scenario. You can either provide a bug report of the demo app in 2.18.1 running your media or just provide in this thread the answer provided by the LogCat. Thank you!
Here's the output from EventLogger:
Init 365bb84 [ExoPlayerLib/2.18.1] [mantis, AFTMM, Amazon, 25]
timeline [eventTime=0.04, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
period [?]
window [?, seekable=false, dynamic=true]
]
timeline [eventTime=0.00, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
period [?]
window [?, seekable=false, dynamic=true]
]
mediaItem [eventTime=0.04, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
mediaItem [eventTime=0.00, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
state [eventTime=0.04, mediaPos=0.00, window=0, BUFFERING]
state [eventTime=0.01, mediaPos=0.00, window=0, BUFFERING]
playWhenReady [eventTime=0.04, mediaPos=0.00, window=0, true, USER_REQUEST]
playWhenReady [eventTime=0.01, mediaPos=0.00, window=0, true, USER_REQUEST]
surfaceSize [eventTime=0.07, mediaPos=0.00, window=0, 1920, 1080]
surfaceSize [eventTime=0.03, mediaPos=0.00, window=0, 1920, 1080]
loading [eventTime=0.10, mediaPos=0.00, window=0, period=0, true]
loading [eventTime=0.06, mediaPos=0.00, window=0, period=0, true]
timeline [eventTime=0.90, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
period [263.04]
window [263.04, seekable=true, dynamic=false]
]
timeline [eventTime=0.86, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
period [263.04]
window [263.04, seekable=true, dynamic=false]
]
videoEnabled [eventTime=0.92, mediaPos=0.00, window=0, period=0]
videoEnabled [eventTime=0.88, mediaPos=0.00, window=0, period=0]
audioEnabled [eventTime=0.92, mediaPos=0.00, window=0, period=0]
audioEnabled [eventTime=0.89, mediaPos=0.00, window=0, period=0]
tracks [eventTime=0.92, mediaPos=0.00, window=0, period=0
group [
[X] Track:0, id=2, mimeType=video/dolby-vision, bitrate=6397848, codecs=dvh1.05.04, drm=[widevine,cenc], res=2048x1152, fps=24.0, supported=YES
[X] Track:1, id=3, mimeType=video/dolby-vision, bitrate=5995112, codecs=dvh1.05.03, drm=[widevine,cenc], res=1920x1080, fps=24.0, supported=YES
[X] Track:2, id=4, mimeType=video/dolby-vision, bitrate=11892048, codecs=dvh1.05.06, drm=[widevine,cenc], res=3840x2160, fps=24.0, supported=YES
[X] Track:3, id=7, mimeType=video/dolby-vision, bitrate=4027624, codecs=dvh1.05.01, drm=[widevine,cenc], res=1280x720, fps=24.0, supported=YES
]
group [
[X] Track:0, id=15, mimeType=audio/mp4a-latm, bitrate=134672, codecs=mp4a.40.2, drm=[widevine,cenc], channels=2, sample_rate=44100, supported=YES
]
]
tracks [eventTime=0.89, mediaPos=0.00, window=0, period=0
group [
[X] Track:0, id=2, mimeType=video/dolby-vision, bitrate=6397848, codecs=dvh1.05.04, drm=[widevine,cenc], res=2048x1152, fps=24.0, supported=YES
[X] Track:1, id=3, mimeType=video/dolby-vision, bitrate=5995112, codecs=dvh1.05.03, drm=[widevine,cenc], res=1920x1080, fps=24.0, supported=YES
[X] Track:2, id=4, mimeType=video/dolby-vision, bitrate=11892048, codecs=dvh1.05.06, drm=[widevine,cenc], res=3840x2160, fps=24.0, supported=YES
[X] Track:3, id=7, mimeType=video/dolby-vision, bitrate=4027624, codecs=dvh1.05.01, drm=[widevine,cenc], res=1280x720, fps=24.0, supported=YES
]
group [
[X] Track:0, id=15, mimeType=audio/mp4a-latm, bitrate=134672, codecs=mp4a.40.2, drm=[widevine,cenc], channels=2, sample_rate=44100, supported=YES
]
]
downstreamFormat [eventTime=1.14, mediaPos=0.00, window=0, period=0, id=4, mimeType=video/dolby-vision, bitrate=11892048, codecs=dvh1.05.06, drm=[widevine,cenc], res=3840x2160, fps=24.0]
downstreamFormat [eventTime=1.10, mediaPos=0.00, window=0, period=0, id=4, mimeType=video/dolby-vision, bitrate=11892048, codecs=dvh1.05.06, drm=[widevine,cenc], res=3840x2160, fps=24.0]
drmSessionAcquired [eventTime=1.15, mediaPos=0.00, window=0, period=0, state=3]
drmSessionAcquired [eventTime=1.12, mediaPos=0.00, window=0, period=0, state=3]
videoDecoderInitialized [eventTime=1.23, mediaPos=0.00, window=0, period=0, OMX.MTK.VIDEO.DECODER.DVHE.STN.secure]
videoDecoderInitialized [eventTime=1.20, mediaPos=0.00, window=0, period=0, OMX.MTK.VIDEO.DECODER.DVHE.STN.secure]
videoInputFormat [eventTime=1.23, mediaPos=0.00, window=0, period=0, id=4, mimeType=video/dolby-vision, bitrate=11892048, codecs=dvhe.05.06, drm=[widevine,cenc], res=3840x2160, fps=24.0]
videoInputFormat [eventTime=1.20, mediaPos=0.00, window=0, period=0, id=4, mimeType=video/dolby-vision, bitrate=11892048, codecs=dvhe.05.06, drm=[widevine,cenc], res=3840x2160, fps=24.0]
downstreamFormat [eventTime=1.23, mediaPos=0.00, window=0, period=0, id=15, mimeType=audio/mp4a-latm, bitrate=134672, codecs=mp4a.40.2, drm=[widevine,cenc], channels=2, sample_rate=44100]
downstreamFormat [eventTime=1.20, mediaPos=0.00, window=0, period=0, id=15, mimeType=audio/mp4a-latm, bitrate=134672, codecs=mp4a.40.2, drm=[widevine,cenc], channels=2, sample_rate=44100]
audioDecoderInitialized [eventTime=1.26, mediaPos=0.00, window=0, period=0, OMX.google.aac.decoder]
audioDecoderInitialized [eventTime=1.23, mediaPos=0.00, window=0, period=0, OMX.google.aac.decoder]
audioInputFormat [eventTime=1.26, mediaPos=0.00, window=0, period=0, id=15, mimeType=audio/mp4a-latm, bitrate=128859, codecs=mp4a.40.2, drm=[widevine,cenc], channels=2, sample_rate=44100, language=und]
audioInputFormat [eventTime=1.23, mediaPos=0.00, window=0, period=0, id=15, mimeType=audio/mp4a-latm, bitrate=128859, codecs=mp4a.40.2, drm=[widevine,cenc], channels=2, sample_rate=44100, language=und]
drmKeysLoaded [eventTime=1.45, mediaPos=0.00, window=0, period=0]
drmKeysLoaded [eventTime=1.41, mediaPos=0.00, window=0, period=0]
videoSize [eventTime=1.83, mediaPos=0.00, window=0, period=0, 3840, 2160]
videoSize [eventTime=1.80, mediaPos=0.00, window=0, period=0, 3840, 2160]
renderedFirstFrame [eventTime=1.84, mediaPos=0.00, window=0, period=0, Surface(name=null)/@0x87a8235]
renderedFirstFrame [eventTime=1.80, mediaPos=0.00, window=0, period=0, Surface(name=null)/@0x87a8235]
state [eventTime=2.39, mediaPos=0.00, window=0, period=0, READY]
state [eventTime=2.36, mediaPos=0.00, window=0, period=0, READY]
isPlaying [eventTime=2.40, mediaPos=0.00, window=0, period=0, true]
isPlaying [eventTime=2.37, mediaPos=0.00, window=0, period=0, true]
any updates with this?