+ p = audiobuf;
+ while (loaded >= chunk_bytes) {
+// fprintf(stderr, "write (loaded = %d)\n", loaded);
+ ret = pcm_write(p, chunk_size) * bytes_per_frame;
+ p += ret;
+ written += ret;
+ loaded -= ret;
+ }
+ if (loaded && p != audiobuf) {
+// fprintf(stderr, "memcpy: %d@%d\n", loaded, p - audiobuf);
+ memcpy(audiobuf, p, loaded);
+ }
+read:
+ ret = read(STDIN_FILENO, audiobuf + loaded, bufsize - loaded);
+ if (ret < 0)
+ EXIT(E_READ);
+ if (ret) {
+ loaded += ret;
+ goto again;
+ }