# API compatibility report for the libcodec2-dev library between 0.8-1 and 0.8.1-1 versions on x86_64

Binary
Compatibility Source
Compatibility

## Test Info

Library Name | libcodec2-dev
Version #1 | 0.8-1
Version #2 | 0.8.1-1
Arch | x86_64
GCC Version | 7
Subject | Binary Compatibility

## Test Results

Total Header Files | 17
Total Libraries | 1
Total Symbols / Types | 166 / 46
Compatibility | 77.4%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 0
Removed Symbols | High | 0
Problems with Data Types | High | 0
Medium | 1
Low | 0
Problems with Symbols | High | 0
Medium | 0
Low | 0
Problems with Constants | Low | 0

## Problems with Data Types, Medium Severity 1

modem_stats.h
[+] struct MODEM_STATS 1

| Change | Effect
--- | --- | ---
1 | Field sync_metric has been added at the middle position of this structural type. | Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.

[+] affected symbols: 75 (45.2%)
cohpsk_get_demod_stats ( struct COHPSK* cohpsk, struct MODEM_STATS* stats )
2nd parameter 'stats' (pointer) has base type 'struct MODEM_STATS'.
fdmdv_get_demod_stats ( struct FDMDV* fdmdv_state, struct MODEM_STATS* stats )
2nd parameter 'stats' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_create ( int Fs, int Rb )
Field 'retval.stats' in the return value (pointer) has base type 'struct MODEM_STATS'.
fmfsk_demod ( struct FMFSK* fmfsk, uint8_t* rx_bits, float* fmfsk_in )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_destroy ( struct FMFSK* fmfsk )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_get_demod_stats ( struct FMFSK* fmfsk, struct MODEM_STATS* stats )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_mod ( struct FMFSK* fmfsk, float* fmfsk_out, uint8_t* bits_in )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_nin ( struct FMFSK* fmfsk )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
freedv_close ( struct freedv* freedv )
Field 'freedv.fmfsk.stats' in 1st parameter 'freedv' (pointer) has base type 'struct MODEM_STATS'.
freedv_codecrx ( struct freedv* freedv, unsigned char* packed_codec_bits, short* demod_in )
Field 'freedv.fmfsk.stats' in 1st parameter 'freedv' (pointer) has base type 'struct MODEM_STATS'.
...
to the top

## Header Files 17

codec2.h
codec2_cohpsk.h
codec2_fdmdv.h
codec2_fifo.h
codec2_fm.h
codec2_ofdm.h
comp.h
comp_prim.h
fmfsk.h
freedv_api.h
freedv_api_internal.h
fsk.h
golay23.h
kiss_fft.h
modem_stats.h
varicode.h
version.h
to the top

## Libraries 1

libcodec2.so.0.8
to the top

## Test Info

Library Name | libcodec2-dev
Version #1 | 0.8-1
Version #2 | 0.8.1-1
Arch | x86_64
Subject | Source Compatibility

## Test Results

Total Header Files | 17
Total Libraries | 1
Total Symbols / Types | 181 / 46
Compatibility | 100%

## Problem Summary

| Severity | Count
--- | --- | ---
Added Symbols | - | 0
Removed Symbols | High | 0
Problems with Data Types | High | 0
Medium | 0
Low | 1
Problems with Symbols | High | 0
Medium | 0
Low | 0
Problems with Constants | Low | 1
Other Changes in Constants | - | 1

## Problems with Data Types, Low Severity 1

modem_stats.h
[+] struct MODEM_STATS 1

| Change | Effect
--- | --- | ---
1 | Field sync_metric has been added to this type. | This field will not be initialized or used by old client applications.

[+] affected symbols: 76 (42%)
cohpsk_get_demod_stats ( struct COHPSK* cohpsk, struct MODEM_STATS* stats )
2nd parameter 'stats' (pointer) has base type 'struct MODEM_STATS'.
fdmdv_get_demod_stats ( struct FDMDV* fdmdv_state, struct MODEM_STATS* stats )
2nd parameter 'stats' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_create ( int Fs, int Rb )
Field 'retval.stats' in the return value (pointer) has base type 'struct MODEM_STATS'.
fmfsk_demod ( struct FMFSK* fmfsk, uint8_t* rx_bits, float* fmfsk_in )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_destroy ( struct FMFSK* fmfsk )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_get_demod_stats ( struct FMFSK* fmfsk, struct MODEM_STATS* stats )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_mod ( struct FMFSK* fmfsk, float* fmfsk_out, uint8_t* bits_in )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
fmfsk_nin ( struct FMFSK* fmfsk )
Field 'fmfsk.stats' in 1st parameter 'fmfsk' (pointer) has base type 'struct MODEM_STATS'.
freedv_close ( struct freedv* freedv )
Field 'freedv.fmfsk.stats' in 1st parameter 'freedv' (pointer) has base type 'struct MODEM_STATS'.
freedv_codecrx ( struct freedv* freedv, unsigned char* packed_codec_bits, short* demod_in )
Field 'freedv.fmfsk.stats' in 1st parameter 'freedv' (pointer) has base type 'struct MODEM_STATS'.
...
to the top

## Problems with Constants, Low Severity 1

version.h
[+] CODEC2_VERSION

| Change | Effect
--- | --- | ---
1 | The value of constant CODEC2_VERSION has been changed from "0.8" to "0.8.1". | Recompilation of a client program may be broken.

to the top

## Other Changes in Constants 1

version.h
[+] CODEC2_VERSION_PATCH

| Change | Effect
--- | --- | ---
1 | The constant CODEC2_VERSION_PATCH with value 1 has been added. | No effect.

to the top

## Header Files 17

codec2.h
codec2_cohpsk.h
codec2_fdmdv.h
codec2_fifo.h
codec2_fm.h
codec2_ofdm.h
comp.h
comp_prim.h
fmfsk.h
freedv_api.h
freedv_api_internal.h
fsk.h
golay23.h
kiss_fft.h
modem_stats.h
varicode.h
version.h
to the top

## Libraries 1

libcodec2.so.0.8
to the top