Add Amlogic low latency vendor-defined option

This commit is contained in:
Cameron Gutman 2022-06-02 21:02:43 -05:00
parent 6f9021a5e6
commit 2859b73dfe

View File

@ -42,6 +42,7 @@ public class MediaCodecHelper {
private static final List<String> kirinDecoderPrefixes;
private static final List<String> exynosDecoderPrefixes;
private static final List<String> mediatekDecoderPrefixes;
private static final List<String> 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())) {