Mercurial > libavformat.hg
annotate rtp.h @ 4387:5c42816e12c6 libavformat
Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument
to the parse_packet() function pointer in RTPDynamicProtocolHandlers. This
allows these functions to peek back and retrieve values from the demuxer's
context (or RTSPState). The ASF/RTP payload parser will use this to be able
to parse SDP values (which occur even before the payload ID is given), store
them in the RTSPState and then retrieve them while parsing payload data. See
"[PATCH] RTSP-MS 13/15: add RTSP demuxer AVFormatContext to parse_packet()
function pointer (was: transport context)" mailinglist thread.
author | rbultje |
---|---|
date | Fri, 06 Feb 2009 01:37:19 +0000 |
parents | 1b695f013cd3 |
children | 80f21f72d7d6 |
rev | line source |
---|---|
0 | 1 /* |
2 * RTP definitions | |
4251
77e0c7511d41
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
4101
diff
changeset
|
3 * Copyright (c) 2002 Fabrice Bellard |
4291
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
4 * Copyright (c) 2006 Ryan Martell <rdm4@martellventures.com> |
0 | 5 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1167
diff
changeset
|
6 * This file is part of FFmpeg. |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1167
diff
changeset
|
7 * |
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1167
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
0 | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1167
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
0 | 12 * |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1167
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
0 | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 * Lesser General Public License for more details. | |
17 * | |
18 * You should have received a copy of the GNU Lesser General Public | |
1358
0899bfe4105c
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
1167
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
896
edbe5c3717f9
Update licensing information: The FSF changed postal address.
diego
parents:
885
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 21 */ |
3852 | 22 #ifndef AVFORMAT_RTP_H |
23 #define AVFORMAT_RTP_H | |
0 | 24 |
3286 | 25 #include "libavcodec/avcodec.h" |
2171 | 26 #include "avformat.h" |
27 | |
1868
b92a67b0b4bd
Doxygenize the unaltered comments for the rtp_payload_data_s struct.
takis
parents:
1867
diff
changeset
|
28 /** Structure listing useful vars to parse RTP packet payload*/ |
4101
af2c0aef892b
Rename rtp_payload_data_t to avoid clashes with the POSIX namespace
lucabe
parents:
4100
diff
changeset
|
29 typedef struct rtp_payload_data |
774 | 30 { |
31 int sizelength; | |
32 int indexlength; | |
33 int indexdeltalength; | |
34 int profile_level_id; | |
35 int streamtype; | |
36 int objecttype; | |
37 char *mode; | |
38 | |
1869
48b1d0b70e09
Doxygenize the unaltered comments for the AUHeaders structure.
takis
parents:
1868
diff
changeset
|
39 /** mpeg 4 AU headers */ |
774 | 40 struct AUHeaders { |
41 int size; | |
42 int index; | |
43 int cts_flag; | |
44 int cts; | |
45 int dts_flag; | |
46 int dts; | |
47 int rap_flag; | |
48 int streamstate; | |
49 } *au_headers; | |
50 int nb_au_headers; | |
51 int au_headers_length_bytes; | |
52 int cur_au_index; | |
4101
af2c0aef892b
Rename rtp_payload_data_t to avoid clashes with the POSIX namespace
lucabe
parents:
4100
diff
changeset
|
53 } RTPPayloadData; |
774 | 54 |
4100 | 55 typedef struct PayloadContext PayloadContext; |
56 typedef struct RTPDynamicProtocolHandler_s RTPDynamicProtocolHandler; | |
57 | |
58 #define RTP_MIN_PACKET_LENGTH 12 | |
59 #define RTP_MAX_PACKET_LENGTH 1500 /* XXX: suppress this define */ | |
60 | |
61 int rtp_get_codec_info(AVCodecContext *codec, int payload_type); | |
62 | |
63 /** return < 0 if unknown payload type */ | |
64 int rtp_get_payload_type(AVCodecContext *codec); | |
65 | |
66 typedef struct RTPDemuxContext RTPDemuxContext; | |
4101
af2c0aef892b
Rename rtp_payload_data_t to avoid clashes with the POSIX namespace
lucabe
parents:
4100
diff
changeset
|
67 RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, RTPPayloadData *rtp_payload_data); |
4100 | 68 void rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, |
69 RTPDynamicProtocolHandler *handler); | |
70 int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |
71 const uint8_t *buf, int len); | |
72 void rtp_parse_close(RTPDemuxContext *s); | |
73 | |
74 int rtp_get_local_port(URLContext *h); | |
75 int rtp_set_remote_url(URLContext *h, const char *uri); | |
76 void rtp_get_file_handles(URLContext *h, int *prtp_fd, int *prtcp_fd); | |
77 | |
78 /** | |
79 * some rtp servers assume client is dead if they don't hear from them... | |
80 * so we send a Receiver Report to the provided ByteIO context | |
81 * (we don't have access to the rtcp handle from here) | |
82 */ | |
83 int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count); | |
84 | |
85 #define RTP_PT_PRIVATE 96 | |
86 #define RTP_VERSION 2 | |
87 #define RTP_MAX_SDES 256 /**< maximum text length for SDES */ | |
88 | |
89 /* RTCP paquets use 0.5 % of the bandwidth */ | |
90 #define RTCP_TX_RATIO_NUM 5 | |
91 #define RTCP_TX_RATIO_DEN 1000 | |
92 | |
4291
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
93 // these statistics are used for rtcp receiver reports... |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
94 typedef struct { |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
95 uint16_t max_seq; ///< highest sequence number seen |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
96 uint32_t cycles; ///< shifted count of sequence number cycles |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
97 uint32_t base_seq; ///< base sequence number |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
98 uint32_t bad_seq; ///< last bad sequence number + 1 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
99 int probation; ///< sequence packets till source is valid |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
100 int received; ///< packets received |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
101 int expected_prior; ///< packets expected in last interval |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
102 int received_prior; ///< packets received in last interval |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
103 uint32_t transit; ///< relative transit time for previous packet |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
104 uint32_t jitter; ///< estimated jitter. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
105 } RTPStatistics; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
106 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
107 /** |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
108 * Packet parsing for "private" payloads in the RTP specs. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
109 * |
4387
5c42816e12c6
Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument
rbultje
parents:
4380
diff
changeset
|
110 * @param ctx RTSP demuxer context |
4291
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
111 * @param s stream context |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
112 * @param st stream that this packet belongs to |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
113 * @param pkt packet in which to write the parsed data |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
114 * @param timestamp pointer in which to write the timestamp of this RTP packet |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
115 * @param buf pointer to raw RTP packet data |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
116 * @param len length of buf |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
117 * @param flags flags from the RTP packet header (PKT_FLAG_*) |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
118 */ |
4387
5c42816e12c6
Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument
rbultje
parents:
4380
diff
changeset
|
119 typedef int (*DynamicPayloadPacketHandlerProc) (AVFormatContext *ctx, |
5c42816e12c6
Add "AVFormatContext *ctx" (that being the RTSP demuxer's) as first argument
rbultje
parents:
4380
diff
changeset
|
120 PayloadContext *s, |
4291
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
121 AVStream *st, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
122 AVPacket * pkt, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
123 uint32_t *timestamp, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
124 const uint8_t * buf, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
125 int len, int flags); |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
126 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
127 struct RTPDynamicProtocolHandler_s { |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
128 // fields from AVRtpDynamicPayloadType_s |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
129 const char enc_name[50]; /* XXX: still why 50 ? ;-) */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
130 enum CodecType codec_type; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
131 enum CodecID codec_id; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
132 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
133 // may be null |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
134 int (*parse_sdp_a_line) (AVFormatContext *s, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
135 int st_index, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
136 PayloadContext *priv_data, |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
137 const char *line); ///< Parse the a= line from the sdp field |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
138 PayloadContext *(*open) (); ///< allocate any data needed by the rtp parsing for this dynamic data. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
139 void (*close)(PayloadContext *protocol_data); ///< free any data needed by the rtp parsing for this dynamic data. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
140 DynamicPayloadPacketHandlerProc parse_packet; ///< parse handler for this dynamic packet. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
141 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
142 struct RTPDynamicProtocolHandler_s *next; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
143 }; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
144 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
145 // moved out of rtp.c, because the h264 decoder needs to know about this structure.. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
146 struct RTPDemuxContext { |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
147 AVFormatContext *ic; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
148 AVStream *st; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
149 int payload_type; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
150 uint32_t ssrc; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
151 uint16_t seq; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
152 uint32_t timestamp; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
153 uint32_t base_timestamp; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
154 uint32_t cur_timestamp; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
155 int max_payload_size; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
156 struct MpegTSContext *ts; /* only used for MP2T payloads */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
157 int read_buf_index; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
158 int read_buf_size; |
4380
1b695f013cd3
Introduce a new num_frames field in RTPDemuxContext so that rtp_aac.c
lucabe
parents:
4291
diff
changeset
|
159 int num_frames; |
4291
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
160 /* used to send back RTCP RR */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
161 URLContext *rtp_ctx; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
162 char hostname[256]; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
163 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
164 RTPStatistics statistics; ///< Statistics for this stream (used by RTCP receiver reports) |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
165 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
166 /* rtcp sender statistics receive */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
167 int64_t last_rtcp_ntp_time; // TODO: move into statistics |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
168 int64_t first_rtcp_ntp_time; // TODO: move into statistics |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
169 uint32_t last_rtcp_timestamp; // TODO: move into statistics |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
170 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
171 /* rtcp sender statistics */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
172 unsigned int packet_count; // TODO: move into statistics (outgoing) |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
173 unsigned int octet_count; // TODO: move into statistics (outgoing) |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
174 unsigned int last_octet_count; // TODO: move into statistics (outgoing) |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
175 int first_packet; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
176 /* buffer for output */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
177 uint8_t buf[RTP_MAX_PACKET_LENGTH]; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
178 uint8_t *buf_ptr; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
179 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
180 /* special infos for au headers parsing */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
181 RTPPayloadData *rtp_payload_data; // TODO: Move into dynamic payload handlers |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
182 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
183 /* dynamic payload stuff */ |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
184 DynamicPayloadPacketHandlerProc parse_packet; ///< This is also copied from the dynamic protocol handler structure |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
185 PayloadContext *dynamic_protocol_context; ///< This is a copy from the values setup from the sdp parsing, in rtsp.c don't free me. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
186 int max_frames_per_packet; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
187 }; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
188 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
189 extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler; |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
190 void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler); |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
191 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
192 int rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *value, int value_size); ///< from rtsp.c, but used by rtp dynamic protocol handlers. |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
193 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
194 void ff_rtp_send_data(AVFormatContext *s1, const uint8_t *buf1, int len, int m); |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
195 const char *ff_rtp_enc_name(int payload_type); |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
196 enum CodecID ff_rtp_codec_id(const char *buf, enum CodecType codec_type); |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
197 |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
198 void av_register_rtp_dynamic_payload_handlers(void); |
f49e5d92ab26
Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
lucabe
parents:
4251
diff
changeset
|
199 |
3852 | 200 #endif /* AVFORMAT_RTP_H */ |