@UnstableApi
interface RtpPayloadReader

Known direct subclasses
RtpAc3Reader

Parses an AC3 byte stream carried on RTP packets, and extracts AC3 frames.

RtpPcmReader

Parses byte stream carried on RTP packets, and extracts PCM frames.


Extracts media samples from the payload of received RTP packets.

Summary

Nested types

Factory of RtpPayloadReader instances.

Public functions

Unit
consume(
    data: ParsableByteArray!,
    timestamp: Long,
    sequenceNumber: Int,
    rtpMarker: Boolean
)

Consumes the payload from the an RTP packet.

Unit
createTracks(extractorOutput: ExtractorOutput!, trackId: Int)

Initializes the reader by providing its output and track id.

Unit
onReceivingFirstPacket(timestamp: Long, sequenceNumber: Int)

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

Unit
seek(nextRtpTimestamp: Long, timeUs: Long)

Seeks the reader.

Public functions

consume

fun consume(
    data: ParsableByteArray!,
    timestamp: Long,
    sequenceNumber: Int,
    rtpMarker: Boolean
): Unit

Consumes the payload from the an RTP packet.

Parameters
data: ParsableByteArray!

The RTP payload to consume.

timestamp: Long

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.

sequenceNumber: Int

The sequence number of the RTP packet.

rtpMarker: Boolean

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

fun createTracks(extractorOutput: ExtractorOutput!, trackId: Int): Unit

Initializes the reader by providing its output and track id.

Parameters
extractorOutput: ExtractorOutput!

The ExtractorOutput instance that receives the extracted data.

trackId: Int

The track identifier to set on the format.

onReceivingFirstPacket

fun onReceivingFirstPacket(timestamp: Long, sequenceNumber: Int): Unit

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

Parameters
timestamp: Long

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.

sequenceNumber: Int

The sequence associated with the first received RTP packet.

seek

fun seek(nextRtpTimestamp: Long, timeUs: Long): Unit

Seeks the reader.

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

Parameters
nextRtpTimestamp: Long

The timestamp of the first packet to arrive after seek.

timeUs: Long

The server acknowledged seek time in microseconds.