Here's a patch for freedv_api.c . I rather heavy-handedly just zero everything
in freedv_open(), and set nin to FREEDV_NSAMPLES / 2.
A nested comment (not legal C) got changed to use #if 0 in the outer block.
Thanks
Bruce
--- /home/bruce/freetel-code/codec2-dev/src/freedv_api.c 2014-08-08
22:33:12.536693304 -0700
+++ freedv_api.c 2014-08-10 18:18:14.518621941 -0700
@@ -53,7 +53,7 @@
\*---------------------------------------------------------------------------*/
-/*
+#if 0
struct FDMDV_STATS fdmdv_stats;
@@ -75,7 +75,7 @@
void (*freedv_put_next_rx_char)(void *callback_state, char c);
void *callback_state;
- */
+#endif
struct freedv *freedv_open(int mode) {
struct freedv *f;
@@ -84,7 +84,7 @@
if (mode != FREEDV_MODE_1600)
return NULL;
- f = (struct freedv*)malloc(sizeof(struct freedv));
+ f = (struct freedv*)calloc(1, sizeof(struct freedv));
if (f == NULL)
return NULL;
@@ -107,15 +107,15 @@
nbit = codec2_bits_per_frame(f->codec2);
nbyte = (nbit + 7) / 8;
- f->packed_codec_bits = (unsigned char*)malloc(nbyte*sizeof(char));
- f->codec_bits = (int*)malloc(nbit*sizeof(int));
+ f->packed_codec_bits = (unsigned char*)calloc(1, nbyte*sizeof(char));
+ f->codec_bits = (int*)calloc(1, nbit*sizeof(int));
nbit = 2*fdmdv_bits_per_frame(f->fdmdv);
- f->tx_bits = (int*)malloc(nbit*sizeof(int));
- f->rx_bits = (int*)malloc(nbit*sizeof(int));
+ f->tx_bits = (int*)calloc(1, nbit*sizeof(int));
+ f->rx_bits = (int*)calloc(1, nbit*sizeof(int));
nbit = fdmdv_bits_per_frame(f->fdmdv);
- f->fdmdv_bits = (int*)malloc(nbit*sizeof(int));
+ f->fdmdv_bits = (int*)calloc(1, nbit*sizeof(int));
if ((f->packed_codec_bits == NULL) || (f->codec_bits == NULL)
|| (f->tx_bits == NULL) || (f->rx_bits == NULL) || (f->fdmdv_bits ==
NULL))
@@ -129,6 +129,7 @@
golay23_init();
f->total_bit_errors = 0;
+ f->nin = FREEDV_NSAMPLES / 2;
return f;
}
@@ -147,6 +148,8 @@
free(freedv->packed_codec_bits);
free(freedv->codec_bits);
free(freedv->tx_bits);
+ free(freedv->fdmdv_bits);
+ free(freedv->rx_bits);
fdmdv_destroy(freedv->fdmdv);
codec2_destroy(freedv->codec2);
free(freedv);
------------------------------------------------------------------------------
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2