From 1c1fd4d8b86e96fa6e89025e4af546c464b36a50 Mon Sep 17 00:00:00 2001 From: Colin Kho Date: Thu, 15 Aug 2024 09:56:58 -0700 Subject: [PATCH 1/4] Add getter for ChunkIndex on InitializationChunk --- .../media3/exoplayer/source/chunk/InitializationChunk.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java index 91308277bb..aad438ef77 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java @@ -23,6 +23,7 @@ import androidx.media3.datasource.DataSource; import androidx.media3.datasource.DataSourceUtil; import androidx.media3.datasource.DataSpec; import androidx.media3.exoplayer.source.chunk.ChunkExtractor.TrackOutputProvider; +import androidx.media3.extractor.ChunkIndex; import androidx.media3.extractor.DefaultExtractorInput; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorInput; @@ -109,4 +110,9 @@ public final class InitializationChunk extends Chunk { DataSourceUtil.closeQuietly(dataSource); } } + + @Nullable + public ChunkIndex getChunkIndex() { + return chunkExtractor.getChunkIndex(); + } } From 4a6c5c7598c6d6faa4098203869dde8481b0472a Mon Sep 17 00:00:00 2001 From: Colin Kho Date: Mon, 19 Aug 2024 10:28:14 -0700 Subject: [PATCH 2/4] Cache ChunkIndex once load is done --- .../exoplayer/source/chunk/InitializationChunk.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java index aad438ef77..00b6b95df2 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java @@ -39,6 +39,7 @@ public final class InitializationChunk extends Chunk { private final ChunkExtractor chunkExtractor; private @MonotonicNonNull TrackOutputProvider trackOutputProvider; + private @Nullable ChunkIndex chunkIndex; private long nextLoadPosition; private volatile boolean loadCanceled; @@ -105,14 +106,19 @@ public final class InitializationChunk extends Chunk { while (!loadCanceled && chunkExtractor.read(input)) {} } finally { nextLoadPosition = input.getPosition() - dataSpec.position; + chunkIndex = chunkExtractor.getChunkIndex(); } } finally { DataSourceUtil.closeQuietly(dataSource); } } + /** + * Returns the {@link ChunkIndex} most recently obtained from the latest {@link #load()}, or null + * if a {@link ChunkIndex} has not been obtained. + */ @Nullable public ChunkIndex getChunkIndex() { - return chunkExtractor.getChunkIndex(); + return chunkIndex; } } From f9f3e67ee26e2e1cb5def277200793d70a91aba2 Mon Sep 17 00:00:00 2001 From: Colin Kho Date: Mon, 19 Aug 2024 10:31:34 -0700 Subject: [PATCH 3/4] Include initialization chunk wording in getChunkIndex method --- .../media3/exoplayer/source/chunk/InitializationChunk.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java index 00b6b95df2..6e965647d1 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java @@ -114,8 +114,8 @@ public final class InitializationChunk extends Chunk { } /** - * Returns the {@link ChunkIndex} most recently obtained from the latest {@link #load()}, or null - * if a {@link ChunkIndex} has not been obtained. + * Returns the {@link ChunkIndex} most recently obtained from the initialization chunk in the + * most recent {@link #load()}, or null if a {@link ChunkIndex} has not been obtained. */ @Nullable public ChunkIndex getChunkIndex() { From 41430aaa0c602bd2cf2754ef0340a30097d161e7 Mon Sep 17 00:00:00 2001 From: Ian Baker Date: Tue, 20 Aug 2024 13:41:50 +0100 Subject: [PATCH 4/4] Fix annotation position and clarify javadoc --- .../media3/exoplayer/source/chunk/InitializationChunk.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java index 6e965647d1..4ad794a88f 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/chunk/InitializationChunk.java @@ -39,7 +39,7 @@ public final class InitializationChunk extends Chunk { private final ChunkExtractor chunkExtractor; private @MonotonicNonNull TrackOutputProvider trackOutputProvider; - private @Nullable ChunkIndex chunkIndex; + @Nullable private ChunkIndex chunkIndex; private long nextLoadPosition; private volatile boolean loadCanceled; @@ -114,8 +114,8 @@ public final class InitializationChunk extends Chunk { } /** - * Returns the {@link ChunkIndex} most recently obtained from the initialization chunk in the - * most recent {@link #load()}, or null if a {@link ChunkIndex} has not been obtained. + * Returns the {@link ChunkIndex} obtained from the initialization chunk, or null if a {@link + * ChunkIndex} has not been obtained. */ @Nullable public ChunkIndex getChunkIndex() {