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;
}
/**
* {@inheritDoc}
*
* <p>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);

View File

@ -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}.
*
* <p>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;
}

View File

@ -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}.
*
* <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. */
Extractor[] createExtractors();