From 19629513af6d792e1bb3687bc46d03b775dd50aa Mon Sep 17 00:00:00 2001 From: samrobinson Date: Fri, 11 Jun 2021 17:35:31 +0100 Subject: [PATCH] Populate MediaMetadata artwork from PictureFrame. PiperOrigin-RevId: 378889901 --- .../metadata/flac/PictureFrame.java | 6 +++++ .../metadata/flac/PictureFrameTest.java | 24 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/metadata/flac/PictureFrame.java b/library/common/src/main/java/com/google/android/exoplayer2/metadata/flac/PictureFrame.java index ce134614ad..02c8dd7533 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/metadata/flac/PictureFrame.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/metadata/flac/PictureFrame.java @@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Util.castNonNull; import android.os.Parcel; import android.os.Parcelable; import androidx.annotation.Nullable; +import com.google.android.exoplayer2.MediaMetadata; import com.google.android.exoplayer2.metadata.Metadata; import java.util.Arrays; @@ -73,6 +74,11 @@ public final class PictureFrame implements Metadata.Entry { this.pictureData = castNonNull(in.createByteArray()); } + @Override + public void populateMediaMetadata(MediaMetadata.Builder builder) { + builder.setArtworkData(pictureData); + } + @Override public String toString() { return "Picture: mimeType=" + mimeType + ", description=" + description; diff --git a/library/common/src/test/java/com/google/android/exoplayer2/metadata/flac/PictureFrameTest.java b/library/common/src/test/java/com/google/android/exoplayer2/metadata/flac/PictureFrameTest.java index 6b7a18e287..daed426d0b 100644 --- a/library/common/src/test/java/com/google/android/exoplayer2/metadata/flac/PictureFrameTest.java +++ b/library/common/src/test/java/com/google/android/exoplayer2/metadata/flac/PictureFrameTest.java @@ -19,6 +19,9 @@ import static com.google.common.truth.Truth.assertThat; import android.os.Parcel; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.android.exoplayer2.MediaMetadata; +import com.google.android.exoplayer2.metadata.Metadata; +import com.google.android.exoplayer2.util.MimeTypes; import org.junit.Test; import org.junit.runner.RunWith; @@ -39,4 +42,25 @@ public final class PictureFrameTest { parcel.recycle(); } + + @Test + public void populateMediaMetadata_setsMediaMetadataValue() { + byte[] pictureData = new byte[] {-12, 52, 33, 85, 34, 22, 1, -55}; + Metadata.Entry entry = + new PictureFrame( + /* pictureType= */ 0x03, + /* mimeType= */ MimeTypes.IMAGE_JPEG, + /* description= */ "an image", + /* width= */ 4, + /* height= */ 2, + /* depth= */ 1, + /* colors= */ 1, + pictureData); + + MediaMetadata.Builder builder = MediaMetadata.EMPTY.buildUpon(); + entry.populateMediaMetadata(builder); + + MediaMetadata mediaMetadata = builder.build(); + assertThat(mediaMetadata.artworkData).isEqualTo(pictureData); + } }