RTP
Overview
The Real-time Transport Protocol (RTP, RFC 3550) carries media streams such
as audio over UDP. Zephyr implements the RTP data plane under
CONFIG_RTP: session management, packet serialization and
deserialization, and two transport backends. RTCP is not implemented.
An application declares a session with RTP_SESSION_DEFINE,
configures it with rtp_session_init() as a source, sink, or both, and
starts it with rtp_session_start(). Payloads are transmitted with
rtp_session_send(); received packets are delivered through a callback
invoked from the network receive context.
Two transports are available:
Socket (
CONFIG_RTP_TRANSPORT_SOCKET): BSD sockets with a background socket service for polling. The default.net_pkt (
CONFIG_RTP_TRANSPORT_NET_PKT): builds rawnet_pktbuffers, bypassing the socket layer for minimal overhead.
Note
RTP support is experimental: APIs and Kconfig options may change.