diff options
author | Mamadou DIOP <bossiel@yahoo.fr> | 2016-02-23 22:00:35 +0100 |
---|---|---|
committer | Mamadou DIOP <bossiel@yahoo.fr> | 2016-02-23 22:00:35 +0100 |
commit | 50dfb4359619563012997bc3ddafb7667741066c (patch) | |
tree | db234c1edc3240a653363b5735fc4077af4b8720 /tinyRTP/src/rtcp/trtp_rtcp_header.c | |
parent | 94b2219209038e05dd26395f6fb700be4d1062c0 (diff) | |
download | doubango-50dfb4359619563012997bc3ddafb7667741066c.zip doubango-50dfb4359619563012997bc3ddafb7667741066c.tar.gz |
Add new QoS implementation
Code formatting
Diffstat (limited to 'tinyRTP/src/rtcp/trtp_rtcp_header.c')
-rwxr-xr-x | tinyRTP/src/rtcp/trtp_rtcp_header.c | 133 |
1 files changed, 66 insertions, 67 deletions
diff --git a/tinyRTP/src/rtcp/trtp_rtcp_header.c b/tinyRTP/src/rtcp/trtp_rtcp_header.c index e93772a..d11d32f 100755 --- a/tinyRTP/src/rtcp/trtp_rtcp_header.c +++ b/tinyRTP/src/rtcp/trtp_rtcp_header.c @@ -2,19 +2,19 @@ * Copyright (C) 2012 Doubango Telecom <http://www.doubango.org> * * Contact: Mamadou Diop <diopmamadou(at)doubango.org> -* +* * This file is part of Open Source Doubango Framework. * * DOUBANGO is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * DOUBANGO is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with DOUBANGO. * @@ -35,73 +35,73 @@ header |V=2|P| RC | PT=SR=200 | length | trtp_rtcp_header_t* trtp_rtcp_header_create_null() { - return tsk_object_new(trtp_rtcp_header_def_t); + return tsk_object_new(trtp_rtcp_header_def_t); } trtp_rtcp_header_t* trtp_rtcp_header_create(uint8_t version, uint8_t padding, uint8_t rc, trtp_rtcp_packet_type_t type, uint16_t length_in_bytes) { - trtp_rtcp_header_t* header; - if((header = trtp_rtcp_header_create_null())){ - header->version = version; - header->padding = padding; - header->rc = rc; - header->type = type; - header->length_in_words_minus1 = ((length_in_bytes >> 2) - 1); - header->length_in_bytes = length_in_bytes; - } + trtp_rtcp_header_t* header; + if((header = trtp_rtcp_header_create_null())) { + header->version = version; + header->padding = padding; + header->rc = rc; + header->type = type; + header->length_in_words_minus1 = ((length_in_bytes >> 2) - 1); + header->length_in_bytes = length_in_bytes; + } - return header; + return header; } int trtp_rtcp_header_serialize_to(const trtp_rtcp_header_t *self, void* data, tsk_size_t size) { - uint8_t* pdata = (uint8_t*)data; - if(!self || !data || size < TRTP_RTCP_HEADER_SIZE){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - // Octet-0: version(2), Padding(1), RC(5) - pdata[0] = ((uint8_t)self->version)<<6 | - ((uint8_t)self->padding)<<5 | - ((uint8_t)self->rc); - // Octet-1: PT(8) - pdata[1] = self->type; - // Octet-2 and Octet3: length (16) - pdata[2] = self->length_in_words_minus1 >> 8; - pdata[3] = self->length_in_words_minus1 & 0xFF; - return 0; + uint8_t* pdata = (uint8_t*)data; + if(!self || !data || size < TRTP_RTCP_HEADER_SIZE) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } + // Octet-0: version(2), Padding(1), RC(5) + pdata[0] = ((uint8_t)self->version)<<6 | + ((uint8_t)self->padding)<<5 | + ((uint8_t)self->rc); + // Octet-1: PT(8) + pdata[1] = self->type; + // Octet-2 and Octet3: length (16) + pdata[2] = self->length_in_words_minus1 >> 8; + pdata[3] = self->length_in_words_minus1 & 0xFF; + return 0; } trtp_rtcp_header_t* trtp_rtcp_header_deserialize(const void *data, tsk_size_t size) { - trtp_rtcp_header_t* header = tsk_null; - if(trtp_rtcp_header_deserialize_to(&header, data, size) != 0){ - TSK_DEBUG_ERROR("Failed to deserialize the rtcp header"); - TSK_OBJECT_SAFE_FREE(header); - } - return header; + trtp_rtcp_header_t* header = tsk_null; + if(trtp_rtcp_header_deserialize_to(&header, data, size) != 0) { + TSK_DEBUG_ERROR("Failed to deserialize the rtcp header"); + TSK_OBJECT_SAFE_FREE(header); + } + return header; } int trtp_rtcp_header_deserialize_to(trtp_rtcp_header_t** self, const void *data, tsk_size_t size) { - const uint8_t* pdata = (uint8_t*)data; - if(!self || !data || size < TRTP_RTCP_HEADER_SIZE){ - TSK_DEBUG_ERROR("Invalid parameter"); - return -1; - } - - if(!*self && !(*self = trtp_rtcp_header_create_null())){ - TSK_DEBUG_ERROR("Failed to create new rtcp header"); - return -3; - } - (*self)->version = pdata[0] >> 6; - (*self)->padding = (pdata[0] >> 5) & 0x01; - (*self)->rc = (pdata[0] & 0x1f); - (*self)->type = (enum trtp_rtcp_packet_type_e)pdata[1]; - (*self)->length_in_words_minus1 = tnet_ntohs_2(&pdata[2]); - (*self)->length_in_bytes = ((*self)->length_in_words_minus1 + 1) << 2; + const uint8_t* pdata = (uint8_t*)data; + if(!self || !data || size < TRTP_RTCP_HEADER_SIZE) { + TSK_DEBUG_ERROR("Invalid parameter"); + return -1; + } - return 0; + if(!*self && !(*self = trtp_rtcp_header_create_null())) { + TSK_DEBUG_ERROR("Failed to create new rtcp header"); + return -3; + } + (*self)->version = pdata[0] >> 6; + (*self)->padding = (pdata[0] >> 5) & 0x01; + (*self)->rc = (pdata[0] & 0x1f); + (*self)->type = (enum trtp_rtcp_packet_type_e)pdata[1]; + (*self)->length_in_words_minus1 = tnet_ntohs_2(&pdata[2]); + (*self)->length_in_bytes = ((*self)->length_in_words_minus1 + 1) << 2; + + return 0; } //================================================================================================= @@ -109,26 +109,25 @@ int trtp_rtcp_header_deserialize_to(trtp_rtcp_header_t** self, const void *data, // static tsk_object_t* trtp_rtcp_header_ctor(tsk_object_t * self, va_list * app) { - trtp_rtcp_header_t *header = self; - if(header){ - } - return self; + trtp_rtcp_header_t *header = self; + if(header) { + } + return self; } static tsk_object_t* trtp_rtcp_header_dtor(tsk_object_t * self) -{ - trtp_rtcp_header_t *header = self; - if(header){ - } +{ + trtp_rtcp_header_t *header = self; + if(header) { + } - return self; + return self; } -static const tsk_object_def_t trtp_rtcp_header_def_s = -{ - sizeof(trtp_rtcp_header_t), - trtp_rtcp_header_ctor, - trtp_rtcp_header_dtor, - tsk_null, +static const tsk_object_def_t trtp_rtcp_header_def_s = { + sizeof(trtp_rtcp_header_t), + trtp_rtcp_header_ctor, + trtp_rtcp_header_dtor, + tsk_null, }; const tsk_object_def_t *trtp_rtcp_header_def_t = &trtp_rtcp_header_def_s; |