Switch tests to use SimpleExoPlayer

PiperOrigin-RevId: 366033200
This commit is contained in:
olly 2021-03-31 15:52:16 +01:00 committed by Oliver Woodman
parent c02288452b
commit f5a4f3e609
5 changed files with 46 additions and 19 deletions

View File

@ -24,9 +24,11 @@ import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Renderer;
import com.google.android.exoplayer2.RenderersFactory;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.audio.AudioProcessor;
import com.google.android.exoplayer2.audio.AudioSink;
import com.google.android.exoplayer2.audio.DefaultAudioSink;
@ -93,7 +95,7 @@ public class FlacPlaybackTest {
private final Uri uri;
private final AudioSink audioSink;
@Nullable private ExoPlayer player;
@Nullable private SimpleExoPlayer player;
@Nullable private ExoPlaybackException playbackException;
public TestPlaybackRunnable(Uri uri, Context context, AudioSink audioSink) {
@ -105,9 +107,16 @@ public class FlacPlaybackTest {
@Override
public void run() {
Looper.prepare();
LibflacAudioRenderer audioRenderer =
new LibflacAudioRenderer(/* eventHandler= */ null, /* eventListener= */ null, audioSink);
player = new ExoPlayer.Builder(context, audioRenderer).build();
RenderersFactory renderersFactory =
(eventHandler,
videoRendererEventListener,
audioRendererEventListener,
textRendererOutput,
metadataRendererOutput) ->
new Renderer[] {
new LibflacAudioRenderer(eventHandler, audioRendererEventListener, audioSink)
};
player = new SimpleExoPlayer.Builder(context, renderersFactory).build();
player.addListener(this);
MediaSource mediaSource =
new ProgressiveMediaSource.Factory(

View File

@ -24,9 +24,11 @@ import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Renderer;
import com.google.android.exoplayer2.RenderersFactory;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
@ -76,7 +78,7 @@ public class OpusPlaybackTest {
private final Context context;
private final Uri uri;
@Nullable private ExoPlayer player;
@Nullable private SimpleExoPlayer player;
@Nullable private ExoPlaybackException playbackException;
public TestPlaybackRunnable(Uri uri, Context context) {
@ -87,8 +89,14 @@ public class OpusPlaybackTest {
@Override
public void run() {
Looper.prepare();
LibopusAudioRenderer audioRenderer = new LibopusAudioRenderer();
player = new ExoPlayer.Builder(context, audioRenderer).build();
RenderersFactory renderersFactory =
(eventHandler,
videoRendererEventListener,
audioRendererEventListener,
textRendererOutput,
metadataRendererOutput) ->
new Renderer[] {new LibopusAudioRenderer(eventHandler, audioRendererEventListener)};
player = new SimpleExoPlayer.Builder(context, renderersFactory).build();
player.addListener(this);
MediaSource mediaSource =
new ProgressiveMediaSource.Factory(

View File

@ -25,10 +25,11 @@ import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Renderer;
import com.google.android.exoplayer2.RenderersFactory;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
@ -105,7 +106,7 @@ public class VpxPlaybackTest {
private final Context context;
private final Uri uri;
@Nullable private ExoPlayer player;
@Nullable private SimpleExoPlayer player;
@Nullable private ExoPlaybackException playbackException;
public TestPlaybackRunnable(Uri uri, Context context) {
@ -116,18 +117,26 @@ public class VpxPlaybackTest {
@Override
public void run() {
Looper.prepare();
LibvpxVideoRenderer videoRenderer = new LibvpxVideoRenderer(0);
player = new ExoPlayer.Builder(context, videoRenderer).build();
RenderersFactory renderersFactory =
(eventHandler,
videoRendererEventListener,
audioRendererEventListener,
textRendererOutput,
metadataRendererOutput) ->
new Renderer[] {
new LibvpxVideoRenderer(
/* allowedJoiningTimeMs= */ 0,
eventHandler,
videoRendererEventListener,
/* maxDroppedFramesToNotify= */ -1)
};
player = new SimpleExoPlayer.Builder(context, renderersFactory).build();
player.addListener(this);
MediaSource mediaSource =
new ProgressiveMediaSource.Factory(
new DefaultDataSourceFactory(context), MatroskaExtractor.FACTORY)
.createMediaSource(MediaItem.fromUri(uri));
player
.createMessage(videoRenderer)
.setType(Renderer.MSG_SET_VIDEO_DECODER_OUTPUT_BUFFER_RENDERER)
.setPayload(new VideoDecoderGLSurfaceView(context).getVideoDecoderOutputBufferRenderer())
.send();
player.setVideoSurfaceView(new VideoDecoderGLSurfaceView(context));
player.setMediaSource(mediaSource);
player.prepare();
player.play();

View File

@ -19,6 +19,7 @@ android {
// "pm clear" command after each test invocation. This command ensures
// that the app's state is completely cleared between tests.
testInstrumentationRunnerArguments clearPackageData: 'true'
multiDexEnabled true
}
buildTypes {

View File

@ -176,7 +176,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
allowedJoiningTimeMs,
/* eventHandler= */ null,
/* eventListener= */ null,
/* maxDroppedFramesToNotify= */ -1);
/* maxDroppedFramesToNotify= */ 0);
}
/**