X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=ortp_send.c;h=9363d74e79f4b85e990a5c667655dd68dc6eb77a;hp=1521b63d4031a853e9839aa617d3055241cb8cf0;hb=fa54361d9eb07f22cbe6a59faa6321700b807f49;hpb=2ed89c59f0efcd0a2763f47c7d3455663241e623 diff --git a/ortp_send.c b/ortp_send.c index 1521b63d..9363d74e 100644 --- a/ortp_send.c +++ b/ortp_send.c @@ -18,13 +18,13 @@ /** \file ortp_send.c para_server's ortp sender */ +#include #include "server.cmdline.h" #include "server.h" #include "afs.h" #include "send.h" #include "list.h" -#include #include "ortp.h" #include "string.h" @@ -54,7 +54,6 @@ struct ortp_target { RtpSession *session; }; -static int numtargets; static struct list_head targets; static struct sender *self; @@ -66,7 +65,6 @@ static void ortp_delete_target(struct ortp_target *ot, const char *msg) rtp_session_destroy(ot->session); ot->session = NULL; } - numtargets--; list_del(&ot->node); free(ot); } @@ -77,9 +75,7 @@ static void ortp_send_buf(char *buf, int len, long unsigned chunks_sent) int ret; list_for_each_entry_safe(ot, tmp, &targets, node) { - struct timeval now; int ts; - gettimeofday(&now, NULL); if (!ot->session) continue; WRITE_CHUNK_TS(buf, ot->chunk_ts); @@ -103,7 +99,11 @@ static void ortp_init_session(struct ortp_target *ot) if (!ot->session) return; s = ot->session; -// rtp_session_set_jitter_compensation(ot->session, 100); + if (conf.ortp_jitter_compensation_arg) { + rtp_session_enable_adaptive_jitter_compensation(ot->session, TRUE); + rtp_session_set_jitter_compensation(ot->session, + conf.ortp_jitter_compensation_arg); + } /* always successful */ rtp_session_set_send_payload_type(s, PAYLOAD_AUDIO_CONTINUOUS); ret = rtp_session_set_remote_addr(s, TARGET_ADDR(ot), ot->port); @@ -146,7 +146,7 @@ static void ortp_send(struct audio_format *af, long unsigned current_chunk, { struct ortp_target *ot, *tmp; size_t sendbuf_len; - size_t header_len = 0; + int header_len = 0; int packet_type = ORTP_DATA, stream_type = af && af->get_header_info; /* header stream? */ char *sendbuf, *header_buf = NULL; @@ -159,8 +159,10 @@ static void ortp_send(struct audio_format *af, long unsigned current_chunk, continue; } if (!ot->chunk_ts) - ot->chunk_ts = rtp_session_time_to_ts(ot->session, tv2ms(&af->chunk_tv)); -// PARA_DEBUG_LOG("len: %d, af: %p, ts: %d\n", len, af, ot->chunk_ts); + ot->chunk_ts = rtp_session_time_to_ts(ot->session, + tv2ms(&af->chunk_tv)); +// PARA_DEBUG_LOG("len: %d, ts: %lu, ts: %d\n", +// len, ot->chunk_ts * chunks_sent, ot->chunk_ts); ot->streaming = 1; } if (list_empty(&targets)) @@ -188,14 +190,14 @@ static void ortp_send(struct audio_format *af, long unsigned current_chunk, free(sendbuf); } -static int ortp_com_on(struct sender_command_data *scd) +static int ortp_com_on(__a_unused struct sender_command_data *scd) { self->status = SENDER_ON; return 1; } -static int ortp_com_off(struct sender_command_data *scd) +static int ortp_com_off(__a_unused struct sender_command_data *scd) { ortp_shutdown_targets(); self->status = SENDER_OFF; @@ -286,8 +288,9 @@ success: } } -static void ortp_pre_select(struct audio_format *af, int *max_fileno, - fd_set *rfds, fd_set *wfds) +static void ortp_pre_select(__a_unused struct audio_format *af, + __a_unused int *max_fileno, __a_unused fd_set *rfds, + __a_unused fd_set *wfds) { return; } @@ -311,7 +314,6 @@ static char *ortp_help(void) void ortp_send_init(struct sender *s) { ortp_init(); - ortp_set_debug_file("oRTP", NULL); INIT_LIST_HEAD(&targets); s->info = ortp_info; s->help = ortp_help;