|
const RTPDynamicProtocolHandler * | ff_rtp_handler_iterate (void **opaque) |
| Iterate over all registered rtp dynamic protocol handlers. More...
|
|
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. More...
|
|
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. More...
|
|
static int | rtcp_parse_packet (RTPDemuxContext *s, const unsigned char *buf, int len) |
|
static void | rtp_init_statistics (RTPStatistics *s, uint16_t base_sequence) |
|
static void | rtp_init_sequence (RTPStatistics *s, uint16_t seq) |
|
static int | rtp_valid_packet_in_sequence (RTPStatistics *s, uint16_t seq) |
|
static void | rtcp_update_jitter (RTPStatistics *s, uint32_t sent_timestamp, uint32_t arrival_timestamp) |
|
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... More...
|
|
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, so that we're able to receive packets. More...
|
|
static int | find_missing_packets (RTPDemuxContext *s, uint16_t *first_missing, uint16_t *missing_mask) |
|
int | ff_rtp_send_rtcp_feedback (RTPDemuxContext *s, URLContext *fd, AVIOContext *avio) |
|
static int | opus_write_extradata (AVCodecParameters *codecpar) |
|
RTPDemuxContext * | ff_rtp_parse_open (AVFormatContext *s1, AVStream *st, int payload_type, int queue_size) |
| open a new RTP parse context for stream 'st'. More...
|
|
void | ff_rtp_parse_set_dynamic_protocol (RTPDemuxContext *s, PayloadContext *ctx, const RTPDynamicProtocolHandler *handler) |
|
void | ff_rtp_parse_set_crypto (RTPDemuxContext *s, const char *suite, const char *params) |
|
static void | finalize_packet (RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp) |
| This was the second switch in rtp_parse packet. More...
|
|
static int | rtp_parse_packet_internal (RTPDemuxContext *s, AVPacket *pkt, const uint8_t *buf, int len) |
|
void | ff_rtp_reset_packet_queue (RTPDemuxContext *s) |
|
static int | enqueue_packet (RTPDemuxContext *s, uint8_t *buf, int len) |
|
static int | has_next_packet (RTPDemuxContext *s) |
|
int64_t | ff_rtp_queued_packet_time (RTPDemuxContext *s) |
|
static int | rtp_parse_queued_packet (RTPDemuxContext *s, AVPacket *pkt) |
|
static int | rtp_parse_one_packet (RTPDemuxContext *s, AVPacket *pkt, uint8_t **bufptr, int len) |
|
int | ff_rtp_parse_packet (RTPDemuxContext *s, AVPacket *pkt, uint8_t **bufptr, int len) |
| Parse an RTP or RTCP packet directly sent as a buffer. More...
|
|
void | ff_rtp_parse_close (RTPDemuxContext *s) |
|
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)) |
|
int | ff_rtp_finalize_packet (AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx) |
| Close the dynamic buffer and make a packet from it. More...
|
|
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, so that we're able to receive packets.
Note, this only works if the NAT router doesn't remap ports. This isn't a standardized procedure, but it works in many cases in practice.
The same routine is used with RDT too, even if RDT doesn't use normal RTP packets otherwise.
Definition at line 405 of file rtpdec.c.
Referenced by rtsp_read_play().