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.
This commit is contained in:
Matteo Brancaleoni 2014-10-22 12:31:21 +02:00
parent 8e473c3c89
commit 3f0d6b3f2d

View File

@ -166,7 +166,7 @@ static inline void free_context(shout_context_t *context)
mpg123_delete(context->mh); mpg123_delete(context->mh);
} }
if (context->fp) { if (context->fp && context->lame_ready) {
unsigned char mp3buffer[20480]; unsigned char mp3buffer[20480];
int len; int len;
int16_t blank[2048] = { 0 }, *r = NULL; 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); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error opening %s\n", path);
goto error; goto error;
} }
if (!context->lame_ready) {
lame_init_params(context->gfp);
lame_print_config(context->gfp);
context->lame_ready = 1;
}
} }
} }