Certain album covers crash VLC when playing audio files
Device Name: Pixel 3 (applies to Pixel 2 as well)
Android version: 9 PQ1A.190105.004
VLC version: VLC for Android 3.0.13
The issue occurs with audio files from the alternativlos-podcast in germany. The file format (they offer mp3, ogg, opus) doesn't seem to matter. Example: https://alternativlos.cdn.as250.net/alternativlos-39.opus Sound begins to play but VLC crashes in under a second. Here's the exception:
01-23 17:22:38.766 D/RenderScript(13519): Setting cache dir: /data/user_de/0/org.videolan.vlc/code_cache
01-23 17:22:38.813 E/AndroidRuntime(13519): FATAL EXCEPTION: main
01-23 17:22:38.813 E/AndroidRuntime(13519): Process: org.videolan.vlc, PID: 13519
01-23 17:22:38.813 E/AndroidRuntime(13519): android.renderscript.RSInvalidStateException: Bad bitmap type: RGBA_F16
01-23 17:22:38.813 E/AndroidRuntime(13519): at android.renderscript.Allocation.elementFromBitmap(Allocation.java:2767)
01-23 17:22:38.813 E/AndroidRuntime(13519): at android.renderscript.Allocation.typeFromBitmap(Allocation.java:2772)
01-23 17:22:38.813 E/AndroidRuntime(13519): at android.renderscript.Allocation.createFromBitmap(Allocation.java:2811)
01-23 17:22:38.813 E/AndroidRuntime(13519): at android.renderscript.Allocation.createFromBitmap(Allocation.java:3063)
01-23 17:22:38.813 E/AndroidRuntime(13519): at org.videolan.vlc.gui.helpers.UiTools.blurBitmap(UiTools.java:354)
01-23 17:22:38.813 E/AndroidRuntime(13519): at org.videolan.vlc.gui.helpers.UiTools.blurBitmap(UiTools.java:335)
01-23 17:22:38.813 E/AndroidRuntime(13519): at org.videolan.vlc.gui.audio.AudioPlayer$updateBackground$1$blurredCover$1.doResume(AudioPlayer.kt:279)
01-23 17:22:38.813 E/AndroidRuntime(13519): at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:42)
01-23 17:22:38.813 E/AndroidRuntime(13519): at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:161)
01-23 17:22:38.813 E/AndroidRuntime(13519): at kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:25)
01-23 17:22:38.813 E/AndroidRuntime(13519): at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1412)
01-23 17:22:38.813 E/AndroidRuntime(13519): at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:285)
01-23 17:22:38.813 E/AndroidRuntime(13519): at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1152)
01-23 17:22:38.813 E/AndroidRuntime(13519): at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1990)
01-23 17:22:38.813 E/AndroidRuntime(13519): at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1938)
01-23 17:22:38.813 E/AndroidRuntime(13519): at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): android.renderscript.RSInvalidStateException: Bad bitmap type: RGBA_F16
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at android.renderscript.Allocation.elementFromBitmap(Allocation.java:2767)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at android.renderscript.Allocation.typeFromBitmap(Allocation.java:2772)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at android.renderscript.Allocation.createFromBitmap(Allocation.java:2811)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at android.renderscript.Allocation.createFromBitmap(Allocation.java:3063)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at org.videolan.vlc.gui.helpers.UiTools.blurBitmap(UiTools.java:354)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at org.videolan.vlc.gui.helpers.UiTools.blurBitmap(UiTools.java:335)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at org.videolan.vlc.gui.audio.AudioPlayer$updateBackground$1$blurredCover$1.doResume(AudioPlayer.kt:279)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:42)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:161)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:25)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1412)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:285)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1152)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1990)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1938)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at Android.MODEL(Pixel 3)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at Android.VERSION(9)
01-23 17:22:38.813 E/VLC/VlcCrashHandler(13519): at Android.FINGERPRINT(google/blueline/blueline:9/PQ1A.190105.004/5148680:user/release-keys)
01-23 17:22:39.384 W/VLC (13519): [0000007439521790/3540] libvlc audio output: playback too late (60290): up-sampling
Workaround: Removing the cover from the file solved the issue for me.
Actual behavior: VLC crashes
Expected behavior: If VLC can't render the blur because of the file format, it should display a neutral background.