Revision
15135
Author
brian
Date
2009-10-09 21:10:43 -0500 (Fri, 09 Oct 2009)

Log Message

 48k 30ms and 40ms codecs 

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_loadable_module.h (15134 => 15135)


--- freeswitch/trunk/src/include/switch_loadable_module.h	2009-10-09 22:28:31 UTC (rev 15134)
+++ freeswitch/trunk/src/include/switch_loadable_module.h	2009-10-10 02:10:43 UTC (rev 15135)
@@ -335,7 +335,7 @@
 		if (ptime < 120) return 1;
 		break;
 	case 48000:
-		max_ms = 20;
+		max_ms = 40;
 		ptime_div = 2;
 		break;
 	case 32000:

Modified: freeswitch/trunk/src/switch_pcm.c (15134 => 15135)


--- freeswitch/trunk/src/switch_pcm.c	2009-10-09 22:28:31 UTC (rev 15134)
+++ freeswitch/trunk/src/switch_pcm.c	2009-10-10 02:10:43 UTC (rev 15135)
@@ -515,24 +515,33 @@
 		
 	}
 
-	switch_core_codec_add_implementation(pool, codec_interface,
-										 SWITCH_CODEC_TYPE_AUDIO,	/* enumeration defining the type of the codec */
-										 118, 						/* the IANA code number */
-										 "L16",						/* the IANA code name */
-										 NULL,						/* default fmtp to send (can be overridden by the init function) */
-										 48000,						/* samples transferred per second */
-										 48000,						/* actual samples transferred per second */
-										 768000,					/* bits transferred per second */
-										 20000,						/* number of microseconds per frame */
-										 960,						/* number of samples per frame */
-										 1920,						/* number of bytes per frame decompressed */
-										 1920,						/* number of bytes per frame compressed */
-										 1,							/* number of channels represented */
-										 1,							/* number of frames per network packet */
-										 switch_raw_init,			/* function to initialize a codec handle using this implementation */
-										 switch_raw_encode,			/* function to encode raw data into encoded data */
-										 switch_raw_decode,			/* function to decode encoded data into raw data */
-										 switch_raw_destroy);		/* deinitalize a codec handle using this implementation */
+	samples_per_frame = 960;
+	bytes_per_frame = 1920;
+	ms_per_frame = 20000;
+	/* 10ms is already registered */
+	for (x = 0; x < 3; x++) {
+		switch_core_codec_add_implementation(pool, codec_interface,
+											 SWITCH_CODEC_TYPE_AUDIO,	/* enumeration defining the type of the codec */
+											 118, 						/* the IANA code number */
+											 "L16",						/* the IANA code name */
+											 NULL,						/* default fmtp to send (can be overridden by the init function) */
+											 48000,						/* samples transferred per second */
+											 48000,						/* actual samples transferred per second */
+											 768000,					/* bits transferred per second */
+											 ms_per_frame,				/* number of microseconds per frame */
+											 samples_per_frame,			/* number of samples per frame */
+											 bytes_per_frame,			/* number of bytes per frame decompressed */
+											 bytes_per_frame,			/* number of bytes per frame compressed */
+											 1,							/* number of channels represented */
+											 1,							/* number of frames per network packet */
+											 switch_raw_init,			/* function to initialize a codec handle using this implementation */
+											 switch_raw_encode,			/* function to encode raw data into encoded data */
+											 switch_raw_decode,			/* function to decode encoded data into raw data */
+											 switch_raw_destroy);		/* deinitalize a codec handle using this implementation */
+		samples_per_frame += 480;
+		bytes_per_frame += 960;
+		ms_per_frame += 10000;
+	}
 
 	switch_core_codec_add_implementation(pool, codec_interface,
 										 SWITCH_CODEC_TYPE_AUDIO,	/* enumeration defining the type of the codec */