ExoPlayerImplInternal: Stop failed. java.lang.IllegalStateException - on API Level 22 and below - on REAL DEVICES

Created on 16 Sep 2019  路  5Comments  路  Source: google/ExoPlayer

Issue description

Hi guys! I have a problem with HLS streams on devices Android 22 Api and below for cameras with high definition 2688x1520 and bitrate 5812 - stream can't play. I use ExoPlayer version 2.9.6 (also testing with 2.10.4). On other devices and other cameras - all ok. I attached short and long bug report. Please help me to resolve this issue.

D: NoSupport [codec.profileLevel, avc1.4D4032, video/avc] [OMX.google.h264.decoder, video/avc] [generic_x86_64, Android SDK built for x86_64, unknown, 22]
I: Using client-side OMX mux.
E: [OMX.google.h264.decoder] storeMetaDataInBuffers failed w/ err -1010
E: [OMX.google.h264.decoder] ERROR(0x80001001)
E: signalError(omxError 0x80001001, internalError -2147483648)
E: Codec reported err 0x80001001, actionCode 0, while in state 6
E: Internal runtime error.
    java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
        at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1033)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1287)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:663)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:536)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:303)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:135)
        at android.os.HandlerThread.run(HandlerThread.java:61)
E: Stop failed.
    java.lang.IllegalStateException
        at android.media.MediaCodec.native_stop(Native Method)
        at android.media.MediaCodec.stop(MediaCodec.java:628)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:608)
        at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.releaseCodec(MediaCodecVideoRenderer.java:508)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:562)
        at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:377)
        at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:153)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:983)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:771)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:742)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:358)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:135)
        at android.os.HandlerThread.run(HandlerThread.java:61)
D: java.lang.IllegalStateException

Reproduction steps

Just create ExoPlayer with HLS stream use below ULR

Link to test content

To show stream open in Safari browser this link:
https://fs15.naveksoft.com:62121/ee6a9260-3d8e-4d85-af7a-617337faba36/tracks-v1/mono.m3u8?token=dc7a6244f783d69fb59742c38ec1584505701d5c-F1QtdSE2Q1JyauJ-1568710462-1568624062

A full bug report captured from the device

ExoPlayer-bug-report.txt

Version of ExoPlayer being used

2.9.6, 2.10.4

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

Android 22 api and below for cameras with high definition 2688x1520 and bitrate 5812

Updated

I founded real device Huawei Android 4.4.2 , short error logs:

E/dalvikvm: Could not find class 'com.google.android.exoplayer2.video.MediaCodecVideoRenderer$OnFrameRenderedListenerV23', referenced from method com.google.android.exoplayer2.video.MediaCodecVideoRenderer.clearRenderedFirstFrame
E/dalvikvm: Could not find class 'com.google.android.exoplayer2.video.MediaCodecVideoRenderer$OnFrameRenderedListenerV23', referenced from method com.google.android.exoplayer2.video.MediaCodecVideoRenderer.configureCodec
E/dalvikvm: Could not find class 'android.media.AudioAttributes$Builder', referenced from method com.google.android.exoplayer2.audio.DefaultAudioSink.createAudioTrackV21
E/dalvikvm: Could not find class 'android.media.AudioFormat$Builder', referenced from method com.google.android.exoplayer2.audio.DefaultAudioSink.createAudioTrackV21
E/dalvikvm: Could not find class 'android.media.AudioAttributes$Builder', referenced from method com.google.android.exoplayer2.audio.AudioAttributes.getAudioAttributesV21
E/dalvikvm: Could not find class 'android.media.AudioFocusRequest$Builder', referenced from method com.google.android.exoplayer2.audio.AudioFocusManager.requestAudioFocusV26
E/dalvikvm: Could not find class 'android.media.AudioFocusRequest$Builder', referenced from method com.google.android.exoplayer2.audio.AudioFocusManager.requestAudioFocusV26
E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
E/ACodec: [OMX.k3.video.decoder.avc] storeMetaDataInBuffers failed w/ err -2147483648
A/ACodec: frameworks/av/media/libstagefright/ACodec.cpp:1487 CHECK(def.nBufferSize >= size) failed.
A/libc: Fatal signal 6 (SIGABRT) at 0x00004e98 (code=-6), thread 20445 (CodecLooper)
E/dalvikvm: Could not find class 'android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper', referenced from method android.support.v4.view.ViewCompat.addOnUnhandledKeyEventListener
E/dalvikvm: Could not find class 'android.view.WindowInsets', referenced from method android.support.v4.view.ViewCompat.dispatchApplyWindowInsets
E/dalvikvm: Could not find class 'android.view.WindowInsets', referenced from method android.support.v4.view.ViewCompat.onApplyWindowInsets
E/dalvikvm: Could not find class 'android.view.View$OnUnhandledKeyEventListener', referenced from method android.support.v4.view.ViewCompat.removeOnUnhandledKeyEventListener
E/dalvikvm: Could not find class 'android.support.v4.view.ViewCompat$1', referenced from method android.support.v4.view.ViewCompat.setOnApplyWindowInsetsListener


question

All 5 comments

Please see the bottom of this page for guidance on emulators.

I'm sorry, but my problem occurs on real devices from real users! I send bug report from emulator because I haven't real device with api 22 and below.

It's probably just because the video you're trying to play exceeds the capabilities of the device. I'm not sure how realistic it is to expect potentially 4 year old hardware to decode 2688x1520 video. Some logs from a real device would help to confirm whether that's the problem. The failure mode is probably different than with the emulator.

I updated issue, seems problem with large size of buffer.

As above, the video you're trying to play exceeds the capabilities of the device.

Was this page helpful?
0 / 5 - 0 ratings