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 */
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();
}