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 {
...
@@ -218,33 +218,46 @@ public final class AndroidTestUtil {
writeTestSummaryToFile
(
context
,
testId
,
testJson
);
writeTestSummaryToFile
(
context
,
testId
,
testJson
);
}
}
/**
/** A customizable forwarding {@link Codec.EncoderFactory} that forces encoding. */
* A {@link Codec.EncoderFactory} that forces encoding, wrapping {@link DefaultEncoderFactory}.
public
static
final
class
ForceEncodeEncoderFactory
implements
Codec
.
EncoderFactory
{
*/
public
static
final
Codec
.
EncoderFactory
FORCE_ENCODE_ENCODER_FACTORY
=
private
final
Codec
.
EncoderFactory
encoderFactory
;
new
Codec
.
EncoderFactory
()
{
@Override
/** Creates an instance that wraps {@link DefaultEncoderFactory}. */
public
Codec
createForAudioEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
public
ForceEncodeEncoderFactory
()
{
throws
TransformationException
{
encoderFactory
=
Codec
.
EncoderFactory
.
DEFAULT
;
return
Codec
.
EncoderFactory
.
DEFAULT
.
createForAudioEncoding
(
format
,
allowedMimeTypes
);
}
}
/**
@Override
* Creates an instance that wraps {@link DefaultEncoderFactory} that wraps another {@link
public
Codec
createForVideoEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
* Codec.EncoderFactory}.
throws
TransformationException
{
*/
return
Codec
.
EncoderFactory
.
DEFAULT
.
createForVideoEncoding
(
format
,
allowedMimeTypes
);
public
ForceEncodeEncoderFactory
(
Codec
.
EncoderFactory
wrappedEncoderFactory
)
{
}
this
.
encoderFactory
=
wrappedEncoderFactory
;
}
@Override
public
boolean
audioNeedsEncoding
()
{
@Override
return
true
;
public
Codec
createForAudioEncoding
(
Format
format
,
List
<
String
>
allowedMimeTypes
)
}
throws
TransformationException
{
return
encoderFactory
.
createForAudioEncoding
(
format
,
allowedMimeTypes
);
@Override
}
public
boolean
videoNeedsEncoding
()
{
return
true
;
@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
* 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 {
...
@@ -48,7 +48,7 @@ public final class RepeatedTranscodeTransformationTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setTransformationRequest
(
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setRotationDegrees
(
45
).
build
())
new
TransformationRequest
.
Builder
().
setRotationDegrees
(
45
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
build
())
.
build
())
.
build
();
.
build
();
...
@@ -78,7 +78,7 @@ public final class RepeatedTranscodeTransformationTest {
...
@@ -78,7 +78,7 @@ public final class RepeatedTranscodeTransformationTest {
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setTransformationRequest
(
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setRotationDegrees
(
45
).
build
())
new
TransformationRequest
.
Builder
().
setRotationDegrees
(
45
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
build
())
.
build
())
.
build
();
.
build
();
...
@@ -107,7 +107,7 @@ public final class RepeatedTranscodeTransformationTest {
...
@@ -107,7 +107,7 @@ public final class RepeatedTranscodeTransformationTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setRemoveVideo
(
true
)
.
setRemoveVideo
(
true
)
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
build
())
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
build
())
.
build
())
.
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 {
...
@@ -52,7 +52,7 @@ public final class TranscodeQualityTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setTransformationRequest
(
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setVideoMimeType
(
MimeTypes
.
VIDEO_H264
).
build
())
new
TransformationRequest
.
Builder
().
setVideoMimeType
(
MimeTypes
.
VIDEO_H264
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
build
();
.
build
();
...
@@ -119,7 +119,7 @@ public final class TranscodeQualityTest {
...
@@ -119,7 +119,7 @@ public final class TranscodeQualityTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setTransformationRequest
(
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setVideoMimeType
(
MimeTypes
.
VIDEO_H264
).
build
())
new
TransformationRequest
.
Builder
().
setVideoMimeType
(
MimeTypes
.
VIDEO_H264
).
build
())
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
()
)
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
build
();
.
build
();
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java
View file @
fa22efb7
...
@@ -15,7 +15,6 @@
...
@@ -15,7 +15,6 @@
*/
*/
package
com
.
google
.
android
.
exoplayer2
.
transformer
.
mh
;
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_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_URI_STRING
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AndroidTestUtil
.
MP4_ASSET_WITH_INCREASING_TIMESTAMPS_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;
...
@@ -31,6 +30,7 @@ import androidx.test.core.app.ApplicationProvider;
import
androidx.test.ext.junit.runners.AndroidJUnit4
;
import
androidx.test.ext.junit.runners.AndroidJUnit4
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.transformer.AndroidTestUtil
;
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.DefaultEncoderFactory
;
import
com.google.android.exoplayer2.transformer.EncoderSelector
;
import
com.google.android.exoplayer2.transformer.EncoderSelector
;
import
com.google.android.exoplayer2.transformer.TransformationRequest
;
import
com.google.android.exoplayer2.transformer.TransformationRequest
;
...
@@ -52,9 +52,7 @@ public class TransformationTest {
...
@@ -52,9 +52,7 @@ public class TransformationTest {
String
testId
=
TAG
+
"_transform"
;
String
testId
=
TAG
+
"_transform"
;
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Transformer
transformer
=
Transformer
transformer
=
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
).
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()).
build
();
.
setEncoderFactory
(
AndroidTestUtil
.
FORCE_ENCODE_ENCODER_FACTORY
)
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setMaybeCalculateSsim
(
true
)
.
build
()
.
build
()
...
@@ -80,10 +78,11 @@ public class TransformationTest {
...
@@ -80,10 +78,11 @@ public class TransformationTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
new
ForceEncodeEncoderFactory
(
EncoderSelector
.
DEFAULT
,
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
new
VideoEncoderSettings
.
Builder
().
setBitrate
(
5_000_000
).
build
(),
EncoderSelector
.
DEFAULT
,
/* enableFallback= */
true
))
new
VideoEncoderSettings
.
Builder
().
setBitrate
(
5_000_000
).
build
(),
/* enableFallback= */
true
)))
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setMaybeCalculateSsim
(
true
)
...
@@ -105,7 +104,7 @@ public class TransformationTest {
...
@@ -105,7 +104,7 @@ public class TransformationTest {
}
}
Transformer
transformer
=
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
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setMaybeCalculateSsim
(
true
)
.
setTimeoutSeconds
(
180
)
.
setTimeoutSeconds
(
180
)
...
@@ -126,7 +125,7 @@ public class TransformationTest {
...
@@ -126,7 +125,7 @@ public class TransformationTest {
return
;
return
;
}
}
Transformer
transformer
=
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
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setMaybeCalculateSsim
(
true
)
.
setTimeoutSeconds
(
180
)
.
setTimeoutSeconds
(
180
)
...
@@ -140,7 +139,7 @@ public class TransformationTest {
...
@@ -140,7 +139,7 @@ public class TransformationTest {
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Transformer
transformer
=
Transformer
transformer
=
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setEncoderFactory
(
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()
)
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
...
@@ -155,7 +154,7 @@ public class TransformationTest {
...
@@ -155,7 +154,7 @@ public class TransformationTest {
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Context
context
=
ApplicationProvider
.
getApplicationContext
();
Transformer
transformer
=
Transformer
transformer
=
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setEncoderFactory
(
FORCE_ENCODE_ENCODER_FACTORY
)
.
setEncoderFactory
(
new
ForceEncodeEncoderFactory
()
)
.
setRemoveVideo
(
true
)
.
setRemoveVideo
(
true
)
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
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 {
...
@@ -116,13 +116,14 @@ public class BitrateAnalysisTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
EncoderSelector
.
DEFAULT
,
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
new
VideoEncoderSettings
.
Builder
()
EncoderSelector
.
DEFAULT
,
.
setBitrate
(
bitrate
)
new
VideoEncoderSettings
.
Builder
()
.
setBitrateMode
(
bitrateMode
)
.
setBitrate
(
bitrate
)
.
build
(),
.
setBitrateMode
(
bitrateMode
)
/* enableFallback= */
false
))
.
build
(),
/* enableFallback= */
false
)))
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
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 {
...
@@ -126,12 +126,13 @@ public class EncoderPerformanceAnalysisTest {
new
Transformer
.
Builder
(
context
)
new
Transformer
.
Builder
(
context
)
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
EncoderSelector
.
DEFAULT
,
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
new
VideoEncoderSettings
.
Builder
()
EncoderSelector
.
DEFAULT
,
.
setEncoderPerformanceParameters
(
operatingRate
,
priority
)
new
VideoEncoderSettings
.
Builder
()
.
build
(),
.
setEncoderPerformanceParameters
(
operatingRate
,
priority
)
/* enableFallback= */
false
))
.
build
(),
/* enableFallback= */
false
)))
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
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