diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index a595e5c706..5099ded718 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -190,12 +190,6 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory { liveMaxSpeed = C.RATE_UNSET; } - /** - * {@inheritDoc} - * - *

The current limitation is that this method will have no effect when progressive media with - * muxed subtitles is {@linkplain #createMediaSource created}. - */ @CanIgnoreReturnValue @UnstableApi @Override @@ -664,6 +658,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory { public void setParseSubtitlesDuringExtraction(boolean parseSubtitlesDuringExtraction) { this.parseSubtitlesDuringExtraction = parseSubtitlesDuringExtraction; + extractorsFactory.experimentalSetTextTrackTranscodingEnabled(parseSubtitlesDuringExtraction); for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { mediaSourceFactory.experimentalParseSubtitlesDuringExtraction( parseSubtitlesDuringExtraction); diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java b/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java index 6ca38380e2..73b0ea9a2d 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/DefaultExtractorsFactory.java @@ -25,7 +25,6 @@ import androidx.annotation.GuardedBy; import androidx.annotation.Nullable; import androidx.media3.common.FileTypes; import androidx.media3.common.Format; -import androidx.media3.common.MimeTypes; import androidx.media3.common.PlaybackException; import androidx.media3.common.Player; import androidx.media3.common.util.TimestampAdjuster; @@ -359,18 +358,18 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory { } /** - * Enables transcoding of text track samples to {@link MimeTypes#APPLICATION_MEDIA3_CUES} before - * the data is emitted to {@link TrackOutput}. - * - *

Transcoding is disabled by default. - * - * @param textTrackTranscodingEnabled Whether to enable transcoding. - * @return The factory, for convenience. + * @deprecated Use {@link #experimentalSetTextTrackTranscodingEnabled(boolean)} instead. */ - // TODO: b/289916598 - Flip this to default to enabled and deprecate it. + @Deprecated @CanIgnoreReturnValue public synchronized DefaultExtractorsFactory setTextTrackTranscodingEnabled( boolean textTrackTranscodingEnabled) { + return experimentalSetTextTrackTranscodingEnabled(textTrackTranscodingEnabled); + } + + @Override + public DefaultExtractorsFactory experimentalSetTextTrackTranscodingEnabled( + boolean textTrackTranscodingEnabled) { this.textTrackTranscodingEnabled = textTrackTranscodingEnabled; return this; } diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ExtractorsFactory.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ExtractorsFactory.java index 8f0fccd641..a37b36d3dc 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ExtractorsFactory.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ExtractorsFactory.java @@ -16,7 +16,9 @@ package androidx.media3.extractor; import android.net.Uri; +import androidx.media3.common.MimeTypes; import androidx.media3.common.util.UnstableApi; +import com.google.errorprone.annotations.CanIgnoreReturnValue; import java.util.List; import java.util.Map; @@ -30,6 +32,24 @@ public interface ExtractorsFactory { */ ExtractorsFactory EMPTY = () -> new Extractor[] {}; + /** + * Enables transcoding of text track samples to {@link MimeTypes#APPLICATION_MEDIA3_CUES} before + * the data is emitted to {@link TrackOutput}. + * + *

Transcoding is disabled by default. + * + *

This method is experimental and will be renamed or removed in a future release. + * + * @param textTrackTranscodingEnabled Whether to enable transcoding. + * @return The factory, for convenience. + */ + // TODO: b/289916598 - Flip this to default to enabled and deprecate it. + @CanIgnoreReturnValue + default ExtractorsFactory experimentalSetTextTrackTranscodingEnabled( + boolean textTrackTranscodingEnabled) { + return this; + } + /** Returns an array of new {@link Extractor} instances. */ Extractor[] createExtractors();