[Freeswitch-svn] [commit] r4782 - in freeswitch/trunk/src: . mod/applications/mod_conference
Author: mikej Date: Wed Mar 28 14:21:00 2007 New Revision: 4782 Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c freeswitch/trunk/src/switch_core.c freeswitch/trunk/src/switch_resample.c Log: add checking for successful re-sampler allocation. Add ifdefs to disable build with re-sampler. 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 Wed Mar 28 14:21:00 2007 @@ -4070,12 +4070,15 @@ switch_audio_resampler_t **resampler = read_codec->implementation->samples_per_second > conference->rate ? &member.read_resampler : &member.mux_resampler; - switch_resample_create(resampler, + if (switch_resample_create(resampler, read_codec->implementation->samples_per_second, read_codec->implementation->samples_per_second * 20, conference->rate, conference->rate * 20, - member.pool); + member.pool) != SWITCH_STATUS_SUCCESS){ + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Unable to crete resampler!\n"); + goto done; + } /* Setup an audio buffer for the resampled audio */ if (switch_buffer_create_dynamic(&member.resample_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX) != SWITCH_STATUS_SUCCESS) { Modified: freeswitch/trunk/src/switch_core.c ============================================================================== --- freeswitch/trunk/src/switch_core.c (original) +++ freeswitch/trunk/src/switch_core.c Wed Mar 28 14:21:00 2007 @@ -2174,11 +2174,15 @@ switch (status) { case SWITCH_STATUS_RESAMPLE: if (!session->read_resampler) { - switch_resample_create(&session->read_resampler, + if (switch_resample_create(&session->read_resampler, read_frame->codec->implementation->samples_per_second, read_frame->codec->implementation->bytes_per_frame * 20, session->read_codec->implementation->samples_per_second, - session->read_codec->implementation->bytes_per_frame * 20, session->pool); + session->read_codec->implementation->bytes_per_frame * 20, session->pool) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to allocate resampler\n"); + status = SWITCH_STATUS_FALSE; + goto done; + } } case SWITCH_STATUS_SUCCESS: session->raw_read_frame.samples = session->raw_read_frame.datalen / sizeof(int16_t); @@ -2448,6 +2452,9 @@ session->write_codec->implementation->samples_per_second, session->write_codec->implementation->bytes_per_frame * 20, session->pool); + if (status != SWITCH_STATUS_SUCCESS) { + goto done; + } } break; case SWITCH_STATUS_SUCCESS: @@ -2652,6 +2659,9 @@ session->write_codec->implementation->samples_per_second, session->write_codec->implementation->bytes_per_frame * 20, session->pool); + if (status != SWITCH_STATUS_SUCCESS) { + goto done; + } } break; case SWITCH_STATUS_SUCCESS: Modified: freeswitch/trunk/src/switch_resample.c ============================================================================== --- freeswitch/trunk/src/switch_resample.c (original) +++ freeswitch/trunk/src/switch_resample.c Wed Mar 28 14:21:00 2007 @@ -31,7 +31,12 @@ */ #include <switch.h> #include <switch_resample.h> +#ifndef WIN32 +#include <switch_private.h> +#endif +#ifndef DISABLE_RESAMPLE #include <libresample.h> +#endif #define NORMFACT (float)0x8000 #define MAXSAMPLE (float)0x7FFF #define MAXSAMPLEC (char)0x7F @@ -52,6 +57,10 @@ switch_size_t from_size, int to_rate, uint32_t to_size, switch_memory_pool_t *pool) { +#ifdef DISABLE_RESAMPLE + *new_resampler = NULL; + return SWITCH_STATUS_NOTIMPL; +#else switch_audio_resampler_t *resampler; double lto_rate, lfrom_rate; @@ -75,12 +84,16 @@ *new_resampler = resampler; return SWITCH_STATUS_SUCCESS; +#endif } SWITCH_DECLARE(uint32_t) switch_resample_process(switch_audio_resampler_t *resampler, float *src, int srclen, float *dst, uint32_t dstlen, int last) { +#ifdef DISABLE_RESAMPLE + return 0; +#else int o = 0, srcused = 0, srcpos = 0, out = 0; for (;;) { @@ -99,11 +112,14 @@ } } return out; +#endif } SWITCH_DECLARE(void) switch_resample_destroy(switch_audio_resampler_t *resampler) { +#ifndef DISABLE_RESAMPLE resample_close(resampler->resampler); +#endif }
participants (1)
-
Freeswitch SVN