]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7083 #comment patch to change mod_shout to use lame_encode_buffer_interleaved...
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 18 Dec 2014 16:07:21 +0000 (10:07 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 18 Dec 2014 22:07:51 +0000 (16:07 -0600)
src/mod/formats/mod_shout/mod_shout.c

index e6ba9a94b20f39e3a65c1527ca3a13a344c4fabf..773e937912bf3908173be8c618c92590a61bed37 100644 (file)
@@ -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);