# Package com.google.android.exoplayer2.extractor

- Interface Summary
  Interface | Description
  --- | ---
  BinarySearchSeeker.SeekTimestampConverter | A converter that converts seek time in stream time into target timestamp for the `BinarySearchSeeker`.
  BinarySearchSeeker.TimestampSeeker | A seeker that looks for a given timestamp from an input.
  Extractor | Extracts media data from a container format.
  ExtractorInput | Provides data to be consumed by an `Extractor`.
  ExtractorOutput | Receives stream level data extracted by an `Extractor`.
  ExtractorsFactory | Factory for arrays of `Extractor` instances.
  SeekMap | Maps seek positions (in microseconds) to corresponding positions (byte offsets) in the stream.
  TrackOutput | Receives track level data extracted by an `Extractor`.

- Class Summary
  Class | Description
  --- | ---
  BinarySearchSeeker | A seeker that supports seeking within a stream by searching for the target frame using binary search.
  BinarySearchSeeker.BinarySearchSeekMap | A `SeekMap` implementation that returns the estimated byte location from `BinarySearchSeeker.SeekOperationParams.calculateNextSearchBytePosition(long, long, long, long, long, long)` for each `BinarySearchSeeker.BinarySearchSeekMap.getSeekPoints(long)` query.
  BinarySearchSeeker.DefaultSeekTimestampConverter | A `BinarySearchSeeker.SeekTimestampConverter` implementation that returns the seek time itself as the timestamp for a seek time position.
  BinarySearchSeeker.SeekOperationParams | Contains parameters for a pending seek operation by `BinarySearchSeeker`.
  BinarySearchSeeker.TimestampSearchResult | Represents possible search results for `BinarySearchSeeker.TimestampSeeker.searchForTimestamp(ExtractorInput, long)`.
  CeaUtil | Utility methods for handling CEA-608/708 messages.
  ChunkIndex | Defines chunks of samples within a media stream.
  ConstantBitrateSeekMap | A `SeekMap` implementation that assumes the stream has a constant bitrate and consists of multiple independent frames of the same size.
  DefaultExtractorInput | An `ExtractorInput` that wraps a `DataReader`.
  DefaultExtractorsFactory | An `ExtractorsFactory` that provides an array of extractors for the following formats: MP4, including M4A (`Mp4Extractor`) fMP4 (`FragmentedMp4Extractor`) Matroska and WebM (`MatroskaExtractor`) Ogg Vorbis/FLAC (`OggExtractor` MP3 (`Mp3Extractor`) AAC (`AdtsExtractor`) MPEG TS (`TsExtractor`) MPEG PS (`PsExtractor`) FLV (`FlvExtractor`) WAV (`WavExtractor`) AC3 (`Ac3Extractor`) AC4 (`Ac4Extractor`) AMR (`AmrExtractor`) FLAC If available, the FLAC extension's `com.google.android.exoplayer2.ext.flac.FlacExtractor` is used.
  DummyExtractorOutput | A fake `ExtractorOutput` implementation.
  DummyTrackOutput | A fake `TrackOutput` implementation.
  FlacFrameReader | Reads and peeks FLAC frame elements according to the FLAC format specification.
  FlacFrameReader.SampleNumberHolder | Holds a sample number.
  FlacMetadataReader | Reads and peeks FLAC stream metadata elements according to the FLAC format specification.
  FlacMetadataReader.FlacStreamMetadataHolder | Holds a `FlacStreamMetadata`.
  FlacSeekTableSeekMap | A `SeekMap` implementation for FLAC streams that contain a seek table.
  FlacStreamMetadata | Holder for FLAC metadata.
  FlacStreamMetadata.SeekTable | A FLAC seek table.
  ForwardingExtractorInput | An overridable `ExtractorInput` implementation forwarding all methods to another input.
  GaplessInfoHolder | Holder for gapless playback information.
  Id3Peeker | Peeks data from the beginning of an `ExtractorInput` to determine if there is any ID3 tag.
  IndexSeekMap | A `SeekMap` implementation based on a mapping between times and positions in the input stream.
  PositionHolder | Holds a position in the stream.
  SeekMap.SeekPoints | Contains one or two `SeekPoint`s.
  SeekMap.Unseekable | A `SeekMap` that does not support seeking.
  SeekPoint | Defines a seek point in a media stream.
  TrackOutput.CryptoData | Holds data required to decrypt a sample.
  VorbisBitArray | Wraps a byte array, providing methods that allow it to be read as a Vorbis bitstream.
  VorbisUtil | Utility methods for parsing Vorbis streams.
  VorbisUtil.CommentHeader | Vorbis comment header.
  VorbisUtil.Mode | Vorbis setup header modes.
  VorbisUtil.VorbisIdHeader | Vorbis identification header.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  Extractor.ReadResult | Result values that can be returned by `Extractor.read(ExtractorInput, PositionHolder)`.
  TrackOutput.SampleDataPart | Defines the part of the sample data to which a call to `TrackOutput.sampleData(com.google.android.exoplayer2.upstream.DataReader, int, boolean)` corresponds.