From f3bf4ad5fe3b240ecec034fe4d3b44b2e09c81d1 Mon Sep 17 00:00:00 2001 From: claincly Date: Wed, 31 Jul 2024 11:27:38 -0700 Subject: [PATCH] Disable frame dropping on sm-x200@API34 From debug trace when decoding a 30fps video, the decoder output ``` "0us", "33366us", "66733us", "100100us", "133466us", "166833us", "200200us", ``` But the frame processor only received, despite setting `ALLOW_FRAME_DROP`: ``` "0us", "166833us", "200200us", ``` PiperOrigin-RevId: 658079749 --- .../src/main/java/androidx/media3/common/util/Util.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/Util.java b/libraries/common/src/main/java/androidx/media3/common/util/Util.java index b938c1d6e2..5089102602 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/Util.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/Util.java @@ -3371,13 +3371,14 @@ public final class Util { // bounds. From API 29, if the app targets API 29 or later, the {@link // MediaFormat#KEY_ALLOW_FRAME_DROP} key prevents frame dropping even when the surface is // full. - // Some API 30 devices might drop frames despite setting {@link - // MediaFormat#KEY_ALLOW_FRAME_DROP} to 0. See b/307518793 and b/289983935. + // Some devices might drop frames despite setting {@link + // MediaFormat#KEY_ALLOW_FRAME_DROP} to 0. See b/307518793, b/289983935 and b/353487886. return SDK_INT < 29 || context.getApplicationInfo().targetSdkVersion < 29 || (SDK_INT == 30 - && (Ascii.equalsIgnoreCase(MODEL, "moto g(20)") - || Ascii.equalsIgnoreCase(MODEL, "rmx3231"))); + && (Ascii.equalsIgnoreCase(MODEL, "moto g(20)") + || Ascii.equalsIgnoreCase(MODEL, "rmx3231")) + || (SDK_INT == 34 && Ascii.equalsIgnoreCase(MODEL, "sm-x200"))); } /**