FFmpeg
|
#include "libavcodec/avcodec.h"
#include "avformat.h"
#include "rtp.h"
#include "url.h"
#include "srtp.h"
Go to the source code of this file.
Data Structures | |
struct | RTPStatistics |
struct | RTPDynamicProtocolHandler |
struct | RTPPacket |
struct | RTPDemuxContext |
Macros | |
#define | RTP_MIN_PACKET_LENGTH 12 |
#define | RTP_MAX_PACKET_LENGTH 8192 |
#define | RTP_REORDER_QUEUE_DEFAULT_SIZE 10 |
#define | RTP_NOTS_VALUE ((uint32_t)-1) |
#define | RTP_FLAG_KEY 0x1 |
RTP packet contains a keyframe. More... | |
#define | RTP_FLAG_MARKER 0x2 |
RTP marker bit was set for this packet. More... | |
Typedefs | |
typedef struct PayloadContext | PayloadContext |
typedef struct RTPDynamicProtocolHandler | RTPDynamicProtocolHandler |
typedef struct RTPDemuxContext | RTPDemuxContext |
typedef struct RTPStatistics | RTPStatistics |
typedef 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. More... | |
typedef struct RTPPacket | RTPPacket |
Functions | |
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, RTPDynamicProtocolHandler *handler) |
void | ff_rtp_parse_set_crypto (RTPDemuxContext *s, const char *suite, 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. More... | |
void | ff_rtp_parse_close (RTPDemuxContext *s) |
int64_t | ff_rtp_queued_packet_time (RTPDemuxContext *s) |
void | ff_rtp_reset_packet_queue (RTPDemuxContext *s) |
int | ff_rtp_get_local_rtp_port (URLContext *h) |
Return the local rtp port used by the RTP connection. More... | |
int | ff_rtp_get_local_rtcp_port (URLContext *h) |
Return the local rtcp port used by the RTP connection. More... | |
int | ff_rtp_set_remote_url (URLContext *h, const char *uri) |
If no filename is given to av_open_input_file because you want to get the local port first, then you must call this function to set the remote server address. 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... | |
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... | |
int | ff_rtp_send_rtcp_feedback (RTPDemuxContext *s, URLContext *fd, AVIOContext *avio) |
void | ff_register_dynamic_payload_handler (RTPDynamicProtocolHandler *handler) |
RTPDynamicProtocolHandler * | ff_rtp_handler_find_by_name (const char *name, enum AVMediaType codec_type) |
RTPDynamicProtocolHandler * | ff_rtp_handler_find_by_id (int id, enum AVMediaType codec_type) |
int | ff_rtsp_next_attr_and_value (const char **p, char *attr, int attr_size, char *value, int value_size) |
int | ff_parse_fmtp (AVStream *stream, PayloadContext *data, const char *p, int(*parse_fmtp)(AVStream *stream, PayloadContext *data, char *attr, char *value)) |
void | av_register_rtp_dynamic_payload_handlers (void) |
int | ff_rtp_finalize_packet (AVPacket *pkt, AVIOContext **dyn_buf, int stream_idx) |
Close the dynamic buffer and make a packet from it. More... | |
Macro Definition Documentation
#define RTP_FLAG_KEY 0x1 |
RTP packet contains a keyframe.
Definition at line 96 of file rtpdec.h.
Referenced by asfrtp_parse_packet(), ff_rdt_parse_packet(), qt_rtp_parse_packet(), and rdt_parse_packet().
#define RTP_FLAG_MARKER 0x2 |
RTP marker bit was set for this packet.
Definition at line 97 of file rtpdec.h.
Referenced by asfrtp_parse_packet(), h263_handle_packet(), jpeg_parse_packet(), latm_parse_packet(), qt_rtp_parse_packet(), rtp_parse_packet_internal(), and vp8_handle_packet().
#define RTP_MAX_PACKET_LENGTH 8192 |
Definition at line 36 of file rtpdec.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_srtp_encrypt(), rtp_parse_mp4_au(), sap_fetch_packet(), and sap_read_header().
#define RTP_NOTS_VALUE ((uint32_t)-1) |
Definition at line 40 of file rtpdec.h.
Referenced by finalize_packet(), mpegts_handle_packet(), qdm2_parse_packet(), rtp_parse_one_packet(), and store_packet().
#define RTP_REORDER_QUEUE_DEFAULT_SIZE 10 |
Definition at line 38 of file rtpdec.h.
Referenced by ff_rtsp_open_transport_ctx().
Typedef Documentation
typedef 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.
- Parameters
-
ctx RTSP demuxer context s stream context st stream that this packet belongs to pkt packet in which to write the parsed data timestamp pointer to the RTP timestamp of the input data, can be updated by the function if returning older, buffered data buf pointer to raw RTP packet data len length of buf seq RTP sequence number of the packet flags flags from the RTP packet header (RTP_FLAG_*)
typedef struct PayloadContext PayloadContext |
typedef struct RTPDemuxContext RTPDemuxContext |
typedef struct RTPDynamicProtocolHandler RTPDynamicProtocolHandler |
typedef struct RTPStatistics RTPStatistics |
Function Documentation
Definition at line 61 of file rtpdec.c.
Referenced by av_register_all().
int ff_parse_fmtp | ( | AVStream * | stream, |
PayloadContext * | data, | ||
const char * | p, | ||
int(*)(AVStream *stream, PayloadContext *data, char *attr, char *value) | parse_fmtp | ||
) |
Definition at line 829 of file rtpdec.c.
Referenced by amr_parse_sdp_line(), ilbc_parse_sdp_line(), latm_parse_sdp_line(), parse_h264_sdp_line(), parse_sdp_line(), and xiph_parse_sdp_line().
void ff_register_dynamic_payload_handler | ( | RTPDynamicProtocolHandler * | handler | ) |
Definition at line 55 of file rtpdec.c.
Referenced by av_register_rdt_dynamic_payload_handlers(), and av_register_rtp_dynamic_payload_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...
so we send a Receiver Report to the provided URLContext or AVIOContext (we don't have access to the rtcp handle from here)
Definition at line 249 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
int ff_rtp_finalize_packet | ( | AVPacket * | pkt, |
AVIOContext ** | dyn_buf, | ||
int | stream_idx | ||
) |
Close the dynamic buffer and make a packet from it.
Definition at line 865 of file rtpdec.c.
Referenced by h263_handle_packet(), jpeg_parse_packet(), svq3_parse_packet(), vp8_handle_packet(), and xiph_handle_packet().
int ff_rtp_get_local_rtcp_port | ( | URLContext * | h | ) |
Return the local rtcp port used by the RTP connection.
- Parameters
-
h media file context
- Returns
- the local port number
Definition at line 304 of file rtpproto.c.
Referenced by rtsp_cmd_setup().
int ff_rtp_get_local_rtp_port | ( | URLContext * | h | ) |
Return the local rtp port used by the RTP connection.
- Parameters
-
h media file context
- Returns
- the local port number
Definition at line 292 of file rtpproto.c.
Referenced by ff_rtsp_open_transport_ctx(), rtsp_cmd_setup(), and rtsp_read_setup().
RTPDynamicProtocolHandler* ff_rtp_handler_find_by_id | ( | int | id, |
enum AVMediaType | codec_type | ||
) |
Definition at line 110 of file rtpdec.c.
Referenced by get_sockaddr().
RTPDynamicProtocolHandler* ff_rtp_handler_find_by_name | ( | const char * | name, |
enum AVMediaType | codec_type | ||
) |
Definition at line 98 of file rtpdec.c.
Referenced by get_sockaddr().
void ff_rtp_parse_close | ( | RTPDemuxContext * | s | ) |
Definition at line 822 of file rtpdec.c.
Referenced by ff_rtsp_undo_setup().
RTPDemuxContext* ff_rtp_parse_open | ( | AVFormatContext * | s1, |
AVStream * | st, | ||
int | payload_type, | ||
int | queue_size | ||
) |
open a new RTP parse context for stream 'st'.
'st' can be NULL for MPEG2-TS streams.
Definition at line 488 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
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.
- Parameters
-
s RTP parse context. pkt returned packet bufptr pointer to the input buffer or NULL to read the next packets len buffer len
- Returns
- 0 if a packet is returned, 1 if a packet is returned and more can follow (use buf as NULL to read the next). -1 if no packet (error or no more packet).
Definition at line 809 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
void ff_rtp_parse_set_crypto | ( | RTPDemuxContext * | s, |
const char * | suite, | ||
const char * | params | ||
) |
Definition at line 527 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
void ff_rtp_parse_set_dynamic_protocol | ( | RTPDemuxContext * | s, |
PayloadContext * | ctx, | ||
RTPDynamicProtocolHandler * | handler | ||
) |
Definition at line 520 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
int64_t ff_rtp_queued_packet_time | ( | RTPDemuxContext * | s | ) |
Definition at line 699 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
void ff_rtp_reset_packet_queue | ( | RTPDemuxContext * | s | ) |
Definition at line 656 of file rtpdec.c.
Referenced by ff_rtp_parse_close(), and rtsp_read_play().
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 352 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
int ff_rtp_send_rtcp_feedback | ( | RTPDemuxContext * | s, |
URLContext * | fd, | ||
AVIOContext * | avio | ||
) |
Definition at line 420 of file rtpdec.c.
Referenced by ff_rtsp_open_transport_ctx().
int ff_rtp_set_remote_url | ( | URLContext * | h, |
const char * | uri | ||
) |
If no filename is given to av_open_input_file because you want to get the local port first, then you must call this function to set the remote server address.
- Parameters
-
h media file context uri of the remote server
- Returns
- zero if no error.
Definition at line 58 of file rtpproto.c.
Referenced by ff_rtsp_open_transport_ctx().
int ff_rtsp_next_attr_and_value | ( | const char ** | p, |
char * | attr, | ||
int | attr_size, | ||
char * | value, | ||
int | value_size | ||
) |
Referenced by ff_parse_fmtp(), and get_sockaddr().
Generated on Mon Nov 18 2024 06:52:08 for FFmpeg by 1.8.11