summaryrefslogtreecommitdiff
path: root/src/aiorecord.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/aiorecord.cc')
-rw-r--r--src/aiorecord.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/aiorecord.cc b/src/aiorecord.cc
index fefb859..ac719cb 100644
--- a/src/aiorecord.cc
+++ b/src/aiorecord.cc
@@ -205,9 +205,10 @@ int main(int argc, char *argv[])
return 1;
}
+ size_t buffer_size = src->getBufferSize();
+ char *pcm = (char*)calloc(buffer_size, 1);
while(running) {
- char pcm[1024];
- int size = src->readSamples(pcm, sizeof(pcm));
+ int size = src->readSamples(pcm, buffer_size);
if(size < 0) {
printf("PCM read error: %d\n", size);
break;
@@ -215,7 +216,9 @@ int main(int argc, char *argv[])
size_t w = fwrite(pcm, size, 1, fp); (void)w;
if(verbose) vu(pcm, size);
}
+
fclose(fp);
+ free(pcm);
printf("\ndone\n");
}
@@ -234,10 +237,11 @@ int main(int argc, char *argv[])
perror("");
return 1;
}
-
+
+ size_t buffer_size = sink->getBufferSize();
+ char *pcm = (char*)calloc(buffer_size, 1);
while(running && !feof(fp)) {
- char pcm[2048];
- size_t size = fread(pcm, 1, sizeof(pcm), fp);
+ size_t size = fread(pcm, 1, buffer_size, fp);
int err = sink->writeSamples(pcm, size);
if(err < 0) {
printf("PCM write error: %d - size: %d\n", err, size);
@@ -245,7 +249,9 @@ int main(int argc, char *argv[])
}
if(verbose) vu(pcm, size);
}
+
fclose(fp);
+ free(pcm);
printf("\ndone\n");
}