Merge branch 'zecke/fixes/mgcp-transociding-tests'

Various clean-ups and extensions to the tests. Share one test
set-up routine, capture more of the API inside the output files.
diff --git a/openbsc/include/openbsc/mgcp_transcode.h b/openbsc/include/openbsc/mgcp_transcode.h
index 0961634..cb11cb2 100644
--- a/openbsc/include/openbsc/mgcp_transcode.h
+++ b/openbsc/include/openbsc/mgcp_transcode.h
@@ -19,6 +19,59 @@
 #ifndef OPENBSC_MGCP_TRANSCODE_H
 #define OPENBSC_MGCP_TRANSCODE_H
 
+#include "bscconfig.h"
+
+#include <gsm.h>
+#ifdef HAVE_BCG729
+#include <bcg729/decoder.h>
+#include <bcg729/encoder.h>
+#endif
+
+enum audio_format {
+	AF_INVALID,
+	AF_S16,
+	AF_L16,
+	AF_GSM,
+	AF_G729,
+	AF_PCMA
+};
+
+
+struct mgcp_process_rtp_state {
+	/* decoding */
+	enum audio_format src_fmt;
+	union {
+		gsm gsm_handle;
+#ifdef HAVE_BCG729
+		bcg729DecoderChannelContextStruct *g729_dec;
+#endif
+	} src;
+	size_t src_frame_size;
+	size_t src_samples_per_frame;
+
+	/* processing */
+
+	/* encoding */
+	enum audio_format dst_fmt;
+	union {
+		gsm gsm_handle;
+#ifdef HAVE_BCG729
+		bcg729EncoderChannelContextStruct *g729_enc;
+#endif
+	} dst;
+	size_t dst_frame_size;
+	size_t dst_samples_per_frame;
+	int dst_packet_duration;
+
+	int is_running;
+	uint16_t next_seq;
+	uint32_t next_time;
+	int16_t samples[10*160];
+	size_t sample_cnt;
+	size_t sample_offs;
+};
+
+
 int mgcp_transcoding_setup(struct mgcp_endpoint *endp,
 			   struct mgcp_rtp_end *dst_end,
 			   struct mgcp_rtp_end *src_end);
diff --git a/openbsc/src/libmgcp/mgcp_transcode.c b/openbsc/src/libmgcp/mgcp_transcode.c
index a5f71fa..ed5f50b 100644
--- a/openbsc/src/libmgcp/mgcp_transcode.c
+++ b/openbsc/src/libmgcp/mgcp_transcode.c
@@ -22,64 +22,15 @@
 #include <errno.h>
 
 
-#include "../../bscconfig.h"
-
 #include "g711common.h"
-#include <gsm.h>
-#ifdef HAVE_BCG729
-#include <bcg729/decoder.h>
-#include <bcg729/encoder.h>
-#endif
 
 #include <openbsc/debug.h>
 #include <openbsc/mgcp.h>
 #include <openbsc/mgcp_internal.h>
+#include <openbsc/mgcp_transcode.h>
 
 #include <osmocom/core/talloc.h>
 
-enum audio_format {
-	AF_INVALID,
-	AF_S16,
-	AF_L16,
-	AF_GSM,
-	AF_G729,
-	AF_PCMA
-};
-
-struct mgcp_process_rtp_state {
-	/* decoding */
-	enum audio_format src_fmt;
-	union {
-		gsm gsm_handle;
-#ifdef HAVE_BCG729
-		bcg729DecoderChannelContextStruct *g729_dec;
-#endif
-	} src;
-	size_t src_frame_size;
-	size_t src_samples_per_frame;
-
-	/* processing */
-
-	/* encoding */
-	enum audio_format dst_fmt;
-	union {
-		gsm gsm_handle;
-#ifdef HAVE_BCG729
-		bcg729EncoderChannelContextStruct *g729_enc;
-#endif
-	} dst;
-	size_t dst_frame_size;
-	size_t dst_samples_per_frame;
-	int dst_packet_duration;
-
-	int is_running;
-	uint16_t next_seq;
-	uint32_t next_time;
-	int16_t samples[10*160];
-	size_t sample_cnt;
-	size_t sample_offs;
-};
-
 int mgcp_transcoding_get_frame_size(void *state_, int nsamples, int dst)
 {
 	struct mgcp_process_rtp_state *state = state_;
diff --git a/openbsc/tests/mgcp/mgcp_transcoding_test.c b/openbsc/tests/mgcp/mgcp_transcoding_test.c
index 9ba2c4b..6b33645 100644
--- a/openbsc/tests/mgcp/mgcp_transcoding_test.c
+++ b/openbsc/tests/mgcp/mgcp_transcoding_test.c
@@ -140,38 +140,73 @@
 
 int mgcp_get_trans_frame_size(void *state_, int nsamples, int dst);
 
+static int given_configured_endpoint(int in_samples, int out_samples,
+				const char *srcfmt, const char *dstfmt,
+				void **out_ctx, struct mgcp_endpoint **out_endp)
+{
+	int rc;
+	struct mgcp_rtp_end *dst_end;
+	struct mgcp_rtp_end *src_end;
+	struct mgcp_config *cfg;
+	struct mgcp_trunk_config *tcfg;
+	struct mgcp_endpoint *endp;
+
+	cfg = mgcp_config_alloc();
+	tcfg = talloc_zero(cfg, struct mgcp_trunk_config);
+	endp = talloc_zero(tcfg, struct mgcp_endpoint);
+
+
+	tcfg->endpoints = endp;
+	tcfg->number_endpoints = 1;
+	tcfg->cfg = cfg;
+	endp->tcfg = tcfg;
+	endp->cfg = cfg;
+	mgcp_free_endp(endp);
+
+	dst_end = &endp->bts_end;
+	dst_end->payload_type = audio_name_to_type(dstfmt);
+
+	src_end = &endp->net_end;
+	src_end->payload_type = audio_name_to_type(srcfmt);
+
+	if (out_samples) {
+		dst_end->frame_duration_den = dst_end->rate;
+		dst_end->frame_duration_num = out_samples;
+		dst_end->frames_per_packet = 1;
+		dst_end->force_output_ptime = 1;
+	}
+
+	rc = mgcp_transcoding_setup(endp, dst_end, src_end);
+	if (rc < 0) {
+		printf("setup failed: %s", strerror(-rc));
+		abort();
+	}
+
+	*out_ctx = cfg;
+	*out_endp = endp;
+	return 0;
+}
+
+
 static int transcode_test(const char *srcfmt, const char *dstfmt,
 			  uint8_t *src_pkts, size_t src_pkt_size)
 {
 	char buf[4096] = {0x80, 0};
-	int rc;
+	void *ctx;
+
 	struct mgcp_rtp_end *dst_end;
-	struct mgcp_rtp_end *src_end;
-	struct mgcp_trunk_config tcfg = {{0}};
-	struct mgcp_endpoint endp = {0};
 	struct mgcp_process_rtp_state *state;
+	struct mgcp_endpoint *endp;
 	int in_size;
-	int in_samples = 160;
+	const int in_samples = 160;
 	int len, cont;
 
 	printf("== Transcoding test ==\n");
 	printf("converting %s -> %s\n", srcfmt, dstfmt);
 
-	tcfg.endpoints = &endp;
-	tcfg.number_endpoints = 1;
-	endp.tcfg = &tcfg;
-	mgcp_free_endp(&endp);
+	given_configured_endpoint(in_samples, 0, srcfmt, dstfmt, &ctx, &endp);
 
-	dst_end = &endp.bts_end;
-	src_end = &endp.net_end;
-
-	src_end->payload_type = audio_name_to_type(srcfmt);
-	dst_end->payload_type = audio_name_to_type(dstfmt);
-
-	rc = mgcp_transcoding_setup(&endp, dst_end, src_end);
-	if (rc < 0)
-		errx(1, "setup failed: %s", strerror(-rc));
-
+	dst_end = &endp->bts_end;
 	state = dst_end->rtp_process_data;
 	OSMO_ASSERT(state != NULL);
 
@@ -182,10 +217,12 @@
 
 	len = src_pkt_size;
 
-	cont = mgcp_transcoding_process_rtp(&endp, dst_end,
+	cont = mgcp_transcoding_process_rtp(endp, dst_end,
 					    buf, &len, sizeof(buf));
-	if (cont < 0)
-		errx(1, "processing failed: %s", strerror(-cont));
+	if (cont < 0) {
+		printf("processing failed: %s", strerror(-cont));
+		abort();
+	}
 
 	if (len < 24) {
 		printf("encoded: %s\n", osmo_hexdump((unsigned char *)buf, len));
@@ -203,18 +240,18 @@
 			printf("\n");
 		} while (nchars - prefix >= cutlen);
 	}
+	printf("counted: %d\n", cont);
+	talloc_free(ctx);
 	return 0;
 }
 
 static int test_repacking(int in_samples, int out_samples, int no_transcode)
 {
 	char buf[4096] = {0x80, 0};
-	int cc, rc;
-	struct mgcp_rtp_end *dst_end;
-	struct mgcp_rtp_end *src_end;
-	struct mgcp_config *cfg;
-	struct mgcp_trunk_config tcfg = {{0}};
-	struct mgcp_endpoint endp = {0};
+	int cc;
+	struct mgcp_endpoint *endp;
+	void *ctx;
+
 	struct mgcp_process_rtp_state *state;
 	int in_cnt;
 	int out_size;
@@ -224,36 +261,12 @@
 	const char *srcfmt = "pcma";
 	const char *dstfmt = no_transcode ? "pcma" : "l16";
 
-	cfg = mgcp_config_alloc();
-
-	tcfg.endpoints = &endp;
-	tcfg.number_endpoints = 1;
-	tcfg.cfg = cfg;
-	endp.tcfg = &tcfg;
-	endp.cfg = cfg;
-	mgcp_free_endp(&endp);
-
-	dst_end = &endp.bts_end;
-	src_end = &endp.net_end;
-
 	printf("== Transcoding test ==\n");
 	printf("converting %s -> %s\n", srcfmt, dstfmt);
 
-	src_end->payload_type = audio_name_to_type(srcfmt);
-	dst_end->payload_type = audio_name_to_type(dstfmt);
+	given_configured_endpoint(in_samples, out_samples, srcfmt, dstfmt, &ctx, &endp);
 
-	if (out_samples) {
-		dst_end->frame_duration_den = dst_end->rate;
-		dst_end->frame_duration_num = out_samples;
-		dst_end->frames_per_packet = 1;
-		dst_end->force_output_ptime = 1;
-	}
-
-	rc = mgcp_transcoding_setup(&endp, dst_end, src_end);
-	if (rc < 0)
-		errx(1, "setup failed: %s", strerror(-rc));
-
-	state = dst_end->rtp_process_data;
+	state = endp->bts_end.rtp_process_data;
 	OSMO_ASSERT(state != NULL);
 
 	in_size = mgcp_transcoding_get_frame_size(state, in_samples, 0);
@@ -262,7 +275,7 @@
 	out_size = mgcp_transcoding_get_frame_size(state, -1, 1);
 	OSMO_ASSERT(sizeof(buf) >= out_size + 12);
 
-	buf[1] = src_end->payload_type;
+	buf[1] = endp->net_end.payload_type;
 	*(uint16_t*)(buf+2) = htons(1);
 	*(uint32_t*)(buf+4) = htonl(0);
 	*(uint32_t*)(buf+8) = htonl(0xaabbccdd);
@@ -287,24 +300,28 @@
 		len = cc;
 
 		do {
-			cont = mgcp_transcoding_process_rtp(&endp, dst_end,
+			cont = mgcp_transcoding_process_rtp(endp, &endp->bts_end,
 							    buf, &len, sizeof(buf));
 			if (cont == -EAGAIN) {
 				fprintf(stderr, "Got EAGAIN\n");
 				break;
 			}
 
-			if (cont < 0)
-				errx(1, "processing failed: %s", strerror(-cont));
+			if (cont < 0) {
+				printf("processing failed: %s", strerror(-cont));
+				abort();
+			}
 
 			len -= 12; /* ignore RTP header */
 
-			printf("got %d %s output frames (%d octets)\n",
-			       len / out_size, dstfmt, len);
+			printf("got %d %s output frames (%d octets) count=%d\n",
+			       len / out_size, dstfmt, len, cont);
 
 			len = cont;
 		} while (len > 0);
 	}
+
+	talloc_free(ctx);
 	return 0;
 }
 
diff --git a/openbsc/tests/mgcp/mgcp_transcoding_test.ok b/openbsc/tests/mgcp/mgcp_transcoding_test.ok
index 189d079..07929a8 100644
--- a/openbsc/tests/mgcp/mgcp_transcoding_test.ok
+++ b/openbsc/tests/mgcp/mgcp_transcoding_test.ok
@@ -23,12 +23,14 @@
     5a 9e 40 13 00 00 bf ed a5 62 bf ed 00 00 40 13 
     5a 9e 40 13 00 00 bf ed a5 62 bf ed 00 00 40 13 
     5a 9e 40 13 00 00 bf ed a5 62 bf ed 
+counted: 0
 == Transcoding test ==
 converting l16 -> gsm
 encoded:
     80 0b 00 00 00 00 00 a0 11 22 33 44 d4 7c e3 e9 
     62 50 39 f0 f8 b4 68 ea 6c 0e 81 1b 56 2a d5 bc 
     69 9c d1 f0 66 7a ec 49 7a 33 3d 0a de 
+counted: 12
 == Transcoding test ==
 converting l16 -> pcma
 encoded:
@@ -43,6 +45,7 @@
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 
+counted: 12
 == Transcoding test ==
 converting gsm -> l16
 encoded:
@@ -67,12 +70,14 @@
     4e 80 3c e0 06 10 cb 90 ae 48 c2 60 f9 58 34 08 
     4d a0 3a a8 06 48 cf 80 b4 60 c3 e8 f7 90 30 18 
     4d a0 3b 98 07 90 cf 18 b4 68 c4 88 
+counted: 12
 == Transcoding test ==
 converting gsm -> gsm
 encoded:
     80 03 00 01 00 00 00 a0 11 22 33 44 d4 7c e3 e9 
     62 50 39 f0 f8 b4 68 ea 6c 0e 81 1b 56 2a d5 bc 
     69 9c d1 f0 66 7a ec 49 7a 33 3d 0a de 
+counted: 0
 == Transcoding test ==
 converting gsm -> pcma
 encoded:
@@ -87,6 +92,7 @@
     db 39 20 3b 4a b9 a1 b9 c8 3f 26 38 78 be a1 b8 
     f1 3e 26 38 65 bc a6 bb ed 3f 21 3b 6f bf a6 b8 
     ec 3d 27 3b 15 bd a6 b8 eb 3d 27 38 
+counted: 12
 == Transcoding test ==
 converting pcma -> l16
 encoded:
@@ -111,12 +117,14 @@
     5a 00 42 00 00 08 be 00 a6 00 be 00 00 08 42 00 
     5a 00 42 00 00 08 be 00 a6 00 be 00 00 08 42 00 
     5a 00 42 00 00 08 be 00 a6 00 be 00 
+counted: 12
 == Transcoding test ==
 converting pcma -> gsm
 encoded:
     80 08 00 00 00 00 00 a0 11 22 33 44 d4 b9 f4 5d 
     d9 50 5a e1 a0 cd 76 ea 52 0e 87 53 ad d4 ea a2 
     0a 63 ca e9 60 79 e2 2a 25 d2 c0 f3 39 
+counted: 12
 == Transcoding test ==
 converting pcma -> pcma
 encoded:
@@ -131,6 +139,7 @@
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 d5 a5 a3 a5 
     d5 25 23 25 d5 a5 a3 a5 d5 25 23 25 
+counted: 0
 === Transcoding Bad Cases ===
 Invalid size:
 == Transcoding test ==
@@ -139,6 +148,7 @@
     80 03 00 01 00 00 00 a0 11 22 33 44 d4 7c e3 e9 
     62 50 39 f0 f8 b4 68 ea 6c 0e 81 1b 56 2a d5 bc 
     69 9c d1 f0 66 7a ec 49 7a 
+counted: 0
 Invalid data:
 == Transcoding test ==
 converting gsm -> pcma
@@ -146,6 +156,7 @@
     80 03 00 01 00 00 00 a0 11 22 33 44 ee ee ee ee 
     ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee 
     ee ee ee ee ee ee ee ee ee ee ee ee ee 
+counted: 0
 Invalid payload type:
 == Transcoding test ==
 converting gsm -> pcma
@@ -161,374 +172,375 @@
     db 39 20 3b 4a b9 a1 b9 c8 3f 26 38 78 be a1 b8 
     f1 3e 26 38 65 bc a6 bb ed 3f 21 3b 6f bf a6 b8 
     ec 3d 27 3b 15 bd a6 b8 eb 3d 27 38 
+counted: 12
 === Repacking ===
 == Transcoding test ==
 converting pcma -> l16
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 generating 160 pcma input samples
-got 2 l16 output frames (320 octets)
+got 2 l16 output frames (320 octets) count=12
 == Transcoding test ==
 converting pcma -> pcma
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 generating 160 pcma input samples
-got 2 pcma output frames (160 octets)
+got 2 pcma output frames (160 octets) count=12
 == Transcoding test ==
 converting pcma -> l16
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 == Transcoding test ==
 converting pcma -> pcma
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 == Transcoding test ==
 converting pcma -> l16
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 l16 output frames (640 octets)
+got 4 l16 output frames (640 octets) count=12
 == Transcoding test ==
 converting pcma -> pcma
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 4 pcma output frames (320 octets)
+got 4 pcma output frames (320 octets) count=12
 == Transcoding test ==
 converting pcma -> l16
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 l16 output frames (480 octets)
+got 3 l16 output frames (480 octets) count=12
 == Transcoding test ==
 converting pcma -> pcma
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 generating 160 pcma input samples
 generating 160 pcma input samples
-got 3 pcma output frames (240 octets)
+got 3 pcma output frames (240 octets) count=12
 == Transcoding test ==
 converting pcma -> l16
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 generating 160 pcma input samples
-got 1 l16 output frames (160 octets)
-got 1 l16 output frames (160 octets)
+got 1 l16 output frames (160 octets) count=12
+got 1 l16 output frames (160 octets) count=12
 == Transcoding test ==
 converting pcma -> pcma
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12
 generating 160 pcma input samples
-got 1 pcma output frames (80 octets)
-got 1 pcma output frames (80 octets)
+got 1 pcma output frames (80 octets) count=12
+got 1 pcma output frames (80 octets) count=12