Commit 43590161 by olly Committed by Oliver Woodman

Fix disabling of bypass

PiperOrigin-RevId: 352403189
parent 1be49604
......@@ -2206,8 +2206,10 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
if (bypassBatchBuffer.hasSamples()) {
bypassBatchBuffer.flip();
}
// We can make more progress if we have batched data or the EOS to process.
return bypassBatchBuffer.hasSamples() || inputStreamEnded;
// We can make more progress if we have batched data, an EOS, or a re-initialization to process
// (note that one or more of the code blocks above will be executed during the next call).
return bypassBatchBuffer.hasSamples() || inputStreamEnded || bypassDrainAndReinitialize;
}
private void bypassRead() throws ExoPlaybackException {
......@@ -2221,7 +2223,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
switch (result) {
case C.RESULT_FORMAT_READ:
onInputFormatChanged(formatHolder);
break;
return;
case C.RESULT_NOTHING_READ:
return;
case C.RESULT_BUFFER_READ:
......
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.exoplayer2.e2etest;
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.robolectric.PlaybackOutput;
import com.google.android.exoplayer2.robolectric.ShadowMediaCodecConfig;
import com.google.android.exoplayer2.robolectric.TestPlayerRunHelper;
import com.google.android.exoplayer2.testutil.AutoAdvancingFakeClock;
import com.google.android.exoplayer2.testutil.CapturingRenderersFactory;
import com.google.android.exoplayer2.testutil.DumpFileAsserts;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
/** End-to-end tests for playlists. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(AndroidJUnit4.class)
public final class PlaylistPlaybackTest {
@Rule
public ShadowMediaCodecConfig mediaCodecConfig =
ShadowMediaCodecConfig.forAllSupportedMimeTypes();
@Test
public void test_bypassOnThenOn() throws Exception {
Context applicationContext = ApplicationProvider.getApplicationContext();
CapturingRenderersFactory capturingRenderersFactory =
new CapturingRenderersFactory(applicationContext);
SimpleExoPlayer player =
new SimpleExoPlayer.Builder(applicationContext, capturingRenderersFactory)
.setClock(new AutoAdvancingFakeClock())
.build();
PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory);
player.addMediaItem(MediaItem.fromUri("asset:///media/wav/sample.wav"));
player.addMediaItem(MediaItem.fromUri("asset:///media/mka/bear-opus.mka"));
player.prepare();
player.play();
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
player.release();
DumpFileAsserts.assertOutput(
applicationContext, playbackOutput, "playbackdumps/playlists/bypass-on-then-off.dump");
}
@Test
public void test_bypassOffThenOn() throws Exception {
Context applicationContext = ApplicationProvider.getApplicationContext();
CapturingRenderersFactory capturingRenderersFactory =
new CapturingRenderersFactory(applicationContext);
SimpleExoPlayer player =
new SimpleExoPlayer.Builder(applicationContext, capturingRenderersFactory)
.setClock(new AutoAdvancingFakeClock())
.build();
PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory);
player.addMediaItem(MediaItem.fromUri("asset:///media/mka/bear-opus.mka"));
player.addMediaItem(MediaItem.fromUri("asset:///media/wav/sample.wav"));
player.prepare();
player.play();
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
player.release();
DumpFileAsserts.assertOutput(
applicationContext, playbackOutput, "playbackdumps/playlists/bypass-off-then-on.dump");
}
}
MediaCodecAdapter (exotest.audio.opus):
buffers.length = 138
buffers[0] = length 375, hash 147EA9B
buffers[1] = length 187, hash C8ADD7C2
buffers[2] = length 175, hash A6D94D6E
buffers[3] = length 162, hash 45359884
buffers[4] = length 163, hash CBB836AF
buffers[5] = length 293, hash EEB23890
buffers[6] = length 160, hash 7843AFDA
buffers[7] = length 162, hash 607E26A4
buffers[8] = length 164, hash C1423D63
buffers[9] = length 169, hash 90CEDF8C
buffers[10] = length 165, hash 97A6A3F7
buffers[11] = length 179, hash 2EA2049F
buffers[12] = length 168, hash FCD51794
buffers[13] = length 162, hash 80D9FBC0
buffers[14] = length 162, hash BB673AC7
buffers[15] = length 161, hash 8D5CC41B
buffers[16] = length 161, hash 5F5E6270
buffers[17] = length 165, hash 117B14D9
buffers[18] = length 166, hash D8BFD4
buffers[19] = length 162, hash 61D76007
buffers[20] = length 165, hash 78245BE8
buffers[21] = length 165, hash A5F5B919
buffers[22] = length 255, hash 1F42ECE2
buffers[23] = length 165, hash D89D3EF0
buffers[24] = length 164, hash C44C8E79
buffers[25] = length 163, hash FFCE2E84
buffers[26] = length 184, hash FD7BF02A
buffers[27] = length 162, hash 59074C0F
buffers[28] = length 162, hash 41CAF78D
buffers[29] = length 163, hash 50F0BCBD
buffers[30] = length 163, hash FABC49B3
buffers[31] = length 256, hash 8515E521
buffers[32] = length 244, hash D5F80618
buffers[33] = length 162, hash A23FA880
buffers[34] = length 163, hash 5D99DCD2
buffers[35] = length 163, hash 37A4EB87
buffers[36] = length 164, hash 4C190996
buffers[37] = length 164, hash A2F6E788
buffers[38] = length 162, hash E7353EFB
buffers[39] = length 161, hash FFF24D5F
buffers[40] = length 162, hash 95B27AB0
buffers[41] = length 163, hash C43CB498
buffers[42] = length 164, hash 438F5714
buffers[43] = length 163, hash BDB72F57
buffers[44] = length 162, hash 3194B57A
buffers[45] = length 163, hash D7CC025
buffers[46] = length 162, hash F9E19F4D
buffers[47] = length 194, hash EED4C2BD
buffers[48] = length 164, hash ABFAEEFE
buffers[49] = length 163, hash 7487380A
buffers[50] = length 163, hash D4BFFB76
buffers[51] = length 164, hash F3EB6797
buffers[52] = length 163, hash 82B7ABB7
buffers[53] = length 177, hash 921FEDAE
buffers[54] = length 162, hash BC7D176B
buffers[55] = length 165, hash 32DAEB04
buffers[56] = length 164, hash 55FDBC77
buffers[57] = length 230, hash FC32522D
buffers[58] = length 177, hash DF834667
buffers[59] = length 161, hash F2ADFBCA
buffers[60] = length 161, hash 13CB7679
buffers[61] = length 164, hash A12B20AC
buffers[62] = length 163, hash 38D448B
buffers[63] = length 164, hash BFE96C9A
buffers[64] = length 161, hash 921431E3
buffers[65] = length 162, hash 9DDE27E0
buffers[66] = length 165, hash 42C01110
buffers[67] = length 163, hash C244C6B1
buffers[68] = length 162, hash 288A7D7A
buffers[69] = length 164, hash 6DDF8E96
buffers[70] = length 312, hash DD1760ED
buffers[71] = length 164, hash 40BD6AB0
buffers[72] = length 167, hash 45FEB94
buffers[73] = length 164, hash 1783D8D9
buffers[74] = length 165, hash 7F68CB47
buffers[75] = length 163, hash 431D98B9
buffers[76] = length 164, hash 2F7F0A03
buffers[77] = length 164, hash 330E9D40
buffers[78] = length 161, hash 670A6D84
buffers[79] = length 162, hash 55CEAB6A
buffers[80] = length 161, hash 690C1C44
buffers[81] = length 311, hash 507DC3E7
buffers[82] = length 226, hash 2D0C0942
buffers[83] = length 163, hash 47A75060
buffers[84] = length 163, hash 198A78EB
buffers[85] = length 165, hash F7AF184
buffers[86] = length 163, hash 7EC009AE
buffers[87] = length 163, hash 7ACF600A
buffers[88] = length 170, hash 67F513C9
buffers[89] = length 162, hash E0116535
buffers[90] = length 164, hash 6C4C8BC1
buffers[91] = length 163, hash 73E55623
buffers[92] = length 162, hash 614AB0EE
buffers[93] = length 162, hash 49E038A6
buffers[94] = length 162, hash 45BBCDDF
buffers[95] = length 163, hash 94E6047A
buffers[96] = length 162, hash FA40E646
buffers[97] = length 163, hash 54F3E885
buffers[98] = length 163, hash 42EA2C3C
buffers[99] = length 164, hash 11E5DC72
buffers[100] = length 161, hash FB697FB7
buffers[101] = length 164, hash 45137460
buffers[102] = length 232, hash F8A33CF3
buffers[103] = length 163, hash B2562537
buffers[104] = length 163, hash D07ADBF
buffers[105] = length 163, hash 2AE2FC1E
buffers[106] = length 162, hash F574ABD
buffers[107] = length 162, hash 8A20D2FC
buffers[108] = length 162, hash BD37BF40
buffers[109] = length 163, hash 81DF11E8
buffers[110] = length 165, hash 236877C0
buffers[111] = length 226, hash 6B5CD992
buffers[112] = length 162, hash 7F697CCA
buffers[113] = length 161, hash 4C2993B4
buffers[114] = length 163, hash 1DE49094
buffers[115] = length 162, hash DCA5BB9B
buffers[116] = length 165, hash 66B62984
buffers[117] = length 161, hash 994C6D54
buffers[118] = length 163, hash DA5BA1F1
buffers[119] = length 187, hash 7F6C5537
buffers[120] = length 161, hash D0AF4628
buffers[121] = length 161, hash 8A49A435
buffers[122] = length 163, hash 90D7B180
buffers[123] = length 162, hash C459D78E
buffers[124] = length 161, hash D7766E6B
buffers[125] = length 187, hash E0449F61
buffers[126] = length 162, hash 203F238E
buffers[127] = length 163, hash 15F81805
buffers[128] = length 161, hash 8496E779
buffers[129] = length 163, hash DF6A28D0
buffers[130] = length 233, hash 39CAC5CB
buffers[131] = length 250, hash 40F8863A
buffers[132] = length 248, hash BB880EB4
buffers[133] = length 247, hash A93865FE
buffers[134] = length 244, hash ED7E6DB5
buffers[135] = length 252, hash 2DD353C4
buffers[136] = length 244, hash CE73B41E
buffers[137] = length 0, hash 1
MediaCodecAdapter (exotest.audio.opus):
buffers.length = 138
buffers[0] = length 375, hash 147EA9B
buffers[1] = length 187, hash C8ADD7C2
buffers[2] = length 175, hash A6D94D6E
buffers[3] = length 162, hash 45359884
buffers[4] = length 163, hash CBB836AF
buffers[5] = length 293, hash EEB23890
buffers[6] = length 160, hash 7843AFDA
buffers[7] = length 162, hash 607E26A4
buffers[8] = length 164, hash C1423D63
buffers[9] = length 169, hash 90CEDF8C
buffers[10] = length 165, hash 97A6A3F7
buffers[11] = length 179, hash 2EA2049F
buffers[12] = length 168, hash FCD51794
buffers[13] = length 162, hash 80D9FBC0
buffers[14] = length 162, hash BB673AC7
buffers[15] = length 161, hash 8D5CC41B
buffers[16] = length 161, hash 5F5E6270
buffers[17] = length 165, hash 117B14D9
buffers[18] = length 166, hash D8BFD4
buffers[19] = length 162, hash 61D76007
buffers[20] = length 165, hash 78245BE8
buffers[21] = length 165, hash A5F5B919
buffers[22] = length 255, hash 1F42ECE2
buffers[23] = length 165, hash D89D3EF0
buffers[24] = length 164, hash C44C8E79
buffers[25] = length 163, hash FFCE2E84
buffers[26] = length 184, hash FD7BF02A
buffers[27] = length 162, hash 59074C0F
buffers[28] = length 162, hash 41CAF78D
buffers[29] = length 163, hash 50F0BCBD
buffers[30] = length 163, hash FABC49B3
buffers[31] = length 256, hash 8515E521
buffers[32] = length 244, hash D5F80618
buffers[33] = length 162, hash A23FA880
buffers[34] = length 163, hash 5D99DCD2
buffers[35] = length 163, hash 37A4EB87
buffers[36] = length 164, hash 4C190996
buffers[37] = length 164, hash A2F6E788
buffers[38] = length 162, hash E7353EFB
buffers[39] = length 161, hash FFF24D5F
buffers[40] = length 162, hash 95B27AB0
buffers[41] = length 163, hash C43CB498
buffers[42] = length 164, hash 438F5714
buffers[43] = length 163, hash BDB72F57
buffers[44] = length 162, hash 3194B57A
buffers[45] = length 163, hash D7CC025
buffers[46] = length 162, hash F9E19F4D
buffers[47] = length 194, hash EED4C2BD
buffers[48] = length 164, hash ABFAEEFE
buffers[49] = length 163, hash 7487380A
buffers[50] = length 163, hash D4BFFB76
buffers[51] = length 164, hash F3EB6797
buffers[52] = length 163, hash 82B7ABB7
buffers[53] = length 177, hash 921FEDAE
buffers[54] = length 162, hash BC7D176B
buffers[55] = length 165, hash 32DAEB04
buffers[56] = length 164, hash 55FDBC77
buffers[57] = length 230, hash FC32522D
buffers[58] = length 177, hash DF834667
buffers[59] = length 161, hash F2ADFBCA
buffers[60] = length 161, hash 13CB7679
buffers[61] = length 164, hash A12B20AC
buffers[62] = length 163, hash 38D448B
buffers[63] = length 164, hash BFE96C9A
buffers[64] = length 161, hash 921431E3
buffers[65] = length 162, hash 9DDE27E0
buffers[66] = length 165, hash 42C01110
buffers[67] = length 163, hash C244C6B1
buffers[68] = length 162, hash 288A7D7A
buffers[69] = length 164, hash 6DDF8E96
buffers[70] = length 312, hash DD1760ED
buffers[71] = length 164, hash 40BD6AB0
buffers[72] = length 167, hash 45FEB94
buffers[73] = length 164, hash 1783D8D9
buffers[74] = length 165, hash 7F68CB47
buffers[75] = length 163, hash 431D98B9
buffers[76] = length 164, hash 2F7F0A03
buffers[77] = length 164, hash 330E9D40
buffers[78] = length 161, hash 670A6D84
buffers[79] = length 162, hash 55CEAB6A
buffers[80] = length 161, hash 690C1C44
buffers[81] = length 311, hash 507DC3E7
buffers[82] = length 226, hash 2D0C0942
buffers[83] = length 163, hash 47A75060
buffers[84] = length 163, hash 198A78EB
buffers[85] = length 165, hash F7AF184
buffers[86] = length 163, hash 7EC009AE
buffers[87] = length 163, hash 7ACF600A
buffers[88] = length 170, hash 67F513C9
buffers[89] = length 162, hash E0116535
buffers[90] = length 164, hash 6C4C8BC1
buffers[91] = length 163, hash 73E55623
buffers[92] = length 162, hash 614AB0EE
buffers[93] = length 162, hash 49E038A6
buffers[94] = length 162, hash 45BBCDDF
buffers[95] = length 163, hash 94E6047A
buffers[96] = length 162, hash FA40E646
buffers[97] = length 163, hash 54F3E885
buffers[98] = length 163, hash 42EA2C3C
buffers[99] = length 164, hash 11E5DC72
buffers[100] = length 161, hash FB697FB7
buffers[101] = length 164, hash 45137460
buffers[102] = length 232, hash F8A33CF3
buffers[103] = length 163, hash B2562537
buffers[104] = length 163, hash D07ADBF
buffers[105] = length 163, hash 2AE2FC1E
buffers[106] = length 162, hash F574ABD
buffers[107] = length 162, hash 8A20D2FC
buffers[108] = length 162, hash BD37BF40
buffers[109] = length 163, hash 81DF11E8
buffers[110] = length 165, hash 236877C0
buffers[111] = length 226, hash 6B5CD992
buffers[112] = length 162, hash 7F697CCA
buffers[113] = length 161, hash 4C2993B4
buffers[114] = length 163, hash 1DE49094
buffers[115] = length 162, hash DCA5BB9B
buffers[116] = length 165, hash 66B62984
buffers[117] = length 161, hash 994C6D54
buffers[118] = length 163, hash DA5BA1F1
buffers[119] = length 187, hash 7F6C5537
buffers[120] = length 161, hash D0AF4628
buffers[121] = length 161, hash 8A49A435
buffers[122] = length 163, hash 90D7B180
buffers[123] = length 162, hash C459D78E
buffers[124] = length 161, hash D7766E6B
buffers[125] = length 187, hash E0449F61
buffers[126] = length 162, hash 203F238E
buffers[127] = length 163, hash 15F81805
buffers[128] = length 161, hash 8496E779
buffers[129] = length 163, hash DF6A28D0
buffers[130] = length 233, hash 39CAC5CB
buffers[131] = length 250, hash 40F8863A
buffers[132] = length 248, hash BB880EB4
buffers[133] = length 247, hash A93865FE
buffers[134] = length 244, hash ED7E6DB5
buffers[135] = length 252, hash 2DD353C4
buffers[136] = length 244, hash CE73B41E
buffers[137] = length 0, hash 1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment