Merge tag 'android-13.0.0_r32' into int/13/fp3

Android 13.0.0 release 32

* tag 'android-13.0.0_r32':
  Update VNDK snapshot v31 to build 9442954.

Change-Id: I1375ca7685d6e76f9517a597427dcebe09504d12
diff --git a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so
index d6e27cf..6380e6f 100755
--- a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so
+++ b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libgui.so
Binary files differ
diff --git a/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h b/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
index d17a480..52ea28b 100644
--- a/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
+++ b/arm/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
@@ -146,6 +146,7 @@
     Vector<TrackInfo> mSelectedTracks;
     int64_t mTotalBitrate;  // in bits/sec
     int64_t mDurationUs;
+    String8 mName;
 
     void setEntryPointToRemoteMediaExtractor();
 
@@ -165,6 +166,7 @@
     bool getTotalBitrate(int64_t *bitRate) const;
     status_t updateDurationAndBitrate();
     status_t appendVorbisNumPageSamples(MediaBufferBase *mbuf, const sp<ABuffer> &buffer);
+    status_t initMediaExtractor(const sp<DataSource>& dataSource);
 
     DISALLOW_EVIL_CONSTRUCTORS(NuMediaExtractor);
 };
diff --git a/arm/include/frameworks/native/libs/gui/include/gui/LayerState.h b/arm/include/frameworks/native/libs/gui/include/gui/LayerState.h
index 4ffd324..9460319 100644
--- a/arm/include/frameworks/native/libs/gui/include/gui/LayerState.h
+++ b/arm/include/frameworks/native/libs/gui/include/gui/LayerState.h
@@ -26,6 +26,7 @@
 #include <gui/ITransactionCompletedListener.h>
 #include <math/mat4.h>
 
+#include <android/gui/DropInputMode.h>
 #ifndef NO_INPUT
 #include <android/FocusRequest.h>
 #include <input/InputWindow.h>
@@ -122,6 +123,7 @@
         eFixedTransformHintChanged = 0x200'00000000,
         eFrameNumberChanged = 0x400'00000000,
         eBlurRegionsChanged = 0x800'00000000,
+        eDropInputModeChanged = 0x8000'00000000,
         eAutoRefreshChanged = 0x1000'00000000,
         eStretchChanged = 0x2000'00000000,
         eTrustedOverlayChanged = 0x4000'00000000,
@@ -240,6 +242,9 @@
     // Stretch effect to be applied to this layer
     StretchEffect stretchEffect;
 
+    // Force inputflinger to drop all input events for the layer and its children.
+    gui::DropInputMode dropInputMode;
+
     Rect bufferCrop;
     Rect destinationFrame;
 
diff --git a/arm/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h b/arm/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
index 6eae1f9..66eec10 100644
--- a/arm/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
+++ b/arm/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
@@ -541,6 +541,8 @@
         // Sets that this surface control and its children are trusted overlays for input
         Transaction& setTrustedOverlay(const sp<SurfaceControl>& sc, bool isTrustedOverlay);
 
+        Transaction& setDropInputMode(const sp<SurfaceControl>& sc, gui::DropInputMode mode);
+
         // Queues up transactions using this token in SurfaceFlinger.  By default, all transactions
         // from a client are placed on the same queue. This can be used to prevent multiple
         // transactions from blocking each other.
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/BnDropInputMode.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/BnDropInputMode.h
new file mode 100644
index 0000000..d717a4a
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/BnDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bn classes
\ No newline at end of file
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/BpDropInputMode.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/BpDropInputMode.h
new file mode 100644
index 0000000..9c951e0
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/BpDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bp classes
\ No newline at end of file
diff --git a/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/DropInputMode.h b/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/DropInputMode.h
new file mode 100644
index 0000000..998cced
--- /dev/null
+++ b/arm/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv7-a-neon_shared/gen/aidl/android/gui/DropInputMode.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <array>
+#include <binder/Enums.h>
+#include <cstdint>
+#include <string>
+
+namespace android {
+
+namespace gui {
+
+enum class DropInputMode : int32_t {
+  NONE = 0,
+  ALL = 1,
+};
+
+[[nodiscard]] static inline std::string toString(DropInputMode val) {
+  switch(val) {
+  case DropInputMode::NONE:
+    return "NONE";
+  case DropInputMode::ALL:
+    return "ALL";
+  default:
+    return std::to_string(static_cast<int32_t>(val));
+  }
+}
+
+}  // namespace gui
+
+}  // namespace android
+namespace android {
+
+namespace internal {
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++17-extensions"
+template <>
+constexpr inline std::array<::android::gui::DropInputMode, 2> enum_values<::android::gui::DropInputMode> = {
+  ::android::gui::DropInputMode::NONE,
+  ::android::gui::DropInputMode::ALL,
+};
+#pragma clang diagnostic pop
+
+}  // namespace internal
+
+}  // namespace android
diff --git a/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so b/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so
index 837a7db..7fc7ed4 100755
--- a/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so
+++ b/arm64/arch-arm-armv8-a/shared/vndk-core/libgui.so
Binary files differ
diff --git a/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so b/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so
index 00ff3c4..d704c03 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-core/libgui.so
Binary files differ
diff --git a/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h b/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
index d17a480..52ea28b 100644
--- a/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
+++ b/arm64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
@@ -146,6 +146,7 @@
     Vector<TrackInfo> mSelectedTracks;
     int64_t mTotalBitrate;  // in bits/sec
     int64_t mDurationUs;
+    String8 mName;
 
     void setEntryPointToRemoteMediaExtractor();
 
@@ -165,6 +166,7 @@
     bool getTotalBitrate(int64_t *bitRate) const;
     status_t updateDurationAndBitrate();
     status_t appendVorbisNumPageSamples(MediaBufferBase *mbuf, const sp<ABuffer> &buffer);
+    status_t initMediaExtractor(const sp<DataSource>& dataSource);
 
     DISALLOW_EVIL_CONSTRUCTORS(NuMediaExtractor);
 };
diff --git a/arm64/include/frameworks/native/libs/gui/include/gui/LayerState.h b/arm64/include/frameworks/native/libs/gui/include/gui/LayerState.h
index 4ffd324..9460319 100644
--- a/arm64/include/frameworks/native/libs/gui/include/gui/LayerState.h
+++ b/arm64/include/frameworks/native/libs/gui/include/gui/LayerState.h
@@ -26,6 +26,7 @@
 #include <gui/ITransactionCompletedListener.h>
 #include <math/mat4.h>
 
+#include <android/gui/DropInputMode.h>
 #ifndef NO_INPUT
 #include <android/FocusRequest.h>
 #include <input/InputWindow.h>
@@ -122,6 +123,7 @@
         eFixedTransformHintChanged = 0x200'00000000,
         eFrameNumberChanged = 0x400'00000000,
         eBlurRegionsChanged = 0x800'00000000,
+        eDropInputModeChanged = 0x8000'00000000,
         eAutoRefreshChanged = 0x1000'00000000,
         eStretchChanged = 0x2000'00000000,
         eTrustedOverlayChanged = 0x4000'00000000,
@@ -240,6 +242,9 @@
     // Stretch effect to be applied to this layer
     StretchEffect stretchEffect;
 
+    // Force inputflinger to drop all input events for the layer and its children.
+    gui::DropInputMode dropInputMode;
+
     Rect bufferCrop;
     Rect destinationFrame;
 
diff --git a/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h b/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
index 6eae1f9..66eec10 100644
--- a/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
+++ b/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
@@ -541,6 +541,8 @@
         // Sets that this surface control and its children are trusted overlays for input
         Transaction& setTrustedOverlay(const sp<SurfaceControl>& sc, bool isTrustedOverlay);
 
+        Transaction& setDropInputMode(const sp<SurfaceControl>& sc, gui::DropInputMode mode);
+
         // Queues up transactions using this token in SurfaceFlinger.  By default, all transactions
         // from a client are placed on the same queue. This can be used to prevent multiple
         // transactions from blocking each other.
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/BnDropInputMode.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/BnDropInputMode.h
new file mode 100644
index 0000000..d717a4a
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/BnDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bn classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/BpDropInputMode.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/BpDropInputMode.h
new file mode 100644
index 0000000..9c951e0
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/BpDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bp classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/DropInputMode.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/DropInputMode.h
new file mode 100644
index 0000000..998cced
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm64_armv8-a_shared/gen/aidl/android/gui/DropInputMode.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <array>
+#include <binder/Enums.h>
+#include <cstdint>
+#include <string>
+
+namespace android {
+
+namespace gui {
+
+enum class DropInputMode : int32_t {
+  NONE = 0,
+  ALL = 1,
+};
+
+[[nodiscard]] static inline std::string toString(DropInputMode val) {
+  switch(val) {
+  case DropInputMode::NONE:
+    return "NONE";
+  case DropInputMode::ALL:
+    return "ALL";
+  default:
+    return std::to_string(static_cast<int32_t>(val));
+  }
+}
+
+}  // namespace gui
+
+}  // namespace android
+namespace android {
+
+namespace internal {
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++17-extensions"
+template <>
+constexpr inline std::array<::android::gui::DropInputMode, 2> enum_values<::android::gui::DropInputMode> = {
+  ::android::gui::DropInputMode::NONE,
+  ::android::gui::DropInputMode::ALL,
+};
+#pragma clang diagnostic pop
+
+}  // namespace internal
+
+}  // namespace android
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/BnDropInputMode.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/BnDropInputMode.h
new file mode 100644
index 0000000..d717a4a
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/BnDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bn classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/BpDropInputMode.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/BpDropInputMode.h
new file mode 100644
index 0000000..9c951e0
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/BpDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bp classes
\ No newline at end of file
diff --git a/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/DropInputMode.h b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/DropInputMode.h
new file mode 100644
index 0000000..998cced
--- /dev/null
+++ b/arm64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_arm_armv8-a_shared/gen/aidl/android/gui/DropInputMode.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <array>
+#include <binder/Enums.h>
+#include <cstdint>
+#include <string>
+
+namespace android {
+
+namespace gui {
+
+enum class DropInputMode : int32_t {
+  NONE = 0,
+  ALL = 1,
+};
+
+[[nodiscard]] static inline std::string toString(DropInputMode val) {
+  switch(val) {
+  case DropInputMode::NONE:
+    return "NONE";
+  case DropInputMode::ALL:
+    return "ALL";
+  default:
+    return std::to_string(static_cast<int32_t>(val));
+  }
+}
+
+}  // namespace gui
+
+}  // namespace android
+namespace android {
+
+namespace internal {
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++17-extensions"
+template <>
+constexpr inline std::array<::android::gui::DropInputMode, 2> enum_values<::android::gui::DropInputMode> = {
+  ::android::gui::DropInputMode::NONE,
+  ::android::gui::DropInputMode::ALL,
+};
+#pragma clang diagnostic pop
+
+}  // namespace internal
+
+}  // namespace android
diff --git a/x86/arch-x86/shared/vndk-core/libgui.so b/x86/arch-x86/shared/vndk-core/libgui.so
index 8b949dd..774e7f1 100755
--- a/x86/arch-x86/shared/vndk-core/libgui.so
+++ b/x86/arch-x86/shared/vndk-core/libgui.so
Binary files differ
diff --git a/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h b/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
index d17a480..52ea28b 100644
--- a/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
+++ b/x86/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
@@ -146,6 +146,7 @@
     Vector<TrackInfo> mSelectedTracks;
     int64_t mTotalBitrate;  // in bits/sec
     int64_t mDurationUs;
+    String8 mName;
 
     void setEntryPointToRemoteMediaExtractor();
 
@@ -165,6 +166,7 @@
     bool getTotalBitrate(int64_t *bitRate) const;
     status_t updateDurationAndBitrate();
     status_t appendVorbisNumPageSamples(MediaBufferBase *mbuf, const sp<ABuffer> &buffer);
+    status_t initMediaExtractor(const sp<DataSource>& dataSource);
 
     DISALLOW_EVIL_CONSTRUCTORS(NuMediaExtractor);
 };
diff --git a/x86/include/frameworks/native/libs/gui/include/gui/LayerState.h b/x86/include/frameworks/native/libs/gui/include/gui/LayerState.h
index 4ffd324..9460319 100644
--- a/x86/include/frameworks/native/libs/gui/include/gui/LayerState.h
+++ b/x86/include/frameworks/native/libs/gui/include/gui/LayerState.h
@@ -26,6 +26,7 @@
 #include <gui/ITransactionCompletedListener.h>
 #include <math/mat4.h>
 
+#include <android/gui/DropInputMode.h>
 #ifndef NO_INPUT
 #include <android/FocusRequest.h>
 #include <input/InputWindow.h>
@@ -122,6 +123,7 @@
         eFixedTransformHintChanged = 0x200'00000000,
         eFrameNumberChanged = 0x400'00000000,
         eBlurRegionsChanged = 0x800'00000000,
+        eDropInputModeChanged = 0x8000'00000000,
         eAutoRefreshChanged = 0x1000'00000000,
         eStretchChanged = 0x2000'00000000,
         eTrustedOverlayChanged = 0x4000'00000000,
@@ -240,6 +242,9 @@
     // Stretch effect to be applied to this layer
     StretchEffect stretchEffect;
 
+    // Force inputflinger to drop all input events for the layer and its children.
+    gui::DropInputMode dropInputMode;
+
     Rect bufferCrop;
     Rect destinationFrame;
 
diff --git a/x86/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h b/x86/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
index 6eae1f9..66eec10 100644
--- a/x86/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
+++ b/x86/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
@@ -541,6 +541,8 @@
         // Sets that this surface control and its children are trusted overlays for input
         Transaction& setTrustedOverlay(const sp<SurfaceControl>& sc, bool isTrustedOverlay);
 
+        Transaction& setDropInputMode(const sp<SurfaceControl>& sc, gui::DropInputMode mode);
+
         // Queues up transactions using this token in SurfaceFlinger.  By default, all transactions
         // from a client are placed on the same queue. This can be used to prevent multiple
         // transactions from blocking each other.
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/BnDropInputMode.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/BnDropInputMode.h
new file mode 100644
index 0000000..d717a4a
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/BnDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bn classes
\ No newline at end of file
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/BpDropInputMode.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/BpDropInputMode.h
new file mode 100644
index 0000000..9c951e0
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/BpDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bp classes
\ No newline at end of file
diff --git a/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/DropInputMode.h b/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/DropInputMode.h
new file mode 100644
index 0000000..998cced
--- /dev/null
+++ b/x86/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_shared/gen/aidl/android/gui/DropInputMode.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <array>
+#include <binder/Enums.h>
+#include <cstdint>
+#include <string>
+
+namespace android {
+
+namespace gui {
+
+enum class DropInputMode : int32_t {
+  NONE = 0,
+  ALL = 1,
+};
+
+[[nodiscard]] static inline std::string toString(DropInputMode val) {
+  switch(val) {
+  case DropInputMode::NONE:
+    return "NONE";
+  case DropInputMode::ALL:
+    return "ALL";
+  default:
+    return std::to_string(static_cast<int32_t>(val));
+  }
+}
+
+}  // namespace gui
+
+}  // namespace android
+namespace android {
+
+namespace internal {
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++17-extensions"
+template <>
+constexpr inline std::array<::android::gui::DropInputMode, 2> enum_values<::android::gui::DropInputMode> = {
+  ::android::gui::DropInputMode::NONE,
+  ::android::gui::DropInputMode::ALL,
+};
+#pragma clang diagnostic pop
+
+}  // namespace internal
+
+}  // namespace android
diff --git a/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so b/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so
index 0a6d33d..e21cc56 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-core/libgui.so
Binary files differ
diff --git a/x86_64/arch-x86_64/shared/vndk-core/libgui.so b/x86_64/arch-x86_64/shared/vndk-core/libgui.so
index fbfa6d8..591fd19 100755
--- a/x86_64/arch-x86_64/shared/vndk-core/libgui.so
+++ b/x86_64/arch-x86_64/shared/vndk-core/libgui.so
Binary files differ
diff --git a/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h b/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
index d17a480..52ea28b 100644
--- a/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
+++ b/x86_64/include/frameworks/av/media/libstagefright/include/media/stagefright/NuMediaExtractor.h
@@ -146,6 +146,7 @@
     Vector<TrackInfo> mSelectedTracks;
     int64_t mTotalBitrate;  // in bits/sec
     int64_t mDurationUs;
+    String8 mName;
 
     void setEntryPointToRemoteMediaExtractor();
 
@@ -165,6 +166,7 @@
     bool getTotalBitrate(int64_t *bitRate) const;
     status_t updateDurationAndBitrate();
     status_t appendVorbisNumPageSamples(MediaBufferBase *mbuf, const sp<ABuffer> &buffer);
+    status_t initMediaExtractor(const sp<DataSource>& dataSource);
 
     DISALLOW_EVIL_CONSTRUCTORS(NuMediaExtractor);
 };
diff --git a/x86_64/include/frameworks/native/libs/gui/include/gui/LayerState.h b/x86_64/include/frameworks/native/libs/gui/include/gui/LayerState.h
index 4ffd324..9460319 100644
--- a/x86_64/include/frameworks/native/libs/gui/include/gui/LayerState.h
+++ b/x86_64/include/frameworks/native/libs/gui/include/gui/LayerState.h
@@ -26,6 +26,7 @@
 #include <gui/ITransactionCompletedListener.h>
 #include <math/mat4.h>
 
+#include <android/gui/DropInputMode.h>
 #ifndef NO_INPUT
 #include <android/FocusRequest.h>
 #include <input/InputWindow.h>
@@ -122,6 +123,7 @@
         eFixedTransformHintChanged = 0x200'00000000,
         eFrameNumberChanged = 0x400'00000000,
         eBlurRegionsChanged = 0x800'00000000,
+        eDropInputModeChanged = 0x8000'00000000,
         eAutoRefreshChanged = 0x1000'00000000,
         eStretchChanged = 0x2000'00000000,
         eTrustedOverlayChanged = 0x4000'00000000,
@@ -240,6 +242,9 @@
     // Stretch effect to be applied to this layer
     StretchEffect stretchEffect;
 
+    // Force inputflinger to drop all input events for the layer and its children.
+    gui::DropInputMode dropInputMode;
+
     Rect bufferCrop;
     Rect destinationFrame;
 
diff --git a/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h b/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
index 6eae1f9..66eec10 100644
--- a/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
+++ b/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
@@ -541,6 +541,8 @@
         // Sets that this surface control and its children are trusted overlays for input
         Transaction& setTrustedOverlay(const sp<SurfaceControl>& sc, bool isTrustedOverlay);
 
+        Transaction& setDropInputMode(const sp<SurfaceControl>& sc, gui::DropInputMode mode);
+
         // Queues up transactions using this token in SurfaceFlinger.  By default, all transactions
         // from a client are placed on the same queue. This can be used to prevent multiple
         // transactions from blocking each other.
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/BnDropInputMode.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/BnDropInputMode.h
new file mode 100644
index 0000000..d717a4a
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/BnDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bn classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/BpDropInputMode.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/BpDropInputMode.h
new file mode 100644
index 0000000..9c951e0
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/BpDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bp classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/DropInputMode.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/DropInputMode.h
new file mode 100644
index 0000000..998cced
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_64_shared/gen/aidl/android/gui/DropInputMode.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <array>
+#include <binder/Enums.h>
+#include <cstdint>
+#include <string>
+
+namespace android {
+
+namespace gui {
+
+enum class DropInputMode : int32_t {
+  NONE = 0,
+  ALL = 1,
+};
+
+[[nodiscard]] static inline std::string toString(DropInputMode val) {
+  switch(val) {
+  case DropInputMode::NONE:
+    return "NONE";
+  case DropInputMode::ALL:
+    return "ALL";
+  default:
+    return std::to_string(static_cast<int32_t>(val));
+  }
+}
+
+}  // namespace gui
+
+}  // namespace android
+namespace android {
+
+namespace internal {
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++17-extensions"
+template <>
+constexpr inline std::array<::android::gui::DropInputMode, 2> enum_values<::android::gui::DropInputMode> = {
+  ::android::gui::DropInputMode::NONE,
+  ::android::gui::DropInputMode::ALL,
+};
+#pragma clang diagnostic pop
+
+}  // namespace internal
+
+}  // namespace android
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/BnDropInputMode.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/BnDropInputMode.h
new file mode 100644
index 0000000..d717a4a
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/BnDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bn classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/BpDropInputMode.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/BpDropInputMode.h
new file mode 100644
index 0000000..9c951e0
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/BpDropInputMode.h
@@ -0,0 +1 @@
+#error TODO(b/111362593) enums do not have bp classes
\ No newline at end of file
diff --git a/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/DropInputMode.h b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/DropInputMode.h
new file mode 100644
index 0000000..998cced
--- /dev/null
+++ b/x86_64/include/generated-headers/frameworks/native/libs/gui/libgui/android_vendor.31_x86_x86_64_shared/gen/aidl/android/gui/DropInputMode.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <array>
+#include <binder/Enums.h>
+#include <cstdint>
+#include <string>
+
+namespace android {
+
+namespace gui {
+
+enum class DropInputMode : int32_t {
+  NONE = 0,
+  ALL = 1,
+};
+
+[[nodiscard]] static inline std::string toString(DropInputMode val) {
+  switch(val) {
+  case DropInputMode::NONE:
+    return "NONE";
+  case DropInputMode::ALL:
+    return "ALL";
+  default:
+    return std::to_string(static_cast<int32_t>(val));
+  }
+}
+
+}  // namespace gui
+
+}  // namespace android
+namespace android {
+
+namespace internal {
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++17-extensions"
+template <>
+constexpr inline std::array<::android::gui::DropInputMode, 2> enum_values<::android::gui::DropInputMode> = {
+  ::android::gui::DropInputMode::NONE,
+  ::android::gui::DropInputMode::ALL,
+};
+#pragma clang diagnostic pop
+
+}  // namespace internal
+
+}  // namespace android