diff --git a/csdr.c b/csdr.c index b0040ee..6aea2a8 100644 --- a/csdr.c +++ b/csdr.c @@ -44,11 +44,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include "libcsdr.h" #include "libcsdr_gpl.h" -/* - example chains defined: - rtl_sdr -f 90000000 -s 2400000 - | csdr convert_u8_c | csdr shift_cc -0.20833 | csdr decimate_cc 5 0.1 | \ - csdr fmdemod | csdr resample_rr 240000 48000 | csdr audio 48000 -*/ char usage[]= "csdr - a simple commandline tool for Software Defined Radio receiver DSP.\n\n" @@ -448,6 +443,7 @@ int main(int argc, char *argv[]) FEOF_CHECK; fread(input_buffer+BUFSIZE-processed, sizeof(float), processed, stdin); processed=deemphasis_nfm_ff(input_buffer, output_buffer, BUFSIZE, sample_rate); + if(!processed) return badsyntax("deemphasis_nfm_ff: invalid sample rate (this function works only with specific sample rates)."); memmove(input_buffer,input_buffer+processed,(BUFSIZE-processed)*sizeof(float)); //memmove lets the source and destination overlap fwrite(output_buffer, sizeof(float), processed, stdout); } diff --git a/libcsdr.c b/libcsdr.c index b90fe2a..4080307 100644 --- a/libcsdr.c +++ b/libcsdr.c @@ -624,8 +624,11 @@ int deemphasis_nfm_ff (float* input, float* output, int input_size, int sample_r */ float* taps; int taps_length=0; + DNFMFF_ADD_ARRAY(48000) + DNFMFF_ADD_ARRAY(44100) DNFMFF_ADD_ARRAY(8000) + if(!taps_length) return 0; //sample rate n int i; for(i=0;i