summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jernej Virag <jernej@google.com> 2024-04-03 12:33:13 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-04-03 12:33:13 +0000
commit60c96d24f007df6cc55c17dc58b9cde029c365cc (patch)
tree27e2acf148b1887181583edd8809ff8f05a22213
parentd851d8ec4cb9a0db9cf739b04d8328ebd0b0de21 (diff)
parent797d80ee9010a0d1fc1c4ae14e6cdc51b3643ce7 (diff)
Merge "Use ashmem memory to transport MediaDescription to other processes" into main
-rw-r--r--AconfigFlags.bp16
-rw-r--r--media/java/android/media/MediaDescription.java10
-rw-r--r--media/java/android/media/flags/performance.aconfig11
3 files changed, 35 insertions, 2 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index 65feadbf23d0..20a52595f030 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -83,6 +83,7 @@ aconfig_declarations_group {
"com.android.internal.pm.pkg.component.flags-aconfig-java",
"com.android.media.flags.bettertogether-aconfig-java",
"com.android.media.flags.editing-aconfig-java",
+ "com.android.media.flags.performance-aconfig-java",
"com.android.media.flags.projection-aconfig-java",
"com.android.net.thread.platform.flags-aconfig-java",
"com.android.server.flags.services-aconfig-java",
@@ -594,6 +595,21 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
+// Media Performance
+aconfig_declarations {
+ name: "com.android.media.flags.performance-aconfig",
+ package: "com.android.media.performance.flags",
+ srcs: [
+ "media/java/android/media/flags/performance.aconfig",
+ ],
+}
+
+java_aconfig_library {
+ name: "com.android.media.flags.performance-aconfig-java",
+ aconfig_declarations: "com.android.media.flags.performance-aconfig",
+ defaults: ["framework-minus-apex-aconfig-java-defaults"],
+}
+
// Media TV
aconfig_declarations {
name: "android.media.tv.flags-aconfig",
diff --git a/media/java/android/media/MediaDescription.java b/media/java/android/media/MediaDescription.java
index dece6bdbb35f..ec95279f48f1 100644
--- a/media/java/android/media/MediaDescription.java
+++ b/media/java/android/media/MediaDescription.java
@@ -397,8 +397,14 @@ public class MediaDescription implements Parcelable {
* @return a new media description.
*/
public MediaDescription build() {
- return new MediaDescription(mMediaId, mTitle, mSubtitle, mDescription, mIcon, mIconUri,
- mExtras, mMediaUri);
+ if (com.android.media.performance.flags.Flags.mediaDescriptionAshmemBitmap()) {
+ Bitmap icon = mIcon != null ? mIcon.asShared() : null;
+ return new MediaDescription(mMediaId, mTitle, mSubtitle, mDescription, icon,
+ mIconUri, mExtras, mMediaUri);
+ } else {
+ return new MediaDescription(mMediaId, mTitle, mSubtitle, mDescription, mIcon,
+ mIconUri, mExtras, mMediaUri);
+ }
}
}
}
diff --git a/media/java/android/media/flags/performance.aconfig b/media/java/android/media/flags/performance.aconfig
new file mode 100644
index 000000000000..9e9197ef5039
--- /dev/null
+++ b/media/java/android/media/flags/performance.aconfig
@@ -0,0 +1,11 @@
+package: "com.android.media.performance.flags"
+
+flag {
+ name: "media_description_ashmem_bitmap"
+ namespace: "systemui"
+ description: "Use ashmem to pass bitmaps in MediaDescription to avoid excessive Bitmap copies."
+ bug: "288241280"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}