X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=ortp_recv.c;h=b28d084ab5b6c3664d650a6cf2390556f0aec15a;hp=c9696729609a7af3698ff046dc3e149cae67308a;hb=219c5d6f1199405848c5de6c1a4c792c57fa1a40;hpb=ae0e4594c6a0312c5b4b4c0bde86f9c12253d11b diff --git a/ortp_recv.c b/ortp_recv.c index c9696729..b28d084a 100644 --- a/ortp_recv.c +++ b/ortp_recv.c @@ -1,19 +1,7 @@ /* * Copyright (C) 2005-2007 Andre Noll * - * This program 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 2 of the License, or - * (at your option) any later version. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file ortp_recv.c paraslash's ortp receiver */ @@ -135,9 +123,9 @@ static void ortp_recv_post_select(__a_unused struct sched *s, struct task *t) size_t packet_size; // PARA_INFO_LOG("rn: %p, pord: %p, session: %p\n", rn, pord, pord->session); - t->ret = -E_ORTP_RECV_EOF; - if (rn->output_eof && *rn->output_eof) { - rn->eof = 1; + if (rn->output_error && *rn->output_error) { + rn->error = *rn->output_error; + t->ret = rn->error; return; } t->ret = 1; @@ -162,11 +150,11 @@ static void ortp_recv_post_select(__a_unused struct sched *s, struct task *t) pord->start = *now; t->ret = msg_to_buf(mp, tmpbuf, CHUNK_SIZE); if (t->ret < ORTP_AUDIO_HEADER_LEN) { - rn->eof = 1; if (t->ret < 0) t->ret = -E_MSG_TO_BUF; else t->ret = -E_ORTP_RECV_EOF; + rn->error = t->ret; goto err_out; } packet_size = t->ret; @@ -180,8 +168,8 @@ static void ortp_recv_post_select(__a_unused struct sched *s, struct task *t) switch (packet_type) { unsigned header_len, payload_len; case ORTP_EOF: - rn->eof = 1; - t->ret = -E_ORTP_RECV_EOF; + t->ret = -E_RECV_EOF; + rn->error = t->ret; goto err_out; case ORTP_BOF: PARA_INFO_LOG("bof (%zu)\n", packet_size); @@ -234,7 +222,7 @@ success: compute_next_chunk(chunk_time, pord); return; err_out: - rn->eof = 1; + rn->error = t->ret; freemsg(mp); } @@ -281,11 +269,9 @@ static int ortp_recv_open(struct receiver_node *rn) rtp_session_set_local_addr(pord->session, c->host_arg, c->port_arg); rtp_session_set_remote_addr(pord->session, c->host_arg, c->port_arg); rtp_session_set_payload_type(pord->session, PAYLOAD_AUDIO_CONTINUOUS); - if (c->jitter_compensation_arg) { - rtp_session_enable_adaptive_jitter_compensation(pord->session, TRUE); - rtp_session_set_jitter_compensation(pord->session, + rtp_session_enable_adaptive_jitter_compensation(pord->session, TRUE); + rtp_session_set_jitter_compensation(pord->session, c->jitter_compensation_arg); - } return 1; }