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
224 char *
value,
int value_size);
231 const char *attr,
const char *
value));
int queue_size
The size of queue, or 0 if reordering is disabled.
static av_cold int init(AVCodecContext *avctx)
int64_t range_start_offset
int prev_ret
Fields for packet reordering.
int64_t last_feedback_time
RTP/JPEG specific private data.
unsigned int last_octet_count
RTPPacket * queue
A sorted queue of buffered packets not yet returned.
static int parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *attr, const char *value)
const RTPDynamicProtocolHandler * handler
enum AVMediaType codec_type
int64_t ff_rtp_queued_packet_time(RTPDemuxContext *s)
uint64_t last_rtcp_ntp_time
uint32_t cycles
shifted count of sequence number cycles
int ff_rtp_send_rtcp_feedback(RTPDemuxContext *s, URLContext *fd, AVIOContext *avio)
PayloadContext * dynamic_protocol_context
uint64_t first_rtcp_ntp_time
uint32_t base_seq
base sequence number
int ff_rtp_finalize_packet(AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx)
Close the dynamic buffer and make a packet from it.
static void handler(vbi_event *ev, void *user_data)
int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *value, int value_size)
uint32_t expected_prior
packets expected in last interval
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.
AVCodecID
Identify the syntax and semantics of the bitstream.
int probation
sequence packets till source is valid
DynamicPayloadPacketHandlerProc parse_packet
Parse handler for this dynamic packet.
uint32_t transit
relative transit time for previous packet
uint32_t jitter
estimated jitter.
int queue_len
The number of packets in queue.
void ff_rtp_reset_packet_queue(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.
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))
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.
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 received
packets received
int64_t last_rtcp_reception_time
Libavcodec external API header.
typedef void(RENAME(mix_any_func_type))
unsigned int packet_count
int64_t unwrapped_timestamp
uint32_t last_rtcp_timestamp
void ff_rtp_parse_close(RTPDemuxContext *s)
RTPStatistics statistics
Statistics for this stream (used by RTCP receiver reports)
uint32_t received_prior
packets received in last interval
uint32_t bad_seq
last bad sequence number + 1
uint16_t max_seq
highest sequence number seen
void ff_rtp_parse_set_crypto(RTPDemuxContext *s, const char *suite, const char *params)
const char const char * params
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...
void ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, const RTPDynamicProtocolHandler *handler)
unbuffered private I/O API
const RTPDynamicProtocolHandler * ff_rtp_handler_iterate(void **opaque)
Iterate over all registered rtp dynamic protocol handlers.
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...
This structure stores compressed data.
struct RTPDynamicProtocolHandler * next