diff options
| author | 2024-04-03 12:33:13 +0000 | |
|---|---|---|
| committer | 2024-04-03 12:33:13 +0000 | |
| commit | 60c96d24f007df6cc55c17dc58b9cde029c365cc (patch) | |
| tree | 27e2acf148b1887181583edd8809ff8f05a22213 | |
| parent | d851d8ec4cb9a0db9cf739b04d8328ebd0b0de21 (diff) | |
| parent | 797d80ee9010a0d1fc1c4ae14e6cdc51b3643ce7 (diff) | |
Merge "Use ashmem memory to transport MediaDescription to other processes" into main
| -rw-r--r-- | AconfigFlags.bp | 16 | ||||
| -rw-r--r-- | media/java/android/media/MediaDescription.java | 10 | ||||
| -rw-r--r-- | media/java/android/media/flags/performance.aconfig | 11 |
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 + } +} |