Updates Windows liquid-dsp binaries to master

- Win32/64 bins liquid-dsp ref: e77c20bbc26af260d61133ee42ff101c48e4f389
- Win32/64 bins using GCC 11.2 (MSYS2)
This commit is contained in:
vsonnier 2021-12-11 16:43:31 +01:00
parent cab1227acd
commit b826d58cd0
12 changed files with 5276 additions and 5249 deletions

View File

@ -162,6 +162,9 @@
/* Enable strict program exit on error */ /* Enable strict program exit on error */
/* #undef LIQUID_STRICT_EXIT */ /* #undef LIQUID_STRICT_EXIT */
/* Suppress printing errors to stderr */
/* #undef LIQUID_SUPPRESS_ERROR_OUTPUT */
/* Define to the address where bug reports for this package should be sent. */ /* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "joseph@liquidsdr.org" #define PACKAGE_BUGREPORT "joseph@liquidsdr.org"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -230,6 +230,9 @@ int AGC(_lock)(AGC() _q); \
/* Unlock agc object, and allow amplitude correction to resume. */ \ /* Unlock agc object, and allow amplitude correction to resume. */ \
int AGC(_unlock)(AGC() _q); \ int AGC(_unlock)(AGC() _q); \
\ \
/* Get lock state of agc object */ \
int AGC(_is_locked)(AGC() _q); \
\
/* Set loop filter bandwidth: attack/release time. */ \ /* Set loop filter bandwidth: attack/release time. */ \
/* _q : automatic gain control object */ \ /* _q : automatic gain control object */ \
/* _bt : bandwidth-time constant, _bt > 0 */ \ /* _bt : bandwidth-time constant, _bt > 0 */ \
@ -346,18 +349,18 @@ cvsd cvsd_create(unsigned int _num_bits,
float _alpha); float _alpha);
// destroy cvsd object // destroy cvsd object
void cvsd_destroy(cvsd _q); int cvsd_destroy(cvsd _q);
// print cvsd object parameters // print cvsd object parameters
void cvsd_print(cvsd _q); int cvsd_print(cvsd _q);
// encode/decode single sample // encode/decode single sample
unsigned char cvsd_encode(cvsd _q, float _audio_sample); unsigned char cvsd_encode(cvsd _q, float _audio_sample);
float cvsd_decode(cvsd _q, unsigned char _bit); float cvsd_decode(cvsd _q, unsigned char _bit);
// encode/decode 8 samples at a time // encode/decode 8 samples at a time
void cvsd_encode8(cvsd _q, float * _audio, unsigned char * _data); int cvsd_encode8(cvsd _q, float * _audio, unsigned char * _data);
void cvsd_decode8(cvsd _q, unsigned char _data, float * _audio); int cvsd_decode8(cvsd _q, unsigned char _data, float * _audio);
// //
@ -390,16 +393,16 @@ CBUFFER() CBUFFER(_create_max)(unsigned int _max_size, \
unsigned int _max_read); \ unsigned int _max_read); \
\ \
/* Destroy cbuffer object, freeing all internal memory */ \ /* Destroy cbuffer object, freeing all internal memory */ \
void CBUFFER(_destroy)(CBUFFER() _q); \ int CBUFFER(_destroy)(CBUFFER() _q); \
\ \
/* Print cbuffer object properties to stdout */ \ /* Print cbuffer object properties to stdout */ \
void CBUFFER(_print)(CBUFFER() _q); \ int CBUFFER(_print)(CBUFFER() _q); \
\ \
/* Print cbuffer object properties and internal state */ \ /* Print cbuffer object properties and internal state */ \
void CBUFFER(_debug_print)(CBUFFER() _q); \ int CBUFFER(_debug_print)(CBUFFER() _q); \
\ \
/* Clear internal buffer */ \ /* Clear internal buffer */ \
void CBUFFER(_reset)(CBUFFER() _q); \ int CBUFFER(_reset)(CBUFFER() _q); \
\ \
/* Get the number of elements currently in the buffer */ \ /* Get the number of elements currently in the buffer */ \
unsigned int CBUFFER(_size)(CBUFFER() _q); \ unsigned int CBUFFER(_size)(CBUFFER() _q); \
@ -413,29 +416,32 @@ unsigned int CBUFFER(_max_read)(CBUFFER() _q); \
/* Get the number of available slots (max_size - size) */ \ /* Get the number of available slots (max_size - size) */ \
unsigned int CBUFFER(_space_available)(CBUFFER() _q); \ unsigned int CBUFFER(_space_available)(CBUFFER() _q); \
\ \
/* Return flag indicating if the buffer is empty or not */ \
int CBUFFER(_is_empty)(CBUFFER() _q); \
\
/* Return flag indicating if the buffer is full or not */ \ /* Return flag indicating if the buffer is full or not */ \
int CBUFFER(_is_full)(CBUFFER() _q); \ int CBUFFER(_is_full)(CBUFFER() _q); \
\ \
/* Write a single sample into the buffer */ \ /* Write a single sample into the buffer */ \
/* _q : circular buffer object */ \ /* _q : circular buffer object */ \
/* _v : input sample */ \ /* _v : input sample */ \
void CBUFFER(_push)(CBUFFER() _q, \ int CBUFFER(_push)(CBUFFER() _q, \
T _v); \ T _v); \
\ \
/* Write a block of samples to the buffer */ \ /* Write a block of samples to the buffer */ \
/* _q : circular buffer object */ \ /* _q : circular buffer object */ \
/* _v : array of samples to write to buffer */ \ /* _v : array of samples to write to buffer */ \
/* _n : number of samples to write */ \ /* _n : number of samples to write */ \
void CBUFFER(_write)(CBUFFER() _q, \ int CBUFFER(_write)(CBUFFER() _q, \
T * _v, \ T * _v, \
unsigned int _n); \ unsigned int _n); \
\ \
/* Remove and return a single element from the buffer by setting the */ \ /* Remove and return a single element from the buffer by setting the */ \
/* value of the output sample pointed to by _v */ \ /* value of the output sample pointed to by _v */ \
/* _q : circular buffer object */ \ /* _q : circular buffer object */ \
/* _v : pointer to sample output */ \ /* _v : pointer to sample output */ \
void CBUFFER(_pop)(CBUFFER() _q, \ int CBUFFER(_pop)(CBUFFER() _q, \
T * _v); \ T * _v); \
\ \
/* Read buffer contents by returning a pointer to the linearized array; */ \ /* Read buffer contents by returning a pointer to the linearized array; */ \
/* note that the returned pointer is only valid until another operation */ \ /* note that the returned pointer is only valid until another operation */ \
@ -444,16 +450,16 @@ void CBUFFER(_pop)(CBUFFER() _q, \
/* _num_requested : number of elements requested */ \ /* _num_requested : number of elements requested */ \
/* _v : output pointer */ \ /* _v : output pointer */ \
/* _num_read : number of elements referenced by _v */ \ /* _num_read : number of elements referenced by _v */ \
void CBUFFER(_read)(CBUFFER() _q, \ int CBUFFER(_read)(CBUFFER() _q, \
unsigned int _num_requested, \ unsigned int _num_requested, \
T ** _v, \ T ** _v, \
unsigned int * _num_read); \ unsigned int * _num_read); \
\ \
/* Release _n samples from the buffer */ \ /* Release _n samples from the buffer */ \
/* _q : circular buffer object */ \ /* _q : circular buffer object */ \
/* _n : number of elements to release */ \ /* _n : number of elements to release */ \
void CBUFFER(_release)(CBUFFER() _q, \ int CBUFFER(_release)(CBUFFER() _q, \
unsigned int _n); \ unsigned int _n); \
// Define buffer APIs // Define buffer APIs
LIQUID_CBUFFER_DEFINE_API(LIQUID_CBUFFER_MANGLE_FLOAT, float) LIQUID_CBUFFER_DEFINE_API(LIQUID_CBUFFER_MANGLE_FLOAT, float)
@ -576,26 +582,26 @@ WDELAY() WDELAY(_recreate)(WDELAY() _q, \
unsigned int _delay); \ unsigned int _delay); \
\ \
/* Destroy delay buffer object, freeing internal memory */ \ /* Destroy delay buffer object, freeing internal memory */ \
void WDELAY(_destroy)(WDELAY() _q); \ int WDELAY(_destroy)(WDELAY() _q); \
\ \
/* Print delay buffer object's state to stdout */ \ /* Print delay buffer object's state to stdout */ \
void WDELAY(_print)(WDELAY() _q); \ int WDELAY(_print)(WDELAY() _q); \
\ \
/* Clear/reset state of object */ \ /* Clear/reset state of object */ \
void WDELAY(_reset)(WDELAY() _q); \ int WDELAY(_reset)(WDELAY() _q); \
\ \
/* Read delayed sample at the head of the buffer and store it to the */ \ /* Read delayed sample at the head of the buffer and store it to the */ \
/* output pointer */ \ /* output pointer */ \
/* _q : delay buffer object */ \ /* _q : delay buffer object */ \
/* _v : value of delayed element */ \ /* _v : value of delayed element */ \
void WDELAY(_read)(WDELAY() _q, \ int WDELAY(_read)(WDELAY() _q, \
T * _v); \ T * _v); \
\ \
/* Push new sample into delay buffer object */ \ /* Push new sample into delay buffer object */ \
/* _q : delay buffer object */ \ /* _q : delay buffer object */ \
/* _v : new value to be added to buffer */ \ /* _v : new value to be added to buffer */ \
void WDELAY(_push)(WDELAY() _q, \ int WDELAY(_push)(WDELAY() _q, \
T _v); \ T _v); \
// Define wdelay APIs // Define wdelay APIs
LIQUID_WDELAY_DEFINE_API(LIQUID_WDELAY_MANGLE_FLOAT, float) LIQUID_WDELAY_DEFINE_API(LIQUID_WDELAY_MANGLE_FLOAT, float)
@ -777,10 +783,10 @@ typedef struct DOTPROD(_s) * DOTPROD(); \
/* _x : input array [size: _n x 1] */ \ /* _x : input array [size: _n x 1] */ \
/* _n : dotprod length, _n > 0 */ \ /* _n : dotprod length, _n > 0 */ \
/* _y : output sample pointer */ \ /* _y : output sample pointer */ \
void DOTPROD(_run)( TC * _v, \ int DOTPROD(_run)( TC * _v, \
TI * _x, \ TI * _x, \
unsigned int _n, \ unsigned int _n, \
TO * _y); \ TO * _y); \
\ \
/* This provides the same unoptimized operation as the 'run()' method */ \ /* This provides the same unoptimized operation as the 'run()' method */ \
/* above, but with the loop unrolled by a factor of 4. It is marginally */ \ /* above, but with the loop unrolled by a factor of 4. It is marginally */ \
@ -789,10 +795,10 @@ void DOTPROD(_run)( TC * _v, \
/* _x : input array [size: _n x 1] */ \ /* _x : input array [size: _n x 1] */ \
/* _n : dotprod length, _n > 0 */ \ /* _n : dotprod length, _n > 0 */ \
/* _y : output sample pointer */ \ /* _y : output sample pointer */ \
void DOTPROD(_run4)( TC * _v, \ int DOTPROD(_run4)(TC * _v, \
TI * _x, \ TI * _x, \
unsigned int _n, \ unsigned int _n, \
TO * _y); \ TO * _y); \
\ \
/* Create vector dot product object */ \ /* Create vector dot product object */ \
/* _v : coefficients array [size: _n x 1] */ \ /* _v : coefficients array [size: _n x 1] */ \
@ -828,18 +834,18 @@ DOTPROD() DOTPROD(_recreate_rev)(DOTPROD() _q, \
unsigned int _n); \ unsigned int _n); \
\ \
/* Destroy dotprod object, freeing all internal memory */ \ /* Destroy dotprod object, freeing all internal memory */ \
void DOTPROD(_destroy)(DOTPROD() _q); \ int DOTPROD(_destroy)(DOTPROD() _q); \
\ \
/* Print dotprod object internals to standard output */ \ /* Print dotprod object internals to standard output */ \
void DOTPROD(_print)(DOTPROD() _q); \ int DOTPROD(_print)(DOTPROD() _q); \
\ \
/* Execute dot product on an input array */ \ /* Execute dot product on an input array */ \
/* _q : dotprod object */ \ /* _q : dotprod object */ \
/* _x : input array [size: _n x 1] */ \ /* _x : input array [size: _n x 1] */ \
/* _y : output sample pointer */ \ /* _y : output sample pointer */ \
void DOTPROD(_execute)(DOTPROD() _q, \ int DOTPROD(_execute)(DOTPROD() _q, \
TI * _x, \ TI * _x, \
TO * _y); \ TO * _y); \
LIQUID_DOTPROD_DEFINE_API(LIQUID_DOTPROD_MANGLE_RRRF, LIQUID_DOTPROD_DEFINE_API(LIQUID_DOTPROD_MANGLE_RRRF,
float, float,
@ -912,14 +918,6 @@ EQLMS() EQLMS(_create_rnyquist)(int _type, \
EQLMS() EQLMS(_create_lowpass)(unsigned int _n, \ EQLMS() EQLMS(_create_lowpass)(unsigned int _n, \
float _fc); \ float _fc); \
\ \
/* Re-create EQ initialized with external coefficients */ \
/* _q : equalizer object */ \
/* _h : filter coefficients (NULL for {1,0,0...}), [size: _n x 1] */ \
/* _h_len : filter length */ \
EQLMS() EQLMS(_recreate)(EQLMS() _q, \
T * _h, \
unsigned int _h_len); \
\
/* Destroy equalizer object, freeing all internal memory */ \ /* Destroy equalizer object, freeing all internal memory */ \
int EQLMS(_destroy)(EQLMS() _q); \ int EQLMS(_destroy)(EQLMS() _q); \
\ \
@ -958,6 +956,16 @@ int EQLMS(_push_block)(EQLMS() _q, \
int EQLMS(_execute)(EQLMS() _q, \ int EQLMS(_execute)(EQLMS() _q, \
T * _y); \ T * _y); \
\ \
/* Execute equalizer as decimator */ \
/* _q : equalizer object */ \
/* _x : input sample array [size: _k x 1] */ \
/* _y : output sample */ \
/* _k : down-sampling rate */ \
int EQLMS(_decim_execute)(EQLMS() _q, \
T * _x, \
T * _y, \
unsigned int _k); \
\
/* Execute equalizer with block of samples using constant */ \ /* Execute equalizer with block of samples using constant */ \
/* modulus algorithm, operating on a decimation rate of _k */ \ /* modulus algorithm, operating on a decimation rate of _k */ \
/* samples. */ \ /* samples. */ \
@ -6288,11 +6296,17 @@ float SYMTRACK(_get_bandwidth)(SYMTRACK() _q); \
int SYMTRACK(_set_bandwidth)(SYMTRACK() _q, \ int SYMTRACK(_set_bandwidth)(SYMTRACK() _q, \
float _bw); \ float _bw); \
\ \
/* Adjust internal NCO by requested phase */ \ /* Adjust internal NCO by requested frequency */ \
/* _q : symtrack object */ \ /* _q : symtrack object */ \
/* _dphi : NCO phase adjustment [radians] */ \ /* _dphi : NCO phase adjustment [radians] */ \
int SYMTRACK(_adjust_frequency)(SYMTRACK() _q, \
T _dphi); \
\
/* Adjust internal NCO by requested phase */ \
/* _q : symtrack object */ \
/* _phi : NCO phase adjustment [radians] */ \
int SYMTRACK(_adjust_phase)(SYMTRACK() _q, \ int SYMTRACK(_adjust_phase)(SYMTRACK() _q, \
T _dphi); \ T _phi); \
\ \
/* Set symtrack equalization strategy to constant modulus (default) */ \ /* Set symtrack equalization strategy to constant modulus (default) */ \
int SYMTRACK(_set_eq_cm)(SYMTRACK() _q); \ int SYMTRACK(_set_eq_cm)(SYMTRACK() _q); \

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.