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: Stefan Knoblich <stkn@openisdn.net>
This commit is contained in:
parent
0e2a590afa
commit
e20fbadc12
|
@ -60,52 +60,43 @@ static struct {
|
||||||
|
|
||||||
mpg123_handle *our_mpg123_new(const char *decoder, int *error)
|
mpg123_handle *our_mpg123_new(const char *decoder, int *error)
|
||||||
{
|
{
|
||||||
mpg123_handle *mh;
|
|
||||||
const char *arch = "auto";
|
const char *arch = "auto";
|
||||||
|
const char *err = NULL;
|
||||||
|
mpg123_handle *mh;
|
||||||
int x64 = 0;
|
int x64 = 0;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
const char *err = NULL;
|
|
||||||
|
|
||||||
if (*globals.decoder || globals.outscale || globals.vol) {
|
|
||||||
if (*globals.decoder) {
|
if (*globals.decoder) {
|
||||||
arch = globals.decoder;
|
arch = globals.decoder;
|
||||||
}
|
}
|
||||||
if ((mh = mpg123_new(arch, &rc))) {
|
#ifndef WIN32
|
||||||
if (rc) {
|
else if (sizeof(void *) == 4) {
|
||||||
err = mpg123_plain_strerror(rc);
|
arch = "i586";
|
||||||
|
} else {
|
||||||
|
x64 = 1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NOTE: keeping the globals.decoder check here for behaviour backwards compat - stkn */
|
||||||
|
if (*globals.decoder || globals.outscale || globals.vol) {
|
||||||
if (globals.outscale) {
|
if (globals.outscale) {
|
||||||
mpg123_param(mh, MPG123_OUTSCALE, globals.outscale, 0);
|
mpg123_param(mh, MPG123_OUTSCALE, globals.outscale, 0);
|
||||||
}
|
}
|
||||||
if (globals.vol) {
|
if (globals.vol) {
|
||||||
mpg123_volume(mh, globals.vol);
|
mpg123_volume(mh, globals.vol);
|
||||||
}
|
}
|
||||||
}
|
} else if (x64) {
|
||||||
} else {
|
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
x64++;
|
|
||||||
#else
|
|
||||||
if (sizeof(void *) == 4) {
|
|
||||||
arch = "i586";
|
|
||||||
} else {
|
|
||||||
x64++;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ((mh = mpg123_new(arch, &rc))) {
|
|
||||||
if (rc) {
|
|
||||||
err = mpg123_plain_strerror(rc);
|
|
||||||
}
|
|
||||||
if (x64) {
|
|
||||||
mpg123_param(mh, MPG123_OUTSCALE, 8192, 0);
|
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;
|
return mh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue