amzn / exoplayer-amazon-port

Official port of ExoPlayer for Amazon devices
Apache License 2.0
173 stars 80 forks source link

Player runtime exception when opening a prime video using Alexa on FireOS 7.2 #99

Open luiscurini opened 4 years ago

luiscurini commented 4 years ago

Issue description

When playing a HLS Stream on FireTV devices using FireOS 7 and then switch to a Prime video with Alexa a non recoverable exception occurs and the player is reset and therefore must be then reinitialised. This only happens if the app used is Prime Video, devices running FireOS 5 and 6 are behaving correctly.

Expected behaviour: After clicking back from the Prime Video content the player should be able to resume without reinitialisation.

Observed behaviour: The ExoPlayer throws a Runtime Exception and the player is reset. (In the case for the App it tries to show a dialog after onSavedInstanceState is called and crashes, fixed in upcoming version)

Reproduction steps

  1. Open the App and go to a Video.
  2. Play for some seconds
  3. Open a Prime Video by using Alexa. For example Bosch
  4. Waiting until the prime video is loaded
  5. Click back, the exception happens and the player is reset (or previous page shown due to crash)

Link to test content

Install https://www.amazon.com/ARTE-G-E-I-E/dp/B00AML8D24/ref=sr_1_1?keywords=arte&qid=1579705046&s=mobile-apps&sr=1-1

I was also able to reproduce this with other media apps like ZDF.

A full bug report captured from the device

2020-01-22 15:29:23.240 23847-24352/ E/ExoPlayerImplInternal: Internal runtime error.
    android.media.MediaCodec$CodecException: Error 0xffffffe0
        at android.media.MediaCodec.native_dequeueInputBuffer(Native Method)
        at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:2635)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:994)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:671)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:575)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:326)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:193)
        at android.os.HandlerThread.run(HandlerThread.java:65)

MediaCodec: MediaCodec looper is gone, skip reclaim
2020-01-22 13:31:05.652 6158-6193 E/libc: Access denied finding property "media.metrics.enabled"
2020-01-22 13:31:05.654 6158-6574 E/ExoPlayerImplInternal: Reset failed.
    java.lang.IllegalStateException
        at android.media.MediaCodec.native_stop(Native Method)
        at android.media.MediaCodec.stop(MediaCodec.java:2084)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:613)
        at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.releaseCodec(MediaCodecVideoRenderer.java:596)
        at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onReset(MediaCodecRenderer.java:591)
        at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onReset(MediaCodecVideoRenderer.java:460)
        at com.google.android.exoplayer2.BaseRenderer.reset(BaseRenderer.java:164)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:860)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:813)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:399)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:193)
        at android.os.HandlerThread.run(HandlerThread.java:65)

Version of ExoPlayer being used

Using version 2.10.6

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

Fire Cube 2nd Generation, FireOS 7.2.0.6. Can be reproduced 100% of the time.

nitin0331 commented 1 year ago

any update on this particular issue