From 38d1032fec3a138c0b18c71a5f5bb251eb9b4e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Thu, 5 Mar 2020 16:41:41 +0100 Subject: [PATCH] android: disable HW accelerated decoding on Samsung They just keep crashing. --- .../meet/sdk/ReactInstanceManagerHolder.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java index 19ecfba5c..d0ac9e9e0 100644 --- a/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java +++ b/android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java @@ -17,6 +17,8 @@ package org.jitsi.meet.sdk; import android.app.Activity; +import android.os.Build; + import androidx.annotation.Nullable; import com.facebook.hermes.reactexecutor.HermesExecutorFactory; @@ -90,16 +92,19 @@ class ReactInstanceManagerHolder { options.setAudioDeviceModule(adm); VideoEncoderFactory videoEncoderFactory = new SoftwareVideoEncoderFactory(); - VideoDecoderFactory videoDecoderFactory; + VideoDecoderFactory videoDecoderFactory = new SoftwareVideoDecoderFactory(); + // Initialize EGL context required for HW acceleration. We are only going to use it for // decoding. - EglBase.Context eglContext = EglUtils.getRootEglBaseContext(); - if (eglContext == null) { - // Fallback to the software decoder. - videoDecoderFactory = new SoftwareVideoDecoderFactory(); - } else { - videoDecoderFactory = new DefaultVideoDecoderFactory(eglContext); + // NOTE: We are explicitly skipping Samsung devices because we have observed a high crash + // count on them. + if (!Build.MANUFACTURER.toLowerCase().contains("samsung")) { + EglBase.Context eglContext = EglUtils.getRootEglBaseContext(); + if (eglContext != null) { + videoDecoderFactory = new DefaultVideoDecoderFactory(eglContext); + } } + options.setVideoDecoderFactory(videoDecoderFactory); options.setVideoEncoderFactory(videoEncoderFactory);