mirror of https://github.com/drowe67/codec2.git
datac14 freedv_api port
parent
2ee2989c9c
commit
3b9037c9c7
|
@ -1078,6 +1078,12 @@ if (NOT APPLE)
|
|||
./freedv_data_raw_tx --testframes 10 DATAC13 /dev/zero /dev/null")
|
||||
set_tests_properties(test_memory_leak_FreeDV_DATAC13_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors")
|
||||
|
||||
add_test(NAME test_memory_leak_FreeDV_DATAC14_tx
|
||||
COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src;
|
||||
valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \
|
||||
./freedv_data_raw_tx --testframes 10 DATAC14 /dev/zero /dev/null")
|
||||
set_tests_properties(test_memory_leak_FreeDV_DATAC14_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors")
|
||||
|
||||
add_test(NAME test_memory_leak_FreeDV_700E_tx
|
||||
COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src;
|
||||
valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \
|
||||
|
@ -1321,6 +1327,13 @@ endif(NOT APPLE)
|
|||
./freedv_data_raw_rx DATAC13 - binaryOut.bin -v;
|
||||
diff binaryIn.bin binaryOut.bin")
|
||||
|
||||
add_test(NAME test_freedv_data_raw_ofdm_datac14_burst_file
|
||||
COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src;
|
||||
head -c $((3*10)) </dev/urandom > binaryIn.bin;
|
||||
./freedv_data_raw_tx DATAC14 binaryIn.bin - --bursts 10 |
|
||||
./freedv_data_raw_rx DATAC14 - binaryOut.bin -v;
|
||||
diff binaryIn.bin binaryOut.bin")
|
||||
|
||||
# FSK LDPC default 100 bit/s 2FSK, enough noise for several % raw BER to give
|
||||
# FEC/acquisition a work out, bursts of 1 frame as that stresses acquisition
|
||||
add_test(NAME test_freedv_data_raw_fsk_ldpc_100
|
||||
|
|
|
@ -197,6 +197,7 @@ void freedv_ofdm_data_open(struct freedv *f) {
|
|||
if (f->mode == FREEDV_MODE_DATAC3) strcpy(mode, "datac3");
|
||||
if (f->mode == FREEDV_MODE_DATAC4) strcpy(mode, "datac4");
|
||||
if (f->mode == FREEDV_MODE_DATAC13) strcpy(mode, "datac13");
|
||||
if (f->mode == FREEDV_MODE_DATAC14) strcpy(mode, "datac14");
|
||||
|
||||
ofdm_init_mode(mode, &ofdm_config);
|
||||
f->ofdm = ofdm_create(&ofdm_config);
|
||||
|
|
|
@ -125,7 +125,8 @@ struct freedv *freedv_open_advanced(int mode, struct freedv_advanced *adv) {
|
|||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC1, mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, mode)) == false)
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, mode)) == false)
|
||||
return NULL;
|
||||
|
||||
/* set everything to zero just in case */
|
||||
|
@ -154,6 +155,7 @@ struct freedv *freedv_open_advanced(int mode, struct freedv_advanced *adv) {
|
|||
if (FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, mode)) freedv_ofdm_data_open(f);
|
||||
if (FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, mode)) freedv_ofdm_data_open(f);
|
||||
if (FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, mode)) freedv_ofdm_data_open(f);
|
||||
if (FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, mode)) freedv_ofdm_data_open(f);
|
||||
|
||||
varicode_decode_init(&f->varicode_dec_states, 1);
|
||||
|
||||
|
@ -235,7 +237,8 @@ void freedv_close(struct freedv *freedv) {
|
|||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC1, freedv->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, freedv->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, freedv->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, freedv->mode)) {
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, freedv->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, freedv->mode)) {
|
||||
FREE(freedv->rx_syms);
|
||||
FREE(freedv->rx_amps);
|
||||
FREE(freedv->ldpc);
|
||||
|
@ -266,7 +269,8 @@ static int is_ofdm_mode(struct freedv *f) {
|
|||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC1, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode);
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, f->mode);
|
||||
}
|
||||
|
||||
static int is_ofdm_data_mode(struct freedv *f) {
|
||||
|
@ -274,7 +278,8 @@ static int is_ofdm_data_mode(struct freedv *f) {
|
|||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC1, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode);
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, f->mode);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
|
@ -464,7 +469,8 @@ void freedv_rawdatacomptx(struct freedv *f, COMP mod_out[],
|
|||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC1, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode))
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, f->mode))
|
||||
freedv_comptx_ofdm(f, mod_out);
|
||||
|
||||
if (FDV_MODE_ACTIVE(FREEDV_MODE_FSK_LDPC, f->mode)) {
|
||||
|
@ -1063,7 +1069,8 @@ int freedv_rawdatacomprx(struct freedv *f, unsigned char *packed_payload_bits,
|
|||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC1, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC3, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC4, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode))
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC13, f->mode) ||
|
||||
FDV_MODE_ACTIVE(FREEDV_MODE_DATAC14, f->mode))
|
||||
rx_status = freedv_comp_short_rx_ofdm(f, (void *)demod_in, 0, 1.0f);
|
||||
if (FDV_MODE_ACTIVE(FREEDV_MODE_FSK_LDPC, f->mode)) {
|
||||
rx_status = freedv_rx_fsk_ldpc_data(f, demod_in);
|
||||
|
|
|
@ -61,6 +61,7 @@ extern "C" {
|
|||
#define FREEDV_MODE_DATAC0 14
|
||||
#define FREEDV_MODE_DATAC4 18
|
||||
#define FREEDV_MODE_DATAC13 19
|
||||
#define FREEDV_MODE_DATAC14 20
|
||||
|
||||
// Sample rates used
|
||||
#define FREEDV_FS_8000 8000
|
||||
|
@ -140,6 +141,9 @@ extern "C" {
|
|||
#if !defined(FREEDV_MODE_DATAC13_EN)
|
||||
#define FREEDV_MODE_DATAC13_EN FREEDV_MODE_EN_DEFAULT
|
||||
#endif
|
||||
#if !defined(FREEDV_MODE_DATAC14_EN)
|
||||
#define FREEDV_MODE_DATAC14_EN FREEDV_MODE_EN_DEFAULT
|
||||
#endif
|
||||
|
||||
#define FDV_MODE_ACTIVE(mode_name, var) \
|
||||
((mode_name##_EN) == 0 ? 0 : (var) == mode_name)
|
||||
|
|
|
@ -214,6 +214,8 @@ int main(int argc, char *argv[]) {
|
|||
mode = FREEDV_MODE_DATAC4;
|
||||
if (!strcmp(argv[dx], "DATAC13") || !strcmp(argv[dx], "datac13"))
|
||||
mode = FREEDV_MODE_DATAC13;
|
||||
if (!strcmp(argv[dx], "DATAC14") || !strcmp(argv[dx], "datac14"))
|
||||
mode = FREEDV_MODE_DATAC14;
|
||||
if (mode == -1) {
|
||||
fprintf(stderr, "Error in mode: %s\n", argv[dx]);
|
||||
exit(1);
|
||||
|
|
|
@ -236,6 +236,8 @@ int main(int argc, char *argv[]) {
|
|||
mode = FREEDV_MODE_DATAC4;
|
||||
if (!strcmp(argv[dx], "DATAC13") || !strcmp(argv[dx], "datac13"))
|
||||
mode = FREEDV_MODE_DATAC13;
|
||||
if (!strcmp(argv[dx], "DATAC14") || !strcmp(argv[dx], "datac14"))
|
||||
mode = FREEDV_MODE_DATAC14;
|
||||
if (mode == -1) {
|
||||
fprintf(stderr, "Error: in mode: %s", argv[dx]);
|
||||
exit(1);
|
||||
|
|
Loading…
Reference in New Issue