From 057ecf6ce3c7e3dc83e62dea5773823caa95e44c Mon Sep 17 00:00:00 2001 From: Marco Bascetta Date: Wed, 17 Jan 2018 09:09:25 +0100 Subject: [PATCH 13/23] voip/audiostream: added methods useful to enable/disable AudioMixer input related to unused/unwanted path. --- include/mediastreamer2/mediastream.h | 6 ++++++ src/voip/audiostream.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/include/mediastreamer2/mediastream.h b/include/mediastreamer2/mediastream.h index 23bb7084..b6232b6a 100644 --- a/include/mediastreamer2/mediastream.h +++ b/include/mediastreamer2/mediastream.h @@ -717,6 +717,12 @@ MS2_PUBLIC int audio_stream_send_dtmf (AudioStream * stream, char dtmf); MS2_PUBLIC MSFilter *audio_stream_get_local_player(AudioStream *stream); +MS2_PUBLIC int audio_stream_local_player_enable_path(AudioStream *st, bool_t enabled); + +MS2_PUBLIC int audio_stream_mic_enable_path(AudioStream *st, bool_t enabled); + +MS2_PUBLIC int audio_stream_player_enable_path(AudioStream *st, bool_t enabled); + MS2_PUBLIC int audio_stream_mixed_record_open(AudioStream *st, const char*filename); MS2_PUBLIC int audio_stream_mixed_record_start(AudioStream *st); diff --git a/src/voip/audiostream.c b/src/voip/audiostream.c index 27d8cfe1..f309bd46 100644 --- a/src/voip/audiostream.c +++ b/src/voip/audiostream.c @@ -1378,6 +1378,39 @@ MSFilter * audio_stream_get_local_player(AudioStream *st) { return st->local_player; } +int audio_stream_local_player_enable_path(AudioStream *st, bool_t enabled) { + if (st->local_mixer && st->local_player) { + MSAudioMixerCtl mctl = {0}; + mctl.pin = 1; + mctl.param.active = enabled; + return ms_filter_call_method(st->local_mixer, MS_AUDIO_MIXER_SET_ACTIVE, &mctl); + } + + return -1; +} + +int audio_stream_mic_enable_path(AudioStream *st, bool_t enabled) { + if (st->outbound_mixer) { + MSAudioMixerCtl mctl = {0}; + mctl.pin = 0; + mctl.param.active = enabled; + return ms_filter_call_method(st->outbound_mixer, MS_AUDIO_MIXER_SET_ACTIVE, &mctl); + } + + return -1; +} + +int audio_stream_player_enable_path(AudioStream *st, bool_t enabled) { + if (st->outbound_mixer) { + MSAudioMixerCtl mctl = {0}; + mctl.pin = 1; + mctl.param.active = enabled; + return ms_filter_call_method(st->outbound_mixer, MS_AUDIO_MIXER_SET_ACTIVE, &mctl); + } + + return -1; +} + void audio_stream_record(AudioStream *st, const char *name){ if (ms_filter_get_id(st->soundwrite)==MS_FILE_REC_ID){ ms_filter_call_method_noarg(st->soundwrite,MS_FILE_REC_CLOSE); -- 2.11.0