Author: anthm Date: Mon Jan 19 12:01:44 2009 New Revision: 11287 Log: MODAPP-200 Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c 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 Mon Jan 19 12:01:44 2009 @@ -1536,10 +1536,8 @@ switch_channel_t *channel; switch_status_t status; switch_frame_t *read_frame = NULL; - - switch_codec_t *read_codec; uint32_t hangover = 40, hangunder = 15, hangover_hits = 0, hangunder_hits = 0, energy_level = 0, diff_level = 400; - + switch_codec_implementation_t read_impl = {0}; switch_assert(member != NULL); @@ -1547,8 +1545,7 @@ channel = switch_core_session_get_channel(member->session); - read_codec = switch_core_session_get_read_codec(member->session); - switch_assert(read_codec != NULL); + switch_core_session_get_read_impl(member->session, &read_impl); /* As long as we have a valid read, feed that data into an input buffer where the conference thread will take it and mux it with any audio from other channels. */ @@ -1601,7 +1598,7 @@ data = read_frame->data; - if (!(divisor = read_codec->implementation->actual_samples_per_second / 8000)) { + if (!(divisor = read_impl.actual_samples_per_second / 8000)) { divisor = 1; } @@ -1610,7 +1607,7 @@ if ((samples = read_frame->datalen / sizeof(*data))) { for (i = 0; i < samples; i++) { energy += abs(data[j]); - j += read_codec->implementation->number_of_channels; + j += read_impl.number_of_channels; } member->score = energy / (samples / divisor); }