mgcp: Add CLI tool to test audio conversion

This tool uses mgcp_transcode.c to convert audio data from stdin to
stdout.

Sponsored-by: On-Waves ehf
diff --git a/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.c b/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.c
index cadc876..91c0c38 100644
--- a/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.c
+++ b/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.c
@@ -72,6 +72,19 @@
 	size_t dst_samples_per_frame;
 };
 
+int mgcp_transcoding_get_frame_size(void *state_, int nsamples, int dst)
+{
+	struct mgcp_process_rtp_state *state = state_;
+	if (dst)
+		return (nsamples >= 0 ?
+			nsamples / state->dst_samples_per_frame :
+			1) * state->dst_frame_size;
+	else
+		return (nsamples >= 0 ?
+			nsamples / state->src_samples_per_frame :
+			1) * state->src_frame_size;
+}
+
 static enum audio_format get_audio_format(const struct mgcp_rtp_end *rtp_end)
 {
 	if (rtp_end->subtype_name) {
diff --git a/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.h b/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.h
index 2dfb06a..0961634 100644
--- a/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.h
+++ b/openbsc/src/osmo-bsc_mgcp/mgcp_transcode.h
@@ -31,4 +31,6 @@
 int mgcp_transcoding_process_rtp(struct mgcp_endpoint *endp,
 				 struct mgcp_rtp_end *dst_end,
 				 char *data, int *len, int buf_size);
+
+int mgcp_transcoding_get_frame_size(void *state_, int nsamples, int dst);
 #endif /* OPENBSC_MGCP_TRANSCODE_H */