Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
43590161
authored
Jan 18, 2021
by
olly
Committed by
Oliver Woodman
Jan 18, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Fix disabling of bypass
PiperOrigin-RevId: 352403189
parent
1be49604
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
373 additions
and
3 deletions
library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java
library/core/src/test/java/com/google/android/exoplayer2/e2etest/PlaylistPlaybackTest.java
testdata/src/test/assets/playbackdumps/playlists/bypass-off-then-on.dump
testdata/src/test/assets/playbackdumps/playlists/bypass-on-then-off.dump
library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java
View file @
43590161
...
...
@@ -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
:
...
...
library/core/src/test/java/com/google/android/exoplayer2/e2etest/PlaylistPlaybackTest.java
0 → 100644
View file @
43590161
/*
* 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"
);
}
}
testdata/src/test/assets/playbackdumps/playlists/bypass-off-then-on.dump
0 → 100644
View file @
43590161
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
testdata/src/test/assets/playbackdumps/playlists/bypass-on-then-off.dump
0 → 100644
View file @
43590161
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment