summaryrefslogtreecommitdiffstats
path: root/tinyRTP/include/tinyrtp/rtcp
diff options
context:
space:
mode:
Diffstat (limited to 'tinyRTP/include/tinyrtp/rtcp')
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_header.h25
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_packet.h30
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_rblock.h27
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report.h6
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_bye.h15
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_fb.h163
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_rr.h19
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sdes.h13
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sr.h35
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_xr.h6
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_chunck.h15
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_item.h36
-rwxr-xr-xtinyRTP/include/tinyrtp/rtcp/trtp_rtcp_session.h8
13 files changed, 194 insertions, 204 deletions
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_header.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_header.h
index 9cf6a1a..354c082 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_header.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_header.h
@@ -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.
*
@@ -33,16 +33,15 @@
TRTP_BEGIN_DECLS
-typedef struct trtp_rtcp_header_s
-{
- TSK_DECLARE_OBJECT;
-
- unsigned version:2;
- unsigned padding:1;
- unsigned rc:5;
- trtp_rtcp_packet_type_t type; /**< Packet Type on 8bits */
- uint16_t length_in_words_minus1; /**< The length of this RTCP packet in 32-bit words minus one */
- uint32_t length_in_bytes;
+typedef struct trtp_rtcp_header_s {
+ TSK_DECLARE_OBJECT;
+
+ unsigned version:2;
+ unsigned padding:1;
+ unsigned rc:5;
+ trtp_rtcp_packet_type_t type; /**< Packet Type on 8bits */
+ uint16_t length_in_words_minus1; /**< The length of this RTCP packet in 32-bit words minus one */
+ uint32_t length_in_bytes;
}
trtp_rtcp_header_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_packet.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_packet.h
index 9045be7..00867f5 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_packet.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_packet.h
@@ -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,23 +35,21 @@ TRTP_BEGIN_DECLS
// RFC 3550 12.1 RTCP Packet Types
// RFC 4585
// RFC 5104 (FIXME: not supported yet!)
-typedef enum trtp_rtcp_packet_type_e
-{
- trtp_rtcp_packet_type_sr = 200,
- trtp_rtcp_packet_type_rr = 201,
- trtp_rtcp_packet_type_sdes = 202,
- trtp_rtcp_packet_type_bye = 203,
- trtp_rtcp_packet_type_app = 204,
- trtp_rtcp_packet_type_rtpfb = 205,
- trtp_rtcp_packet_type_psfb = 206
+typedef enum trtp_rtcp_packet_type_e {
+ trtp_rtcp_packet_type_sr = 200,
+ trtp_rtcp_packet_type_rr = 201,
+ trtp_rtcp_packet_type_sdes = 202,
+ trtp_rtcp_packet_type_bye = 203,
+ trtp_rtcp_packet_type_app = 204,
+ trtp_rtcp_packet_type_rtpfb = 205,
+ trtp_rtcp_packet_type_psfb = 206
}
trtp_rtcp_packet_type_t;
-typedef struct trtp_rtcp_packet_s
-{
- TSK_DECLARE_OBJECT;
+typedef struct trtp_rtcp_packet_s {
+ TSK_DECLARE_OBJECT;
- struct trtp_rtcp_header_s *header;
+ struct trtp_rtcp_header_s *header;
}
trtp_rtcp_packet_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_rblock.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_rblock.h
index 5ea54e6..cc5285d 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_rblock.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_rblock.h
@@ -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.
*
@@ -33,17 +33,16 @@ TRTP_BEGIN_DECLS
#define TRTP_RTCP_RBLOCK(self) ((trtp_rtcp_rblock_t*)(self))
// RFC 3550 6.4.1 SR: Sender Report RTCP Packet => Report block part
-typedef struct trtp_rtcp_rblock_s
-{
- TSK_DECLARE_OBJECT;
-
- uint32_t ssrc; /* data source being reported */
- unsigned int fraction:8; /* fraction lost since last SR/RR */
- int cumulative_no_lost:24; /* cumul. no. pkts lost (signed!) */
- uint32_t last_seq; /* extended last seq. no. received */
- uint32_t jitter; /* interarrival jitter */
- uint32_t lsr; /* last SR packet from this source */
- uint32_t dlsr; /* delay since last SR packet */
+typedef struct trtp_rtcp_rblock_s {
+ TSK_DECLARE_OBJECT;
+
+ uint32_t ssrc; /* data source being reported */
+ unsigned int fraction:8; /* fraction lost since last SR/RR */
+ int cumulative_no_lost:24; /* cumul. no. pkts lost (signed!) */
+ uint32_t last_seq; /* extended last seq. no. received */
+ uint32_t jitter; /* interarrival jitter */
+ uint32_t lsr; /* last SR packet from this source */
+ uint32_t dlsr; /* delay since last SR packet */
}
trtp_rtcp_rblock_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report.h
index c30351f..34031a5 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report.h
@@ -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.
*
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_bye.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_bye.h
index 796e9fc..dac4e6c 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_bye.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_bye.h
@@ -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.
*
@@ -26,12 +26,11 @@
#include "tinyrtp/rtcp/trtp_rtcp_packet.h"
-typedef struct trtp_rtcp_report_bye_s
-{
- TRTP_DECLARE_RTCP_PACKET;
+typedef struct trtp_rtcp_report_bye_s {
+ TRTP_DECLARE_RTCP_PACKET;
- uint32_t *ssrc_list;
- trtp_rtcp_packets_L_t* packets;
+ uint32_t *ssrc_list;
+ trtp_rtcp_packets_L_t* packets;
}
trtp_rtcp_report_bye_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_fb.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_fb.h
index 1ad30b4..a1bf9fe 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_fb.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_fb.h
@@ -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.
*
@@ -30,42 +30,39 @@
#define TRTP_DECLARE_RTCP_FB_PACKET trtp_rtcp_report_fb_t __packet_fb__
// RFC 4585 6.1. Common Packet Format for Feedback Messages
-typedef struct trtp_rtcp_report_fb_s
-{
- TRTP_DECLARE_RTCP_PACKET;
+typedef struct trtp_rtcp_report_fb_s {
+ TRTP_DECLARE_RTCP_PACKET;
- uint32_t ssrc_sender; /* SSRC of packet sender */
- uint32_t ssrc_media; /* SSRC of media source */
+ uint32_t ssrc_sender; /* SSRC of packet sender */
+ uint32_t ssrc_media; /* SSRC of media source */
}
trtp_rtcp_report_fb_t;
-typedef enum trtp_rtcp_rtpfb_fci_type_e
-{
- trtp_rtcp_rtpfb_fci_type_nack = 1, // RFC 4585
- trtp_rtcp_rtpfb_fci_type_tmmbn = 4, // RFC 5104
+typedef enum trtp_rtcp_rtpfb_fci_type_e {
+ trtp_rtcp_rtpfb_fci_type_nack = 1, // RFC 4585
+ trtp_rtcp_rtpfb_fci_type_tmmbn = 4, // RFC 5104
}
trtp_rtcp_rtpfb_fci_type_t;
// Transport layer FB message
-typedef struct trtp_rtcp_report_rtpfb_s
-{
- TRTP_DECLARE_RTCP_FB_PACKET;
-
- trtp_rtcp_rtpfb_fci_type_t fci_type;
- union{
- struct{
- tsk_size_t count; // not part of the specification
- uint16_t* pid; // 16 bits
- uint16_t* blp; // 16 bits
- }nack;
- struct{
- tsk_size_t count; // not part of the specification
- uint32_t* ssrc; // 32 bits
- uint8_t* MxTBR_Exp; // 6 bits
- uint32_t* MxTBR_Mantissa; // 17 bits
- uint16_t* MeasuredOverhead; // 9 bits
- }tmmbn;
- };
+typedef struct trtp_rtcp_report_rtpfb_s {
+ TRTP_DECLARE_RTCP_FB_PACKET;
+
+ trtp_rtcp_rtpfb_fci_type_t fci_type;
+ union {
+ struct {
+ tsk_size_t count; // not part of the specification
+ uint16_t* pid; // 16 bits
+ uint16_t* blp; // 16 bits
+ } nack;
+ struct {
+ tsk_size_t count; // not part of the specification
+ uint32_t* ssrc; // 32 bits
+ uint8_t* MxTBR_Exp; // 6 bits
+ uint32_t* MxTBR_Mantissa; // 17 bits
+ uint16_t* MeasuredOverhead; // 9 bits
+ } tmmbn;
+ };
}
trtp_rtcp_report_rtpfb_t;
@@ -78,64 +75,67 @@ int trtp_rtcp_report_rtpfb_serialize_to(const trtp_rtcp_report_rtpfb_t* self, vo
tsk_size_t trtp_rtcp_report_rtpfb_get_size(const trtp_rtcp_report_rtpfb_t* self);
-typedef enum trtp_rtcp_psfb_fci_type_e
-{
- trtp_rtcp_psfb_fci_type_pli = 1, /* rfc 4585: Picture Loss Indication (PLI) */
- trtp_rtcp_psfb_fci_type_sli = 2, /* rfc 4585: Slice Loss Indication (SLI) */
- trtp_rtcp_psfb_fci_type_rpsi = 3, /* rfc 4585: Reference Picture Selection Indication (RPSI) */
- trtp_rtcp_psfb_fci_type_fir = 4, /* rfc 5104: Full Intra Request (FIR) Command*/
- trtp_rtcp_psfb_fci_type_afb = 15, /* rfc 4585: Application layer FB (AFB) message */
+typedef enum trtp_rtcp_psfb_fci_type_e {
+ trtp_rtcp_psfb_fci_type_pli = 1, /* rfc 4585: Picture Loss Indication (PLI) */
+ trtp_rtcp_psfb_fci_type_sli = 2, /* rfc 4585: Slice Loss Indication (SLI) */
+ trtp_rtcp_psfb_fci_type_rpsi = 3, /* rfc 4585: Reference Picture Selection Indication (RPSI) */
+ trtp_rtcp_psfb_fci_type_fir = 4, /* rfc 5104: Full Intra Request (FIR) Command*/
+ trtp_rtcp_psfb_fci_type_afb = 15, /* rfc 4585: Application layer FB (AFB) message */
}
trtp_rtcp_psfb_fci_type_t;
/* rfc 4585: Application layer FB (AFB) message */
-typedef enum trtp_rtcp_psfb_afb_type_e
-{
- trtp_rtcp_psfb_afb_type_none,
- trtp_rtcp_psfb_afb_type_remb // draft-alvestrand-rmcat-remb-02
+typedef enum trtp_rtcp_psfb_afb_type_e {
+ trtp_rtcp_psfb_afb_type_none,
+ trtp_rtcp_psfb_afb_type_remb, // draft-alvestrand-rmcat-remb-02
+ trtp_rtcp_psfb_afb_type_jcng, // doubango congestion control estimation
}
trtp_rtcp_psfb_afb_type_t;
// Payload-specific FB message
-typedef struct trtp_rtcp_report_psfb_s
-{
- TRTP_DECLARE_RTCP_FB_PACKET;
-
- trtp_rtcp_psfb_fci_type_t fci_type;
- union{
- // struct{ //rfc 4585: 6.3.1.2
- // } pli;
- struct{ // rfc 4585: 6.3.2.2
- uint16_t* first;
- uint16_t* number;
- uint8_t* pic_id;
- } sli;
- struct{ // rfc 4585: 6.3.3.2
- unsigned pb:8;
- unsigned pt:7;
- uint8_t* bytes;
- } rpsi;
- struct{// rfc 5104: 4.3.1.1
- tsk_size_t count;
- uint32_t* ssrc; // 32 bits
- uint8_t* seq_num; // 8 bits
- }fir;
- struct{ // rfc 4585: 6.4
- trtp_rtcp_psfb_afb_type_t type;
- union{
- struct{ // draft-alvestrand-rmcat-remb-02: 2.2
- // MxTBR = mantissa * 2^exp = (mantissa << exp) bps
- uint8_t num_ssrc;
- uint8_t exp; // 6bits
- uint32_t mantissa; // 18bits
- uint32_t* ssrc_feedbacks; // 'num_ssrc'nth SSRC entries
- }remb;
- struct{
- uint8_t* bytes; // store bytes to allow reconstruction
- }none; // unknown type
- };
- }afb;
- };
+typedef struct trtp_rtcp_report_psfb_s {
+ TRTP_DECLARE_RTCP_FB_PACKET;
+
+ trtp_rtcp_psfb_fci_type_t fci_type;
+ union {
+ // struct{ //rfc 4585: 6.3.1.2
+ // } pli;
+ struct { // rfc 4585: 6.3.2.2
+ uint16_t* first;
+ uint16_t* number;
+ uint8_t* pic_id;
+ } sli;
+ struct { // rfc 4585: 6.3.3.2
+ unsigned pb:8;
+ unsigned pt:7;
+ uint8_t* bytes;
+ } rpsi;
+ struct { // rfc 5104: 4.3.1.1
+ tsk_size_t count;
+ uint32_t* ssrc; // 32 bits
+ uint8_t* seq_num; // 8 bits
+ } fir;
+ struct { // rfc 4585: 6.4
+ trtp_rtcp_psfb_afb_type_t type;
+ union {
+ struct { // draft-alvestrand-rmcat-remb-02: 2.2
+ // MxTBR = mantissa * 2^exp = (mantissa << exp) bps
+ uint8_t num_ssrc;
+ uint8_t exp; // 6bits
+ uint32_t mantissa; // 18bits
+ uint32_t* ssrc_feedbacks; // 'num_ssrc'nth SSRC entries
+ } remb;
+ struct { // jitter buffer congestion estimation: doubango
+ uint8_t num_ssrc;
+ uint8_t q; // 8bits
+ uint32_t* ssrc_feedbacks; // 'num_ssrc'nth SSRC entries
+ } jcng;
+ struct {
+ uint8_t* bytes; // store bytes to allow reconstruction
+ } none; // unknown type
+ };
+ } afb;
+ };
}
trtp_rtcp_report_psfb_t;
@@ -145,6 +145,7 @@ trtp_rtcp_report_psfb_t* trtp_rtcp_report_psfb_create_2(trtp_rtcp_psfb_fci_type_
trtp_rtcp_report_psfb_t* trtp_rtcp_report_psfb_create_pli(uint32_t ssrc_sender, uint32_t ssrc_media_src);
trtp_rtcp_report_psfb_t* trtp_rtcp_report_psfb_create_fir(uint8_t seq_num, uint32_t ssrc_sender, uint32_t ssrc_media_src);
trtp_rtcp_report_psfb_t* trtp_rtcp_report_psfb_create_afb_remb(uint32_t ssrc_sender, const uint32_t* ssrc_media_src_list, uint32_t ssrc_media_src_list_count, uint32_t bitrate/*in bps*/);
+trtp_rtcp_report_psfb_t* trtp_rtcp_report_psfb_create_afb_jcng(uint32_t ssrc_sender, const uint32_t* ssrc_media_src_list, uint32_t ssrc_media_src_list_count, float jcng_q/*in quality metric*/);
trtp_rtcp_report_psfb_t* trtp_rtcp_report_psfb_deserialize(const void* data, tsk_size_t size);
int trtp_rtcp_report_psfb_serialize_to(const trtp_rtcp_report_psfb_t* self, void* data, tsk_size_t size);
tsk_size_t trtp_rtcp_report_psfb_get_size(const trtp_rtcp_report_psfb_t* self);
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_rr.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_rr.h
index 2f25779..6a417d3 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_rr.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_rr.h
@@ -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.
*
@@ -32,13 +32,12 @@ TRTP_BEGIN_DECLS
#define TRTP_RTCP_REPORT_RR(self) ((trtp_rtcp_report_rr_t*)(self))
// RFC 3550 6.4.2 RR: Receiver Report RTCP Packet
-typedef struct trtp_rtcp_report_rr_s
-{
- TRTP_DECLARE_RTCP_PACKET;
-
- uint32_t ssrc;
- trtp_rtcp_rblocks_L_t* blocks;
- trtp_rtcp_packets_L_t* packets;
+typedef struct trtp_rtcp_report_rr_s {
+ TRTP_DECLARE_RTCP_PACKET;
+
+ uint32_t ssrc;
+ trtp_rtcp_rblocks_L_t* blocks;
+ trtp_rtcp_packets_L_t* packets;
}
trtp_rtcp_report_rr_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sdes.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sdes.h
index 04efb5c..b8df1e5 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sdes.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sdes.h
@@ -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.
*
@@ -32,10 +32,9 @@ TRTP_BEGIN_DECLS
#define TRTP_RTCP_REPORT_SDES(self) ((trtp_rtcp_report_sdes_t*)(self))
/* RFC 3550 6.5 SDES: Source Description RTCP Packet */
-typedef struct trtp_rtcp_report_sdes_s
-{
- TRTP_DECLARE_RTCP_PACKET;
- trtp_rtcp_sdes_chuncks_L_t* chuncks;
+typedef struct trtp_rtcp_report_sdes_s {
+ TRTP_DECLARE_RTCP_PACKET;
+ trtp_rtcp_sdes_chuncks_L_t* chuncks;
}
trtp_rtcp_report_sdes_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sr.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sr.h
index 09d442f..73de26e 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sr.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_sr.h
@@ -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.
*
@@ -32,21 +32,20 @@ TRTP_BEGIN_DECLS
#define TRTP_RTCP_REPORT_SR(self) ((trtp_rtcp_report_sr_t*)(self))
// RFC 3550 6.4.1 SR: Sender Report RTCP Packet
-typedef struct trtp_rtcp_report_sr_s
-{
- TRTP_DECLARE_RTCP_PACKET;
-
- uint32_t ssrc;
- struct{
- uint32_t ntp_msw; /**< NTP timestamp, most significant word */
- uint32_t ntp_lsw; /**< NTP timestamp, least significant word */
- uint32_t rtp_timestamp;/**< RTP timestamp */
- uint32_t sender_pcount; /**< sender's packet count */
- uint32_t sender_ocount; /**< sender's octet count */
- } sender_info;
-
- trtp_rtcp_rblocks_L_t* blocks;
- trtp_rtcp_packets_L_t* packets;
+typedef struct trtp_rtcp_report_sr_s {
+ TRTP_DECLARE_RTCP_PACKET;
+
+ uint32_t ssrc;
+ struct {
+ uint32_t ntp_msw; /**< NTP timestamp, most significant word */
+ uint32_t ntp_lsw; /**< NTP timestamp, least significant word */
+ uint32_t rtp_timestamp;/**< RTP timestamp */
+ uint32_t sender_pcount; /**< sender's packet count */
+ uint32_t sender_ocount; /**< sender's octet count */
+ } sender_info;
+
+ trtp_rtcp_rblocks_L_t* blocks;
+ trtp_rtcp_packets_L_t* packets;
}
trtp_rtcp_report_sr_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_xr.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_xr.h
index b08e096..dda4dcc 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_xr.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_report_xr.h
@@ -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.
*
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_chunck.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_chunck.h
index ec3a8d8..bf47f53 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_chunck.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_chunck.h
@@ -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.
*
@@ -33,12 +33,11 @@
TRTP_BEGIN_DECLS
-typedef struct trtp_rtcp_sdes_chunck_s
-{
- TSK_DECLARE_OBJECT;
+typedef struct trtp_rtcp_sdes_chunck_s {
+ TSK_DECLARE_OBJECT;
- uint32_t ssrc;
- trtp_rtcp_sdes_items_L_t* items;
+ uint32_t ssrc;
+ trtp_rtcp_sdes_items_L_t* items;
}
trtp_rtcp_sdes_chunck_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_item.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_item.h
index 8356a74..f485e24 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_item.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_sdes_item.h
@@ -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.
*
@@ -34,26 +34,24 @@
TRTP_BEGIN_DECLS
// RFC 3550 12.2 SDES Types
-typedef enum trtp_rtcp_sdes_item_type_e
-{
- trtp_rtcp_sdes_item_type_end = 0, /**< end of SDES list */
- trtp_rtcp_sdes_item_type_cname = 1, /**< canonical name*/
- trtp_rtcp_sdes_item_type_name = 2, /**< user name */
- trtp_rtcp_sdes_item_type_email = 3, /**< user's electronic mail address*/
- trtp_rtcp_sdes_item_type_phone = 4, /**< user's phone number */
- trtp_rtcp_sdes_item_type_loc = 5, /**< geographic user location*/
- trtp_rtcp_sdes_item_type_tool = 6, /**< name of application or tool*/
- trtp_rtcp_sdes_item_type_note = 7, /**< notice about the source*/
- trtp_rtcp_sdes_item_type_priv = 8, /**< private extensions*/
+typedef enum trtp_rtcp_sdes_item_type_e {
+ trtp_rtcp_sdes_item_type_end = 0, /**< end of SDES list */
+ trtp_rtcp_sdes_item_type_cname = 1, /**< canonical name*/
+ trtp_rtcp_sdes_item_type_name = 2, /**< user name */
+ trtp_rtcp_sdes_item_type_email = 3, /**< user's electronic mail address*/
+ trtp_rtcp_sdes_item_type_phone = 4, /**< user's phone number */
+ trtp_rtcp_sdes_item_type_loc = 5, /**< geographic user location*/
+ trtp_rtcp_sdes_item_type_tool = 6, /**< name of application or tool*/
+ trtp_rtcp_sdes_item_type_note = 7, /**< notice about the source*/
+ trtp_rtcp_sdes_item_type_priv = 8, /**< private extensions*/
}
trtp_rtcp_sdes_item_type_t;
-typedef struct trtp_rtcp_sdes_item_s
-{
- TSK_DECLARE_OBJECT;
+typedef struct trtp_rtcp_sdes_item_s {
+ TSK_DECLARE_OBJECT;
- trtp_rtcp_sdes_item_type_t type;
- tsk_buffer_t *data;
+ trtp_rtcp_sdes_item_type_t type;
+ tsk_buffer_t *data;
}
trtp_rtcp_sdes_item_t;
diff --git a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_session.h b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_session.h
index 34ddbbc..4ea08e0 100755
--- a/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_session.h
+++ b/tinyRTP/include/tinyrtp/rtcp/trtp_rtcp_session.h
@@ -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.
*
@@ -51,7 +51,7 @@ int trtp_rtcp_session_set_callback(struct trtp_rtcp_session_s* self, trtp_rtcp_c
#if HAVE_SRTP
int trtp_rtcp_session_set_srtp_sess(struct trtp_rtcp_session_s* self, const srtp_t* session);
#endif
-int trtp_rtcp_session_set_app_bandwidth_max(struct trtp_rtcp_session_s* self, int32_t bw_upload_kbps, int32_t bw_download_kbps);
+int trtp_rtcp_session_set_app_bw_and_jcng(struct trtp_rtcp_session_s* self, int32_t bw_upload_kbps, int32_t bw_download_kbps, float jcng_q);
int trtp_rtcp_session_start(struct trtp_rtcp_session_s* self, tnet_fd_t local_fd, const struct sockaddr* remote_addr);
int trtp_rtcp_session_stop(struct trtp_rtcp_session_s* self);
int trtp_rtcp_session_process_rtp_out(struct trtp_rtcp_session_s* self, const struct trtp_rtp_packet_s* packet_rtp, tsk_size_t size);
OpenPOWER on IntegriCloud