- the new paraslash scheduler, short and sweet.
- Support for m4a files via the new aac filter/ and audio
- format handler. (requires libfaad)
+ format handler (requires libfaad).
+ - each writer has its own command line parser, just like
+ para_recv and para_filter.
- new writer: osxplay (thanks to Gerd Becker)
+ - para_client and para_audioc use the error subsystem
- writers are integrated in para_audiod
- para_client is integrated in para_audiod
- - each writer of para_write has its own command line parser,
- just like para_recv and para_filter.
- random/playlist selector: improved info strings
- new audiod commands: tasks, kill
- - para_client/para_audioc use the error subsystem
+ - update to libortp-0.10.0
------------------------------------------
#define CHUNK_SIZE 128 * 1024
-extern int msg_to_buf(mblk_t *, char *, int);
-
/**
* data specific to the ortp receiver
*
uint32_t chunk_ts;
};
+
+static int msg_to_buf(mblk_t *mp, char *buffer, int len)
+{
+ int rlen = len;
+ mblk_t *m, *mprev;
+ int mlen;
+
+ m = mp->b_cont;
+ mprev = mp;
+ while (m != NULL) {
+ mlen = (int) (m->b_wptr - m->b_rptr);
+ if (mlen <= rlen) {
+ mblk_t *consumed = m;
+ memcpy (buffer, m->b_rptr, mlen);
+ /* go to next mblk_t */
+ mprev->b_cont = m->b_cont;
+ m = m->b_cont;
+ consumed->b_cont = NULL;
+ freeb (consumed);
+ buffer += mlen;
+ rlen -= mlen;
+ } else { /*if mlen>rlen */
+ memcpy (buffer, m->b_rptr, rlen);
+ m->b_rptr += rlen;
+ return len;
+ }
+ }
+ return len - rlen;
+}
+
+
static void ortp_recv_pre_select(struct sched *s, struct task *t)
{
struct receiver_node *rn = t->private_data;