From eb67278da81dd1d5b7ed05beecc29825e8ec5707 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Tue, 31 Jan 2017 03:51:57 +0000 Subject: [PATCH] fix for helicopter noise on 700 plus Mooner's patch for OSX git-svn-id: https://svn.code.sf.net/p/freetel/code@3011 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/src/freedv_api.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/codec2-dev/src/freedv_api.c b/codec2-dev/src/freedv_api.c index 5d50f820..1364327f 100644 --- a/codec2-dev/src/freedv_api.c +++ b/codec2-dev/src/freedv_api.c @@ -33,7 +33,11 @@ #include #include +#ifdef __APPLE__ +#include +#else #include +#endif /* __APPLE__ */ #include "fsk.h" #include "fmfsk.h" @@ -851,7 +855,7 @@ int freedv_rx(struct freedv *f, short speech_out[], short demod_in[]) { /* FSK RX happens in real floats, so convert to those and call their demod here */ if( (f->mode == FREEDV_MODE_2400A) || (f->mode == FREEDV_MODE_2400B) || (f->mode == FREEDV_MODE_800XA) ){ - float rx_float[f->n_max_modem_samples]; + float rx_float[f->n_max_modem_samples]; for(i=0; iptFilter8000to7500, 15, 16); //if (i != f->nin) // printf("freedv_comprx decimation: input %d output %d\n", freedv_nin(f), i); @@ -1257,6 +1268,7 @@ int freedv_comprx(struct freedv *f, short speech_out[], COMP demod_in[]) { #ifndef CORTEX_M4 if ((f->mode == FREEDV_MODE_700) || (f->mode == FREEDV_MODE_700B) || (f->mode == FREEDV_MODE_700C)) { nout = freedv_comprx_fdmdv_700(f, demod_in, &valid); + //valid = -1; } if( (f->mode == FREEDV_MODE_2400A) || (f->mode == FREEDV_MODE_2400B) || (f->mode == FREEDV_MODE_800XA)){ @@ -1264,12 +1276,14 @@ int freedv_comprx(struct freedv *f, short speech_out[], COMP demod_in[]) { } #endif - if (valid == 0) + if (valid == 0) { for (i = 0; i < nout; i++) speech_out[i] = 0; - else if (valid < 0) + } + else if (valid < 0) { for (i = 0; i < nout; i++) - speech_out[i] = FDMDV_SCALE*demod_in[i].real; + speech_out[i] = demod_in[i].real; + } else { int frames = f->n_codec_bits / bits_per_codec_frame; for (i = 0; i < frames; i++) { @@ -1278,7 +1292,7 @@ int freedv_comprx(struct freedv *f, short speech_out[], COMP demod_in[]) { } } - //fprintf(stderr,"freedv_nin(f): %d nout: %d\n", freedv_nin(f), nout); + //fprintf(stderr,"freedv_nin(f): %d nout: %d valid: %d\n", freedv_nin(f), nout, valid); return nout; } -- 2.25.1