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
e9bc5193
authored
Apr 27, 2023
by
tofunmi
Committed by
Marc Baechinger
May 03, 2023
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Effect: split ending frame Processing and getting the output bitmap in tests
PiperOrigin-RevId: 527554408
parent
e2119fbb
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
79 additions
and
42 deletions
library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorImageFrameOutputTest.java
library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorPixelTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/DefaultVideoFrameProcessorTextureOutputPixelTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingOpenGlPixelTest.java
testutils/src/main/java/com/google/android/exoplayer2/testutil/VideoFrameProcessorTestRunner.java
library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorImageFrameOutputTest.java
View file @
e9bc5193
...
...
@@ -80,7 +80,7 @@ public class DefaultVideoFrameProcessorImageFrameOutputTest {
3
*
C
.
MICROS_PER_SECOND
,
/* offsetToAddUs= */
0L
,
/* frameRate= */
4
);
videoFrameProcessorTestRunner
.
endFrameProcessing
AndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
int
actualFrameCount
=
framesProduced
.
get
();
assertThat
(
actualFrameCount
).
isEqualTo
(
/* expected= */
20
);
...
...
@@ -99,7 +99,7 @@ public class DefaultVideoFrameProcessorImageFrameOutputTest {
/* offsetToAddUs= */
0L
,
/* frameRate= */
1
);
}
videoFrameProcessorTestRunner
.
endFrameProcessing
AndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
int
actualFrameCount
=
framesProduced
.
get
();
assertThat
(
actualFrameCount
).
isEqualTo
(
/* expected= */
20
);
...
...
@@ -123,7 +123,7 @@ public class DefaultVideoFrameProcessorImageFrameOutputTest {
/* durationUs= */
C
.
MICROS_PER_SECOND
,
/* offsetToAddUs= */
offsetUs
,
/* frameRate= */
2
);
videoFrameProcessorTestRunner
.
endFrameProcessing
AndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
assertThat
(
actualPresentationTimesUs
)
.
containsExactly
(
offsetUs
,
offsetUs
+
C
.
MICROS_PER_SECOND
/
2
)
.
inOrder
();
...
...
@@ -152,7 +152,7 @@ public class DefaultVideoFrameProcessorImageFrameOutputTest {
/* durationUs= */
C
.
MICROS_PER_SECOND
,
/* offsetToAddUs= */
offsetUs2
,
/* frameRate= */
2
);
videoFrameProcessorTestRunner
.
endFrameProcessing
AndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
assertThat
(
actualPresentationTimesUs
)
.
containsExactly
(
offsetUs1
,
...
...
@@ -180,7 +180,7 @@ public class DefaultVideoFrameProcessorImageFrameOutputTest {
/* durationUs= */
C
.
MICROS_PER_SECOND
,
/* offsetToAddUs= */
0L
,
/* frameRate= */
2
);
videoFrameProcessorTestRunner
.
endFrameProcessing
AndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
videoFrameProcessorTestRunner
.
queueInputBitmap
(
readBitmap
(
ORIGINAL_PNG_ASSET_PATH
),
/* durationUs= */
2
*
C
.
MICROS_PER_SECOND
,
...
...
library/effect/src/androidTest/java/com/google/android/exoplayer2/effect/DefaultVideoFrameProcessorPixelTest.java
View file @
e9bc5193
...
...
@@ -100,7 +100,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
videoFrameProcessorTestRunner
=
getDefaultFrameProcessorTestRunnerBuilder
(
testId
).
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -121,7 +122,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
videoFrameProcessorTestRunner
.
queueInputBitmap
(
originalBitmap
,
C
.
MICROS_PER_SECOND
,
/* offsetToAddUs= */
0L
,
/* frameRate= */
1
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
endFrameProcessingAndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -149,7 +151,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
videoFrameProcessorTestRunner
.
queueInputBitmap
(
originalBitmap
,
C
.
MICROS_PER_SECOND
,
/* offsetToAddUs= */
0L
,
/* frameRate= */
1
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
endFrameProcessingAndGetImage
();
videoFrameProcessorTestRunner
.
endFrameProcessing
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -166,7 +169,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -181,7 +185,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
getDefaultFrameProcessorTestRunnerBuilder
(
testId
).
setPixelWidthHeightRatio
(
2
f
).
build
();
Bitmap
expectedBitmap
=
readBitmap
(
SCALE_WIDE_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -200,7 +205,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
TRANSLATE_RIGHT_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -221,7 +227,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
TRANSLATE_THEN_ROTATE_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -240,7 +247,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
BITMAP_OVERLAY_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -261,7 +269,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ROTATE_THEN_TRANSLATE_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -278,7 +287,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
REQUEST_OUTPUT_HEIGHT_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -299,7 +309,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
CROP_THEN_ASPECT_RATIO_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -316,7 +327,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ROTATE45_SCALE_TO_FIT_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -339,7 +351,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ROTATE_THEN_SCALE_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -363,15 +376,16 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
setOutputFileLabel
(
"centerCrop"
)
.
setEffects
(
centerCrop
)
.
build
();
Bitmap
centerCropResultBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
centerCropResultBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
videoFrameProcessorTestRunner
.
release
();
videoFrameProcessorTestRunner
=
getDefaultFrameProcessorTestRunnerBuilder
(
testId
)
.
setOutputFileLabel
(
"full10StepRotationAndCenterCrop"
)
.
setEffects
(
full10StepRotationAndCenterCrop
.
build
())
.
build
();
Bitmap
fullRotationAndCenterCropResultBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
fullRotationAndCenterCropResultBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -387,7 +401,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
getDefaultFrameProcessorTestRunnerBuilder
(
testId
).
setEffects
(
new
Brightness
(
0.5f
)).
build
();
Bitmap
expectedBitmap
=
readBitmap
(
INCREASE_BRIGHTNESS_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -418,8 +433,9 @@ public final class DefaultVideoFrameProcessorPixelTest {
new
RgbAdjustment
.
Builder
().
setRedScale
(
5
).
setBlueScale
(
5
).
setGreenScale
(
5
).
build
(),
centerCrop
)
.
build
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
centerCropAndBrightnessIncreaseResultBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
getOutputBitmap
();
videoFrameProcessorTestRunner
.
release
();
videoFrameProcessorTestRunner
=
...
...
@@ -427,8 +443,9 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
setOutputFileLabel
(
"full4StepRotationBrightnessIncreaseAndCenterCrop"
)
.
setEffects
(
increaseBrightnessFullRotationCenterCrop
)
.
build
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
fullRotationBrightnessIncreaseAndCenterCropResultBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -465,17 +482,18 @@ public final class DefaultVideoFrameProcessorPixelTest {
new
RgbAdjustment
.
Builder
().
setRedScale
(
5
).
setBlueScale
(
5
).
setGreenScale
(
5
).
build
(),
centerCrop
)
.
build
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
centerCropAndBrightnessIncreaseResultBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
getOutputBitmap
();
videoFrameProcessorTestRunner
.
release
();
videoFrameProcessorTestRunner
=
getDefaultFrameProcessorTestRunnerBuilder
(
testId
)
.
setOutputFileLabel
(
"full4StepRotationBrightnessIncreaseAndCenterCrop"
)
.
setEffects
(
increaseBrightnessFullRotationCenterCrop
)
.
build
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
fullRotationBrightnessIncreaseAndCenterCropResultBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -497,7 +515,8 @@ public final class DefaultVideoFrameProcessorPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
GRAYSCALE_THEN_INCREASE_RED_CHANNEL_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/DefaultVideoFrameProcessorTextureOutputPixelTest.java
View file @
e9bc5193
...
...
@@ -109,7 +109,8 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest {
videoFrameProcessorTestRunner
=
getDefaultFrameProcessorTestRunnerBuilder
(
testId
).
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -135,8 +136,8 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest {
.
setEffects
(
new
OverlayEffect
(
ImmutableList
.
of
(
bitmapOverlay
)))
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
BITMAP_OVERLAY_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -167,7 +168,8 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_HLG10_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -202,7 +204,8 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_HLG10_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -234,7 +237,8 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_HDR10_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
@@ -269,7 +273,8 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest {
.
build
();
Bitmap
expectedBitmap
=
readBitmap
(
ORIGINAL_HDR10_PNG_ASSET_PATH
);
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
Bitmap
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
// TODO(b/207848601): Switch to using proper tooling for testing against golden data.
float
averagePixelAbsoluteDifference
=
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/ToneMapHdrToSdrUsingOpenGlPixelTest.java
View file @
e9bc5193
...
...
@@ -124,7 +124,8 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest {
Bitmap
actualBitmap
;
try
{
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
}
catch
(
UnsupportedOperationException
e
)
{
if
(
e
.
getMessage
()
!=
null
&&
e
.
getMessage
().
equals
(
DecodeOneFrameUtil
.
NO_DECODER_SUPPORT_ERROR_STRING
))
{
...
...
@@ -187,7 +188,8 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest {
Bitmap
actualBitmap
;
try
{
actualBitmap
=
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
videoFrameProcessorTestRunner
.
processFirstFrameAndEnd
();
actualBitmap
=
videoFrameProcessorTestRunner
.
getOutputBitmap
();
}
catch
(
UnsupportedOperationException
e
)
{
if
(
e
.
getMessage
()
!=
null
&&
e
.
getMessage
().
equals
(
DecodeOneFrameUtil
.
NO_DECODER_SUPPORT_ERROR_STRING
))
{
...
...
testutils/src/main/java/com/google/android/exoplayer2/testutil/VideoFrameProcessorTestRunner.java
View file @
e9bc5193
...
...
@@ -234,7 +234,7 @@ public final class VideoFrameProcessorTestRunner {
* Time to wait for the decoded frame to populate the {@link VideoFrameProcessor} instance's input
* surface and the {@link VideoFrameProcessor} to finish processing the frame, in milliseconds.
*/
p
rivate
static
final
int
VIDEO_FRAME_PROCESSING_WAIT_MS
=
5000
;
p
ublic
static
final
int
VIDEO_FRAME_PROCESSING_WAIT_MS
=
5000
;
private
final
String
testId
;
private
final
@MonotonicNonNull
String
videoAssetPath
;
...
...
@@ -311,7 +311,7 @@ public final class VideoFrameProcessorTestRunner {
});
}
public
Bitmap
processFirstFrameAndEnd
()
throws
Exception
{
public
void
processFirstFrameAndEnd
()
throws
Exception
{
DecodeOneFrameUtil
.
decodeOneAssetFileFrame
(
checkNotNull
(
videoAssetPath
),
new
DecodeOneFrameUtil
.
Listener
()
{
...
...
@@ -333,7 +333,7 @@ public final class VideoFrameProcessorTestRunner {
}
},
videoFrameProcessor
.
getInputSurface
());
return
endFrameProcessingAndGetImage
();
endFrameProcessing
();
}
public
void
queueInputBitmap
(
...
...
@@ -347,13 +347,24 @@ public final class VideoFrameProcessorTestRunner {
videoFrameProcessor
.
queueInputBitmap
(
inputBitmap
,
durationUs
,
frameRate
);
}
public
Bitmap
endFrameProcessingAndGetImage
()
throws
Exception
{
public
void
endFrameProcessing
()
throws
InterruptedException
{
endFrameProcessing
(
VIDEO_FRAME_PROCESSING_WAIT_MS
);
}
public
void
endFrameProcessing
(
long
videoFrameProcessingWaitTime
)
throws
InterruptedException
{
videoFrameProcessor
.
signalEndOfInput
();
Thread
.
sleep
(
VIDEO_FRAME_PROCESSING_WAIT_MS
);
Thread
.
sleep
(
videoFrameProcessingWaitTime
);
assertThat
(
videoFrameProcessingException
.
get
()).
isNull
();
assertThat
(
videoFrameProcessingEnded
).
isTrue
();
}
/**
* Returns the {@link Bitmap} from the provided {@link BitmapReader}.
*
* <p>Also saves the bitmap to the cache directory.
*/
public
Bitmap
getOutputBitmap
()
{
Bitmap
outputBitmap
=
checkNotNull
(
bitmapReader
).
getBitmap
();
maybeSaveTestBitmap
(
testId
,
/* bitmapLabel= */
outputFileLabel
,
outputBitmap
,
/* path= */
null
);
return
outputBitmap
;
...
...
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