From dd1f81512d32dec075e896356cf65fbebe11f303 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 22 Jul 2014 13:05:31 +0200 Subject: mgcp: Make the internal state of the transcoder accessible For the unit tests we need to look at the internal state. --- openbsc/include/openbsc/mgcp_transcode.h | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'openbsc/include/openbsc') diff --git a/openbsc/include/openbsc/mgcp_transcode.h b/openbsc/include/openbsc/mgcp_transcode.h index 0961634da..cb11cb217 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 +#ifdef HAVE_BCG729 +#include +#include +#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); -- cgit v1.2.3