RevEngine3r / river_player

Apache License 2.0
16 stars 8 forks source link

[BUG] OutOfMemoryError Failed to allocate a 120 byte allocation with 21200 free bytes and 20KB until OOM, target footprint 402653184, growth limit 402653184; giving up on allocation because <1% of heap free after GC. #6

Open Gayathri-kt opened 3 months ago

Gayathri-kt commented 3 months ago

java.lang.OutOfMemoryError: Failed to allocate a 120 byte allocation with 21200 free bytes and 20KB until OOM, target footprint 402653184, growth limit 402653184; giving up on allocation because <1% of heap free after GC. at java.lang.StringFactory.newStringFromBytes(StringFactory.java) at java.lang.StringLatin1.newString(StringLatin1.java:738) at java.lang.StringBuilder.toString(StringBuilder.java:474) at java.lang.Throwable.printStackTrace(Throwable.java:688) at java.lang.Throwable.printStackTrace(Throwable.java:753) at android.util.Log.getStackTraceString(Log.java:384) at androidx.media3.common.util.Log.getThrowableString(Log.java:287) at androidx.media3.common.util.Log.appendThrowableString(Log.java:294) at androidx.media3.common.util.Log.e(Log.java:255) at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:442) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at java.lang.Thread.run(Thread.java:1012)

JonasJW commented 1 month ago

Having the same issues on Android when caching is enabled. Work around is disableding caching but the reason I use River/BetterPlayer is for the caching.

@Gayathri-kt what was your solution to this?

E/AndroidRuntime(15928): java.lang.OutOfMemoryError: Failed to allocate a 64 byte allocation with 43280 free bytes and 42KB until OOM, target footprint 536870912, growth limit 536870912; giving up on allocation because <1% of heap free after GC. E/AndroidRuntime(15928): at android.media.MediaCodec.getBuffer(Native Method) E/AndroidRuntime(15928): at android.media.MediaCodec.getOutputBuffer(MediaCodec.java:4066) E/AndroidRuntime(15928): at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecAdapter.getOutputBuffer(AsynchronousMediaCodecAdapter.java:218) E/AndroidRuntime(15928): at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:1894) E/AndroidRuntime(15928): at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:816) E/AndroidRuntime(15928): at androidx.media3.exoplayer.video.MediaCodecVideoRenderer.render(MediaCodecVideoRenderer.java:852) E/AndroidRuntime(15928): at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1047) E/AndroidRuntime(15928): at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:522) E/AndroidRuntime(15928): at android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime(15928): at android.os.Looper.loopOnce(Looper.java:226) E/AndroidRuntime(15928): at android.os.Looper.loop(Looper.java:313) E/AndroidRuntime(15928): at android.os.HandlerThread.run(HandlerThread.java:67)