Use a longer timeout for running Transformer on emulators
PiperOrigin-RevId: 566688502
This commit is contained in:
parent
db7c33b01c
commit
08c72b927d
@ -40,6 +40,7 @@ import androidx.media3.common.Timeline;
|
||||
import androidx.media3.common.Tracks;
|
||||
import androidx.media3.common.util.Clock;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
import androidx.media3.common.util.Util;
|
||||
import androidx.media3.exoplayer.DefaultLoadControl;
|
||||
import androidx.media3.exoplayer.ExoPlayer;
|
||||
import androidx.media3.exoplayer.Renderer;
|
||||
@ -53,6 +54,7 @@ import androidx.media3.exoplayer.trackselection.DefaultTrackSelector;
|
||||
import androidx.media3.exoplayer.video.VideoRendererEventListener;
|
||||
import androidx.media3.extractor.DefaultExtractorsFactory;
|
||||
import androidx.media3.extractor.mp4.Mp4Extractor;
|
||||
import com.google.common.base.Ascii;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
/** An {@link AssetLoader} implementation that uses an {@link ExoPlayer} to load samples. */
|
||||
@ -140,6 +142,12 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The timeout value, in milliseconds, to set on the internal {@link ExoPlayer} instance when
|
||||
* running on an emulator.
|
||||
*/
|
||||
private static final long EMULATOR_RELEASE_TIMEOUT_MS = 5_000;
|
||||
|
||||
private final EditedMediaItem editedMediaItem;
|
||||
private final CapturingDecoderFactory decoderFactory;
|
||||
private final ExoPlayer player;
|
||||
@ -187,7 +195,8 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
|
||||
.setTrackSelector(trackSelector)
|
||||
.setLoadControl(loadControl)
|
||||
.setLooper(looper)
|
||||
.setUsePlatformDiagnostics(false);
|
||||
.setUsePlatformDiagnostics(false)
|
||||
.setReleaseTimeoutMs(getReleaseTimeoutMs());
|
||||
if (clock != Clock.DEFAULT) {
|
||||
// Transformer.Builder#setClock is also @VisibleForTesting, so if we're using a non-default
|
||||
// clock we must be in a test context.
|
||||
@ -363,4 +372,12 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
|
||||
assetLoaderListener.onError(ExportException.createForAssetLoader(error, errorCode));
|
||||
}
|
||||
}
|
||||
|
||||
private static long getReleaseTimeoutMs() {
|
||||
// b/297916906 - Emulators need a larger timeout for releasing.
|
||||
return Ascii.toLowerCase(Util.DEVICE).contains("emulator")
|
||||
|| Ascii.toLowerCase(Util.DEVICE).contains("generic")
|
||||
? EMULATOR_RELEASE_TIMEOUT_MS
|
||||
: ExoPlayer.DEFAULT_RELEASE_TIMEOUT_MS;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user