SmolRTSP
0.1.3
A small, portable, extensible RTSP 1.0 implementation in C99
|
An RTP data transport. More...
#include <smolrtsp/droppable.h>
#include <smolrtsp/transport.h>
#include <stdbool.h>
#include <stdint.h>
#include <datatype99.h>
#include <slice99.h>
#include <smolrtsp/priv/compiler_attrs.h>
Go to the source code of this file.
Typedefs | |
typedef struct SmolRTSP_RtpTransport | SmolRTSP_RtpTransport |
An RTP data transport. | |
Functions | |
datatype99 (SmolRTSP_RtpTimestamp,(SmolRTSP_RtpTimestamp_Raw, uint32_t),(SmolRTSP_RtpTimestamp_SysClockUs, uint64_t)) | |
An RTP timestamp. More... | |
SmolRTSP_RtpTransport * | SmolRTSP_RtpTransport_new (SmolRTSP_Transport t, uint8_t payload_ty, uint32_t clock_rate) SMOLRTSP_PRIV_MUST_USE |
Creates a new RTP transport from the underlying level-4 protocol t . More... | |
int | SmolRTSP_RtpTransport_send_packet (SmolRTSP_RtpTransport *self, SmolRTSP_RtpTimestamp ts, bool marker, U8Slice99 payload_header, U8Slice99 payload) SMOLRTSP_PRIV_MUST_USE |
Sends an RTP packet. More... | |
declImplExtern99 (SmolRTSP_Droppable, SmolRTSP_RtpTransport) | |
Implements SmolRTSP_Droppable_IFACE for SmolRTSP_RtpTransport. More... | |
bool | SmolRTSP_RtpTransport_is_full (SmolRTSP_RtpTransport *self) |
An RTP data transport.
datatype99 | ( | SmolRTSP_RtpTimestamp | , |
(SmolRTSP_RtpTimestamp_Raw, uint32_t) | , | ||
(SmolRTSP_RtpTimestamp_SysClockUs, uint64_t) | |||
) |
An RTP timestamp.
Raw
– The value to be assigned to SmolRTSP_RtpHeader.timestamp without further conversion.SysClockUs
– The timestamp value in microseconds derived from a system clock (e.g., clock_gettime
). It should be used when a raw timestamp cannot be computed, as typically occurs with real-time video.See Datatype99 for the macro usage.
declImplExtern99 | ( | SmolRTSP_Droppable | , |
SmolRTSP_RtpTransport | |||
) |
Implements SmolRTSP_Droppable_IFACE for SmolRTSP_RtpTransport.
See Interface99 for the macro usage.
SmolRTSP_RtpTransport* SmolRTSP_RtpTransport_new | ( | SmolRTSP_Transport | t, |
uint8_t | payload_ty, | ||
uint32_t | clock_rate | ||
) |
Creates a new RTP transport from the underlying level-4 protocol t
.
[in] | t | The level-4 protocol (such as TCP or UDP). |
[in] | payload_ty | The RTP payload type. The list of payload types is available here: https://en.wikipedia.org/wiki/RTP_payload_formats. |
[in] | clock_rate | The RTP clock rate of payload_ty (HZ). |
t.self && t.vptr
rand
PRNG must be set up via srand
. int SmolRTSP_RtpTransport_send_packet | ( | SmolRTSP_RtpTransport * | self, |
SmolRTSP_RtpTimestamp | ts, | ||
bool | marker, | ||
U8Slice99 | payload_header, | ||
U8Slice99 | payload | ||
) |
Sends an RTP packet.
[out] | self | The RTP transport for sending this packet. |
[in] | ts | The RTP timestamp for this packet. |
[in] | marker | The RTP marker flag. |
[in] | payload_header | The payload header. Can be U8Slice99_empty() . |
[in] | payload | The payload data. |
self != NULL
errno
appropriately, 0 on success.