X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=osx_write.c;h=bc11e61aea24a22596c88a3e4e14f5d7b9ad746c;hp=366252c4539b1b022d2625c22c1c8bbae211c668;hb=395aeb9da9c9cc2febe91b5a906c72e59e217594;hpb=c8862b9e246b4ef6ff1fe103946e18cf2537ecde diff --git a/osx_write.c b/osx_write.c index 366252c4..bc11e61a 100644 --- a/osx_write.c +++ b/osx_write.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2008 Andre Noll + * Copyright (C) 2006-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -11,14 +11,17 @@ * */ +#include #include #include #include + #include "para.h" #include "fd.h" #include "string.h" #include "list.h" #include "sched.h" +#include "ggo.h" #include "write.h" #include "osx_write.cmdline.h" #include "error.h" @@ -81,7 +84,7 @@ static void init_buffers(struct writer_node *wn) ptrptr = &powd->to; for (i = 0; i < conf->numbuffers_arg; i++) { - *ptrptr = malloc(sizeof(struct osx_buffer)); + *ptrptr = para_malloc(sizeof(struct osx_buffer)); (*ptrptr)->size = 0; (*ptrptr)->remaining = 0; (*ptrptr)->buffer = NULL; @@ -126,7 +129,7 @@ static OSStatus osx_callback(void * inClientData, dest = outOutputData->mBuffers[i].mData; while (m > 0) { if ((n = powd->from->remaining) <= 0) { - PARA_INFO_LOG("%s", "buffer underrun\n"); + PARA_INFO_LOG("buffer underrun\n"); return 0; } // PARA_INFO_LOG("buf %p: n = %ld, m= %ld\n", powd->from->buffer, n, m); @@ -148,6 +151,12 @@ static OSStatus osx_callback(void * inClientData, return 0; } +#ifdef WORDS_BIGENDIAN /* ppc */ +#define ENDIAN_FLAGS kLinearPCMFormatFlagIsBigEndian +#else +#define ENDIAN_FLAGS 0 +#endif + static int osx_write_open(struct writer_node *wn) { struct private_osx_write_data *powd = para_calloc( @@ -195,7 +204,7 @@ static int osx_write_open(struct writer_node *wn) /* flags specific to each format */ format.mFormatFlags = kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsPacked - | kLinearPCMFormatFlagIsBigEndian; + | ENDIAN_FLAGS; if (!conf->channels_given && wng->channels) powd->channels = *wng->channels; else @@ -272,7 +281,7 @@ static int osx_write_post_select(__a_unused struct sched *s, { struct private_osx_write_data *powd = wn->private_data; struct writer_node_group *wng = wn->wng; - short *data = (short*)wng->buf; + short *data = (short*)*wng->bufp; if (!need_new_buffer(wn)) return 1;