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
19bdff96
authored
Jun 23, 2022
by
samrobinson
Committed by
Ian Baker
Jun 27, 2022
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Add a Builder for DefaultEncoderFactory.
PiperOrigin-RevId: 456728032
parent
bf11a8a8
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
124 additions
and
68 deletions
demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/AndroidTestUtil.java
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.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/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java
library/transformer/src/test/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactoryTest.java
library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java
demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java
View file @
19bdff96
...
@@ -39,7 +39,6 @@ import com.google.android.exoplayer2.C;
...
@@ -39,7 +39,6 @@ import com.google.android.exoplayer2.C;
import
com.google.android.exoplayer2.ExoPlayer
;
import
com.google.android.exoplayer2.ExoPlayer
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.MediaItem
;
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.GlEffect
;
import
com.google.android.exoplayer2.transformer.GlEffect
;
import
com.google.android.exoplayer2.transformer.GlTextureProcessor
;
import
com.google.android.exoplayer2.transformer.GlTextureProcessor
;
import
com.google.android.exoplayer2.transformer.ProgressHolder
;
import
com.google.android.exoplayer2.transformer.ProgressHolder
;
...
@@ -260,10 +259,9 @@ public final class TransformerActivity extends AppCompatActivity {
...
@@ -260,10 +259,9 @@ public final class TransformerActivity extends AppCompatActivity {
.
setRemoveAudio
(
bundle
.
getBoolean
(
ConfigurationActivity
.
SHOULD_REMOVE_AUDIO
))
.
setRemoveAudio
(
bundle
.
getBoolean
(
ConfigurationActivity
.
SHOULD_REMOVE_AUDIO
))
.
setRemoveVideo
(
bundle
.
getBoolean
(
ConfigurationActivity
.
SHOULD_REMOVE_VIDEO
))
.
setRemoveVideo
(
bundle
.
getBoolean
(
ConfigurationActivity
.
SHOULD_REMOVE_VIDEO
))
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
new
DefaultEncoderFactory
.
Builder
(
this
.
getApplicationContext
())
/* context= */
this
,
.
setEnableFallback
(
bundle
.
getBoolean
(
ConfigurationActivity
.
ENABLE_FALLBACK
))
EncoderSelector
.
DEFAULT
,
.
build
());
/* enableFallback= */
bundle
.
getBoolean
(
ConfigurationActivity
.
ENABLE_FALLBACK
)));
ImmutableList
.
Builder
<
GlEffect
>
effects
=
new
ImmutableList
.
Builder
<>();
ImmutableList
.
Builder
<
GlEffect
>
effects
=
new
ImmutableList
.
Builder
<>();
@Nullable
@Nullable
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/AndroidTestUtil.java
View file @
19bdff96
...
@@ -225,7 +225,7 @@ public final class AndroidTestUtil {
...
@@ -225,7 +225,7 @@ public final class AndroidTestUtil {
/** Creates an instance that wraps {@link DefaultEncoderFactory}. */
/** Creates an instance that wraps {@link DefaultEncoderFactory}. */
public
ForceEncodeEncoderFactory
(
Context
context
)
{
public
ForceEncodeEncoderFactory
(
Context
context
)
{
encoderFactory
=
new
DefaultEncoderFactory
(
context
);
encoderFactory
=
new
DefaultEncoderFactory
.
Builder
(
context
).
build
(
);
}
}
/**
/**
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java
View file @
19bdff96
...
@@ -46,8 +46,7 @@ public class TransformerEndToEndTest {
...
@@ -46,8 +46,7 @@ public class TransformerEndToEndTest {
.
setTransformationRequest
(
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setResolution
(
480
).
build
())
new
TransformationRequest
.
Builder
().
setResolution
(
480
).
build
())
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
new
DefaultEncoderFactory
.
Builder
(
context
).
setEnableFallback
(
false
).
build
())
context
,
EncoderSelector
.
DEFAULT
,
/* enableFallback= */
false
))
.
build
();
.
build
();
// Result of the following command:
// Result of the following command:
// ffprobe -count_frames -select_streams v:0 -show_entries stream=nb_read_frames sample.mp4
// ffprobe -count_frames -select_streams v:0 -show_entries stream=nb_read_frames sample.mp4
...
@@ -71,8 +70,7 @@ public class TransformerEndToEndTest {
...
@@ -71,8 +70,7 @@ public class TransformerEndToEndTest {
.
setTransformationRequest
(
.
setTransformationRequest
(
new
TransformationRequest
.
Builder
().
setResolution
(
480
).
build
())
new
TransformationRequest
.
Builder
().
setResolution
(
480
).
build
())
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
new
DefaultEncoderFactory
.
Builder
(
context
).
setEnableFallback
(
false
).
build
())
context
,
EncoderSelector
.
DEFAULT
,
/* enableFallback= */
false
))
.
build
();
.
build
();
long
expectedDurationMs
=
967
;
long
expectedDurationMs
=
967
;
...
@@ -138,7 +136,7 @@ public class TransformerEndToEndTest {
...
@@ -138,7 +136,7 @@ public class TransformerEndToEndTest {
private
final
Codec
.
EncoderFactory
encoderFactory
;
private
final
Codec
.
EncoderFactory
encoderFactory
;
public
VideoUnsupportedEncoderFactory
(
Context
context
)
{
public
VideoUnsupportedEncoderFactory
(
Context
context
)
{
encoderFactory
=
new
DefaultEncoderFactory
(
context
);
encoderFactory
=
new
DefaultEncoderFactory
.
Builder
(
context
).
build
(
);
}
}
@Override
@Override
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/TransformationTest.java
View file @
19bdff96
...
@@ -32,7 +32,6 @@ import com.google.android.exoplayer2.MediaItem;
...
@@ -32,7 +32,6 @@ 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.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.TransformationRequest
;
import
com.google.android.exoplayer2.transformer.TransformationRequest
;
import
com.google.android.exoplayer2.transformer.Transformer
;
import
com.google.android.exoplayer2.transformer.Transformer
;
import
com.google.android.exoplayer2.transformer.TransformerAndroidTestRunner
;
import
com.google.android.exoplayer2.transformer.TransformerAndroidTestRunner
;
...
@@ -81,11 +80,10 @@ public class TransformationTest {
...
@@ -81,11 +80,10 @@ public class TransformationTest {
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
.
setEncoderFactory
(
new
ForceEncodeEncoderFactory
(
new
ForceEncodeEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
.
Builder
(
context
)
context
,
.
setRequestedVideoEncoderSettings
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
().
setBitrate
(
5_000_000
).
build
())
new
VideoEncoderSettings
.
Builder
().
setBitrate
(
5_000_000
).
build
(),
.
build
()))
/* enableFallback= */
true
)))
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
.
setMaybeCalculateSsim
(
true
)
.
setMaybeCalculateSsim
(
true
)
...
...
library/transformer/src/androidTest/java/com/google/android/exoplayer2/transformer/mh/analysis/BitrateAnalysisTest.java
View file @
19bdff96
...
@@ -24,7 +24,6 @@ import androidx.test.core.app.ApplicationProvider;
...
@@ -24,7 +24,6 @@ import androidx.test.core.app.ApplicationProvider;
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.DefaultEncoderFactory
;
import
com.google.android.exoplayer2.transformer.DefaultEncoderFactory
;
import
com.google.android.exoplayer2.transformer.EncoderSelector
;
import
com.google.android.exoplayer2.transformer.Transformer
;
import
com.google.android.exoplayer2.transformer.Transformer
;
import
com.google.android.exoplayer2.transformer.TransformerAndroidTestRunner
;
import
com.google.android.exoplayer2.transformer.TransformerAndroidTestRunner
;
import
com.google.android.exoplayer2.transformer.VideoEncoderSettings
;
import
com.google.android.exoplayer2.transformer.VideoEncoderSettings
;
...
@@ -117,14 +116,14 @@ public class BitrateAnalysisTest {
...
@@ -117,14 +116,14 @@ public class BitrateAnalysisTest {
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
.
Builder
(
context
)
context
,
.
setRequestedVideoEncoderSettings
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
()
new
VideoEncoderSettings
.
Builder
(
)
.
setBitrate
(
bitrate
)
.
setBitrate
(
bitrat
e
)
.
setBitrateMode
(
bitrateMod
e
)
.
setBitrateMode
(
bitrateMode
)
.
build
()
)
.
build
(),
.
setEnableFallback
(
false
)
/* enableFallback= */
false
)))
.
build
(
)))
.
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 @
19bdff96
...
@@ -26,7 +26,6 @@ import androidx.test.core.app.ApplicationProvider;
...
@@ -26,7 +26,6 @@ import androidx.test.core.app.ApplicationProvider;
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.DefaultEncoderFactory
;
import
com.google.android.exoplayer2.transformer.DefaultEncoderFactory
;
import
com.google.android.exoplayer2.transformer.EncoderSelector
;
import
com.google.android.exoplayer2.transformer.Transformer
;
import
com.google.android.exoplayer2.transformer.Transformer
;
import
com.google.android.exoplayer2.transformer.TransformerAndroidTestRunner
;
import
com.google.android.exoplayer2.transformer.TransformerAndroidTestRunner
;
import
com.google.android.exoplayer2.transformer.VideoEncoderSettings
;
import
com.google.android.exoplayer2.transformer.VideoEncoderSettings
;
...
@@ -127,13 +126,13 @@ public class EncoderPerformanceAnalysisTest {
...
@@ -127,13 +126,13 @@ public class EncoderPerformanceAnalysisTest {
.
setRemoveAudio
(
true
)
.
setRemoveAudio
(
true
)
.
setEncoderFactory
(
.
setEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
new
AndroidTestUtil
.
ForceEncodeEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
(
/* wrappedEncoderFactory= */
new
DefaultEncoderFactory
.
Builder
(
context
)
context
,
.
setRequestedVideoEncoderSettings
(
EncoderSelector
.
DEFAULT
,
new
VideoEncoderSettings
.
Builder
()
new
VideoEncoderSettings
.
Builder
(
)
.
setEncoderPerformanceParameters
(
operatingRate
,
priority
)
.
setEncoderPerformanceParameters
(
operatingRate
,
priority
)
.
build
()
)
.
build
(),
.
setEnableFallback
(
false
)
/* enableFallback= */
false
)))
.
build
(
)))
.
build
();
.
build
();
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
new
TransformerAndroidTestRunner
.
Builder
(
context
,
transformer
)
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java
View file @
19bdff96
...
@@ -45,48 +45,109 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory {
...
@@ -45,48 +45,109 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory {
private
static
final
int
DEFAULT_FRAME_RATE
=
30
;
private
static
final
int
DEFAULT_FRAME_RATE
=
30
;
private
static
final
String
TAG
=
"DefaultEncoderFactory"
;
private
static
final
String
TAG
=
"DefaultEncoderFactory"
;
/** A builder for {@link DefaultEncoderFactory} instances. */
public
static
final
class
Builder
{
private
final
Context
context
;
@Nullable
private
EncoderSelector
encoderSelector
;
@Nullable
private
VideoEncoderSettings
requestedVideoEncoderSettings
;
private
boolean
enableFallback
;
/** Creates a new {@link Builder}. */
public
Builder
(
Context
context
)
{
this
.
context
=
context
;
this
.
enableFallback
=
true
;
}
/**
* Sets the video {@link EncoderSelector}.
*
* <p>The default value is {@link EncoderSelector#DEFAULT}.
*/
public
Builder
setVideoEncoderSelector
(
EncoderSelector
encoderSelector
)
{
this
.
encoderSelector
=
encoderSelector
;
return
this
;
}
/**
* Sets the requested {@link VideoEncoderSettings}.
*
* <p>Values in {@code requestedVideoEncoderSettings} could be adjusted to improve encoding
* quality and/or reduce failures. Specifically, {@link VideoEncoderSettings#profile} and {@link
* VideoEncoderSettings#level} are ignored for {@link MimeTypes#VIDEO_H264}. Consider
* implementing {@link Codec.EncoderFactory} if such adjustments are unwanted.
*
* <p>{@code requestedVideoEncoderSettings} should be handled with care because there is no
* fallback support for it. For example, using incompatible {@link VideoEncoderSettings#profile}
* and {@link VideoEncoderSettings#level} can cause codec configuration failure. Setting an
* unsupported {@link VideoEncoderSettings#bitrateMode} may cause encoder instantiation failure.
*
* <p>The default value is {@link VideoEncoderSettings#DEFAULT}.
*/
public
Builder
setRequestedVideoEncoderSettings
(
VideoEncoderSettings
requestedVideoEncoderSettings
)
{
this
.
requestedVideoEncoderSettings
=
requestedVideoEncoderSettings
;
return
this
;
}
/**
* Sets whether the encoder can fallback.
*
* <p>With format fallback enabled, when the requested {@link Format} is not supported, {@code
* DefaultEncoderFactory} finds a format that is supported by the device and configures the
* {@link Codec} with it. The fallback process may change the requested {@link
* Format#sampleMimeType MIME type}, resolution, {@link Format#bitrate bitrate}, {@link
* Format#codecs profile/level} etc.
*
* <p>The default value is {@code true}.
*/
public
Builder
setEnableFallback
(
boolean
enableFallback
)
{
this
.
enableFallback
=
enableFallback
;
return
this
;
}
/** Creates an instance of {@link DefaultEncoderFactory}, using defaults if values are unset. */
@SuppressWarnings
(
"deprecation"
)
public
DefaultEncoderFactory
build
()
{
if
(
encoderSelector
==
null
)
{
encoderSelector
=
EncoderSelector
.
DEFAULT
;
}
if
(
requestedVideoEncoderSettings
==
null
)
{
requestedVideoEncoderSettings
=
VideoEncoderSettings
.
DEFAULT
;
}
return
new
DefaultEncoderFactory
(
context
,
encoderSelector
,
requestedVideoEncoderSettings
,
enableFallback
);
}
}
private
final
Context
context
;
private
final
Context
context
;
private
final
EncoderSelector
videoEncoderSelector
;
private
final
EncoderSelector
videoEncoderSelector
;
private
final
VideoEncoderSettings
requestedVideoEncoderSettings
;
private
final
VideoEncoderSettings
requestedVideoEncoderSettings
;
private
final
boolean
enableFallback
;
private
final
boolean
enableFallback
;
/**
/**
* Creates a new instance using the {@link EncoderSelector#DEFAULT default encoder selector}, a
* @deprecated Use {@link Builder} instead.
* default {@link VideoEncoderSettings}, and with format fallback enabled.
*/
*/
@Deprecated
@SuppressWarnings
(
"deprecation"
)
public
DefaultEncoderFactory
(
Context
context
)
{
public
DefaultEncoderFactory
(
Context
context
)
{
this
(
context
,
EncoderSelector
.
DEFAULT
,
/* enableFallback= */
true
);
this
(
context
,
EncoderSelector
.
DEFAULT
,
/* enableFallback= */
true
);
}
}
/** Creates a new instance using a default {@link VideoEncoderSettings}. */
/**
* @deprecated Use {@link Builder} instead.
*/
@Deprecated
@SuppressWarnings
(
"deprecation"
)
public
DefaultEncoderFactory
(
public
DefaultEncoderFactory
(
Context
context
,
EncoderSelector
videoEncoderSelector
,
boolean
enableFallback
)
{
Context
context
,
EncoderSelector
videoEncoderSelector
,
boolean
enableFallback
)
{
this
(
context
,
videoEncoderSelector
,
VideoEncoderSettings
.
DEFAULT
,
enableFallback
);
this
(
context
,
videoEncoderSelector
,
VideoEncoderSettings
.
DEFAULT
,
enableFallback
);
}
}
/**
/**
* Creates a new instance.
* @deprecated Use {@link Builder} instead.
*
* <p>With format fallback enabled, when the requested {@link Format} is not supported, {@code
* DefaultEncoderFactory} finds a format that is supported by the device and configures the {@link
* Codec} with it. The fallback process may change the requested {@link Format#sampleMimeType MIME
* type}, resolution, {@link Format#bitrate bitrate}, {@link Format#codecs profile/level} etc.
*
* <p>Values in {@code requestedVideoEncoderSettings} could be adjusted to improve encoding
* quality and/or reduce failures. Specifically, {@link VideoEncoderSettings#profile} and {@link
* VideoEncoderSettings#level} are ignored for {@link MimeTypes#VIDEO_H264}. Consider implementing
* {@link Codec.EncoderFactory} if such adjustments are unwanted.
*
* <p>{@code requestedVideoEncoderSettings} should be handled with care because there is no
* fallback support for it. For example, using incompatible {@link VideoEncoderSettings#profile}
* and {@link VideoEncoderSettings#level} can cause codec configuration failure. Setting an
* unsupported {@link VideoEncoderSettings#bitrateMode} may cause encoder instantiation failure.
*
* @param context The {@link Context}.
* @param videoEncoderSelector The {@link EncoderSelector}.
* @param requestedVideoEncoderSettings The {@link VideoEncoderSettings}.
* @param enableFallback Whether to enable fallback.
*/
*/
@Deprecated
public
DefaultEncoderFactory
(
public
DefaultEncoderFactory
(
Context
context
,
Context
context
,
EncoderSelector
videoEncoderSelector
,
EncoderSelector
videoEncoderSelector
,
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java
View file @
19bdff96
...
@@ -120,7 +120,7 @@ public final class Transformer {
...
@@ -120,7 +120,7 @@ public final class Transformer {
looper
=
Util
.
getCurrentOrMainLooper
();
looper
=
Util
.
getCurrentOrMainLooper
();
clock
=
Clock
.
DEFAULT
;
clock
=
Clock
.
DEFAULT
;
listeners
=
new
ListenerSet
<>(
looper
,
clock
,
(
listener
,
flags
)
->
{});
listeners
=
new
ListenerSet
<>(
looper
,
clock
,
(
listener
,
flags
)
->
{});
encoderFactory
=
new
DefaultEncoderFactory
(
this
.
context
);
encoderFactory
=
new
DefaultEncoderFactory
.
Builder
(
this
.
context
).
build
(
);
decoderFactory
=
new
DefaultDecoderFactory
(
this
.
context
);
decoderFactory
=
new
DefaultDecoderFactory
(
this
.
context
);
debugViewProvider
=
DebugViewProvider
.
NONE
;
debugViewProvider
=
DebugViewProvider
.
NONE
;
containerMimeType
=
MimeTypes
.
VIDEO_MP4
;
containerMimeType
=
MimeTypes
.
VIDEO_MP4
;
...
...
library/transformer/src/test/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactoryTest.java
View file @
19bdff96
...
@@ -68,7 +68,8 @@ public class DefaultEncoderFactoryTest {
...
@@ -68,7 +68,8 @@ public class DefaultEncoderFactoryTest {
throws
Exception
{
throws
Exception
{
Format
requestedVideoFormat
=
createVideoFormat
(
MimeTypes
.
VIDEO_H264
,
1920
,
1080
,
30
);
Format
requestedVideoFormat
=
createVideoFormat
(
MimeTypes
.
VIDEO_H264
,
1920
,
1080
,
30
);
Format
actualVideoFormat
=
Format
actualVideoFormat
=
new
DefaultEncoderFactory
(
context
)
new
DefaultEncoderFactory
.
Builder
(
context
)
.
build
()
.
createForVideoEncoding
(
.
createForVideoEncoding
(
requestedVideoFormat
,
requestedVideoFormat
,
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
))
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
))
...
@@ -86,7 +87,8 @@ public class DefaultEncoderFactoryTest {
...
@@ -86,7 +87,8 @@ public class DefaultEncoderFactoryTest {
throws
Exception
{
throws
Exception
{
Format
requestedVideoFormat
=
createVideoFormat
(
MimeTypes
.
VIDEO_H265
,
1920
,
1080
,
30
);
Format
requestedVideoFormat
=
createVideoFormat
(
MimeTypes
.
VIDEO_H265
,
1920
,
1080
,
30
);
Format
actualVideoFormat
=
Format
actualVideoFormat
=
new
DefaultEncoderFactory
(
context
)
new
DefaultEncoderFactory
.
Builder
(
context
)
.
build
()
.
createForVideoEncoding
(
.
createForVideoEncoding
(
requestedVideoFormat
,
requestedVideoFormat
,
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
))
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
))
...
@@ -104,7 +106,8 @@ public class DefaultEncoderFactoryTest {
...
@@ -104,7 +106,8 @@ public class DefaultEncoderFactoryTest {
throws
Exception
{
throws
Exception
{
Format
requestedVideoFormat
=
createVideoFormat
(
MimeTypes
.
VIDEO_H264
,
3840
,
2160
,
60
);
Format
requestedVideoFormat
=
createVideoFormat
(
MimeTypes
.
VIDEO_H264
,
3840
,
2160
,
60
);
Format
actualVideoFormat
=
Format
actualVideoFormat
=
new
DefaultEncoderFactory
(
context
)
new
DefaultEncoderFactory
.
Builder
(
context
)
.
build
()
.
createForVideoEncoding
(
.
createForVideoEncoding
(
requestedVideoFormat
,
requestedVideoFormat
,
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
))
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
))
...
@@ -122,7 +125,8 @@ public class DefaultEncoderFactoryTest {
...
@@ -122,7 +125,8 @@ public class DefaultEncoderFactoryTest {
assertThrows
(
assertThrows
(
TransformationException
.
class
,
TransformationException
.
class
,
()
->
()
->
new
DefaultEncoderFactory
(
context
)
new
DefaultEncoderFactory
.
Builder
(
context
)
.
build
()
.
createForVideoEncoding
(
.
createForVideoEncoding
(
requestedVideoFormat
,
requestedVideoFormat
,
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H265
)));
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H265
)));
...
@@ -138,10 +142,9 @@ public class DefaultEncoderFactoryTest {
...
@@ -138,10 +142,9 @@ public class DefaultEncoderFactoryTest {
assertThrows
(
assertThrows
(
TransformationException
.
class
,
TransformationException
.
class
,
()
->
()
->
new
DefaultEncoderFactory
(
new
DefaultEncoderFactory
.
Builder
(
context
)
context
,
.
setVideoEncoderSelector
(
mimeType
->
ImmutableList
.
of
())
/* videoEncoderSelector= */
mimeType
->
ImmutableList
.
of
(),
.
build
()
/* enableFallback= */
true
)
.
createForVideoEncoding
(
.
createForVideoEncoding
(
requestedVideoFormat
,
requestedVideoFormat
,
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
)));
/* allowedMimeTypes= */
ImmutableList
.
of
(
MimeTypes
.
VIDEO_H264
)));
...
...
library/transformer/src/test/java/com/google/android/exoplayer2/transformer/TransformerEndToEndTest.java
View file @
19bdff96
...
@@ -751,7 +751,7 @@ public final class TransformerEndToEndTest {
...
@@ -751,7 +751,7 @@ public final class TransformerEndToEndTest {
.
setClock
(
clock
)
.
setClock
(
clock
)
.
setMuxerFactory
(
new
TestMuxerFactory
())
.
setMuxerFactory
(
new
TestMuxerFactory
())
.
setEncoderFactory
(
.
setEncoderFactory
(
new
DefaultEncoderFactory
(
context
,
EncoderSelector
.
DEFAULT
,
enableFallback
));
new
DefaultEncoderFactory
.
Builder
(
context
).
setEnableFallback
(
enableFallback
).
build
(
));
}
}
private
static
void
createEncodersAndDecoders
()
{
private
static
void
createEncodersAndDecoders
()
{
...
...
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