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
Just create ExoPlayer with HLS stream use below ULR
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
2.9.6, 2.10.4
Android 22 api and below for cameras with high definition 2688x1520 and bitrate 5812
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
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.