Package com.google.android.exoplayer2.transformer

## Class DefaultEncoderFactory

- java.lang.Object
- - com.google.android.exoplayer2.transformer.DefaultEncoderFactory

- All Implemented Interfaces:
    `Codec.EncoderFactory`

      public final class DefaultEncoderFactory
      extends Object
      implements Codec.EncoderFactory

  A default implementation of `Codec.EncoderFactory`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `DefaultEncoderFactory.Builder` | A builder for `DefaultEncoderFactory` instances.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DefaultEncoderFactory​(Context context)` | Deprecated. Use `DefaultEncoderFactory.Builder` instead.
    `DefaultEncoderFactory​(Context context, EncoderSelector videoEncoderSelector, boolean enableFallback)` | Deprecated. Use `DefaultEncoderFactory.Builder` instead.
    `DefaultEncoderFactory​(Context context, EncoderSelector videoEncoderSelector, VideoEncoderSettings requestedVideoEncoderSettings, boolean enableFallback)` | Deprecated. Use `DefaultEncoderFactory.Builder` instead.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Codec` | `createForAudioEncoding​(Format format, List<String> allowedMimeTypes)` | Returns a `Codec` for audio encoding.
    `Codec` | `createForVideoEncoding​(Format format, List<String> allowedMimeTypes)` | Returns a `Codec` for video encoding.
    `boolean` | `videoNeedsEncoding()` | Returns whether the video needs to be encoded because of encoder specific configuration.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.google.android.exoplayer2.transformer.Codec.EncoderFactory

      `audioNeedsEncoding`

- - ### Constructor Detail

    - #### DefaultEncoderFactory

          @Deprecated
          public DefaultEncoderFactory​(Context context)

      Deprecated.
      Use `DefaultEncoderFactory.Builder` instead.

    - #### DefaultEncoderFactory

          @Deprecated
          public DefaultEncoderFactory​(Context context,
                                       EncoderSelector videoEncoderSelector,
                                       boolean enableFallback)

      Deprecated.
      Use `DefaultEncoderFactory.Builder` instead.

    - #### DefaultEncoderFactory

          @Deprecated
          public DefaultEncoderFactory​(Context context,
                                       EncoderSelector videoEncoderSelector,
                                       VideoEncoderSettings requestedVideoEncoderSettings,
                                       boolean enableFallback)

      Deprecated.
      Use `DefaultEncoderFactory.Builder` instead.

  - ### Method Detail

    - #### createForAudioEncoding

          public Codec createForAudioEncoding​(Format format,
                                              List<String> allowedMimeTypes)
                                       throws TransformationException

      Description copied from interface: `Codec.EncoderFactory`
      Returns a `Codec` for audio encoding.

      This method must validate that the `Codec` is configured to produce one of the `allowedMimeTypes`. The sample MIME type given in `format` is not necessarily allowed.

      Specified by:
        `createForAudioEncoding` in interface `Codec.EncoderFactory`
      Parameters:
        `format` - The `Format` (of the output data) used to determine the underlying encoder and its configuration values.
        `allowedMimeTypes` - The non-empty list of allowed output sample MIME types.
      Returns:
        A `Codec` for audio encoding.
      Throws:
        `TransformationException` - If no suitable `Codec` can be created.

    - #### createForVideoEncoding

          public Codec createForVideoEncoding​(Format format,
                                              List<String> allowedMimeTypes)
                                       throws TransformationException

      Description copied from interface: `Codec.EncoderFactory`
      Returns a `Codec` for video encoding.

      This method must validate that the `Codec` is configured to produce one of the `allowedMimeTypes`. The sample MIME type given in `format` is not necessarily allowed.

      Specified by:
        `createForVideoEncoding` in interface `Codec.EncoderFactory`
      Parameters:
        `format` - The `Format` (of the output data) used to determine the underlying encoder and its configuration values. `Format.sampleMimeType`, `Format.width` and `Format.height` are set to those of the desired output video format. `Format.rotationDegrees` is 0 and `Format.width` `>=` `Format.height`, therefore the video is always in landscape orientation. `Format.frameRate` is set to the output video's frame rate, if available.
        `allowedMimeTypes` - The non-empty list of allowed output sample MIME types.
      Returns:
        A `Codec` for video encoding.
      Throws:
        `TransformationException` - If no suitable `Codec` can be created.

    - #### videoNeedsEncoding

          public boolean videoNeedsEncoding()

      Description copied from interface: `Codec.EncoderFactory`
      Returns whether the video needs to be encoded because of encoder specific configuration.
      Specified by:
        `videoNeedsEncoding` in interface `Codec.EncoderFactory`