From 07b4dbeea7c78dc011dd2ca08dba84b2974a7b3f Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 18 Dec 2014 10:07:21 -0600 Subject: [PATCH] FS-7083 #comment patch to change mod_shout to use lame_encode_buffer_interleaved on stereo channels so we don't have to mess with the input data --- src/mod/formats/mod_shout/mod_shout.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/src/mod/formats/mod_shout/mod_shout.c b/src/mod/formats/mod_shout/mod_shout.c index e6ba9a94b2..773e937912 100644 --- a/src/mod/formats/mod_shout/mod_shout.c +++ b/src/mod/formats/mod_shout/mod_shout.c @@ -124,10 +124,6 @@ struct shout_context { int eof; int channels; int stream_channels; - int16_t *l; - switch_size_t llen; - int16_t *r; - switch_size_t rlen; unsigned char *mp3buf; switch_size_t mp3buflen; switch_thread_rwlock_t *rwlock; @@ -1035,24 +1031,10 @@ static switch_status_t shout_file_write(switch_file_handle_t *handle, void *data } if (handle->real_channels == 2) { - switch_size_t i, j = 0; - - if (context->llen < nsamples) { - context->l = switch_core_alloc(context->memory_pool, nsamples * 2); - context->r = switch_core_alloc(context->memory_pool, nsamples * 2); - context->llen = context->rlen = nsamples; - } - - for (i = 0; i < nsamples; i++) { - context->l[i] = audio[j++]; - context->r[i] = audio[j++]; - } - - if ((rlen = lame_encode_buffer(context->gfp, context->l, context->r, (int)nsamples, context->mp3buf, (int)context->mp3buflen)) < 0) { + if ((rlen = lame_encode_buffer_interleaved(context->gfp, audio, (int)nsamples, context->mp3buf, (int)context->mp3buflen)) < 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "MP3 encode error %d!\n", rlen); return SWITCH_STATUS_FALSE; } - } else if (handle->real_channels == 1) { if ((rlen = lame_encode_buffer(context->gfp, audio, NULL, (int)nsamples, context->mp3buf, (int)context->mp3buflen)) < 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "MP3 encode error %d!\n", rlen);