23#ifndef AVFORMAT_RTPDEC_H
24#define AVFORMAT_RTPDEC_H
36#define RTP_MIN_PACKET_LENGTH 12
37#define RTP_MAX_PACKET_LENGTH 8192
39#define RTP_REORDER_QUEUE_DEFAULT_SIZE 500
41#define RTP_NOTS_VALUE ((uint32_t)-1)
51 uint8_t **buf,
int len);
93#define RTP_FLAG_KEY 0x1
94#define RTP_FLAG_MARKER 0x2
212 char *
value,
int value_size);
219 const char *attr,
const char *
value));
SwsAArch64OpImplParams params
#define flags(name, subs,...)
AVCodecID
Identify the syntax and semantics of the bitstream.
static void handler(vbi_event *ev, void *user_data)
enum AVMediaType codec_type
int ff_rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, uint8_t **buf, int len)
Parse an RTP or RTCP packet directly sent as a buffer.
int ff_parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *p, int(*parse_fmtp)(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *attr, const char *value))
RTPDemuxContext * ff_rtp_parse_open(AVFormatContext *s1, AVStream *st, int payload_type, int queue_size)
open a new RTP parse context for stream 'st'.
void ff_rtp_parse_close(RTPDemuxContext *s)
void ff_rtp_send_punch_packets(URLContext *rtp_handle)
Send a dummy packet on both port pairs to set up the connection state in potential NAT routers,...
void ff_rtp_parse_set_crypto(RTPDemuxContext *s, const char *suite, const char *params)
const RTPDynamicProtocolHandler * ff_rtp_handler_find_by_id(int id, enum AVMediaType codec_type)
Find a registered rtp dynamic protocol handler with a matching codec ID.
int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *value, int value_size)
int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, URLContext *fd, AVIOContext *avio, int count)
some rtp servers assume client is dead if they don't hear from them... so we send a Receiver Report t...
void ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, const RTPDynamicProtocolHandler *handler)
void ff_rtp_reset_packet_queue(RTPDemuxContext *s)
int ff_rtp_send_rtcp_feedback(RTPDemuxContext *s, URLContext *fd, AVIOContext *avio)
int64_t ff_rtp_queued_packet_time(RTPDemuxContext *s)
int(* DynamicPayloadPacketHandlerProc)(AVFormatContext *ctx, PayloadContext *s, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, uint16_t seq, int flags)
Packet parsing for "private" payloads in the RTP specs.
const RTPDynamicProtocolHandler * ff_rtp_handler_find_by_name(const char *name, enum AVMediaType codec_type)
Find a registered rtp dynamic protocol handler with the specified name.
int ff_rtp_finalize_packet(AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx)
Close the dynamic buffer and make a packet from it.
static int parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *attr, const char *value)
This structure stores compressed data.
RTCP SR (Sender Report) information.
RTP/AV1 specific private data.
PayloadContext * dynamic_protocol_context
int64_t last_rtcp_reception_time
RTPPacket * queue
A sorted queue of buffered packets not yet returned.
int pending_sr
Indicates if there is a SR pending to be attached as sidedata.
uint64_t first_rtcp_ntp_time
int64_t unwrapped_timestamp
unsigned int packet_count
const RTPDynamicProtocolHandler * handler
int64_t last_feedback_time
RTPStatistics statistics
Statistics for this stream (used by RTCP receiver reports)
int prev_ret
Fields for packet reordering.
unsigned int last_octet_count
int queue_size
The size of queue, or 0 if reordering is disabled.
AVRTCPSenderReport last_sr
Last RTCP SR data.
int64_t range_start_offset
int queue_len
The number of packets in queue.
int(* parse_sdp_a_line)(AVFormatContext *s, int st_index, PayloadContext *priv_data, const char *line)
Parse the a= line from the sdp field.
void(* close)(PayloadContext *protocol_data)
Free any data needed by the rtp parsing for this dynamic data.
DynamicPayloadPacketHandlerProc parse_packet
Parse handler for this dynamic packet.
int(* need_keyframe)(PayloadContext *context)
enum AVMediaType codec_type
enum AVStreamParseType need_parsing
int(* init)(AVFormatContext *s, int st_index, PayloadContext *priv_data)
Initialize dynamic protocol handler, called after the full rtpmap line is parsed, may be null.
uint32_t expected_prior
packets expected in last interval
uint32_t cycles
shifted count of sequence number cycles
uint32_t transit
relative transit time for previous packet
int probation
sequence packets till source is valid
uint32_t base_seq
base sequence number
uint32_t jitter
estimated jitter.
uint16_t max_seq
highest sequence number seen
uint32_t received
packets received
uint32_t received_prior
packets received in last interval
uint32_t bad_seq
last bad sequence number + 1
static AVFormatContext * ctx
unbuffered private I/O API