X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=ortp_send.c;h=65c68418bc7cba6f9d6f327d6b95195dfb2f8c74;hp=b06a1b84f80f4d9daa88b635d48790f9a1bf8aa3;hb=33713473b1051c2d9f487c66a92a5cbdf1277ce3;hpb=dc4030458f9af07d5719cfbff0a47cd16f1847f7 diff --git a/ortp_send.c b/ortp_send.c index b06a1b84..65c68418 100644 --- a/ortp_send.c +++ b/ortp_send.c @@ -19,6 +19,7 @@ /** \file ortp_send.c para_server's ortp sender */ #include +#include #include "server.cmdline.h" #include "server.h" @@ -39,9 +40,9 @@ struct ortp_target { /** whether the ortp sender is activated */ int status; /** the ortp timestamp increases by this amount */ - int chunk_ts; + uint32_t chunk_ts; /** the currently used timestamp for this target */ - int last_ts; + uint32_t last_ts; /** the position of this target in the list of targets */ struct list_head node; /** the UDP port */ @@ -67,19 +68,21 @@ static void ortp_delete_target(struct ortp_target *ot, const char *msg) free(ot); } -static void ortp_send_buf(char *buf, int len, long unsigned chunks_sent) +static void ortp_send_buf(char *buf, size_t len, long unsigned chunks_sent) { struct ortp_target *ot, *tmp; - int ret; + int ret, ortp_len = len; /* rtp_session_send_with_ts expects int */ + if (ortp_len < 0) + return; list_for_each_entry_safe(ot, tmp, &targets, node) { - int ts; + uint32_t ts; if (!ot->session) continue; WRITE_CHUNK_TS(buf, ot->chunk_ts); ts = ot->chunk_ts * chunks_sent; ret = rtp_session_send_with_ts(ot->session, - (unsigned char*)buf, len, ts); + (unsigned char*)buf, ortp_len, ts); ot->last_ts = ts; if (ret < 0) ortp_delete_target(ot, "send error"); @@ -168,7 +171,7 @@ static void ortp_send(long unsigned current_chunk, long unsigned chunks_sent, { struct ortp_target *ot, *tmp; size_t sendbuf_len; - int header_len = 0; + size_t header_len = 0; int packet_type = ORTP_DATA; char *sendbuf, *header_buf = NULL; struct timeval *chunk_tv; @@ -186,7 +189,7 @@ static void ortp_send(long unsigned current_chunk, long unsigned chunks_sent, } if (!ot->chunk_ts) ot->chunk_ts = rtp_session_time_to_ts(ot->session, - tv2ms(chunk_tv)); + (int)tv2ms(chunk_tv)); // PARA_DEBUG_LOG("len: %d, ts: %lu, ts: %d\n", // len, ot->chunk_ts * chunks_sent, ot->chunk_ts); ot->streaming = 1;