From a73d32a7951e2392e5c28dca91b4cfceabee9c8f Mon Sep 17 00:00:00 2001 From: tonihei Date: Tue, 25 Jun 2024 05:05:08 -0700 Subject: [PATCH] Rename DummyTrackOutput and DummyExtractorOutput #cherrypick PiperOrigin-RevId: 646434450 (cherry picked from commit 867410fece006122820e26be4e0bea87309a4f2e) --- .../exoplayer/MediaExtractorCompat.java | 4 +- .../source/ProgressiveMediaPeriod.java | 4 +- .../source/chunk/BaseMediaChunkOutput.java | 4 +- .../source/chunk/BundledChunkExtractor.java | 6 +- .../chunk/MediaParserChunkExtractor.java | 10 ++- .../mediaparser/OutputConsumerAdapterV30.java | 4 +- .../exoplayer/hls/HlsSampleStreamWrapper.java | 12 +-- .../extractor/DiscardingTrackOutput.java | 77 +++++++++++++++++++ .../extractor/DummyExtractorOutput.java | 10 ++- .../media3/extractor/DummyTrackOutput.java | 41 +++++----- .../media3/extractor/NoOpExtractorOutput.java | 38 +++++++++ .../media3/extractor/avi/AviExtractor.java | 4 +- .../extractor/flv/ScriptTagPayloadReader.java | 4 +- .../media3/extractor/mp3/Mp3Extractor.java | 4 +- .../media3/extractor/ts/AdtsReader.java | 4 +- 15 files changed, 173 insertions(+), 53 deletions(-) create mode 100644 libraries/extractor/src/main/java/androidx/media3/extractor/DiscardingTrackOutput.java create mode 100644 libraries/extractor/src/main/java/androidx/media3/extractor/NoOpExtractorOutput.java diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaExtractorCompat.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaExtractorCompat.java index b0fc694a98..f0efcdf2b2 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaExtractorCompat.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaExtractorCompat.java @@ -51,7 +51,7 @@ import androidx.media3.exoplayer.upstream.Allocator; import androidx.media3.exoplayer.upstream.DefaultAllocator; import androidx.media3.extractor.DefaultExtractorInput; import androidx.media3.extractor.DefaultExtractorsFactory; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.Extractor.ReadResult; import androidx.media3.extractor.ExtractorInput; @@ -601,7 +601,7 @@ public final class MediaExtractorCompat { } if (tracksEnded) { // The id is new and the extractor has ended the tracks. Discard. - return new DummyTrackOutput(); + return new DiscardingTrackOutput(); } sampleQueue = new MediaExtractorSampleQueue(allocator, id); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java index 0ee2cc1f36..81dbfe7fb9 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java @@ -54,7 +54,7 @@ import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy.LoadErrorInfo; import androidx.media3.exoplayer.upstream.Loader; import androidx.media3.exoplayer.upstream.Loader.LoadErrorAction; import androidx.media3.exoplayer.upstream.Loader.Loadable; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorOutput; import androidx.media3.extractor.ForwardingSeekMap; @@ -739,7 +739,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; } if (sampleQueuesBuilt) { Log.w(TAG, "Extractor added new track (id=" + id.id + ") after finishing tracks."); - return new DummyTrackOutput(); + return new DiscardingTrackOutput(); } SampleQueue trackOutput = SampleQueue.createWithDrm(allocator, drmSessionManager, drmEventDispatcher); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BaseMediaChunkOutput.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BaseMediaChunkOutput.java index 9383e3adb0..3c82c34436 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BaseMediaChunkOutput.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/BaseMediaChunkOutput.java @@ -20,7 +20,7 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.source.SampleQueue; import androidx.media3.exoplayer.source.chunk.ChunkExtractor.TrackOutputProvider; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.TrackOutput; /** @@ -52,7 +52,7 @@ public final class BaseMediaChunkOutput implements TrackOutputProvider { } } Log.e(TAG, "Unmatched track of type: " + type); - return new DummyTrackOutput(); + return new DiscardingTrackOutput(); } /** Returns the current absolute write indices of the individual sample queues. */ 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 0ec3815bfa..5ef9c0cf7c 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 @@ -29,7 +29,7 @@ import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.extractor.ChunkIndex; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorInput; import androidx.media3.extractor.ExtractorOutput; @@ -282,7 +282,7 @@ public final class BundledChunkExtractor implements ExtractorOutput, ChunkExtrac private final int id; private final int type; @Nullable private final Format manifestFormat; - private final DummyTrackOutput fakeTrackOutput; + private final DiscardingTrackOutput fakeTrackOutput; public @MonotonicNonNull Format sampleFormat; private @MonotonicNonNull TrackOutput trackOutput; @@ -292,7 +292,7 @@ public final class BundledChunkExtractor implements ExtractorOutput, ChunkExtrac this.id = id; this.type = type; this.manifestFormat = manifestFormat; - fakeTrackOutput = new DummyTrackOutput(); + fakeTrackOutput = new DiscardingTrackOutput(); } public void bind(@Nullable TrackOutputProvider trackOutputProvider, long endTimeUs) { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/MediaParserChunkExtractor.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/MediaParserChunkExtractor.java index ea08a1d765..8aed8adb9c 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/MediaParserChunkExtractor.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/MediaParserChunkExtractor.java @@ -39,7 +39,7 @@ import androidx.media3.exoplayer.source.mediaparser.InputReaderAdapterV30; import androidx.media3.exoplayer.source.mediaparser.MediaParserUtil; import androidx.media3.exoplayer.source.mediaparser.OutputConsumerAdapterV30; import androidx.media3.extractor.ChunkIndex; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.ExtractorInput; import androidx.media3.extractor.ExtractorOutput; import androidx.media3.extractor.SeekMap; @@ -77,7 +77,7 @@ public final class MediaParserChunkExtractor implements ChunkExtractor { private final InputReaderAdapterV30 inputReaderAdapter; private final MediaParser mediaParser; private final TrackOutputProviderAdapter trackOutputProviderAdapter; - private final DummyTrackOutput dummyTrackOutput; + private final DiscardingTrackOutput discardingTrackOutput; private long pendingSeekUs; @Nullable private TrackOutputProvider trackOutputProvider; @Nullable private Format[] sampleFormats; @@ -127,7 +127,7 @@ public final class MediaParserChunkExtractor implements ChunkExtractor { } outputConsumerAdapter.setMuxedCaptionFormats(closedCaptionFormats); trackOutputProviderAdapter = new TrackOutputProviderAdapter(); - dummyTrackOutput = new DummyTrackOutput(); + discardingTrackOutput = new DiscardingTrackOutput(); pendingSeekUs = C.TIME_UNSET; } @@ -182,7 +182,9 @@ public final class MediaParserChunkExtractor implements ChunkExtractor { @Override public TrackOutput track(int id, int type) { - return trackOutputProvider != null ? trackOutputProvider.track(id, type) : dummyTrackOutput; + return trackOutputProvider != null + ? trackOutputProvider.track(id, type) + : discardingTrackOutput; } @Override diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java index ab15bba669..87e894c6c8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java @@ -55,8 +55,8 @@ import androidx.media3.common.util.TimestampAdjuster; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.extractor.ChunkIndex; -import androidx.media3.extractor.DummyExtractorOutput; import androidx.media3.extractor.ExtractorOutput; +import androidx.media3.extractor.NoOpExtractorOutput; import androidx.media3.extractor.SeekMap; import androidx.media3.extractor.SeekPoint; import androidx.media3.extractor.TrackOutput; @@ -149,7 +149,7 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume lastReceivedCryptoInfos = new ArrayList<>(); lastOutputCryptoDatas = new ArrayList<>(); scratchDataReaderAdapter = new DataReaderAdapter(); - extractorOutput = new DummyExtractorOutput(); + extractorOutput = new NoOpExtractorOutput(); sampleTimestampUpperLimitFilterUs = C.TIME_UNSET; muxedCaptionFormats = ImmutableList.of(); } diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java index 8c6bcd09e2..8779c83b40 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java @@ -64,7 +64,7 @@ import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy; import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy.LoadErrorInfo; import androidx.media3.exoplayer.upstream.Loader; import androidx.media3.exoplayer.upstream.Loader.LoadErrorAction; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorOutput; import androidx.media3.extractor.SeekMap; @@ -1093,7 +1093,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; if (trackOutput == null) { if (tracksEnded) { - return createFakeTrackOutput(id, type); + return createDiscardingTrackOutput(id, type); } else { // The relevant SampleQueue hasn't been constructed yet - so construct it. trackOutput = createSampleQueue(id, type); @@ -1114,7 +1114,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; * has been created yet. * *

If a {@link SampleQueue} for {@code type} has been created and is mapped, but it has a - * different ID, then return a {@link DummyTrackOutput} that does nothing. + * different ID, then return a {@link DiscardingTrackOutput} that does nothing. * *

If a {@link SampleQueue} for {@code type} has been created but is not mapped, then map it to * this {@code id} and return it. This situation can happen after a call to {@link @@ -1137,7 +1137,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; } return sampleQueueTrackIds[sampleQueueIndex] == id ? sampleQueues[sampleQueueIndex] - : createFakeTrackOutput(id, type); + : createDiscardingTrackOutput(id, type); } private SampleQueue createSampleQueue(int id, int type) { @@ -1646,9 +1646,9 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; return true; } - private static DummyTrackOutput createFakeTrackOutput(int id, int type) { + private static DiscardingTrackOutput createDiscardingTrackOutput(int id, int type) { Log.w(TAG, "Unmapped track with id " + id + " of type " + type); - return new DummyTrackOutput(); + return new DiscardingTrackOutput(); } /** diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/DiscardingTrackOutput.java b/libraries/extractor/src/main/java/androidx/media3/extractor/DiscardingTrackOutput.java new file mode 100644 index 0000000000..82d89d71b4 --- /dev/null +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/DiscardingTrackOutput.java @@ -0,0 +1,77 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.extractor; + +import static java.lang.Math.min; + +import androidx.annotation.Nullable; +import androidx.media3.common.C; +import androidx.media3.common.DataReader; +import androidx.media3.common.Format; +import androidx.media3.common.util.ParsableByteArray; +import androidx.media3.common.util.UnstableApi; +import java.io.EOFException; +import java.io.IOException; + +/** A {@link TrackOutput} that consumes and discards all reported samples. */ +@UnstableApi +public final class DiscardingTrackOutput implements TrackOutput { + + // Even though read data is discarded, data source implementations could be making use of the + // buffer contents. For example, caches. So we cannot use a static field for this which could be + // shared between different threads. + private final byte[] readBuffer; + + /** Creates discarding track output. */ + public DiscardingTrackOutput() { + readBuffer = new byte[4096]; + } + + @Override + public void format(Format format) { + // Do nothing. + } + + @Override + public int sampleData( + DataReader input, int length, boolean allowEndOfInput, @SampleDataPart int sampleDataPart) + throws IOException { + int bytesToSkipByReading = min(readBuffer.length, length); + int bytesSkipped = input.read(readBuffer, /* offset= */ 0, bytesToSkipByReading); + if (bytesSkipped == C.RESULT_END_OF_INPUT) { + if (allowEndOfInput) { + return C.RESULT_END_OF_INPUT; + } + throw new EOFException(); + } + return bytesSkipped; + } + + @Override + public void sampleData(ParsableByteArray data, int length, @SampleDataPart int sampleDataPart) { + data.skipBytes(length); + } + + @Override + public void sampleMetadata( + long timeUs, + @C.BufferFlags int flags, + int size, + int offset, + @Nullable CryptoData cryptoData) { + // Do nothing. + } +} diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/DummyExtractorOutput.java b/libraries/extractor/src/main/java/androidx/media3/extractor/DummyExtractorOutput.java index b5a07bd1bb..4566efc173 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/DummyExtractorOutput.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/DummyExtractorOutput.java @@ -15,15 +15,19 @@ */ package androidx.media3.extractor; +import androidx.media3.common.C; import androidx.media3.common.util.UnstableApi; -/** A fake {@link ExtractorOutput} implementation. */ +/** + * @deprecated Use {@link NoOpExtractorOutput} instead. + */ +@Deprecated @UnstableApi public final class DummyExtractorOutput implements ExtractorOutput { @Override - public TrackOutput track(int id, int type) { - return new DummyTrackOutput(); + public TrackOutput track(int id, @C.TrackType int type) { + return new DiscardingTrackOutput(); } @Override diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/DummyTrackOutput.java b/libraries/extractor/src/main/java/androidx/media3/extractor/DummyTrackOutput.java index f6c57f0f50..670ca081bb 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/DummyTrackOutput.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/DummyTrackOutput.java @@ -15,53 +15,52 @@ */ package androidx.media3.extractor; -import static java.lang.Math.min; - import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.DataReader; import androidx.media3.common.Format; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; -import java.io.EOFException; import java.io.IOException; -/** A fake {@link TrackOutput} implementation. */ +/** + * @deprecated Use {@link DiscardingTrackOutput} instead. + */ @UnstableApi +@Deprecated public final class DummyTrackOutput implements TrackOutput { - // Even though read data is discarded, data source implementations could be making use of the - // buffer contents. For example, caches. So we cannot use a static field for this which could be - // shared between different threads. - private final byte[] readBuffer; + private final DiscardingTrackOutput discardingTrackOutput; public DummyTrackOutput() { - readBuffer = new byte[4096]; + discardingTrackOutput = new DiscardingTrackOutput(); } @Override public void format(Format format) { - // Do nothing. + discardingTrackOutput.format(format); + } + + @Override + public int sampleData(DataReader input, int length, boolean allowEndOfInput) throws IOException { + return discardingTrackOutput.sampleData(input, length, allowEndOfInput); + } + + @Override + public void sampleData(ParsableByteArray data, int length) { + discardingTrackOutput.sampleData(data, length); } @Override public int sampleData( DataReader input, int length, boolean allowEndOfInput, @SampleDataPart int sampleDataPart) throws IOException { - int bytesToSkipByReading = min(readBuffer.length, length); - int bytesSkipped = input.read(readBuffer, /* offset= */ 0, bytesToSkipByReading); - if (bytesSkipped == C.RESULT_END_OF_INPUT) { - if (allowEndOfInput) { - return C.RESULT_END_OF_INPUT; - } - throw new EOFException(); - } - return bytesSkipped; + return discardingTrackOutput.sampleData(input, length, allowEndOfInput, sampleDataPart); } @Override public void sampleData(ParsableByteArray data, int length, @SampleDataPart int sampleDataPart) { - data.skipBytes(length); + discardingTrackOutput.sampleData(data, length, sampleDataPart); } @Override @@ -71,6 +70,6 @@ public final class DummyTrackOutput implements TrackOutput { int size, int offset, @Nullable CryptoData cryptoData) { - // Do nothing. + discardingTrackOutput.sampleMetadata(timeUs, flags, size, offset, cryptoData); } } diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/NoOpExtractorOutput.java b/libraries/extractor/src/main/java/androidx/media3/extractor/NoOpExtractorOutput.java new file mode 100644 index 0000000000..c510f0ff08 --- /dev/null +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/NoOpExtractorOutput.java @@ -0,0 +1,38 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.extractor; + +import androidx.media3.common.util.UnstableApi; + +/** An {@link ExtractorOutput} implementation that does nothing. */ +@UnstableApi +public final class NoOpExtractorOutput implements ExtractorOutput { + + @Override + public TrackOutput track(int id, int type) { + return new DiscardingTrackOutput(); + } + + @Override + public void endTracks() { + // Do nothing. + } + + @Override + public void seekMap(SeekMap seekMap) { + // Do nothing. + } +} diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/avi/AviExtractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/avi/AviExtractor.java index 1373b17a5e..4524fd1101 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/avi/AviExtractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/avi/AviExtractor.java @@ -27,10 +27,10 @@ import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; -import androidx.media3.extractor.DummyExtractorOutput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorInput; import androidx.media3.extractor.ExtractorOutput; +import androidx.media3.extractor.NoOpExtractorOutput; import androidx.media3.extractor.PositionHolder; import androidx.media3.extractor.SeekMap; import androidx.media3.extractor.TrackOutput; @@ -181,7 +181,7 @@ public final class AviExtractor implements Extractor { parseSubtitlesDuringExtraction = (extractorFlags & FLAG_EMIT_RAW_SUBTITLE_DATA) == 0; scratch = new ParsableByteArray(/* limit= */ 12); chunkHeaderHolder = new ChunkHeaderHolder(); - extractorOutput = new DummyExtractorOutput(); + extractorOutput = new NoOpExtractorOutput(); chunkReaders = new ChunkReader[0]; moviStart = C.INDEX_UNSET; moviEnd = C.INDEX_UNSET; diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/flv/ScriptTagPayloadReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/flv/ScriptTagPayloadReader.java index 3cf03c27f0..e3052d993f 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/flv/ScriptTagPayloadReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/flv/ScriptTagPayloadReader.java @@ -18,7 +18,7 @@ package androidx.media3.extractor.flv; import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.util.ParsableByteArray; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -49,7 +49,7 @@ import java.util.Map; private long[] keyFrameTagPositions; public ScriptTagPayloadReader() { - super(new DummyTrackOutput()); + super(new DiscardingTrackOutput()); durationUs = C.TIME_UNSET; keyFrameTimesUs = new long[0]; keyFrameTagPositions = new long[0]; diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/Mp3Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/Mp3Extractor.java index eafb68c8e3..c64d26c648 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/Mp3Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/Mp3Extractor.java @@ -31,7 +31,7 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorInput; import androidx.media3.extractor.ExtractorOutput; @@ -211,7 +211,7 @@ public final class Mp3Extractor implements Extractor { gaplessInfoHolder = new GaplessInfoHolder(); basisTimeUs = C.TIME_UNSET; id3Peeker = new Id3Peeker(); - skippingTrackOutput = new DummyTrackOutput(); + skippingTrackOutput = new DiscardingTrackOutput(); currentTrackOutput = skippingTrackOutput; } diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/AdtsReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/AdtsReader.java index a9b8f7d303..b2c8c5a67c 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/AdtsReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/AdtsReader.java @@ -30,7 +30,7 @@ import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.extractor.AacUtil; -import androidx.media3.extractor.DummyTrackOutput; +import androidx.media3.extractor.DiscardingTrackOutput; import androidx.media3.extractor.ExtractorOutput; import androidx.media3.extractor.TrackOutput; import androidx.media3.extractor.ts.TsPayloadReader.TrackIdGenerator; @@ -153,7 +153,7 @@ public final class AdtsReader implements ElementaryStreamReader { .setSampleMimeType(MimeTypes.APPLICATION_ID3) .build()); } else { - id3Output = new DummyTrackOutput(); + id3Output = new DiscardingTrackOutput(); } }