34 #include <ortp/port.h>
38 #include <ortp/rtcp.h>
39 #include <ortp/str_utils.h>
40 #include <ortp/rtpsignaltable.h>
41 #include <ortp/event.h>
68 int adapt_jitt_comp_ts;
92 int (*t_sendto)(
struct _RtpTransport *t,
mblk_t *msg ,
int flags,
const struct sockaddr *to, socklen_t tolen);
93 int (*t_recvfrom)(
struct _RtpTransport *t,
mblk_t *msg,
int flags,
struct sockaddr *from, socklen_t *fromlen);
101 ortp_socket_t socket;
112 struct sockaddr_storage rem_addr;
114 struct sockaddr_in rem_addr;
118 unsigned long QoSFlowID;
120 uint32_t snd_time_offset;
121 uint32_t snd_ts_offset;
122 uint32_t snd_rand_offset;
123 uint32_t snd_last_ts;
124 uint32_t rcv_time_offset;
125 uint32_t rcv_ts_offset;
126 uint32_t rcv_query_ts_offset;
127 uint32_t rcv_last_ts;
128 uint32_t rcv_last_app_ts;
129 uint32_t rcv_last_ret_ts;
130 uint32_t hwrcv_extseq;
131 uint32_t hwrcv_seq_at_last_SR;
132 uint32_t hwrcv_since_last_SR;
133 uint32_t last_rcv_SR_ts;
134 struct timeval last_rcv_SR_time;
136 uint32_t last_rtcp_report_snt_r;
137 uint32_t last_rtcp_report_snt_s;
138 uint32_t rtcp_report_snt_interval;
139 uint32_t last_rtcp_packet_count;
140 uint32_t sent_payload_bytes;
141 unsigned int sent_bytes;
142 struct timeval send_bw_start;
143 unsigned int recv_bytes;
144 struct timeval recv_bw_start;
150 int ssrc_changed_thres;
155 ortp_socket_t socket;
160 struct sockaddr_storage rem_addr;
162 struct sockaddr_in rem_addr;
188 int telephone_events_pt;
190 unsigned int inc_ssrc_candidate;
191 int inc_same_ssrc_count;
201 struct _OList *signal_tables;
211 int multicast_loopback;
214 struct timeval last_recv_time;
220 bool_t symmetric_rtp;
248 uint16_t rtp_session_get_seq_number(
RtpSession *session);
250 void rtp_session_enable_jitter_buffer(
RtpSession *session , bool_t enabled);
251 bool_t rtp_session_jitter_buffer_enabled(
const RtpSession *session);
257 void rtp_session_enable_adaptive_jitter_compensation(
RtpSession *session, bool_t val);
258 bool_t rtp_session_adaptive_jitter_compensation_enabled(
RtpSession *session);
267 int rtp_session_set_remote_addr_and_port (
RtpSession * session,
const char * addr,
int rtp_port,
int rtcp_port);
271 void rtp_session_set_sockets(
RtpSession *session,
int rtpfd,
int rtcpfd);
275 ortp_socket_t rtp_session_get_rtp_socket(
const RtpSession *session);
276 ortp_socket_t rtp_session_get_rtcp_socket(
const RtpSession *session);
325 float rtp_session_compute_send_bandwidth(
RtpSession *session);
326 float rtp_session_compute_recv_bandwidth(
RtpSession *session);
328 void rtp_session_send_rtcp_APP(
RtpSession *session, uint8_t subtype,
const char *name,
const uint8_t *data,
int datalen);
339 void rtp_session_reset_stats(
RtpSession *session);
349 uint32_t rtp_session_ts_to_time(
RtpSession *session,uint32_t timestamp);
350 uint32_t rtp_session_time_to_ts(
RtpSession *session,
int millisecs);
354 void rtp_session_make_time_distorsion(
RtpSession *session,
int milisec);
358 const char *name,
const char *email,
const char *phone,
359 const char *loc,
const char *tool,
const char *note);
360 void rtp_session_add_contributing_source(
RtpSession *session, uint32_t csrc,
361 const char *cname,
const char *name,
const char *email,
const char *phone,
362 const char *loc,
const char *tool,
const char *note);
363 void rtp_session_remove_contributing_sources(
RtpSession *session, uint32_t csrc);
369 int rtp_session_get_last_send_error_code(
RtpSession *session);
370 void rtp_session_clear_send_error_code(
RtpSession *session);
371 int rtp_session_get_last_recv_error_code(
RtpSession *session);
372 void rtp_session_clear_recv_error_code(
RtpSession *session);
375 void rtp_session_init(
RtpSession *session,
int mode);
376 #define rtp_session_set_flag(session,flag) (session)->flags|=(flag)
377 #define rtp_session_unset_flag(session,flag) (session)->flags&=~(flag)
mblk_t * rtp_session_recvm_with_ts(RtpSession *session, uint32_t user_ts)
Definition: rtpsession.c:970
void rtp_session_release_sockets(RtpSession *session)
Definition: rtpsession.c:1273
void rtp_session_set_scheduling_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:331
Definition: rtpsession.h:153
RtpProfile * rtp_session_get_send_profile(RtpSession *session)
Definition: rtpsession.c:456
void rtp_session_get_last_recv_time(RtpSession *session, struct timeval *tv)
Definition: rtpsession.c:1599
void rtp_session_set_seq_number(RtpSession *session, uint16_t seq)
Definition: rtpsession.c:577
void rtp_session_flush_sockets(RtpSession *session)
Definition: rtpsession_inet.c:783
void rtp_session_set_ssrc(RtpSession *session, uint32_t ssrc)
Definition: rtpsession.c:595
int max_packets
Definition: rtpsession.h:60
Using and creating standart and custom RTP profiles.
int rtp_session_set_send_payload_type(RtpSession *session, int paytype)
Definition: rtpsession.c:626
void rtp_session_destroy(RtpSession *session)
Definition: rtpsession.c:1545
Definition: rtpsession.h:179
Definition: str_utils.h:27
int rtp_session_get_multicast_loopback(RtpSession *session)
Definition: rtpsession_inet.c:434
void rtp_session_set_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:385
int rtp_session_get_local_port(const RtpSession *session)
Definition: rtpsession_inet.c:576
int rtp_session_send_with_ts(RtpSession *session, const uint8_t *buffer, int len, uint32_t userts)
Definition: rtpsession.c:909
int rtp_session_set_dscp(RtpSession *session, int dscp)
Definition: rtpsession_inet.c:449
int rtp_session_set_remote_addr(RtpSession *session, const char *addr, int port)
Definition: rtpsession_inet.c:610
Definition: rtpsession.h:99
uint32_t rtp_session_get_current_send_ts(RtpSession *session)
Definition: rtpsession.c:1209
void rtp_session_set_symmetric_rtp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1474
Definition: rtpsession.h:80
int min_size
Definition: rtpsession.h:55
int rtp_session_get_multicast_ttl(RtpSession *session)
Definition: rtpsession_inet.c:358
const rtp_stats_t * rtp_session_get_stats(const RtpSession *session)
Definition: rtpsession.c:1438
Definition: rtpsignaltable.h:27
uint32_t rtp_session_get_current_recv_ts(RtpSession *session)
Definition: rtpsession.c:1235
Definition: str_utils.h:47
RtpProfile * rtp_session_get_recv_profile(RtpSession *session)
Definition: rtpsession.c:466
void rtp_session_set_blocking_mode(RtpSession *session, int yesno)
Definition: rtpsession.c:366
int rtp_session_get_send_payload_type(const RtpSession *session)
Definition: rtpsession.c:637
int rtp_session_signal_connect(RtpSession *session, const char *signal_name, RtpCallback cb, unsigned long user_data)
Definition: rtpsession.c:532
struct _JBParameters JBParameters
void rtp_session_register_event_queue(RtpSession *session, OrtpEvQueue *q)
Definition: rtpsession.c:1300
void rtp_session_set_jitter_compensation(RtpSession *session, int milisec)
Definition: jitterctl.c:141
int max_size
Definition: rtpsession.h:57
void rtp_session_set_ssrc_changed_threshold(RtpSession *session, int numpackets)
Definition: rtpsession.c:1387
int rtp_session_set_local_addr(RtpSession *session, const char *addr, int port)
Definition: rtpsession_inet.c:250
int rtp_session_get_recv_payload_type(const RtpSession *session)
Definition: rtpsession.c:670
mblk_t * rtp_session_create_packet(RtpSession *session, int header_size, const uint8_t *payload, int payload_size)
Definition: rtpsession.c:715
void rtp_session_set_recv_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:432
Definition: rtpsession.h:88
void rtp_session_set_connected_mode(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:1492
void rtp_session_set_send_profile(RtpSession *session, RtpProfile *profile)
Definition: rtpsession.c:414
void * rtp_session_get_data(const RtpSession *session)
Definition: rtpsession.c:1460
int rtp_session_set_multicast_ttl(RtpSession *session, int ttl)
Definition: rtpsession_inet.c:304
RtpSession * rtp_session_new(int mode)
Definition: rtpsession.c:304
void rtp_session_set_rtp_socket_send_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:486
mblk_t * rtp_session_create_packet_with_data(RtpSession *session, uint8_t *payload, int payload_size, void(*freefn)(void *))
Definition: rtpsession.c:749
RtpProfile * rtp_session_get_profile(RtpSession *session)
Definition: rtpsession.c:445
Definition: rtpsession.h:54
int nom_size
Definition: rtpsession.h:56
Definition: str_utils.h:119
int rtp_session_set_remote_addr_full(RtpSession *session, const char *addr, int rtp_port, int rtcp_port)
Definition: rtpsession_inet.c:629
int rtp_session_signal_disconnect_by_callback(RtpSession *session, const char *signal_name, RtpCallback cb)
Definition: rtpsession.c:556
void rtp_session_set_rtp_socket_recv_buffer_size(RtpSession *session, unsigned int size)
Definition: rtpsession.c:494
Definition: scheduler.h:28
int rtp_session_set_multicast_loopback(RtpSession *session, int yesno)
Definition: rtpsession_inet.c:374
int rtp_session_sendm_with_ts(RtpSession *session, mblk_t *mp, uint32_t userts)
Definition: rtpsession.c:889
Sending and receiving multiple streams together with only one thread.
int rtp_session_bye(RtpSession *session, const char *reason)
Definition: rtcp.c:380
void rtp_session_set_source_description(RtpSession *session, const char *cname, const char *name, const char *email, const char *phone, const char *loc, const char *tool, const char *note)
Definition: rtcp.c:82
void rtp_session_set_data(RtpSession *session, void *data)
Definition: rtpsession.c:1452
void rtp_session_set_recv_buf_size(RtpSession *session, int bufsize)
Definition: rtpsession.c:478
int rtp_session_set_recv_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:653
void rtp_session_enable_rtcp(RtpSession *session, bool_t yesno)
Definition: rtpsession.c:400
Definition: payloadtype.h:85
Definition: rtpsession.h:63
void rtp_session_set_time_jump_limit(RtpSession *session, int miliseconds)
Definition: rtpsession.c:1262
int rtp_session_recv_with_ts(RtpSession *session, uint8_t *buffer, int len, uint32_t ts, int *have_more)
Definition: rtpsession.c:1161
mblk_t * rtp_session_create_packet_in_place(RtpSession *session, uint8_t *buffer, int size, void(*freefn)(void *))
Definition: rtpsession.c:781
void rtp_session_resync(RtpSession *session)
Definition: rtpsession.c:1397
int rtp_session_get_dscp(const RtpSession *session)
Definition: rtpsession_inet.c:560
void rtp_session_reset(RtpSession *session)
Definition: rtpsession.c:1410
int rtp_session_set_payload_type(RtpSession *session, int pt)
Definition: rtpsession.c:683