From 7d05f20493cdce803d0862d6da20a6c1df1c91e7 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Wed, 23 Jun 2021 14:16:41 +0100 Subject: [PATCH] Signal container MIME type for JPEGs Before this change the `Format` on the image track output by the `JpegExtractor` doesn't have a MIME type. PiperOrigin-RevId: 381015819 --- .../android/exoplayer2/extractor/jpeg/JpegExtractor.java | 6 +++++- .../jpeg/non-motion-photo-shortened.jpg.0.dump | 1 + .../jpeg/non-motion-photo-shortened.jpg.unknown_length.dump | 1 + .../pixel-motion-photo-jfif-segment-shortened.jpg.0.dump | 1 + .../pixel-motion-photo-jfif-segment-shortened.jpg.1.dump | 1 + .../pixel-motion-photo-jfif-segment-shortened.jpg.2.dump | 1 + .../pixel-motion-photo-jfif-segment-shortened.jpg.3.dump | 1 + ...ion-photo-jfif-segment-shortened.jpg.unknown_length.dump | 1 + .../jpeg/pixel-motion-photo-shortened.jpg.0.dump | 1 + .../pixel-motion-photo-shortened.jpg.unknown_length.dump | 1 + .../pixel-motion-photo-video-removed-shortened.jpg.0.dump | 1 + ...on-photo-video-removed-shortened.jpg.unknown_length.dump | 1 + .../jpeg/ss-motion-photo-shortened.jpg.0.dump | 1 + .../jpeg/ss-motion-photo-shortened.jpg.unknown_length.dump | 1 + 14 files changed, 18 insertions(+), 1 deletion(-) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/jpeg/JpegExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/jpeg/JpegExtractor.java index 777126905a..a985ec83ee 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/jpeg/JpegExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/jpeg/JpegExtractor.java @@ -30,6 +30,7 @@ import com.google.android.exoplayer2.extractor.TrackOutput; import com.google.android.exoplayer2.extractor.mp4.Mp4Extractor; import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.mp4.MotionPhotoMetadata; +import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; import java.io.IOException; import java.lang.annotation.Documented; @@ -273,7 +274,10 @@ public final class JpegExtractor implements Extractor { TrackOutput imageTrackOutput = checkNotNull(extractorOutput).track(IMAGE_TRACK_ID, C.TRACK_TYPE_IMAGE); imageTrackOutput.format( - new Format.Builder().setMetadata(new Metadata(metadataEntries)).build()); + new Format.Builder() + .setContainerMimeType(MimeTypes.IMAGE_JPEG) + .setMetadata(new Metadata(metadataEntries)) + .build()); } /** diff --git a/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.0.dump b/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.0.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.0.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.0.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.unknown_length.dump b/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.unknown_length.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/non-motion-photo-shortened.jpg.unknown_length.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump index 80ac03b125..d9d6e116b6 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump @@ -28,5 +28,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[Motion photo metadata: photoStartPosition=0, photoSize=6377, photoPresentationTimestampUs=1232840, videoStartPosition=6377, videoSize=4686] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump index 80ac03b125..d9d6e116b6 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump @@ -28,5 +28,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[Motion photo metadata: photoStartPosition=0, photoSize=6377, photoPresentationTimestampUs=1232840, videoStartPosition=6377, videoSize=4686] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump index 80ac03b125..d9d6e116b6 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump @@ -28,5 +28,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[Motion photo metadata: photoStartPosition=0, photoSize=6377, photoPresentationTimestampUs=1232840, videoStartPosition=6377, videoSize=4686] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump index 80ac03b125..d9d6e116b6 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump @@ -28,5 +28,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[Motion photo metadata: photoStartPosition=0, photoSize=6377, photoPresentationTimestampUs=1232840, videoStartPosition=6377, videoSize=4686] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.unknown_length.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.unknown_length.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.unknown_length.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.0.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.0.dump index 7e398127fa..fc2adcadd7 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.0.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.0.dump @@ -8,5 +8,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[Motion photo metadata: photoStartPosition=0, photoSize=131582, photoPresentationTimestampUs=0, videoStartPosition=131582, videoSize=8730] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.unknown_length.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.unknown_length.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-shortened.jpg.unknown_length.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.0.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.0.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.0.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.0.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.unknown_length.dump b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.unknown_length.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/pixel-motion-photo-video-removed-shortened.jpg.unknown_length.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.0.dump b/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.0.dump index df80dc226a..cd7232f583 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.0.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.0.dump @@ -8,5 +8,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[Motion photo metadata: photoStartPosition=0, photoSize=20345, photoPresentationTimestampUs=-9223372036854775807, videoStartPosition=20345, videoSize=2582] tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.unknown_length.dump b/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.unknown_length.dump index bb201ef2ef..02c10855b5 100644 --- a/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/jpeg/ss-motion-photo-shortened.jpg.unknown_length.dump @@ -7,5 +7,6 @@ track 1024: total output bytes = 0 sample count = 0 format 0: + containerMimeType = image/jpeg metadata = entries=[] tracksEnded = true