libosmocodec: implement ECU (Error Concealment Unit) for FR

When a bad GSM voice frame is received, it's being replaced
by a silence frame. This may cause unpleasant audio effects.

This change implements a functionality to craft a replacement
frame from the last known good frame. Currently, only FR is
supported, support for other codecs may be added latter.

Change-Id: I06a21f60db01bfe1c2b838f93866fad1d53fdcd1
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 78542b2..877a302 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -17,7 +17,8 @@
 		 write_queue/wqueue_test socket/socket_test		\
 		 coding/coding_test conv/conv_gsm0503_test		\
 		 abis/abis_test endian/endian_test sercomm/sercomm_test	\
-		 stats/stats_test prbs/prbs_test gsm23003/gsm23003_test
+		 stats/stats_test prbs/prbs_test gsm23003/gsm23003_test \
+		 codec/codec_ecu_fr_test
 
 if ENABLE_MSGFILE
 check_PROGRAMS += msgfile/msgfile_test
@@ -136,6 +137,9 @@
 codec_codec_test_SOURCES = codec/codec_test.c
 codec_codec_test_LDADD = $(LDADD) $(top_builddir)/src/codec/libosmocodec.la
 
+codec_codec_ecu_fr_test_SOURCES = codec/codec_ecu_fr_test.c
+codec_codec_ecu_fr_test_LDADD = $(LDADD) $(top_builddir)/src/codec/libosmocodec.la
+
 loggingrb_loggingrb_test_SOURCES = loggingrb/loggingrb_test.c
 loggingrb_loggingrb_test_LDADD = $(LDADD)
 
@@ -205,11 +209,13 @@
              gsm0808/gsm0808_test.ok gb/bssgp_fc_tests.err		\
              gb/bssgp_fc_tests.ok gb/bssgp_fc_tests.sh			\
              gb/gprs_bssgp_test.ok gb/gprs_ns_test.ok gea/gea_test.ok	\
-             gprs/gprs_test.ok kasumi/kasumi_test.ok codec/codec_test.ok \
+             gprs/gprs_test.ok kasumi/kasumi_test.ok			\
              msgfile/msgfile_test.ok msgfile/msgconfig.cfg		\
              logging/logging_test.ok logging/logging_test.err		\
              fr/fr_test.ok loggingrb/logging_test.ok			\
              loggingrb/logging_test.err	strrb/strrb_test.ok		\
+             codec/codec_test.ok \
+             codec/codec_ecu_fr_test.ok \
 	     vty/vty_test.ok \
 	     vty/fail_not_de-indented.cfg \
 	     vty/fail_tabs_and_spaces.cfg \