Snap for 9470583 from 55da2580fd90f579dccc7c0e4690323c886a2e97 to tm-qpr3-release

Change-Id: I9232fde305a0176821ef5b888856984f3c4a5d10
diff --git a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libexpat.so b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libexpat.so
index 9d01293..6b43a9b 100755
--- a/arm/arch-arm-armv7-a-neon/shared/vndk-core/libexpat.so
+++ b/arm/arch-arm-armv7-a-neon/shared/vndk-core/libexpat.so
Binary files differ
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 4383e2c..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/frameworks/native/libs/gui/include/gui/SurfaceControl.h b/arm/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
index 9ee4636..ed14ec6 100644
--- a/arm/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
+++ b/arm/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
@@ -118,12 +118,13 @@
     mutable sp<Surface>         mSurfaceData;
     mutable sp<BLASTBufferQueue> mBbq;
     mutable sp<SurfaceControl> mBbqChild;
-    int32_t mLayerId;
-    uint32_t mTransformHint;
-    uint32_t mWidth;
-    uint32_t mHeight;
-    PixelFormat mFormat;
-    uint32_t mCreateFlags;
+
+    int32_t mLayerId = 0;
+    uint32_t mTransformHint = 0;
+    uint32_t mWidth = 0;
+    uint32_t mHeight = 0;
+    PixelFormat mFormat = PIXEL_FORMAT_NONE;
+    uint32_t mCreateFlags = 0;
 };
 
 }; // namespace android
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/libexpat.so b/arm64/arch-arm-armv8-a/shared/vndk-core/libexpat.so
index ebac5cd..6619f37 100755
--- a/arm64/arch-arm-armv8-a/shared/vndk-core/libexpat.so
+++ b/arm64/arch-arm-armv8-a/shared/vndk-core/libexpat.so
Binary files differ
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 beaa6c3..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/libexpat.so b/arm64/arch-arm64-armv8-a/shared/vndk-core/libexpat.so
index 4bb9115..6470b61 100755
--- a/arm64/arch-arm64-armv8-a/shared/vndk-core/libexpat.so
+++ b/arm64/arch-arm64-armv8-a/shared/vndk-core/libexpat.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 b1fd7ce..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/frameworks/native/libs/gui/include/gui/SurfaceControl.h b/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
index 9ee4636..ed14ec6 100644
--- a/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
+++ b/arm64/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
@@ -118,12 +118,13 @@
     mutable sp<Surface>         mSurfaceData;
     mutable sp<BLASTBufferQueue> mBbq;
     mutable sp<SurfaceControl> mBbqChild;
-    int32_t mLayerId;
-    uint32_t mTransformHint;
-    uint32_t mWidth;
-    uint32_t mHeight;
-    PixelFormat mFormat;
-    uint32_t mCreateFlags;
+
+    int32_t mLayerId = 0;
+    uint32_t mTransformHint = 0;
+    uint32_t mWidth = 0;
+    uint32_t mHeight = 0;
+    PixelFormat mFormat = PIXEL_FORMAT_NONE;
+    uint32_t mCreateFlags = 0;
 };
 
 }; // namespace android
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/libexpat.so b/x86/arch-x86/shared/vndk-core/libexpat.so
index 4b7591c..310d780 100755
--- a/x86/arch-x86/shared/vndk-core/libexpat.so
+++ b/x86/arch-x86/shared/vndk-core/libexpat.so
Binary files differ
diff --git a/x86/arch-x86/shared/vndk-core/libgui.so b/x86/arch-x86/shared/vndk-core/libgui.so
index 1b51e3a..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/frameworks/native/libs/gui/include/gui/SurfaceControl.h b/x86/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
index 9ee4636..ed14ec6 100644
--- a/x86/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
+++ b/x86/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
@@ -118,12 +118,13 @@
     mutable sp<Surface>         mSurfaceData;
     mutable sp<BLASTBufferQueue> mBbq;
     mutable sp<SurfaceControl> mBbqChild;
-    int32_t mLayerId;
-    uint32_t mTransformHint;
-    uint32_t mWidth;
-    uint32_t mHeight;
-    PixelFormat mFormat;
-    uint32_t mCreateFlags;
+
+    int32_t mLayerId = 0;
+    uint32_t mTransformHint = 0;
+    uint32_t mWidth = 0;
+    uint32_t mHeight = 0;
+    PixelFormat mFormat = PIXEL_FORMAT_NONE;
+    uint32_t mCreateFlags = 0;
 };
 
 }; // namespace android
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/libexpat.so b/x86_64/arch-x86-x86_64/shared/vndk-core/libexpat.so
index a83f04d..ae24e1c 100755
--- a/x86_64/arch-x86-x86_64/shared/vndk-core/libexpat.so
+++ b/x86_64/arch-x86-x86_64/shared/vndk-core/libexpat.so
Binary files differ
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 4a51cf7..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/libexpat.so b/x86_64/arch-x86_64/shared/vndk-core/libexpat.so
index 3d3aeba..53e2ca1 100755
--- a/x86_64/arch-x86_64/shared/vndk-core/libexpat.so
+++ b/x86_64/arch-x86_64/shared/vndk-core/libexpat.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 44d8e89..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/frameworks/native/libs/gui/include/gui/SurfaceControl.h b/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
index 9ee4636..ed14ec6 100644
--- a/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
+++ b/x86_64/include/frameworks/native/libs/gui/include/gui/SurfaceControl.h
@@ -118,12 +118,13 @@
     mutable sp<Surface>         mSurfaceData;
     mutable sp<BLASTBufferQueue> mBbq;
     mutable sp<SurfaceControl> mBbqChild;
-    int32_t mLayerId;
-    uint32_t mTransformHint;
-    uint32_t mWidth;
-    uint32_t mHeight;
-    PixelFormat mFormat;
-    uint32_t mCreateFlags;
+
+    int32_t mLayerId = 0;
+    uint32_t mTransformHint = 0;
+    uint32_t mWidth = 0;
+    uint32_t mHeight = 0;
+    PixelFormat mFormat = PIXEL_FORMAT_NONE;
+    uint32_t mCreateFlags = 0;
 };
 
 }; // namespace android
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