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.Tracks;
|
||||||
import androidx.media3.common.util.Clock;
|
import androidx.media3.common.util.Clock;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
|
import androidx.media3.common.util.Util;
|
||||||
import androidx.media3.exoplayer.DefaultLoadControl;
|
import androidx.media3.exoplayer.DefaultLoadControl;
|
||||||
import androidx.media3.exoplayer.ExoPlayer;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
import androidx.media3.exoplayer.Renderer;
|
import androidx.media3.exoplayer.Renderer;
|
||||||
@ -53,6 +54,7 @@ import androidx.media3.exoplayer.trackselection.DefaultTrackSelector;
|
|||||||
import androidx.media3.exoplayer.video.VideoRendererEventListener;
|
import androidx.media3.exoplayer.video.VideoRendererEventListener;
|
||||||
import androidx.media3.extractor.DefaultExtractorsFactory;
|
import androidx.media3.extractor.DefaultExtractorsFactory;
|
||||||
import androidx.media3.extractor.mp4.Mp4Extractor;
|
import androidx.media3.extractor.mp4.Mp4Extractor;
|
||||||
|
import com.google.common.base.Ascii;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
||||||
/** An {@link AssetLoader} implementation that uses an {@link ExoPlayer} to load samples. */
|
/** 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 EditedMediaItem editedMediaItem;
|
||||||
private final CapturingDecoderFactory decoderFactory;
|
private final CapturingDecoderFactory decoderFactory;
|
||||||
private final ExoPlayer player;
|
private final ExoPlayer player;
|
||||||
@ -187,7 +195,8 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
|
|||||||
.setTrackSelector(trackSelector)
|
.setTrackSelector(trackSelector)
|
||||||
.setLoadControl(loadControl)
|
.setLoadControl(loadControl)
|
||||||
.setLooper(looper)
|
.setLooper(looper)
|
||||||
.setUsePlatformDiagnostics(false);
|
.setUsePlatformDiagnostics(false)
|
||||||
|
.setReleaseTimeoutMs(getReleaseTimeoutMs());
|
||||||
if (clock != Clock.DEFAULT) {
|
if (clock != Clock.DEFAULT) {
|
||||||
// Transformer.Builder#setClock is also @VisibleForTesting, so if we're using a non-default
|
// Transformer.Builder#setClock is also @VisibleForTesting, so if we're using a non-default
|
||||||
// clock we must be in a test context.
|
// clock we must be in a test context.
|
||||||
@ -363,4 +372,12 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
|
|||||||
assetLoaderListener.onError(ExportException.createForAssetLoader(error, errorCode));
|
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