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
fa22efb7
authored
Jun 09, 2022
by
claincly
Committed by
Marc Baechinger
Jun 09, 2022
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Ensure re-encode on performance tests
PiperOrigin-RevId: 453933854
parent
8a31e33d
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
71 additions
and
57 deletions
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/AndroidTestUtil.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/RepeatedTranscodeTransformationTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TranscodeQualityTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/analysis/BitrateAnalysisTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/AndroidTestUtil.java
View file @
fa22efb7
...
...
@@ -218,33 +218,46 @@ public final class AndroidTestUtil {
writeTestSummaryToFile
(
context
,
testId
,
testJson
);
}
/**
* A {@link Codec.EncoderFactory} that forces encoding, wrapping {@link DefaultEncoderFactory}.
*/
public
static
final
Codec
.
EncoderFactory
FORCE_ENCODE_ENCODER_FACTORY
=
new
Codec
.
EncoderFactory
()
{
@Override
public
Codec
createForAudioEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
throws
TransformationException
{
return
Codec
.
EncoderFactory
.
DEFAULT
.
createForAudioEncoding
(
format
,
allowedMimeTypes
);
}
@Override
public
Codec
createForVideoEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
throws
TransformationException
{
return
Codec
.
EncoderFactory
.
DEFAULT
.
createForVideoEncoding
(
format
,
allowedMimeTypes
);
}
@Override
public
boolean
audioNeedsEncoding
()
{
return
true
;
}
@Override
public
boolean
videoNeedsEncoding
()
{
return
true
;
}
};
/** A customizable forwarding {@link Codec.EncoderFactory} that forces encoding. */
public
static
final
class
ForceEncodeEncoderFactory
implements
Codec
.
EncoderFactory
{
private
final
Codec
.
EncoderFactory
encoderFactory
;
/** Creates an instance that wraps {@link DefaultEncoderFactory}. */
public
ForceEncodeEncoderFactory
()
{
encoderFactory
=
Codec
.
EncoderFactory
.
DEFAULT
;
}
/**
* Creates an instance that wraps {@link DefaultEncoderFactory} that wraps another {@link
* Codec.EncoderFactory}.
*/
public
ForceEncodeEncoderFactory
(
Codec
.
EncoderFactory
wrappedEncoderFactory
)
{
this
.
encoderFactory
=
wrappedEncoderFactory
;
}
@Override
public
Codec
createForAudioEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
throws
TransformationException
{
return
encoderFactory
.
createForAudioEncoding
(
format
,
allowedMimeTypes
);
}
@Override
public
Codec
createForVideoEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
throws
TransformationException
{
return
encoderFactory
.
createForVideoEncoding
(
format
,
allowedMimeTypes
);
}
@Override
public
boolean
audioNeedsEncoding
()
{
return
true
;
}
@Override
public
boolean
videoNeedsEncoding
()
{
return
true
;
}
}
/**
* Returns a {@link JSONObject} containing device specific details from {@link Build}, including
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/RepeatedTranscodeTransformationTest.java
View file @
fa22efb7
...
...
@@ -48,7 +48,7 @@ public final class RepeatedTranscodeTransformationTest {
new
Transformer
.
Builder
(
context
)
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setRotationDegrees
(
45
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
build
())
.
build
();
...
...
@@ -78,7 +78,7 @@ public final class RepeatedTranscodeTransformationTest {
.
setRemoveAudio
(
true
)
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setRotationDegrees
(
45
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
build
())
.
build
();
...
...
@@ -107,7 +107,7 @@ public final class RepeatedTranscodeTransformationTest {
new
Transformer
.
Builder
(
context
)
.
setRemoveVideo
(
true
)
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
build
())
.
build
();
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TranscodeQualityTest.java
View file @
fa22efb7
...
...
@@ -52,7 +52,7 @@ public final class TranscodeQualityTest {
new
Transformer
.
Builder
(
context
)
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setVideoMimeType
(
MimeTypes
.
VIDEO_H264
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
setRemoveAudio
(
true
)
.
build
();
...
...
@@ -119,7 +119,7 @@ public final class TranscodeQualityTest {
new
Transformer
.
Builder
(
context
)
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setVideoMimeType
(
MimeTypes
.
VIDEO_H264
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
setRemoveAudio
(
true
)
.
build
();
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java
View file @
fa22efb7
...
...
@@ -15,7 +15,6 @@
*/
package
com
.
google
.
android
.
exoplayer2
.
transformer
.
mh
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AndroidTestUtil
.
MP4_ASSET_SEF_URI_STRING
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AndroidTestUtil
.
MP4_ASSET_URI_STRING
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AndroidTestUtil
.
MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING
;
...
...
@@ -31,6 +30,7 @@ import androidx.test.core.app.ApplicationProvider;
import
androidx.test.ext.junit.runners.AndroidJUnit4
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.transformer.AndroidTestUtil
;
import
com.google.android.exoplayer2.transformer.AndroidTestUtil.ForceEncodeEncoderFactory
;
import
com.google.android.exoplayer2.transformer.DefaultEncoderFactory
;
import
com.google.android.exoplayer2.transformer.EncoderSelector
;
import
com.google.android.exoplayer2.transformer.TransformationRequest
;
...
...
@@ -52,9 +52,7 @@ public class TransformationTest {
String
testId
=
TAG
+
"_transform"
;
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Transformer
transformer
=
new
Transformer
.
Builder
(
context
)
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
build
();
new
Transformer
.
Builder
(
context
).
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()).
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
build
()
...
...
@@ -80,10 +78,11 @@ public class TransformationTest {
new
Transformer
.
Builder
(
context
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
().
setBitrate
(
5_000_000
).
build
(),
/* enableFallback= */
true
))
new
ForceEncodeEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
().
setBitrate
(
5_000_000
).
build
(),
/* enableFallback= */
true
)))
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
...
...
@@ -105,7 +104,7 @@ public class TransformationTest {
}
Transformer
transformer
=
new
Transformer
.
Builder
(
context
).
setEncoderFactory
(
FORCE_ENCODE_ENCODER_FACTORY
).
build
();
new
Transformer
.
Builder
(
context
).
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()
).
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setTimeoutSeconds
(
180
)
...
...
@@ -126,7 +125,7 @@ public class TransformationTest {
return
;
}
Transformer
transformer
=
new
Transformer
.
Builder
(
context
).
setEncoderFactory
(
FORCE_ENCODE_ENCODER_FACTORY
).
build
();
new
Transformer
.
Builder
(
context
).
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()
).
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setTimeoutSeconds
(
180
)
...
...
@@ -140,7 +139,7 @@ public class TransformationTest {
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Transformer
transformer
=
new
Transformer
.
Builder
(
context
)
.
setEncoderFactory
(
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()
)
.
setRemoveAudio
(
true
)
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
...
...
@@ -155,7 +154,7 @@ public class TransformationTest {
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Transformer
transformer
=
new
Transformer
.
Builder
(
context
)
.
setEncoderFactory
(
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()
)
.
setRemoveVideo
(
true
)
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/analysis/BitrateAnalysisTest.java
View file @
fa22efb7
...
...
@@ -116,13 +116,14 @@ public class BitrateAnalysisTest {
new
Transformer
.
Builder
(
context
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
()
.
setBitrate
(
bitrate
)
.
setBitrateMode
(
bitrateMode
)
.
build
(),
/* enableFallback= */
false
))
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
()
.
setBitrate
(
bitrate
)
.
setBitrateMode
(
bitrateMode
)
.
build
(),
/* enableFallback= */
false
)))
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/analysis/EncoderPerformanceAnalysisTest.java
View file @
fa22efb7
...
...
@@ -126,12 +126,13 @@ public class EncoderPerformanceAnalysisTest {
new
Transformer
.
Builder
(
context
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
()
.
setEncoderPerformanceParameters
(
operatingRate
,
priority
)
.
build
(),
/* enableFallback= */
false
))
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
()
.
setEncoderPerformanceParameters
(
operatingRate
,
priority
)
.
build
(),
/* enableFallback= */
false
)))
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
...
...
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