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
433734dc
authored
Jul 22, 2020
by
christosts
Committed by
Oliver Woodman
Jul 24, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
MediaCodecVideoRendererTest: remove LooperMode.LEGACY
PiperOrigin-RevId: 322536247
parent
f81a353b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
3 deletions
library/core/src/test/java/com/google/android/exoplayer2/video/MediaCodecVideoRendererTest.java
library/core/src/test/java/com/google/android/exoplayer2/video/MediaCodecVideoRendererTest.java
View file @
433734dc
...
@@ -26,9 +26,11 @@ import static org.mockito.Mockito.inOrder;
...
@@ -26,9 +26,11 @@ import static org.mockito.Mockito.inOrder;
import
static
org
.
mockito
.
Mockito
.
never
;
import
static
org
.
mockito
.
Mockito
.
never
;
import
static
org
.
mockito
.
Mockito
.
times
;
import
static
org
.
mockito
.
Mockito
.
times
;
import
static
org
.
mockito
.
Mockito
.
verify
;
import
static
org
.
mockito
.
Mockito
.
verify
;
import
static
org
.
robolectric
.
Shadows
.
shadowOf
;
import
android.graphics.SurfaceTexture
;
import
android.graphics.SurfaceTexture
;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.os.SystemClock
;
import
android.os.SystemClock
;
import
android.view.Surface
;
import
android.view.Surface
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
...
@@ -58,11 +60,10 @@ import org.mockito.InOrder;
...
@@ -58,11 +60,10 @@ import org.mockito.InOrder;
import
org.mockito.Mock
;
import
org.mockito.Mock
;
import
org.mockito.junit.MockitoJUnit
;
import
org.mockito.junit.MockitoJUnit
;
import
org.mockito.junit.MockitoRule
;
import
org.mockito.junit.MockitoRule
;
import
org.robolectric.
annotation.LooperMode
;
import
org.robolectric.
shadows.ShadowLooper
;
/** Unit test for {@link MediaCodecVideoRenderer}. */
/** Unit test for {@link MediaCodecVideoRenderer}. */
@RunWith
(
AndroidJUnit4
.
class
)
@RunWith
(
AndroidJUnit4
.
class
)
@LooperMode
(
LooperMode
.
Mode
.
LEGACY
)
public
class
MediaCodecVideoRendererTest
{
public
class
MediaCodecVideoRendererTest
{
@Rule
public
final
MockitoRule
mockito
=
MockitoJUnit
.
rule
();
@Rule
public
final
MockitoRule
mockito
=
MockitoJUnit
.
rule
();
...
@@ -73,6 +74,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -73,6 +74,7 @@ public class MediaCodecVideoRendererTest {
.
setHeight
(
1080
)
.
setHeight
(
1080
)
.
build
();
.
build
();
private
Looper
testMainLooper
;
private
MediaCodecVideoRenderer
mediaCodecVideoRenderer
;
private
MediaCodecVideoRenderer
mediaCodecVideoRenderer
;
@Nullable
private
Format
currentOutputFormat
;
@Nullable
private
Format
currentOutputFormat
;
...
@@ -80,6 +82,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -80,6 +82,7 @@ public class MediaCodecVideoRendererTest {
@Before
@Before
public
void
setUp
()
throws
Exception
{
public
void
setUp
()
throws
Exception
{
testMainLooper
=
Looper
.
getMainLooper
();
MediaCodecSelector
mediaCodecSelector
=
MediaCodecSelector
mediaCodecSelector
=
(
mimeType
,
requiresSecureDecoder
,
requiresTunnelingDecoder
)
->
(
mimeType
,
requiresSecureDecoder
,
requiresTunnelingDecoder
)
->
Collections
.
singletonList
(
Collections
.
singletonList
(
...
@@ -99,7 +102,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -99,7 +102,7 @@ public class MediaCodecVideoRendererTest {
ApplicationProvider
.
getApplicationContext
(),
ApplicationProvider
.
getApplicationContext
(),
mediaCodecSelector
,
mediaCodecSelector
,
/* allowedJoiningTimeMs= */
0
,
/* allowedJoiningTimeMs= */
0
,
/* eventHandler= */
new
Handler
(),
/* eventHandler= */
new
Handler
(
testMainLooper
),
/* eventListener= */
eventListener
,
/* eventListener= */
eventListener
,
/* maxDroppedFramesToNotify= */
1
)
{
/* maxDroppedFramesToNotify= */
1
)
{
@Override
@Override
...
@@ -152,6 +155,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -152,6 +155,7 @@ public class MediaCodecVideoRendererTest {
mediaCodecVideoRenderer
.
render
(
posUs
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
posUs
,
SystemClock
.
elapsedRealtime
()
*
1000
);
posUs
+=
40_000
;
posUs
+=
40_000
;
}
}
shadowOf
(
testMainLooper
).
idle
();
verify
(
eventListener
).
onDroppedFrames
(
eq
(
1
),
anyLong
());
verify
(
eventListener
).
onDroppedFrames
(
eq
(
1
),
anyLong
());
}
}
...
@@ -182,6 +186,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -182,6 +186,7 @@ public class MediaCodecVideoRendererTest {
mediaCodecVideoRenderer
.
render
(
positionUs
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
positionUs
,
SystemClock
.
elapsedRealtime
()
*
1000
);
positionUs
+=
10
;
positionUs
+=
10
;
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
shadowOf
(
testMainLooper
).
idle
();
verify
(
eventListener
)
verify
(
eventListener
)
.
onVideoSizeChanged
(
.
onVideoSizeChanged
(
...
@@ -234,6 +239,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -234,6 +239,7 @@ public class MediaCodecVideoRendererTest {
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
pos
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
pos
,
SystemClock
.
elapsedRealtime
()
*
1000
);
pos
+=
250
;
pos
+=
250
;
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
shadowOf
(
testMainLooper
).
idle
();
InOrder
orderVerifier
=
inOrder
(
eventListener
);
InOrder
orderVerifier
=
inOrder
(
eventListener
);
orderVerifier
.
verify
(
eventListener
).
onVideoSizeChanged
(
anyInt
(),
anyInt
(),
anyInt
(),
eq
(
1
f
));
orderVerifier
.
verify
(
eventListener
).
onVideoSizeChanged
(
anyInt
(),
anyInt
(),
anyInt
(),
eq
(
1
f
));
...
@@ -274,6 +280,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -274,6 +280,7 @@ public class MediaCodecVideoRendererTest {
mediaCodecVideoRenderer
.
render
(
positionUs
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
positionUs
,
SystemClock
.
elapsedRealtime
()
*
1000
);
positionUs
+=
10
;
positionUs
+=
10
;
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
shadowOf
(
testMainLooper
).
idle
();
assertThat
(
currentOutputFormat
).
isEqualTo
(
VIDEO_H264
);
assertThat
(
currentOutputFormat
).
isEqualTo
(
VIDEO_H264
);
}
}
...
@@ -300,6 +307,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -300,6 +307,7 @@ public class MediaCodecVideoRendererTest {
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
0
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
0
,
SystemClock
.
elapsedRealtime
()
*
1000
);
}
}
shadowOf
(
testMainLooper
).
idle
();
verify
(
eventListener
).
onRenderedFirstFrame
(
any
());
verify
(
eventListener
).
onRenderedFirstFrame
(
any
());
}
}
...
@@ -327,6 +335,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -327,6 +335,7 @@ public class MediaCodecVideoRendererTest {
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
0
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
0
,
SystemClock
.
elapsedRealtime
()
*
1000
);
}
}
shadowOf
(
testMainLooper
).
idle
();
verify
(
eventListener
,
never
()).
onRenderedFirstFrame
(
any
());
verify
(
eventListener
,
never
()).
onRenderedFirstFrame
(
any
());
}
}
...
@@ -354,12 +363,14 @@ public class MediaCodecVideoRendererTest {
...
@@ -354,12 +363,14 @@ public class MediaCodecVideoRendererTest {
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
0
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
0
,
SystemClock
.
elapsedRealtime
()
*
1000
);
}
}
shadowOf
(
testMainLooper
).
idle
();
verify
(
eventListener
).
onRenderedFirstFrame
(
any
());
verify
(
eventListener
).
onRenderedFirstFrame
(
any
());
}
}
@Test
@Test
public
void
replaceStream_rendersFirstFrameOnlyAfterStartPosition
()
throws
Exception
{
public
void
replaceStream_rendersFirstFrameOnlyAfterStartPosition
()
throws
Exception
{
ShadowLooper
shadowLooper
=
shadowOf
(
testMainLooper
);
FakeSampleStream
fakeSampleStream1
=
FakeSampleStream
fakeSampleStream1
=
new
FakeSampleStream
(
new
FakeSampleStream
(
/* mediaSourceEventDispatcher= */
null
,
/* mediaSourceEventDispatcher= */
null
,
...
@@ -404,11 +415,13 @@ public class MediaCodecVideoRendererTest {
...
@@ -404,11 +415,13 @@ public class MediaCodecVideoRendererTest {
}
}
// Expect only the first frame of the first stream to have been rendered.
// Expect only the first frame of the first stream to have been rendered.
shadowLooper
.
idle
();
verify
(
eventListener
).
onRenderedFirstFrame
(
any
());
verify
(
eventListener
).
onRenderedFirstFrame
(
any
());
// Render to the start position of the stream and verify the new first frame gets rendered (even
// Render to the start position of the stream and verify the new first frame gets rendered (even
// though its sampleTimeUs is far in the future).
// though its sampleTimeUs is far in the future).
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
50
,
SystemClock
.
elapsedRealtime
()
*
1000
);
mediaCodecVideoRenderer
.
render
(
/* positionUs= */
50
,
SystemClock
.
elapsedRealtime
()
*
1000
);
shadowLooper
.
idle
();
verify
(
eventListener
,
times
(
2
)).
onRenderedFirstFrame
(
any
());
verify
(
eventListener
,
times
(
2
)).
onRenderedFirstFrame
(
any
());
}
}
...
@@ -455,6 +468,7 @@ public class MediaCodecVideoRendererTest {
...
@@ -455,6 +468,7 @@ public class MediaCodecVideoRendererTest {
positionUs
+=
10
;
positionUs
+=
10
;
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
}
while
(!
mediaCodecVideoRenderer
.
isEnded
());
mediaCodecVideoRenderer
.
stop
();
mediaCodecVideoRenderer
.
stop
();
shadowOf
(
testMainLooper
).
idle
();
InOrder
orderVerifier
=
inOrder
(
eventListener
);
InOrder
orderVerifier
=
inOrder
(
eventListener
);
orderVerifier
.
verify
(
eventListener
).
onVideoFrameProcessingOffset
(
anyLong
(),
eq
(
1
),
eq
(
mp4Uhd
));
orderVerifier
.
verify
(
eventListener
).
onVideoFrameProcessingOffset
(
anyLong
(),
eq
(
1
),
eq
(
mp4Uhd
));
...
...
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