summaryrefslogtreecommitdiffstats
path: root/tinyRTP/include/tinyrtp/trtp_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'tinyRTP/include/tinyrtp/trtp_manager.h')
-rwxr-xr-xtinyRTP/include/tinyrtp/trtp_manager.h256
1 files changed, 128 insertions, 128 deletions
diff --git a/tinyRTP/include/tinyrtp/trtp_manager.h b/tinyRTP/include/tinyrtp/trtp_manager.h
index 1594f9c..e409c7b 100755
--- a/tinyRTP/include/tinyrtp/trtp_manager.h
+++ b/tinyRTP/include/tinyrtp/trtp_manager.h
@@ -1,19 +1,19 @@
/*
* Copyright (C) 2012 Mamadou Diop
* Copyright (C) 2012-2013 Doubango Telecom <http://www.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.
*
@@ -40,140 +40,140 @@ struct trtp_rtp_packet_s;
struct tnet_proxyinfo_s;
/** RTP/RTCP manager */
-typedef struct trtp_manager_s
-{
- TSK_DECLARE_OBJECT;
-
- char* local_ip;
- tsk_bool_t use_ipv6;
- tsk_bool_t is_started;
- tsk_bool_t use_rtcp;
- tsk_bool_t use_rtcpmux;
- tsk_bool_t is_socket_disabled;
- tsk_bool_t is_ice_neg_ok;
- tsk_bool_t is_ice_turn_active;
- tsk_bool_t is_force_symetric_rtp;
- tsk_bool_t is_symetric_rtp_checked;
- tsk_bool_t is_symetric_rtcp_checked;
- int32_t app_bw_max_upload; // application specific (kbps)
- int32_t app_bw_max_download; // application specific (kbps)
-
- tnet_transport_t* transport;
-
- struct tnet_ice_ctx_s* ice_ctx;
-
- tsk_timer_manager_handle_t* timer_mgr_global;
-
- struct{
- tmedia_rtcweb_type_t local;
- tmedia_rtcweb_type_t remote;
- } rtcweb_type;
-
+typedef struct trtp_manager_s {
+ TSK_DECLARE_OBJECT;
+
+ char* local_ip;
+ tsk_bool_t use_ipv6;
+ tsk_bool_t is_started;
+ tsk_bool_t use_rtcp;
+ tsk_bool_t use_rtcpmux;
+ tsk_bool_t is_socket_disabled;
+ tsk_bool_t is_ice_neg_ok;
+ tsk_bool_t is_ice_turn_active;
+ tsk_bool_t is_force_symetric_rtp;
+ tsk_bool_t is_symetric_rtp_checked;
+ tsk_bool_t is_symetric_rtcp_checked;
+ int32_t app_bw_max_upload; // application specific (kbps)
+ int32_t app_bw_max_download; // application specific (kbps)
+ float app_jitter_cng; // application specific jitter buffer congestion estimation (quality in ]0, 1], 1f meaning no congestion)
+
+ tnet_transport_t* transport;
+
+ struct tnet_ice_ctx_s* ice_ctx;
+
+ tsk_timer_manager_handle_t* timer_mgr_global;
+
+ struct {
+ tmedia_rtcweb_type_t local;
+ tmedia_rtcweb_type_t remote;
+ } rtcweb_type;
+
struct {
tsk_bool_t auto_detect;
struct tnet_proxyinfo_s* info;
}
proxy;
- struct{
- uint16_t start;
- uint16_t stop;
- } port_range;
+ struct {
+ uint16_t start;
+ uint16_t stop;
+ } port_range;
- struct{
- uint16_t seq_num;
- uint32_t timestamp;
- uint8_t payload_type;
+ struct {
+ uint16_t seq_num;
+ uint32_t timestamp;
+ uint8_t payload_type;
int32_t dscp;
- char* remote_ip;
- tnet_port_t remote_port;
- struct sockaddr_storage remote_addr;
-
- char* public_ip;
- tnet_port_t public_port;
-
- struct{
- uint32_t local;
- uint32_t remote;
- } ssrc;
-
- struct{
- const void* usrdata;
- trtp_rtp_cb_f fun;
- } cb;
-
- struct{
- void* ptr;
- tsk_size_t size;
+ char* remote_ip;
+ tnet_port_t remote_port;
+ struct sockaddr_storage remote_addr;
+
+ char* public_ip;
+ tnet_port_t public_port;
+
+ struct {
+ uint32_t local;
+ uint32_t remote;
+ } ssrc;
+
+ struct {
+ const void* usrdata;
+ trtp_rtp_cb_f fun;
+ } cb;
+
+ struct {
+ void* ptr;
+ tsk_size_t size;
tsk_size_t index;
- } serial_buffer;
- } rtp;
-
- struct{
- char* cname;
- char* remote_ip;
- tnet_port_t remote_port;
- struct sockaddr_storage remote_addr;
- tnet_socket_t* local_socket;
-
- char* public_ip;
- tnet_port_t public_port;
-
- struct{
- const void* usrdata;
- trtp_rtcp_cb_f fun;
- } cb;
-
- struct trtp_rtcp_session_s* session;
- } rtcp;
-
- TSK_DECLARE_SAFEOBJ;
-
-#if HAVE_SRTP
- enum tmedia_srtp_type_e srtp_type;
- enum tmedia_srtp_mode_e srtp_mode;
- trtp_srtp_state_t srtp_state;
- trtp_srtp_ctx_xt srtp_contexts[2/*LINE_IDX*/][2/*CRYPTO_TYPE*/];
- const struct trtp_srtp_ctx_xs* srtp_ctx_neg_local;
- const struct trtp_srtp_ctx_xs* srtp_ctx_neg_remote;
-
- struct{
- char* file_ca;
- char* file_pbk;
- char* file_pvk;
- tsk_bool_t cert_verif;
-
- trtp_srtp_state_t state;
- // enable() could be postponed if net transport not ready yet (e.g. when ICE is ON)
- tsk_bool_t enable_postponed;
-
- tsk_bool_t srtp_connected;
- tsk_bool_t srtcp_connected;
- tsk_bool_t srtp_handshake_succeed;
- tsk_bool_t srtcp_handshake_succeed;
-
- trtp_srtp_crypto_type_t crypto_selected;
-
- struct{
- uint64_t timeout;
- tsk_timer_id_t id;
- } timer_hanshaking;
-
- struct{
- const void* usrdata;
- trtp_srtp_dtls_cb_f fun;
- } cb;
-
- struct{
- tnet_fingerprint_t fp;
- tnet_dtls_hash_type_t fp_hash;
- } remote;
- struct{
- tnet_dtls_setup_t setup;
- tsk_bool_t connection_new;
- }local;
- } dtls;
+ } serial_buffer;
+ } rtp;
+
+ struct {
+ char* cname;
+ char* remote_ip;
+ tnet_port_t remote_port;
+ struct sockaddr_storage remote_addr;
+ tnet_socket_t* local_socket;
+
+ char* public_ip;
+ tnet_port_t public_port;
+
+ struct {
+ const void* usrdata;
+ trtp_rtcp_cb_f fun;
+ } cb;
+
+ struct trtp_rtcp_session_s* session;
+ } rtcp;
+
+ TSK_DECLARE_SAFEOBJ;
+
+#if HAVE_SRTP
+ enum tmedia_srtp_type_e srtp_type;
+ enum tmedia_srtp_mode_e srtp_mode;
+ trtp_srtp_state_t srtp_state;
+ trtp_srtp_ctx_xt srtp_contexts[2/*LINE_IDX*/][2/*CRYPTO_TYPE*/];
+ const struct trtp_srtp_ctx_xs* srtp_ctx_neg_local;
+ const struct trtp_srtp_ctx_xs* srtp_ctx_neg_remote;
+
+ struct {
+ char* file_ca;
+ char* file_pbk;
+ char* file_pvk;
+ tsk_bool_t cert_verif;
+
+ trtp_srtp_state_t state;
+ // enable() could be postponed if net transport not ready yet (e.g. when ICE is ON)
+ tsk_bool_t enable_postponed;
+
+ tsk_bool_t srtp_connected;
+ tsk_bool_t srtcp_connected;
+ tsk_bool_t srtp_handshake_succeed;
+ tsk_bool_t srtcp_handshake_succeed;
+
+ trtp_srtp_crypto_type_t crypto_selected;
+
+ struct {
+ uint64_t timeout;
+ tsk_timer_id_t id;
+ } timer_hanshaking;
+
+ struct {
+ const void* usrdata;
+ trtp_srtp_dtls_cb_f fun;
+ } cb;
+
+ struct {
+ tnet_fingerprint_t fp;
+ tnet_dtls_hash_type_t fp_hash;
+ } remote;
+ struct {
+ tnet_dtls_setup_t setup;
+ tsk_bool_t connection_new;
+ } local;
+ } dtls;
#endif
}
trtp_manager_t;
@@ -214,7 +214,7 @@ TINYRTP_API tsk_size_t trtp_manager_send_rtp(trtp_manager_t* self, const void* d
TINYRTP_API tsk_size_t trtp_manager_send_rtp_packet(trtp_manager_t* self, const struct trtp_rtp_packet_s* packet, tsk_bool_t bypass_encrypt);
TINYRTP_API int trtp_manager_get_bytes_count(trtp_manager_t* self, uint64_t* bytes_in, uint64_t* bytes_out);
TINYRTP_API tsk_size_t trtp_manager_send_rtp_raw(trtp_manager_t* self, const void* data, tsk_size_t size);
-TINYRTP_API int trtp_manager_set_app_bandwidth_max(trtp_manager_t* self, int32_t bw_upload_kbps, int32_t bw_download_kbps);
+TINYRTP_API int trtp_manager_set_app_bw_and_jcng(trtp_manager_t* self, int32_t bw_upload_kbps, int32_t bw_download_kbps, float jcng_q);
TINYRTP_API int trtp_manager_signal_pkt_loss(trtp_manager_t* self, uint32_t ssrc_media, const uint16_t* seq_nums, tsk_size_t count);
TINYRTP_API int trtp_manager_signal_frame_corrupted(trtp_manager_t* self, uint32_t ssrc_media);
TINYRTP_API int trtp_manager_signal_jb_error(trtp_manager_t* self, uint32_t ssrc_media);
OpenPOWER on IntegriCloud