{
float *dest;
- PARA_INFO_LOG("%ld\n", size);
if (b->remaining) /* Non empty buffer, must still be playing */
return;
+ PARA_INFO_LOG("%ld\n", size);
if (b->size != size) {
/*
* Hey! What's that? Coudn't this buffer size be fixed
b->size = size;
}
dest = b->buffer;
- while (size--)
+ while (size--) {
+ char *tmp = (char *)source;
+ char c = *tmp;
+ *tmp = *(tmp + 1);
+ *(tmp + 1) = c;
/* *dest++ = ((*source++) + 32768) / 65536.0; */
*dest++ = (*source++) / 32768.0;
+ }
b->ptr = b->buffer;
b->remaining = b->size;
}
/* wait for the results */
usleep(2000);
}
+ PARA_INFO_LOG("buf %p: n = %ld, m= %ld\n", powd->from->buffer, n, m);
/*
* we dump what we can. In fact, just the necessary
* should be sufficient
format.mFormatID = kAudioFormatLinearPCM;
/* flags specific to each format */
format.mFormatFlags = kLinearPCMFormatFlagIsFloat
- | kLinearPCMFormatFlagIsPacked;
- // | kLinearPCMFormatFlagIsBigEndian;
+ | kLinearPCMFormatFlagIsPacked
+ | kLinearPCMFormatFlagIsBigEndian;
/*
* We produce 2-channel audio. Now if we have a mega-super-hyper card for our
* audio, it is its problem to convert it to 8-, 16-, 32- or 1024-channel data.
kAudioUnitScope_Input, 0, &inputCallback,
sizeof(inputCallback)) < 0)
goto e3;
- return 0;
+ return 1;
e3:
destroy_buffers(powd);
e2:
struct writer_node_group *wng = wn->wng;
short *data = (short*)wng->buf + wn->written;
- if (!*wng->loaded)
+ if (*wng->loaded <= wn->written)
return 1;
if (powd->to->remaining) /* Non empty buffer, must still be playing */
return 1;
return 1;
}
-static int osx_write_pre_select(struct sched *s, struct writer_node *wn)
+static int osx_write_pre_select(struct sched *s, __a_unused struct writer_node *wn)
{
- struct writer_node_group *wng = wn->wng;
- struct private_osx_writer_data *powd = wn->private_data;
-
-// if (!*wng->loaded)
-// return 1;
-// if (powd->to->remaining) /* Non empty buffer, must still be playing */
-// return 1;
s->timeout.tv_sec = 0;
s->timeout.tv_usec = 20;
return 1;