ExperimentalFrameExtractor


@UnstableApi
class ExperimentalFrameExtractor


Extracts decoded frames from MediaItem.

This class is experimental and will be renamed or removed in a future release.

Frame extractor instances must be accessed from a single application thread.

This class may produce incorrect or washed out colors, or images that have too high contrast for inputs not covered by testDecodeGlAccuracyRGB CTS test. That is:

  • Inputs of BT.601 limited range are likely to produce accurate output with either software or hardware decoders across a wide range of devices.
  • Other inputs are likely to produce accurate output when using hardware decoders on devices that are launched with API 13 or later.
  • HDR inputs will produce a Bitmap with BT2020_HLG. There are no guarantees that an HLG Bitmap displayed in ImageView and an HLG video displayed in SurfaceView will look the same.
  • Depending on the device and input video, color inaccuracies can be mitigated with an appropriate RgbMatrix effect.

Summary

Nested types

Configuration for the frame extractor.

A builder for Configuration instances.

Stores an extracted and decoded video frame.

Public constructors

Creates an instance.

Public functions

ListenableFuture<ExperimentalFrameExtractor.Frame!>!
getFrame(positionMs: Long)

Extracts a representative Frame for the specified video position.

Unit

Releases the underlying resources.

Unit
setMediaItem(mediaItem: MediaItem!, effects: (Mutable)List<Effect!>!)

Sets a new MediaItem.

Public constructors

ExperimentalFrameExtractor

ExperimentalFrameExtractor(
    context: Context!,
    configuration: ExperimentalFrameExtractor.Configuration!
)

Creates an instance.

Parameters
context: Context!

Context.

configuration: ExperimentalFrameExtractor.Configuration!

The Configuration for this frame extractor.

Public functions

getFrame

fun getFrame(positionMs: Long): ListenableFuture<ExperimentalFrameExtractor.Frame!>!

Extracts a representative Frame for the specified video position.

Parameters
positionMs: Long

The time position in the MediaItem for which a frame is extracted.

release

fun release(): Unit

Releases the underlying resources. This method must be called when the frame extractor is no longer required. The frame extractor must not be used after calling this method.

setMediaItem

fun setMediaItem(mediaItem: MediaItem!, effects: (Mutable)List<Effect!>!): Unit

Sets a new MediaItem.

Changing between SDR and HDR MediaItems is not supported when extractHdrFrames is true.

Parameters
mediaItem: MediaItem!

The MediaItem from which frames will be extracted.

effects: (Mutable)List<Effect!>!

The List of video effects to apply to the extracted video frames.