google / google/ExoPlayer

Unable to play video containing HE AAC

Open
#8,446 1 comment 0 reactions 1 assignee Assigned to @claincly View on GitHub
bad media bug: device specific
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

I'm trying to play a video from http://download.tsi.telecom-paristech.fr/gpac/dataset/dash/uhd/
like this one: http://download.tsi.telecom-paristech.fr/gpac/dataset/dash/uhd/mux_sources/hevcds_720p30_2M.mp4

ExoPlayer reports this error:

```
2021-01-11 22:25:08.812 1161-26276/? E/OMX-VDEC-1080P: Extension: OMX.google.android.index.storeANWBufferInMetadata not implemented
2021-01-11 22:25:08.812 30751-24011/? I/ExtendedACodec: setupVideoDecoder()
2021-01-11 22:25:08.813 1161-22504/? E/OMX-VDEC-1080P: Extension: OMX.google.android.index.describeHDR10PlusInfo not implemented
2021-01-11 22:25:08.813 30751-24011/? I/ExtendedACodec: Decoder will be in frame by frame mode
2021-01-11 22:25:08.814 1161-5460/? E/OMXNodeInstance: getConfig(0xe4dabb44:qcom.decoder.hevc, ??(0x7f000062)) ERROR: UnsupportedSetting(0x80001019)
2021-01-11 22:25:08.830 1161-22504/? E/OMX-VDEC-1080P: Extension: OMX.google.android.index.AndroidNativeBufferConsumerUsage not implemented
2021-01-11 22:25:08.831 30751-24011/? D/SurfaceUtils: set up nativeWindow 0x7792a51010 for 1280x720, color 0x7fa30c06, rotation 0, usage 0x20002900
2021-01-11 22:25:08.836 30751-24006/? D/MediaCodec: name = OMX.google.aac.decoder
2021-01-11 22:25:08.839 30751-24015/? I/OMXClient: IOmx service obtained
2021-01-11 22:25:08.839 1161-22505/? I/OMXMaster: makeComponentInstance(OMX.google.aac.decoder) in android.hardwar process
2021-01-11 22:25:08.841 1161-22505/? E/OMXNodeInstance: setConfig(0xf5b291a0:google.aac.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
2021-01-11 22:25:08.841 30751-24015/? I/ACodec: codec does not support config priority (err -2147483648)
2021-01-11 22:25:08.841 1161-6980/? E/OMXNodeInstance: setConfig(0xf5b291a0:google.aac.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
2021-01-11 22:25:08.841 30751-24015/? I/ACodec: codec does not support config priority (err -2147483648)
2021-01-11 22:25:08.841 1161-6980/? E/OMXNodeInstance: getConfig(0xf5b291a0:google.aac.decoder, ConfigAndroidVendorExtension(0x6f100004)) ERROR: Undefined(0x80001001)
2021-01-11 22:25:08.842 30751-24015/? W/ExtendedACodec: Failed to get extension for extradata parameter
2021-01-11 22:25:08.845 1161-24016/? W/SoftAAC2: aacDecoder_ConfigRaw decoderErr = 0x2003
2021-01-11 22:25:08.846 30751-24015/? E/ACodec: [OMX.google.aac.decoder] ERROR(0x80001001)
2021-01-11 22:25:08.846 30751-24015/? E/ACodec: signalError(omxError 0x80001001, internalError -2147483648)
2021-01-11 22:25:08.846 30751-24015/? E/MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 6
2021-01-11 22:25:08.848 30751-24006/? E/ExoPlayerImplInternal: Playback error
com.google.android.exoplayer2.ExoPlaybackException: MediaCodecAudioRenderer error, index=2, format=Format(1, null, null, audio/mp4a-latm, mp4a.40.1, -1, und, [-1, -1, -1.0], [2, 24000]), format_supported=YES
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:542)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecDecoderException: Decoder failed: OMX.google.aac.decoder
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.createDecoderException(MediaCodecRenderer.java:984)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:872)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:892)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:467)
at android.os.Handler.dispatchMessage(Handler.java:103) 
at android.os.Looper.loop(Looper.java:214) 
at android.os.HandlerThread.run(HandlerThread.java:67) 
Caused by: java.lang.IllegalStateException
at android.media.MediaCodec.native_queueInputBuffer(Native Method)
at android.media.MediaCodec.queueInputBuffer(MediaCodec.java:2484)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.queueInputBuffer(SynchronousMediaCodecAdapter.java:69)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1419)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:859)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:892) 
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:467) 
at android.os.Handler.dispatchMessage(Handler.java:103) 
at android.os.Looper.loop(Looper.java:214) 
at android.os.HandlerThread.run(HandlerThread.java:67) 
2021-01-11 22:25:08.853 30751-24006/? E/ExoPlayerImplInternal: Disable failed.
java.lang.IllegalStateException
at android.media.MediaCodec.native_flush(Native Method)
at android.media.MediaCodec.flush(MediaCodec.java:2228)
at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.flush(SynchronousMediaCodecAdapter.java:81)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:914)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:773)
at com.google.android.exoplayer2.audio.MediaCodecAudioRenderer.onDisabled(MediaCodecAudioRenderer.java:516)
at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:175)
at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1507)
at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:1254)
at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:1218)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:546)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
```

I see the same result on two different devices.

If I force the use of FFmpeg extension using `DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER`, it works and the video plays. (But I would like to kept using `DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON`...)

- ExoPlayer version number: r2.12.2
- Android version: 10
- Android device: OnePlus 7

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.