DefaultEncoderFactory


@UnstableApi
public final class DefaultEncoderFactory implements Codec.EncoderFactory


A default implementation of Codec.EncoderFactory.

Summary

Nested types

A builder for DefaultEncoderFactory instances.

Public methods

boolean

Returns whether the audio needs to be encoded because of encoder specific configuration.

DefaultEncoderFactory.Builder

Returns a Builder initialized with the values of this instance.

DefaultCodec
createForAudioEncoding(
    Format format,
    @Nullable LogSessionId logSessionId
)

Returns a Codec for audio encoding.

DefaultCodec
createForVideoEncoding(
    Format format,
    @Nullable LogSessionId logSessionId
)

Returns a DefaultCodec for video encoding.

boolean
isVideoFormatSupported(Format requestedFormat)

Returns whether the requested video Format is supported by the encoder factory.

boolean

Returns whether the video needs to be encoded because of encoder specific configuration.

Public methods

audioNeedsEncoding

public boolean audioNeedsEncoding()

Returns whether the audio needs to be encoded because of encoder specific configuration.

buildUpon

public DefaultEncoderFactory.Builder buildUpon()

Returns a Builder initialized with the values of this instance.

createForAudioEncoding

public DefaultCodec createForAudioEncoding(
    Format format,
    @Nullable LogSessionId logSessionId
)

Returns a Codec for audio encoding.

The caller should ensure the MIME type is supported on the device before calling this method.

codecs contains the codec string for the original input media that has been decoded and processed. This is provided only as a hint, and the factory may encode to a different format.

Parameters
Format format

The Format (of the output data) used to determine the underlying encoder and its configuration values. sampleMimeType, sampleRate, channelCount and bitrate are set to those of the desired output video format.

@Nullable LogSessionId logSessionId

The optional LogSessionId of the android.media.metrics.EditingSession.

Returns
DefaultCodec

A Codec for encoding audio to the requested MIME type.

Throws
androidx.media3.transformer.ExportException

If no suitable Codec can be created.

createForVideoEncoding

public DefaultCodec createForVideoEncoding(
    Format format,
    @Nullable LogSessionId logSessionId
)

Returns a DefaultCodec for video encoding.

Use setRequestedVideoEncoderSettings with bitrate set to request for a specific encoding bitrate. Bitrate settings in Format are ignored when bitrate is set.

isVideoFormatSupported

public boolean isVideoFormatSupported(Format requestedFormat)

Returns whether the requested video Format is supported by the encoder factory.

This is an experimental API and is currently being used for FrameWriter specifically.

videoNeedsEncoding

public boolean videoNeedsEncoding()

Returns whether the video needs to be encoded because of encoder specific configuration.