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 ++++++++++++++++++++++++++++++++ openbsc/src/libmgcp/mgcp_transcode.c | 51 +----------------------------- 2 files changed, 54 insertions(+), 50 deletions(-) (limited to '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); diff --git a/openbsc/src/libmgcp/mgcp_transcode.c b/openbsc/src/libmgcp/mgcp_transcode.c index a5f71faf6..ed5f50be3 100644 --- a/openbsc/src/libmgcp/mgcp_transcode.c +++ b/openbsc/src/libmgcp/mgcp_transcode.c @@ -22,64 +22,15 @@ #include -#include "../../bscconfig.h" - #include "g711common.h" -#include -#ifdef HAVE_BCG729 -#include -#include -#endif #include #include #include +#include #include -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_; -- cgit v1.2.3