| OLD | NEW |
| 1 /* | 1 /* |
| 2 * RTP demuxer definitions | 2 * RTP demuxer definitions |
| 3 * Copyright (c) 2002 Fabrice Bellard | 3 * Copyright (c) 2002 Fabrice Bellard |
| 4 * Copyright (c) 2006 Ryan Martell <rdm4@martellventures.com> | 4 * Copyright (c) 2006 Ryan Martell <rdm4@martellventures.com> |
| 5 * | 5 * |
| 6 * This file is part of FFmpeg. | 6 * This file is part of FFmpeg. |
| 7 * | 7 * |
| 8 * FFmpeg is free software; you can redistribute it and/or | 8 * FFmpeg is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 const uint8_t *buf, int len); | 67 const uint8_t *buf, int len); |
| 68 void rtp_parse_close(RTPDemuxContext *s); | 68 void rtp_parse_close(RTPDemuxContext *s); |
| 69 | 69 |
| 70 int rtp_get_local_port(URLContext *h); | 70 int rtp_get_local_port(URLContext *h); |
| 71 int rtp_set_remote_url(URLContext *h, const char *uri); | 71 int rtp_set_remote_url(URLContext *h, const char *uri); |
| 72 #if (LIBAVFORMAT_VERSION_MAJOR <= 52) | 72 #if (LIBAVFORMAT_VERSION_MAJOR <= 52) |
| 73 void rtp_get_file_handles(URLContext *h, int *prtp_fd, int *prtcp_fd); | 73 void rtp_get_file_handles(URLContext *h, int *prtp_fd, int *prtcp_fd); |
| 74 #endif | 74 #endif |
| 75 | 75 |
| 76 /** | 76 /** |
| 77 * Send a dummy packet on both port pairs to set up the connection |
| 78 * state in potential NAT routers, so that we're able to receive |
| 79 * packets. |
| 80 * |
| 81 * Note, this only works if the NAT router doesn't remap ports. This |
| 82 * isn't a standardized procedure, but it works in many cases in practice. |
| 83 * |
| 84 * The same routine is used with RDT too, even if RDT doesn't use normal |
| 85 * RTP packets otherwise. |
| 86 */ |
| 87 void rtp_send_punch_packets(URLContext* rtp_handle); |
| 88 |
| 89 /** |
| 77 * some rtp servers assume client is dead if they don't hear from them... | 90 * some rtp servers assume client is dead if they don't hear from them... |
| 78 * so we send a Receiver Report to the provided ByteIO context | 91 * so we send a Receiver Report to the provided ByteIO context |
| 79 * (we don't have access to the rtcp handle from here) | 92 * (we don't have access to the rtcp handle from here) |
| 80 */ | 93 */ |
| 81 int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count); | 94 int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count); |
| 82 | 95 |
| 83 // these statistics are used for rtcp receiver reports... | 96 // these statistics are used for rtcp receiver reports... |
| 84 typedef struct { | 97 typedef struct { |
| 85 uint16_t max_seq; ///< highest sequence number seen | 98 uint16_t max_seq; ///< highest sequence number seen |
| 86 uint32_t cycles; ///< shifted count of sequence number cycles | 99 uint32_t cycles; ///< shifted count of sequence number cycles |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 int read_buf_index; | 162 int read_buf_index; |
| 150 int read_buf_size; | 163 int read_buf_size; |
| 151 /* used to send back RTCP RR */ | 164 /* used to send back RTCP RR */ |
| 152 URLContext *rtp_ctx; | 165 URLContext *rtp_ctx; |
| 153 char hostname[256]; | 166 char hostname[256]; |
| 154 | 167 |
| 155 RTPStatistics statistics; ///< Statistics for this stream (used by RTCP rece
iver reports) | 168 RTPStatistics statistics; ///< Statistics for this stream (used by RTCP rece
iver reports) |
| 156 | 169 |
| 157 /* rtcp sender statistics receive */ | 170 /* rtcp sender statistics receive */ |
| 158 int64_t last_rtcp_ntp_time; // TODO: move into statistics | 171 int64_t last_rtcp_ntp_time; // TODO: move into statistics |
| 159 int64_t first_rtcp_ntp_time; // TODO: move into statistics | |
| 160 uint32_t last_rtcp_timestamp; // TODO: move into statistics | 172 uint32_t last_rtcp_timestamp; // TODO: move into statistics |
| 161 | 173 |
| 162 /* rtcp sender statistics */ | 174 /* rtcp sender statistics */ |
| 163 unsigned int packet_count; // TODO: move into statistics (outgoing) | 175 unsigned int packet_count; // TODO: move into statistics (outgoing) |
| 164 unsigned int octet_count; // TODO: move into statistics (outgoing) | 176 unsigned int octet_count; // TODO: move into statistics (outgoing) |
| 165 unsigned int last_octet_count; // TODO: move into statistics (outgoing) | 177 unsigned int last_octet_count; // TODO: move into statistics (outgoing) |
| 166 int first_packet; | 178 int first_packet; |
| 167 /* buffer for output */ | 179 /* buffer for output */ |
| 168 uint8_t buf[RTP_MAX_PACKET_LENGTH]; | 180 uint8_t buf[RTP_MAX_PACKET_LENGTH]; |
| 169 uint8_t *buf_ptr; | 181 uint8_t *buf_ptr; |
| 170 | 182 |
| 171 /* special infos for au headers parsing */ | 183 /* special infos for au headers parsing */ |
| 172 RTPPayloadData *rtp_payload_data; // TODO: Move into dynamic payload handler
s | 184 RTPPayloadData *rtp_payload_data; // TODO: Move into dynamic payload handler
s |
| 173 | 185 |
| 174 /* dynamic payload stuff */ | 186 /* dynamic payload stuff */ |
| 175 DynamicPayloadPacketHandlerProc parse_packet; ///< This is also copied f
rom the dynamic protocol handler structure | 187 DynamicPayloadPacketHandlerProc parse_packet; ///< This is also copied f
rom the dynamic protocol handler structure |
| 176 PayloadContext *dynamic_protocol_context; ///< This is a copy from th
e values setup from the sdp parsing, in rtsp.c don't free me. | 188 PayloadContext *dynamic_protocol_context; ///< This is a copy from th
e values setup from the sdp parsing, in rtsp.c don't free me. |
| 177 int max_frames_per_packet; | 189 int max_frames_per_packet; |
| 178 }; | 190 }; |
| 179 | 191 |
| 180 extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler; | 192 extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler; |
| 181 void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler); | 193 void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler); |
| 182 | 194 |
| 183 int rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *va
lue, int value_size); ///< from rtsp.c, but used by rtp dynamic protocol handler
s. | 195 int ff_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 hand
lers. |
| 184 | 196 |
| 185 void av_register_rtp_dynamic_payload_handlers(void); | 197 void av_register_rtp_dynamic_payload_handlers(void); |
| 186 | 198 |
| 187 #endif /* AVFORMAT_RTPDEC_H */ | 199 #endif /* AVFORMAT_RTPDEC_H */ |
| OLD | NEW |