add L16 def for 32ms and allow timer matrix to drop to 1ms to support nelly

This commit is contained in:
Anthony Minessale 2011-04-12 09:47:11 -05:00
parent 6ea214c180
commit 82e3d49fd2
3 changed files with 23 additions and 3 deletions

View File

@ -520,7 +520,7 @@ SWITCH_STANDARD_API(timer_test_function)
timer_name = argv[2];
}
if (mss != 10 && mss != 20 && mss != 30 && mss != 40 && mss != 60 && mss != 120) {
if (mss != 10 && mss != 20 && mss != 30 && mss != 32 && mss != 40 && mss != 60 && mss != 120) {
stream->write_function(stream, "parameter missing: %s\n", TIMER_TEST_SYNTAX);
goto end;
}

View File

@ -627,6 +627,25 @@ SWITCH_MODULE_LOAD_FUNCTION(core_pcm_load)
switch_raw_destroy); /* deinitalize a codec handle using this implementation */
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
70, /* the IANA code number */
"L16", /* the IANA code name */
NULL, /* default fmtp to send (can be overridden by the init function) */
11025, /* samples transferred per second */
11025, /* actual samples transferred per second */
176400, /* bits transferred per second */
32000, /* number of microseconds per frame */
256, /* number of samples per frame */
512, /* number of bytes per frame decompressed */
512, /* 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 */
/* indicate that the module should continue to be loaded */

View File

@ -502,8 +502,9 @@ static switch_status_t timer_init(switch_timer_t *timer)
private_info->roll = TIMER_MATRIX[timer->interval].roll;
private_info->ready = 1;
if (timer->interval > 0 && timer->interval < MS_PER_TICK) {
MS_PER_TICK = timer->interval;
if (timer->interval > 0 && (timer->interval < MS_PER_TICK || (timer->interval % 10) != 0)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Increasing global timer resolution to 1ms to handle interval %d\n", timer->interval);
MS_PER_TICK = 1;
switch_time_sync();
}