aws / amazon-chime-sdk-android

An Android client library for integrating multi-party communications powered by the Amazon Chime service.
https://aws.amazon.com/chime/chime-sdk/
Apache License 2.0
105 stars 49 forks source link

AndroidVideoDecoder: Media decoder stop failed #618

Open DmytroBatyuk opened 6 months ago

DmytroBatyuk commented 6 months ago

Describe the bug Changed demo app is been used for testing. Made changes

Remote video feed is not displayed on X915(look at additional context to get device info) and I think it could be because of not supported platform. Logcat continue printing AndroidVideoDecoder error messages (please take a look at logs below).

There is no issue and no Logcat prints when I replace X915 with Pixel 7a.

We are migrating from Twilio to Chime and didn't have any issues with Twilio before so I think it might be the issue in Chime SDK.

To Reproduce Steps to reproduce the behavior:

  1. By using demo app join Chime meeting
  2. Enable local video on X915 device.
  3. Enable local video on Samsung S10e device
  4. Local and remote video feed displayed on Samsung S10e
  5. Only local video displayed on X915.

Expected behavior Both devices display local and remote video feed.

Logs

24-05-14 15:26:04.506  6714-6714  MeetingFragment  com...hime.sdkdemo  D  Media metrics received: {videoAvailableReceiveBandwidth=206981.0, videoReceiveBitrate=97829.9658097507, videoReceivePacketLossPercent=0.0, audioReceivePacketLossPercent=0.0, audioSendPacketLossPercent=0.0}
2024-05-14 15:26:04.783  6714-23222 Service...gement com...hime.sdkdemo  W  Waited one second for android.hardware.media.omx@1.0::IOmx/default. Waiting another...
2024-05-14 15:26:05.299  6714-22474 MeetingFragment  com...hime.sdkdemo  D  [Function] [onActiveSpeakerScoreChanged]: 712359428707072138: 0.0,466925424513366238: 0.0
2024-05-14 15:26:05.395  6714-23222 OMXClient        com...hime.sdkdemo  I  IOmx service obtained
2024-05-14 15:26:05.403  6714-23222 AHierar...achine com...hime.sdkdemo  W  Warning message AMessage(what = 'omxI') = {
                                                                              int32_t type = 0
                                                                              int32_t event = 3
                                                                              int32_t data1 = 1
                                                                              int32_t data2 = 117440527
                                                                            } unhandled in root state.
2024-05-14 15:26:05.446  6714-22915 Logging          com...hime.sdkdemo  I  AndroidVideoDecoder: initDecodeInternal done
2024-05-14 15:26:05.508  6714-6714  MeetingFragment  com...hime.sdkdemo  D  Media metrics received: {videoAvailableReceiveBandwidth=206981.0, videoReceiveBitrate=93724.95572296264, videoReceivePacketLossPercent=0.0, audioReceivePacketLossPercent=0.0, audioSendPacketLossPercent=0.0}
2024-05-14 15:26:05.759  6714-23222 ACodec           com...hime.sdkdemo  E  OMX/mediaserver died, signalling error!
2024-05-14 15:26:05.759  6714-23222 ACodec           com...hime.sdkdemo  E  signalError(omxError 0x8000100d, internalError -32)
2024-05-14 15:26:05.760  6714-23221 MediaCodec       com...hime.sdkdemo  E  Codec reported err 0xffffffe0, actionCode 0, while in state 6
2024-05-14 15:26:05.762  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: deliverDecodedFrame failed
2024-05-14 15:26:05.762  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
2024-05-14 15:26:05.762  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
                                                                                at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
                                                                                at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2698)
                                                                                at org.amazon.chime.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.dequeueOutputBuffer(MediaCodecWrapperFactoryImpl.java:72)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder.deliverDecodedFrame(AndroidVideoDecoder.java:406)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder$1.run(AndroidVideoDecoder.java:390)
2024-05-14 15:26:05.764  6714-22915 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: dequeueInputBuffer failed
2024-05-14 15:26:05.764  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: deliverDecodedFrame failed
2024-05-14 15:26:05.764  6714-22915 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
2024-05-14 15:26:05.764  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
2024-05-14 15:26:05.764  6714-22915 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
                                                                                at android.media.MediaCodec.native_dequeueInputBuffer(Native Method)
                                                                                at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:2635)
                                                                                at org.amazon.chime.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.dequeueInputBuffer(MediaCodecWrapperFactoryImpl.java:61)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder.decode(AndroidVideoDecoder.java:271)
2024-05-14 15:26:05.764  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
                                                                                at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
                                                                                at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2698)
                                                                                at org.amazon.chime.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.dequeueOutputBuffer(MediaCodecWrapperFactoryImpl.java:72)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder.deliverDecodedFrame(AndroidVideoDecoder.java:406)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder$1.run(AndroidVideoDecoder.java:390)
2024-05-14 15:26:05.765  6714-22915 Logging          com...hime.sdkdemo  I  AndroidVideoDecoder: release
2024-05-14 15:26:05.765  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: deliverDecodedFrame failed
2024-05-14 15:26:05.765  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
2024-05-14 15:26:05.765  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
                                                                                at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
                                                                                at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2698)
                                                                                at org.amazon.chime.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.dequeueOutputBuffer(MediaCodecWrapperFactoryImpl.java:72)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder.deliverDecodedFrame(AndroidVideoDecoder.java:406)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder$1.run(AndroidVideoDecoder.java:390)
2024-05-14 15:26:05.765  6714-23238 Logging          com...hime.sdkdemo  I  AndroidVideoDecoder: Releasing MediaCodec on output thread
2024-05-14 15:26:05.766  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: Media decoder stop failed
2024-05-14 15:26:05.766  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
2024-05-14 15:26:05.766  6714-23238 Logging          com...hime.sdkdemo  E  AndroidVideoDecoder: java.lang.IllegalStateException
                                                                                at android.media.MediaCodec.native_stop(Native Method)
                                                                                at android.media.MediaCodec.stop(MediaCodec.java:2084)
                                                                                at org.amazon.chime.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.stop(MediaCodecWrapperFactoryImpl.java:51)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder.releaseCodecOnOutputThread(AndroidVideoDecoder.java:660)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder.access$200(AndroidVideoDecoder.java:32)
                                                                                at org.amazon.chime.webrtc.AndroidVideoDecoder$1.run(AndroidVideoDecoder.java:392)
2024-05-14 15:26:05.769  6714-23238 Logging          com...hime.sdkdemo  I  AndroidVideoDecoder: Release on output thread done
2024-05-14 15:26:05.770  6714-22915 Logging          com...hime.sdkdemo  I  AndroidVideoDecoder: initDecodeInternal name: OMX.rk.video_decoder.avc type: H264 width: 528 height: 960
2024-05-14 15:26:05.776  6714-23242 Service...gement com...hime.sdkdemo  I  getService: Trying again for android.hardware.media.omx@1.0::IOmx/default...
2024-05-14 15:26:06.299  6714-22474 MeetingFragment  com...hime.sdkdemo  D  [Function] [onActiveSpeakerScoreChanged]: 712359428707072138: 0.0,466925424513366238: 0.0
2024-05-14 15:26:06.513  6714-6714  MeetingFragment  com...hime.sdkdemo  D  Media metrics received: {videoAvailableReceiveBandwidth=206981.0, videoReceiveBitrate=107013.72957681716, videoReceivePacketLossPercent=0.0, audioReceivePacketLossPercent=0.0, audioSendPacketLossPercent=0.0}
2024-05-14 15:26:06.776  6714-23242 Service...gement com...hime.sdkdemo  W  Waited one second for android.hardware.media.omx@1.0::IOmx/default. Waiting another...

Screenshots If applicable, add screenshots to help explain your problem.

Test environment Info (please complete the following information):

Additional context Information about device from adb shell getprops

[dalvik.vm.heapgrowthlimit]: [192m]
[dalvik.vm.heapmaxfree]: [8m]
[dalvik.vm.heapminfree]: [512k]
[dalvik.vm.heapsize]: [512m]
[dalvik.vm.heapstartsize]: [16m]
[dalvik.vm.isa.arm.features]: [default]
[dalvik.vm.isa.arm.variant]: [cortex-a15]
[dalvik.vm.lockprof.threshold]: [500]
[ro.product.board]: [rk30sdk]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []
[ro.vendor.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.vendor.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.vendor.product.cpu.abilist64]: []

Add any other context about the problem here.

linsang21 commented 3 weeks ago

Seems like there's issue decoding the video on this specific device which was not a common seen device, we will need to look into whether the media layer support that.