diff --git a/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java b/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java index 880749bd..3b0d3b92 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java @@ -42,6 +42,7 @@ public class MediaCodecHelper { private static final List kirinDecoderPrefixes; private static final List exynosDecoderPrefixes; private static final List mediatekDecoderPrefixes; + private static final List amlogicDecoderPrefixes; public static final boolean IS_EMULATOR = Build.HARDWARE.equals("ranchu") || Build.HARDWARE.equals("cheets"); @@ -218,6 +219,12 @@ public class MediaCodecHelper { mediatekDecoderPrefixes.add("omx.mtk"); } + static { + amlogicDecoderPrefixes = new LinkedList<>(); + + amlogicDecoderPrefixes.add("omx.amlogic"); + } + private static boolean isPowerVR(String glRenderer) { return glRenderer.toLowerCase().contains("powervr"); } @@ -433,6 +440,11 @@ public class MediaCodecHelper { // Exynos low latency option for H.264 decoder videoFormat.setInteger("vendor.rtc-ext-dec-low-latency.enable", 1); } + else if (isDecoderInList(amlogicDecoderPrefixes, decoderInfo.getName())) { + // Amlogic low latency vendor extension + // https://github.com/codewalkerster/android_vendor_amlogic_common_prebuilt_libstagefrighthw/commit/41fefc4e035c476d58491324a5fe7666bfc2989e + videoFormat.setInteger("vendor.low-latency.enable", 1); + } } if (MediaCodecHelper.decoderSupportsMaxOperatingRate(decoderInfo.getName())) {