From 3f0d6b3f2d548de7d07d8503a1f73f381e3d1a72 Mon Sep 17 00:00:00 2001 From: Matteo Brancaleoni Date: Wed, 22 Oct 2014 12:31:21 +0200 Subject: [PATCH] FS-6756 lame_init_params must be called after setting all id3tag stuff, otherwise id3 tags will not be written. So, instead of calling it early, revert FS-3646 and add a check on free_context to really do lame stuff only if lame has been set ready, avoid seg faults in some corner cases. --- src/mod/formats/mod_shout/mod_shout.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/mod/formats/mod_shout/mod_shout.c b/src/mod/formats/mod_shout/mod_shout.c index 6dfa0726ea..553ef4e889 100644 --- a/src/mod/formats/mod_shout/mod_shout.c +++ b/src/mod/formats/mod_shout/mod_shout.c @@ -166,7 +166,7 @@ static inline void free_context(shout_context_t *context) mpg123_delete(context->mh); } - if (context->fp) { + if (context->fp && context->lame_ready) { unsigned char mp3buffer[20480]; int len; int16_t blank[2048] = { 0 }, *r = NULL; @@ -854,11 +854,6 @@ static switch_status_t shout_file_open(switch_file_handle_t *handle, const char switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error opening %s\n", path); goto error; } - if (!context->lame_ready) { - lame_init_params(context->gfp); - lame_print_config(context->gfp); - context->lame_ready = 1; - } } }