/*
- * Copyright (C) 2005-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
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;
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;
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);
compute_next_chunk(chunk_time, pord);
return;
err_out:
- rn->eof = 1;
+ rn->error = t->ret;
freemsg(mp);
}