diff options
author | mannol <eniz_vukovic@hotmail.com> | 2015-08-09 12:39:21 +0200 |
---|---|---|
committer | mannol <eniz_vukovic@hotmail.com> | 2015-08-09 12:39:21 +0200 |
commit | c641b0fceb9b1fe0ca7181af1ddbb65200c33599 (patch) | |
tree | 286a870e03e3b43878753eb57e2d354df7c53f99 /toxav/rtp.c | |
parent | 0be0e88f3ec0cd81147a1418aa0afe61c24112b7 (diff) | |
parent | 2ab3b14731061cc04d3ccc50a35093c11d018298 (diff) |
Updated with upstream
Diffstat (limited to 'toxav/rtp.c')
-rw-r--r-- | toxav/rtp.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/toxav/rtp.c b/toxav/rtp.c index 7a20877f..4df2e2d5 100644 --- a/toxav/rtp.c +++ b/toxav/rtp.c | |||
@@ -23,16 +23,16 @@ | |||
23 | #include "config.h" | 23 | #include "config.h" |
24 | #endif /* HAVE_CONFIG_H */ | 24 | #endif /* HAVE_CONFIG_H */ |
25 | 25 | ||
26 | #include "rtp.h" | ||
26 | #include "../toxcore/logger.h" | 27 | #include "../toxcore/logger.h" |
27 | #include "../toxcore/util.h" | 28 | #include "../toxcore/util.h" |
28 | #include "../toxcore/Messenger.h" | 29 | #include "../toxcore/Messenger.h" |
29 | 30 | ||
30 | #include "rtp.h" | ||
31 | #include <stdlib.h> | 31 | #include <stdlib.h> |
32 | #include <assert.h> | 32 | #include <assert.h> |
33 | 33 | ||
34 | #define size_32 4 | ||
35 | #define RTCP_REPORT_INTERVAL_MS 500 | 34 | #define RTCP_REPORT_INTERVAL_MS 500 |
35 | #define RTP_MAX_SIZE 1500 | ||
36 | 36 | ||
37 | #define ADD_FLAG_VERSION(_h, _v) do { ( _h->flags ) &= 0x3F; ( _h->flags ) |= ( ( ( _v ) << 6 ) & 0xC0 ); } while(0) | 37 | #define ADD_FLAG_VERSION(_h, _v) do { ( _h->flags ) &= 0x3F; ( _h->flags ) |= ( ( ( _v ) << 6 ) & 0xC0 ); } while(0) |
38 | #define ADD_FLAG_PADDING(_h, _v) do { if ( _v > 0 ) _v = 1; ( _h->flags ) &= 0xDF; ( _h->flags ) |= ( ( ( _v ) << 5 ) & 0x20 ); } while(0) | 38 | #define ADD_FLAG_PADDING(_h, _v) do { if ( _v > 0 ) _v = 1; ( _h->flags ) &= 0xDF; ( _h->flags ) |= ( ( ( _v ) << 5 ) & 0x20 ); } while(0) |
@@ -243,7 +243,7 @@ int rtp_send_data ( RTPSession *session, const uint8_t *data, uint16_t length, b | |||
243 | return -1; | 243 | return -1; |
244 | } | 244 | } |
245 | 245 | ||
246 | uint8_t parsed[MAX_RTP_SIZE]; | 246 | uint8_t parsed[RTP_MAX_SIZE]; |
247 | uint8_t *it; | 247 | uint8_t *it; |
248 | 248 | ||
249 | RTPHeader header[1]; | 249 | RTPHeader header[1]; |
@@ -268,16 +268,16 @@ int rtp_send_data ( RTPSession *session, const uint8_t *data, uint16_t length, b | |||
268 | for ( i = 0; i < session->cc; i++ ) | 268 | for ( i = 0; i < session->cc; i++ ) |
269 | header->csrc[i] = session->csrc[i]; | 269 | header->csrc[i] = session->csrc[i]; |
270 | 270 | ||
271 | header->length = 12 /* Minimum header len */ + ( session->cc * size_32 ); | 271 | header->length = 12 /* Minimum header len */ + ( session->cc * 4 ); |
272 | 272 | ||
273 | uint32_t parsed_len = length + header->length + 1; | 273 | uint32_t parsed_len = length + header->length + 1; |
274 | assert(parsed_len + (session->ext_header ? session->ext_header->length * size_32 : 0) < MAX_RTP_SIZE ); | 274 | assert(parsed_len + (session->ext_header ? session->ext_header->length * 4 : 0) < RTP_MAX_SIZE ); |
275 | 275 | ||
276 | parsed[0] = session->prefix; | 276 | parsed[0] = session->prefix; |
277 | it = parse_header_out ( header, parsed + 1 ); | 277 | it = parse_header_out ( header, parsed + 1 ); |
278 | 278 | ||
279 | if ( session->ext_header ) { | 279 | if ( session->ext_header ) { |
280 | parsed_len += ( 4 /* Minimum ext header len */ + session->ext_header->length * size_32 ); | 280 | parsed_len += ( 4 /* Minimum ext header len */ + session->ext_header->length * 4 ); |
281 | it = parse_ext_header_out ( session->ext_header, it ); | 281 | it = parse_ext_header_out ( session->ext_header, it ); |
282 | } | 282 | } |
283 | 283 | ||
@@ -472,7 +472,7 @@ int handle_rtp_packet ( Messenger* m, uint32_t friendnumber, const uint8_t* data | |||
472 | 472 | ||
473 | RTPSession *session = object; | 473 | RTPSession *session = object; |
474 | 474 | ||
475 | if ( !session || length < 13 || length > MAX_RTP_SIZE ) { | 475 | if ( !session || length < 13 || length > RTP_MAX_SIZE ) { |
476 | LOGGER_WARNING("No session or invalid length of received buffer!"); | 476 | LOGGER_WARNING("No session or invalid length of received buffer!"); |
477 | return -1; | 477 | return -1; |
478 | } | 478 | } |
@@ -493,8 +493,8 @@ int handle_rtp_packet ( Messenger* m, uint32_t friendnumber, const uint8_t* data | |||
493 | ext_header = parse_ext_header_in ( data + from_pos, length ); | 493 | ext_header = parse_ext_header_in ( data + from_pos, length ); |
494 | 494 | ||
495 | if ( ext_header ) { | 495 | if ( ext_header ) { |
496 | msg_length -= ( 4 /* Minimum ext header len */ + ext_header->length * size_32 ); | 496 | msg_length -= ( 4 /* Minimum ext header len */ + ext_header->length * 4 ); |
497 | from_pos += ( 4 /* Minimum ext header len */ + ext_header->length * size_32 ); | 497 | from_pos += ( 4 /* Minimum ext header len */ + ext_header->length * 4 ); |
498 | } else { /* Error */ | 498 | } else { /* Error */ |
499 | LOGGER_WARNING("Could not parse message: Ext Header failed to extract!"); | 499 | LOGGER_WARNING("Could not parse message: Ext Header failed to extract!"); |
500 | free(header); | 500 | free(header); |
@@ -502,7 +502,7 @@ int handle_rtp_packet ( Messenger* m, uint32_t friendnumber, const uint8_t* data | |||
502 | } | 502 | } |
503 | } | 503 | } |
504 | 504 | ||
505 | if (msg_length > MAX_RTP_SIZE) { | 505 | if (msg_length > RTP_MAX_SIZE) { |
506 | LOGGER_WARNING("Could not parse message: Invalid length!"); | 506 | LOGGER_WARNING("Could not parse message: Invalid length!"); |
507 | free(header); | 507 | free(header); |
508 | free(ext_header); | 508 | free(ext_header); |
@@ -611,4 +611,4 @@ void send_rtcp_report(RTCPSession* session, Messenger* m, uint32_t friendnumber) | |||
611 | session->last_expected_packets = 0; | 611 | session->last_expected_packets = 0; |
612 | session->last_sent_report_ts = current_time_monotonic(); | 612 | session->last_sent_report_ts = current_time_monotonic(); |
613 | } | 613 | } |
614 | } \ No newline at end of file | 614 | } |