提交 cb554fb0 authored 作者: Stefan Knoblich's avatar Stefan Knoblich

mod_shout: Rework our_mpg123_new() to handle error cases correctly and to clean up the code

Keeping parameter handling quirks for backwards compatibility reasons.
Signed-off-by: 's avatarStefan Knoblich <stkn@openisdn.net>
上级 90021b29
......@@ -60,52 +60,43 @@ static struct {
mpg123_handle *our_mpg123_new(const char *decoder, int *error)
{
mpg123_handle *mh;
const char *arch = "auto";
const char *err = NULL;
mpg123_handle *mh;
int x64 = 0;
int rc = 0;
const char *err = NULL;
if (*globals.decoder || globals.outscale || globals.vol) {
if (*globals.decoder) {
arch = globals.decoder;
}
if ((mh = mpg123_new(arch, &rc))) {
if (rc) {
err = mpg123_plain_strerror(rc);
}
if (globals.outscale) {
mpg123_param(mh, MPG123_OUTSCALE, globals.outscale, 0);
}
if (globals.vol) {
mpg123_volume(mh, globals.vol);
}
}
if (*globals.decoder) {
arch = globals.decoder;
}
#ifndef WIN32
else if (sizeof(void *) == 4) {
arch = "i586";
} else {
#ifdef WIN32
x64++;
x64 = 1;
}
#else
if (sizeof(void *) == 4) {
arch = "i586";
} else {
x64++;
}
x64 = 1;
#endif
mh = mpg123_new(arch, &rc);
if (!mh) {
err = mpg123_plain_strerror(rc);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error allocating mpg123 handle! %s\n", switch_str_nil(err));
return NULL;
}
if ((mh = mpg123_new(arch, &rc))) {
if (rc) {
err = mpg123_plain_strerror(rc);
}
if (x64) {
mpg123_param(mh, MPG123_OUTSCALE, 8192, 0);
}
/* NOTE: keeping the globals.decoder check here for behaviour backwards compat - stkn */
if (*globals.decoder || globals.outscale || globals.vol) {
if (globals.outscale) {
mpg123_param(mh, MPG123_OUTSCALE, globals.outscale, 0);
}
if (globals.vol) {
mpg123_volume(mh, globals.vol);
}
} else if (x64) {
mpg123_param(mh, MPG123_OUTSCALE, 8192, 0);
}
if (err) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error allocating mpg123 handle! %s\n", err);
}
return mh;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论