Remove non-progressive limitation from DefaultMediaSourceFactory.experimentalParseSubtitlesDuringExtraction

This involves promoting `setTextTranscodingEnabled` to
`ExtractorsFactory`, and also making it experimental, to indicate it's a
short-lived method.

PiperOrigin-RevId: 597235252
This commit is contained in:
ibaker 2024-01-10 06:43:39 -08:00 committed by Copybara-Service
parent d6ef48fff8
commit 3f9e0540b7
3 changed files with 29 additions and 15 deletions

View File

@ -190,12 +190,6 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
liveMaxSpeed = C.RATE_UNSET; liveMaxSpeed = C.RATE_UNSET;
} }
/**
* {@inheritDoc}
*
* <p>The current limitation is that this method will have no effect when progressive media with
* muxed subtitles is {@linkplain #createMediaSource created}.
*/
@CanIgnoreReturnValue @CanIgnoreReturnValue
@UnstableApi @UnstableApi
@Override @Override
@ -664,6 +658,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
public void setParseSubtitlesDuringExtraction(boolean parseSubtitlesDuringExtraction) { public void setParseSubtitlesDuringExtraction(boolean parseSubtitlesDuringExtraction) {
this.parseSubtitlesDuringExtraction = parseSubtitlesDuringExtraction; this.parseSubtitlesDuringExtraction = parseSubtitlesDuringExtraction;
extractorsFactory.experimentalSetTextTrackTranscodingEnabled(parseSubtitlesDuringExtraction);
for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) { for (MediaSource.Factory mediaSourceFactory : mediaSourceFactories.values()) {
mediaSourceFactory.experimentalParseSubtitlesDuringExtraction( mediaSourceFactory.experimentalParseSubtitlesDuringExtraction(
parseSubtitlesDuringExtraction); parseSubtitlesDuringExtraction);

View File

@ -25,7 +25,6 @@ import androidx.annotation.GuardedBy;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.media3.common.FileTypes; import androidx.media3.common.FileTypes;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.PlaybackException; import androidx.media3.common.PlaybackException;
import androidx.media3.common.Player; import androidx.media3.common.Player;
import androidx.media3.common.util.TimestampAdjuster; 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 * @deprecated Use {@link #experimentalSetTextTrackTranscodingEnabled(boolean)} instead.
* the data is emitted to {@link TrackOutput}.
*
* <p>Transcoding is disabled by default.
*
* @param textTrackTranscodingEnabled Whether to enable transcoding.
* @return The factory, for convenience.
*/ */
// TODO: b/289916598 - Flip this to default to enabled and deprecate it. @Deprecated
@CanIgnoreReturnValue @CanIgnoreReturnValue
public synchronized DefaultExtractorsFactory setTextTrackTranscodingEnabled( public synchronized DefaultExtractorsFactory setTextTrackTranscodingEnabled(
boolean textTrackTranscodingEnabled) { boolean textTrackTranscodingEnabled) {
return experimentalSetTextTrackTranscodingEnabled(textTrackTranscodingEnabled);
}
@Override
public DefaultExtractorsFactory experimentalSetTextTrackTranscodingEnabled(
boolean textTrackTranscodingEnabled) {
this.textTrackTranscodingEnabled = textTrackTranscodingEnabled; this.textTrackTranscodingEnabled = textTrackTranscodingEnabled;
return this; return this;
} }

View File

@ -16,7 +16,9 @@
package androidx.media3.extractor; package androidx.media3.extractor;
import android.net.Uri; import android.net.Uri;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.UnstableApi;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -30,6 +32,24 @@ public interface ExtractorsFactory {
*/ */
ExtractorsFactory EMPTY = () -> new Extractor[] {}; ExtractorsFactory EMPTY = () -> new Extractor[] {};
/**
* Enables transcoding of text track samples to {@link MimeTypes#APPLICATION_MEDIA3_CUES} before
* the data is emitted to {@link TrackOutput}.
*
* <p>Transcoding is disabled by default.
*
* <p>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. */ /** Returns an array of new {@link Extractor} instances. */
Extractor[] createExtractors(); Extractor[] createExtractors();