Go to the documentation of this file.
23 #ifndef AVFORMAT_RTPDEC_H
24 #define AVFORMAT_RTPDEC_H
35 #define RTP_MIN_PACKET_LENGTH 12
36 #define RTP_MAX_PACKET_LENGTH 8192
38 #define RTP_REORDER_QUEUE_DEFAULT_SIZE 500
40 #define RTP_NOTS_VALUE ((uint32_t)-1)
92 #define RTP_FLAG_KEY 0x1
93 #define RTP_FLAG_MARKER 0x2
223 char *
value,
int value_size);
230 const char *attr,
const char *
value));
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
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 ff_rtp_parse_set_crypto(RTPDemuxContext *s, const char *suite, const char *params)
DynamicPayloadPacketHandlerProc parse_packet
Parse handler for this dynamic packet.
static int parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *attr, const char *value)
const RTPDynamicProtocolHandler * handler
int64_t range_start_offset
void ff_rtp_reset_packet_queue(RTPDemuxContext *s)
enum AVMediaType codec_type
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.
uint32_t cycles
shifted count of sequence number cycles
int queue_size
The size of queue, or 0 if reordering is disabled.
void(* close)(PayloadContext *protocol_data)
Free any data needed by the rtp parsing for this dynamic data.
void ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, const RTPDynamicProtocolHandler *handler)
uint32_t jitter
estimated jitter.
void ff_rtp_parse_close(RTPDemuxContext *s)
PayloadContext * dynamic_protocol_context
uint32_t received
packets received
RTPStatistics statistics
Statistics for this stream (used by RTCP receiver reports)
int64_t last_rtcp_reception_time
RTPPacket * queue
A sorted queue of buffered packets not yet returned.
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...
struct RTPDynamicProtocolHandler * next
static void handler(vbi_event *ev, void *user_data)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
int64_t last_feedback_time
int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *value, int value_size)
int queue_len
The number of packets in queue.
uint32_t bad_seq
last bad sequence number + 1
uint64_t last_rtcp_ntp_time
AVCodecID
Identify the syntax and semantics of the bitstream.
FFmpeg currently uses a custom build this text attempts to document some of its obscure features and options Makefile the full command issued by make and its output will be shown on the screen DBG Preprocess x86 external assembler files to a dbg asm file in the object which then gets compiled Helps in developing those assembler files DESTDIR Destination directory for the install useful to prepare packages or install FFmpeg in cross environments GEN Set to ‘1’ to generate the missing or mismatched references Makefile builds all the libraries and the executables fate Run the fate test suite
uint32_t transit
relative transit time for previous packet
uint64_t first_rtcp_ntp_time
unsigned int packet_count
int ff_rtp_finalize_packet(AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx)
Close the dynamic buffer and make a packet from it.
int64_t unwrapped_timestamp
int(* need_keyframe)(PayloadContext *context)
int ff_rtp_send_rtcp_feedback(RTPDemuxContext *s, URLContext *fd, AVIOContext *avio)
uint16_t max_seq
highest sequence number seen
const RTPDynamicProtocolHandler * ff_rtp_handler_iterate(void **opaque)
Iterate over all registered rtp dynamic protocol handlers.
enum AVStreamParseType need_parsing
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
uint32_t received_prior
packets received in last interval
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 char const char * params
int probation
sequence packets till source is valid
enum AVMediaType codec_type
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_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))
int64_t ff_rtp_queued_packet_time(RTPDemuxContext *s)
uint32_t last_rtcp_timestamp
This structure stores compressed data.
#define flags(name, subs,...)
RTP/JPEG specific private data.
int prev_ret
Fields for packet reordering.
RTPDemuxContext * ff_rtp_parse_open(AVFormatContext *s1, AVStream *st, int payload_type, int queue_size)
open a new RTP parse context for stream 'st'.
uint32_t base_seq
base sequence number
The official guide to swscale for confused that consecutive non overlapping rectangles of slice_bottom special converter These generally are unscaled converters of common like for each output line the vertical scaler pulls lines from a ring buffer When the ring buffer does not contain the wanted line
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.
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,...
unsigned int last_octet_count