#include "avformat.h"
#include "mpegts.h"
#include "bitstream.h"
#include <unistd.h>
#include "network.h"
#include "rtp_internal.h"
#include "rtp_h264.h"
Go to the source code of this file.
Defines | |
#define | RTP_SEQ_MOD (1<<16) |
Functions | |
static void | register_dynamic_payload_handler (RTPDynamicProtocolHandler *handler) |
void | av_register_rtp_dynamic_payload_handlers (void) |
static int | rtcp_parse_packet (RTPDemuxContext *s, const unsigned char *buf, int len) |
static void | rtp_init_statistics (RTPStatistics *s, uint16_t base_sequence) |
called on parse open packet | |
static void | rtp_init_sequence (RTPStatistics *s, uint16_t seq) |
called whenever there is a large jump in sequence numbers, or when they get out of probation. | |
static int | rtp_valid_packet_in_sequence (RTPStatistics *s, uint16_t seq) |
returns 1 if we should handle this packet. | |
int | rtp_check_and_send_back_rr (RTPDemuxContext *s, int count) |
some rtp servers assume client is dead if they don't hear from them. | |
RTPDemuxContext * | rtp_parse_open (AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, rtp_payload_data_t *rtp_payload_data) |
open a new RTP parse context for stream 'st'. | |
static int | rtp_parse_mp4_au (RTPDemuxContext *s, const uint8_t *buf) |
static void | finalize_packet (RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp) |
This was the second switch in rtp_parse packet. | |
int | rtp_parse_packet (RTPDemuxContext *s, AVPacket *pkt, const uint8_t *buf, int len) |
Parse an RTP or RTCP packet directly sent as a buffer. | |
void | rtp_parse_close (RTPDemuxContext *s) |
Variables | |
RTPDynamicProtocolHandler * | RTPFirstDynamicPayloadHandler = NULL |
static RTPDynamicProtocolHandler | mp4v_es_handler = {"MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4} |
static RTPDynamicProtocolHandler | mpeg4_generic_handler = {"mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_AAC} |
#define RTP_SEQ_MOD (1<<16) |
Definition at line 72 of file rtpdec.c.
Referenced by rtp_init_sequence(), and rtp_valid_packet_in_sequence().
void av_register_rtp_dynamic_payload_handlers | ( | void | ) |
static void finalize_packet | ( | RTPDemuxContext * | s, | |
AVPacket * | pkt, | |||
uint32_t | timestamp | |||
) | [static] |
This was the second switch in rtp_parse packet.
Normalizes time, if required, sets stream_index, etc.
Definition at line 361 of file rtpdec.c.
Referenced by rtp_parse_packet().
static void register_dynamic_payload_handler | ( | RTPDynamicProtocolHandler * | handler | ) | [static] |
static int rtcp_parse_packet | ( | RTPDemuxContext * | s, | |
const unsigned char * | buf, | |||
int | len | |||
) | [static] |
int rtp_check_and_send_back_rr | ( | RTPDemuxContext * | s, | |
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 ByteIO context (we don't have access to the rtcp handle from here)
Definition at line 164 of file rtpdec.c.
Referenced by rtsp_read_packet().
static void rtp_init_sequence | ( | RTPStatistics * | s, | |
uint16_t | seq | |||
) | [static] |
called whenever there is a large jump in sequence numbers, or when they get out of probation.
..
Definition at line 87 of file rtpdec.c.
Referenced by rtp_valid_packet_in_sequence().
static void rtp_init_statistics | ( | RTPStatistics * | s, | |
uint16_t | base_sequence | |||
) | [static] |
void rtp_parse_close | ( | RTPDemuxContext * | s | ) |
static int rtp_parse_mp4_au | ( | RTPDemuxContext * | s, | |
const uint8_t * | buf | |||
) | [static] |
RTPDemuxContext* rtp_parse_open | ( | AVFormatContext * | s1, | |
AVStream * | st, | |||
URLContext * | rtpc, | |||
int | payload_type, | |||
rtp_payload_data_t * | rtp_payload_data | |||
) |
open a new RTP parse context for stream 'st'.
'st' can be NULL for MPEG2TS streams to indicate that they should be demuxed inside the rtp demux (otherwise CODEC_ID_MPEG2TS packets are returned) TODO: change this to not take rtp_payload data, and use the new dynamic payload system.
Definition at line 270 of file rtpdec.c.
Referenced by rtsp_read_header(), and sdp_read_header().
int rtp_parse_packet | ( | RTPDemuxContext * | s, | |
AVPacket * | pkt, | |||
const uint8_t * | buf, | |||
int | len | |||
) |
Parse an RTP or RTCP packet directly sent as a buffer.
s | RTP parse context. | |
pkt | returned packet | |
buf | input buffer or NULL to read the next packets | |
len | buffer len |
< Should not be used if buf is NULL, but should be set to the timestamp of the packet returned....
Definition at line 401 of file rtpdec.c.
Referenced by rtsp_read_packet().
static int rtp_valid_packet_in_sequence | ( | RTPStatistics * | s, | |
uint16_t | seq | |||
) | [static] |
returns 1 if we should handle this packet.
Definition at line 103 of file rtpdec.c.
Referenced by rtp_parse_packet().
RTPDynamicProtocolHandler mp4v_es_handler = {"MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4} [static] |
RTPDynamicProtocolHandler mpeg4_generic_handler = {"mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_AAC} [static] |