@UnstableApi
public final class AdtsReader implements ElementaryStreamReader


Parses a continuous ADTS byte stream and extracts individual frames.

Summary

Public fields

long

Public constructors

AdtsReader(boolean exposeId3)
AdtsReader(
    boolean exposeId3,
    @Nullable String language,
    @C.RoleFlags int roleFlags
)

Public methods

void

Consumes (possibly partial) data from the current packet.

void
createTracks(
    ExtractorOutput extractorOutput,
    TsPayloadReader.TrackIdGenerator idGenerator
)

Initializes the reader by providing outputs and ids for the tracks.

long

Returns the duration in microseconds per sample, or TIME_UNSET if the sample duration is not available.

static boolean
isAdtsSyncWord(int candidateSyncWord)

Returns whether an integer matches an ADTS SYNC word.

void
packetFinished(boolean isEndOfInput)

Called when a packet ends.

void
packetStarted(long pesTimeUs, @TsPayloadReader.Flags int flags)

Called when a packet starts.

void

Notifies the reader that a seek has occurred.

Public fields

sampleDurationUs

public long sampleDurationUs

Public constructors

AdtsReader

public AdtsReader(boolean exposeId3)
Parameters
boolean exposeId3

True if the reader should expose ID3 information.

AdtsReader

public AdtsReader(
    boolean exposeId3,
    @Nullable String language,
    @C.RoleFlags int roleFlags
)
Parameters
boolean exposeId3

True if the reader should expose ID3 information.

@Nullable String language

Track language.

@C.RoleFlags int roleFlags

Track role flags.

Public methods

consume

public void consume(ParsableByteArray data)

Consumes (possibly partial) data from the current packet.

Parameters
ParsableByteArray data

The data to consume.

Throws
androidx.media3.common.ParserException

If the data could not be parsed.

createTracks

public void createTracks(
    ExtractorOutput extractorOutput,
    TsPayloadReader.TrackIdGenerator idGenerator
)

Initializes the reader by providing outputs and ids for the tracks.

Parameters
ExtractorOutput extractorOutput

The ExtractorOutput that receives the extracted data.

TsPayloadReader.TrackIdGenerator idGenerator

A PesReader.TrackIdGenerator that generates unique track ids for the TrackOutputs.

getSampleDurationUs

public long getSampleDurationUs()

Returns the duration in microseconds per sample, or TIME_UNSET if the sample duration is not available.

isAdtsSyncWord

public static boolean isAdtsSyncWord(int candidateSyncWord)

Returns whether an integer matches an ADTS SYNC word.

packetFinished

public void packetFinished(boolean isEndOfInput)

Called when a packet ends.

packetStarted

public void packetStarted(long pesTimeUs, @TsPayloadReader.Flags int flags)

Called when a packet starts.

Parameters
long pesTimeUs

The timestamp associated with the packet.

@TsPayloadReader.Flags int flags

See TsPayloadReader.Flags.

seek

public void seek()

Notifies the reader that a seek has occurred.