From a8367a627d0c149d0ad6aa57955d7b6ddf799901 Mon Sep 17 00:00:00 2001
From: smorlat <smorlat@3f6dc0c8-ddfe-455d-9043-3cd528dc4637>
Date: Thu, 27 Aug 2009 14:15:58 +0000
Subject: [PATCH] allow noise gate threshold setting from mediastream.

git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@604 3f6dc0c8-ddfe-455d-9043-3cd528dc4637
---
 linphone/mediastreamer2/tests/mediastream.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/linphone/mediastreamer2/tests/mediastream.c b/linphone/mediastreamer2/tests/mediastream.c
index 0b1a58f758..7cb7faa94b 100644
--- a/linphone/mediastreamer2/tests/mediastream.c
+++ b/linphone/mediastreamer2/tests/mediastream.c
@@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "mediastreamer2/mediastream.h"
 #include "mediastreamer2/msequalizer.h"
+#include "mediastreamer2/msvolume.h"
 #ifdef VIDEO_ENABLED
 #include "mediastreamer2/msv4l.h"
 #endif
@@ -41,6 +42,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 static int cond=1;
 
 static const char * capture_card=NULL;
+static float ng_threshold=-1;
 static bool_t use_ng=FALSE;
 
 static void stop_handler(int signum)
@@ -132,6 +134,7 @@ const char *usage="mediastream --local <port> --remote <ip:port> --payload <payl
 								"[ --ec (enable echo canceller)]\n"
 								"[ --agc (enable automatic gain control)]\n"
 								"[ --ng (enable noise gate)]\n"
+								"[ --ng-threshold <(float) [0-1]> (noise gate threshold)]\n"
 								"[ --capture-card <index>] \n";
 static void run_media_streams(int localport, const char *remote_ip, int remoteport, int payload, const char *fmtp, int jitter, bool_t ec, int bitrate, MSVideoSize vs, bool_t agc, bool_t eq);
 
@@ -209,6 +212,9 @@ int main(int argc, char * argv[])
 			eq=TRUE;
 		}else if (strcmp(argv[i],"--ng")==0){
 			use_ng=1;
+		}else if (strcmp(argv[i],"--ng-threshold")==0){
+			i++;
+			ng_threshold=atof(argv[i]);
 		}
 	}
 
@@ -249,7 +255,11 @@ void run_media_streams(int localport,  const char *remote_ip, int remoteport, in
 			ms_snd_card_manager_get_default_playback_card(manager),
 			capt,
 			 ec);
-		if (audio) session=audio->session;
+		if (audio) {
+			if (use_ng && ng_threshold!=-1)
+				ms_filter_call_method(audio->volsend,MS_VOLUME_SET_NOISE_GATE_THRESHOLD,&ng_threshold);
+			session=audio->session;
+		}
 	}else{
 #ifdef VIDEO_ENABLED
 		if (eq){
-- 
GitLab