From ec7ac3f4825a29faea8da46f747cd9563dace883 Mon Sep 17 00:00:00 2001 From: lpribanic Date: Mon, 13 Nov 2023 10:16:50 -0800 Subject: [PATCH] Create image extractors in BundledChunkExtractor BundledChunkExtractor creates a JpegExtractor or a PngExtractor if the chunk's MIME type is JPEG or PNG respectively. The JpegExtractor is instantiated to load an image track. PiperOrigin-RevId: 582005828 --- .../exoplayer/source/chunk/BundledChunkExtractor.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java index 28ee84a819..bac9a777d2 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BundledChunkExtractor.java @@ -35,13 +35,16 @@ import androidx.media3.extractor.ExtractorOutput; import androidx.media3.extractor.PositionHolder; import androidx.media3.extractor.SeekMap; import androidx.media3.extractor.TrackOutput; +import androidx.media3.extractor.jpeg.JpegExtractor; import androidx.media3.extractor.mkv.MatroskaExtractor; import androidx.media3.extractor.mp4.FragmentedMp4Extractor; +import androidx.media3.extractor.png.PngExtractor; import androidx.media3.extractor.text.SubtitleExtractor; import androidx.media3.extractor.text.SubtitleParser; import androidx.media3.extractor.text.SubtitleTranscodingExtractor; import java.io.IOException; import java.util.List; +import java.util.Objects; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** @@ -97,6 +100,10 @@ public final class BundledChunkExtractor implements ExtractorOutput, ChunkExtrac } } else if (MimeTypes.isMatroska(containerMimeType)) { extractor = new MatroskaExtractor(MatroskaExtractor.FLAG_DISABLE_SEEK_FOR_CUES); + } else if (Objects.equals(containerMimeType, MimeTypes.IMAGE_JPEG)) { + extractor = new JpegExtractor(JpegExtractor.FLAG_READ_IMAGE); + } else if (Objects.equals(containerMimeType, MimeTypes.IMAGE_PNG)) { + extractor = new PngExtractor(); } else { int flags = 0; if (enableEventMessageTrack) {