[Freeswitch-svn] [commit] r7626 - in freeswitch/trunk/src: include mod/applications/mod_conference mod/codecs/mod_voipcodecs mod/endpoints/mod_alsa mod/endpoints/mod_portaudio mod/formats/mod_local_stream

Freeswitch SVN brian at freeswitch.org
Fri Feb 15 15:11:45 EST 2008


Author: brian
Date: Fri Feb 15 15:11:44 2008
New Revision: 7626

Modified:
   freeswitch/trunk/src/include/switch_loadable_module.h
   freeswitch/trunk/src/include/switch_types.h
   freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
   freeswitch/trunk/src/mod/codecs/mod_voipcodecs/mod_voipcodecs.c
   freeswitch/trunk/src/mod/endpoints/mod_alsa/mod_alsa.c
   freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c
   freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c

Log:
interval tweaks

Modified: freeswitch/trunk/src/include/switch_loadable_module.h
==============================================================================
--- freeswitch/trunk/src/include/switch_loadable_module.h	(original)
+++ freeswitch/trunk/src/include/switch_loadable_module.h	Fri Feb 15 15:11:44 2008
@@ -353,30 +353,30 @@
                                                         /*! deinitalize a codec handle using this implementation */
                                                         switch_core_codec_destroy_func_t destroy)
 {
-
-    switch_codec_implementation_t *impl = (switch_codec_implementation_t *) switch_core_alloc(pool, sizeof(*impl));
-    impl->codec_type = codec_type;
-    impl->ianacode = ianacode;
-    impl->iananame = iananame;
-    impl->fmtp = fmtp;
-    impl->samples_per_second = samples_per_second;
-    impl->actual_samples_per_second = actual_samples_per_second;
-    impl->bits_per_second = bits_per_second;
-    impl->microseconds_per_frame = microseconds_per_frame;
-    impl->samples_per_frame = samples_per_frame;
-    impl->bytes_per_frame = bytes_per_frame;
-    impl->encoded_bytes_per_frame = encoded_bytes_per_frame;
-    impl->number_of_channels = number_of_channels;
-    impl->pref_frames_per_packet = pref_frames_per_packet;
-    impl->max_frames_per_packet = max_frames_per_packet;
-    impl->init = init;
-    impl->encode = encode;
-    impl->decode = decode;
-    impl->destroy = destroy;
-    
-    impl->next = codec_interface->implementations;
-    codec_interface->implementations = impl;
-
+	if (SWITCH_ACCEPTABLE_INTERVAL(microseconds_per_frame / 1000)) {
+		switch_codec_implementation_t *impl = (switch_codec_implementation_t *) switch_core_alloc(pool, sizeof(*impl));
+		impl->codec_type = codec_type;
+		impl->ianacode = ianacode;
+		impl->iananame = iananame;
+		impl->fmtp = fmtp;
+		impl->samples_per_second = samples_per_second;
+		impl->actual_samples_per_second = actual_samples_per_second;
+		impl->bits_per_second = bits_per_second;
+		impl->microseconds_per_frame = microseconds_per_frame;
+		impl->samples_per_frame = samples_per_frame;
+		impl->bytes_per_frame = bytes_per_frame;
+		impl->encoded_bytes_per_frame = encoded_bytes_per_frame;
+		impl->number_of_channels = number_of_channels;
+		impl->pref_frames_per_packet = pref_frames_per_packet;
+		impl->max_frames_per_packet = max_frames_per_packet;
+		impl->init = init;
+		impl->encode = encode;
+		impl->decode = decode;
+		impl->destroy = destroy;
+		
+		impl->next = codec_interface->implementations;
+		codec_interface->implementations = impl;
+	}
 }
 
 ///\}

Modified: freeswitch/trunk/src/include/switch_types.h
==============================================================================
--- freeswitch/trunk/src/include/switch_types.h	(original)
+++ freeswitch/trunk/src/include/switch_types.h	Fri Feb 15 15:11:44 2008
@@ -306,7 +306,7 @@
 #define SWITCH_CORE_QUEUE_LEN 100000
 #define SWITCH_MAX_MANAGEMENT_BUFFER_LEN 1024 * 8
 
-#define SWITCH_ACCEPTABLE_INTERVAL(_i) (_i <= SWITCH_MAX_INTERVAL && (_i % 10) == 0)
+#define SWITCH_ACCEPTABLE_INTERVAL(_i) (_i && _i <= SWITCH_MAX_INTERVAL && (_i % 10) == 0)
 
 typedef enum {
 	SWITCH_CPF_SCREEN = (1 << 0),

Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c	Fri Feb 15 15:11:44 2008
@@ -4618,8 +4618,6 @@
 {
 	conference_obj_t *conference;
 	switch_xml_t xml_kvp;
-	char *rate_name = NULL;
-	char *interval_name = NULL;
 	char *timer_name = NULL;
 	char *domain = NULL;
 	char *tts_engine = NULL;
@@ -4679,12 +4677,18 @@
 		if (!strcasecmp(var, "rate") && !switch_strlen_zero(val)) {
             uint32_t tmp = atoi(val);
             if (tmp == 8000 || tmp == 16000 || tmp == 32000) {
-                rate_name = val;
+                rate = tmp;
             }
 		} else if (!strcasecmp(var, "domain") && !switch_strlen_zero(val)) {
 			domain = val;
 		} else if (!strcasecmp(var, "interval") && !switch_strlen_zero(val)) {
-			interval_name = val;
+			uint32_t tmp = atoi(val);
+			if (SWITCH_ACCEPTABLE_INTERVAL(tmp)) {
+				interval = tmp;
+			} else {
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
+								  "Interval must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL); 
+			}
 		} else if (!strcasecmp(var, "timer-name") && !switch_strlen_zero(val)) {
 			timer_name = val;
 		} else if (!strcasecmp(var, "tts-engine") && !switch_strlen_zero(val)) {
@@ -4766,22 +4770,6 @@
 
 	/* Set defaults and various paramaters */
 
-	/* Speed in hertz */
-	if (!switch_strlen_zero(rate_name)) {
-		uint32_t r = atoi(rate_name);
-		if (r) {
-			rate = r;
-		}
-	}
-
-	/* Packet Interval in milliseconds */
-	if (!switch_strlen_zero(interval_name)) {
-		uint32_t i = atoi(interval_name);
-		if (i) {
-			interval = i;
-		}
-	}
-
 	/* Timer module to use */
 	if (switch_strlen_zero(timer_name)) {
 		timer_name = "soft";

Modified: freeswitch/trunk/src/mod/codecs/mod_voipcodecs/mod_voipcodecs.c
==============================================================================
--- freeswitch/trunk/src/mod/codecs/mod_voipcodecs/mod_voipcodecs.c	(original)
+++ freeswitch/trunk/src/mod/codecs/mod_voipcodecs/mod_voipcodecs.c	Fri Feb 15 15:11:44 2008
@@ -684,12 +684,13 @@
                                              switch_gsm_init, switch_gsm_encode, switch_gsm_decode, switch_gsm_destroy);
     }
 	/* LPC10 */
-	SWITCH_ADD_CODEC(codec_interface, "LPC-10");
-    switch_core_codec_add_implementation(pool, codec_interface,
-                                         SWITCH_CODEC_TYPE_AUDIO, 7, "LPC", NULL, 8000, 8000, 2400,
-										 90000, 720, 1440, 28, 1, 1, 1,
-                                         switch_lpc10_init, switch_lpc10_encode, switch_lpc10_decode, switch_lpc10_destroy);
-	
+	if (SWITCH_MAX_INTERVAL >= 90) {
+		SWITCH_ADD_CODEC(codec_interface, "LPC-10");
+		switch_core_codec_add_implementation(pool, codec_interface,
+											 SWITCH_CODEC_TYPE_AUDIO, 7, "LPC", NULL, 8000, 8000, 2400,
+											 90000, 720, 1440, 28, 1, 1, 1,
+											 switch_lpc10_init, switch_lpc10_encode, switch_lpc10_decode, switch_lpc10_destroy);
+	}
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }

Modified: freeswitch/trunk/src/mod/endpoints/mod_alsa/mod_alsa.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_alsa/mod_alsa.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_alsa/mod_alsa.c	Fri Feb 15 15:11:44 2008
@@ -905,7 +905,13 @@
 			} else if (!strcmp(var, "sample-rate")) {
 				globals.sample_rate = atoi(val);
 			} else if (!strcmp(var, "codec-ms")) {
-				globals.codec_ms = atoi(val);
+				int tmp = atoi(val);
+				if (SWITCH_ACCEPTABLE_INTERVAL(tmp)) {
+					globals.codec_ms = tmp;
+				} else {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
+									  "codec-ms must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL); 
+				}
 			} else if (!strcmp(var, "dialplan")) {
 				set_global_dialplan(val);
 			} else if (!strcmp(var, "cid-name")) {

Modified: freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c	Fri Feb 15 15:11:44 2008
@@ -782,7 +782,13 @@
 			} else if (!strcmp(var, "sample-rate")) {
 				globals.sample_rate = atoi(val);
 			} else if (!strcmp(var, "codec-ms")) {
-				globals.codec_ms = atoi(val);
+				int tmp = atoi(val);
+				if (SWITCH_ACCEPTABLE_INTERVAL(tmp)) {
+					globals.codec_ms = tmp;
+				} else {
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
+									  "codec-ms must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL); 
+				}
 			} else if (!strcmp(var, "dialplan")) {
 				set_global_dialplan(val);
 			} else if (!strcmp(var, "cid-name")) {

Modified: freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c	(original)
+++ freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c	Fri Feb 15 15:11:44 2008
@@ -414,10 +414,11 @@
 				}
 			} else if (!strcasecmp(var, "interval")) {
 				int tmp = atoi(val);
-				if (tmp >= 10) {
+				if (SWITCH_ACCEPTABLE_INTERVAL(tmp)) {
 					source->interval = tmp;
 				} else {
-					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Can't set interval to less than 10\n");
+					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING,
+								  "Interval must be multipe of 10 and less than %d, Using default of 20\n", SWITCH_MAX_INTERVAL); 
 				}
 			} else if (!strcasecmp(var, "timer-name")) {
 				source->timer_name = switch_core_strdup(source->pool, val);



More information about the Freeswitch-svn mailing list