@UnstableApi
public final class RtpPcmReader implements RtpPayloadReader


Parses byte stream carried on RTP packets, and extracts PCM frames. Refer to RFC3551 for more details.

Summary

Public constructors

Public methods

void
consume(
    ParsableByteArray data,
    long timestamp,
    int sequenceNumber,
    boolean rtpMarker
)

Consumes the payload from the an RTP packet.

void
createTracks(ExtractorOutput extractorOutput, int trackId)

Initializes the reader by providing its output and track id.

void
onReceivingFirstPacket(long timestamp, int sequenceNumber)

This method should be called on reading the first packet in a stream of incoming packets.

void
seek(long nextRtpTimestamp, long timeUs)

Seeks the reader.

Public constructors

RtpPcmReader

public RtpPcmReader(RtpPayloadFormat payloadFormat)

Public methods

consume

public void consume(
    ParsableByteArray data,
    long timestamp,
    int sequenceNumber,
    boolean rtpMarker
)

Consumes the payload from the an RTP packet.

Parameters
ParsableByteArray data

The RTP payload to consume.

long timestamp

The timestamp of the RTP packet that transmitted the data. This number has no unit, the duration conveyed by it depends on the frequency of the media that the RTP packet is carrying.

int sequenceNumber

The sequence number of the RTP packet.

boolean rtpMarker

The marker bit of the RTP packet. The interpretation of this bit is specific to each payload format.

Throws
androidx.media3.common.ParserException

If the data could not be parsed.

createTracks

public void createTracks(ExtractorOutput extractorOutput, int trackId)

Initializes the reader by providing its output and track id.

Parameters
ExtractorOutput extractorOutput

The ExtractorOutput instance that receives the extracted data.

int trackId

The track identifier to set on the format.

onReceivingFirstPacket

public void onReceivingFirstPacket(long timestamp, int sequenceNumber)

This method should be called on reading the first packet in a stream of incoming packets.

Parameters
long timestamp

The timestamp associated with the first received RTP packet. This number has no unit, the duration conveyed by it depends on the frequency of the media that the RTP packet is carrying.

int sequenceNumber

The sequence associated with the first received RTP packet.

seek

public void seek(long nextRtpTimestamp, long timeUs)

Seeks the reader.

This method must only be invoked after the PLAY request for seeking is acknowledged by the RTSP server.

Parameters
long nextRtpTimestamp

The timestamp of the first packet to arrive after seek.

long timeUs

The server acknowledged seek time in microseconds.