-
Notifications
You must be signed in to change notification settings - Fork 6k
Description
Tunneled video playback is not working on my Android TV (Mi 108cm LED TV 4A PRO).
Screen remains black and sometimes audio plays in the background.
The hardware HEVC decoder (OMX.amlogic.hevc.decoder.awesome.secure) supports tunneling. I added some debug logs in MediaCodecUtil.getDecoderInfosInternal() and verified that CodecCapabilities.FEATURE_TunneledPlayback feature is supported.
I checked #2761 but it does not look like the same.
Steps to reproduce the issue:
- Enable tunneling in exoplayer.
InPlayerActivity.java, I enabled tunnelling as below.
trackSelectionParameters =
new DefaultTrackSelector.ParametersBuilder(/* context= */ this).setTunnelingEnabled(true).build();
- Build and launch the demo app.
- Play Widevine DASH (MP4, H265) > HD (cenc)
I see the below logs and I think tunneled mode is enabled correctly.
11-08 14:53:06.073 I/ACodec ( 7849): Configuring TUNNELED video playback.
11-08 14:53:06.073 D/OmxComponent( 3229): getExtensionIndex 1123 name="OMX.google.android.index.configureVideoTunnelMode"
11-08 14:53:06.073 D/OmxVideoDecoder( 3229): setParameter 921 0x7f000008
11-08 14:53:06.073 I/OmxVideoDecoder( 3229): OmxVideoDecoder::setParameter OMX_IndexAndroidConfigureVideoTunnelMode, enable=1
.
.
.
11-08 14:53:06.126 I/OmxVideoDecoder( 3229): Component Name OMX.amlogic.hevc.decoder.awesome.secure, width 1920, height 856
11-08 14:53:06.127 D/AmlogicVideoDecoderAwesome( 3229): codecInit done
11-08 14:53:06.127 D/OmxComponent( 3229): getExtensionIndex 1123 name="OMX.google.android.index.AndroidNativeBufferConsumerUsage"
11-08 14:53:06.127 D/AmlogicVideoDecoderAwesome( 3229): media.omx.videopeek 0
11-08 14:53:06.127 I/AmlogicVideoDecoderAwesome( 3229): video layer sync version is 3
11-08 14:53:06.127 I/AmlogicVideoDecoderAwesome( 3229): DisplayThread created for tunnel mode
At the beginning of the playback, I see the below error message.
11-08 14:53:06.573 V/AmlogicVideoDecoderAwesome( 3229): csdsize=72
11-08 14:53:06.577 W/ ( 3229): dst is NULL.
11-08 14:53:06.578 E/AmlogicVideoDecoderAwesome( 3229): prepareEsData failed !!!
11-08 14:53:06.580 D/AmlogicVideoDecoderAwesome( 3229): raw data buf is too small, 0 -> 1100
11-08 14:53:06.589 E/secmem_tz( 3229): [Secure_V2_MemFree:829] error return ffff0000
I am not sure if this is the cause of the playback failure. Also I see the below message very frequently in the log.
11-08 14:53:07.232 E/secmem_tz( 3229): [Secure_V2_MemFree:829] error return ffff0000
Here is the complete log: log28_exo_16_tunnel_hevc.txt
Version details:
- ExoPlayer version number: r2.16.0 (https://github.com/google/ExoPlayer/releases/tag/r2.16.0)
- Android version: Version 9
- Android device: MiTV-AXSO0 (Mi 108cm LED TV 4A PRO)
I would like to know if this is a configuration issue. Also, is there a way to resolve it.