summaryrefslogtreecommitdiff
path: root/dahdi_monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'dahdi_monitor.c')
-rw-r--r--dahdi_monitor.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/dahdi_monitor.c b/dahdi_monitor.c
index e61b610..79f46dd 100644
--- a/dahdi_monitor.c
+++ b/dahdi_monitor.c
@@ -427,6 +427,14 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
fprintf(stderr, "Writing pre-echo combined stream to %s\n", optarg);
+ file_is_wav[MON_PRE_BRX] = filename_is_wav(optarg);
+ if (file_is_wav[MON_PRE_BRX]) {
+ wavheader_init(&wavheaders[MON_PRE_BRX], 1);
+ if (fwrite(&wavheaders[MON_PRE_BRX], 1, sizeof(struct wavheader), ofh[MON_PRE_BRX]) != sizeof(struct wavheader)) {
+ fprintf(stderr, "Could not write wav header to %s: %s\n", optarg, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ }
preecho = 1;
savefile = 1;
break;
@@ -763,12 +771,6 @@ int main(int argc, char *argv[])
if (!(file_is_wav[i]))
continue;
- rewind(ofh[i]);
-
- if (fread(&wavheaders[i], 1, sizeof(struct wavheader), ofh[i]) != sizeof(struct wavheader)) {
- fprintf(stderr, "Failed to read in a full wav header. Expect bad things.\n");
- }
-
wavheaders[i].riff_chunk_size = (bytes_written[i]) + sizeof(struct wavheader) - 8; /* filesize - 8 */
wavheaders[i].data_data_size = bytes_written[i];