output_init: parse audio format earlier

This commit is contained in:
Max Kellermann 2009-07-06 21:40:43 +02:00
parent 17e3054399
commit f5c2acf1d4
1 changed files with 10 additions and 12 deletions

View File

@ -78,11 +78,11 @@ bool
audio_output_init(struct audio_output *ao, const struct config_param *param,
GError **error)
{
const char *format;
const struct audio_output_plugin *plugin = NULL;
if (param) {
const char *type = NULL;
const char *format;
type = config_get_block_string(param, AUDIO_OUTPUT_TYPE, NULL);
if (type == NULL) {
@ -109,6 +109,14 @@ audio_output_init(struct audio_output *ao, const struct config_param *param,
format = config_get_block_string(param, AUDIO_OUTPUT_FORMAT,
NULL);
ao->config_audio_format = format != NULL;
if (format != NULL) {
bool success =
audio_format_parse(&ao->out_audio_format,
format, error);
if (!success)
return false;
}
} else {
g_warning("No \"%s\" defined in config file\n",
CONF_AUDIO_OUTPUT);
@ -121,7 +129,7 @@ audio_output_init(struct audio_output *ao, const struct config_param *param,
plugin->name);
ao->name = "default detected output";
format = NULL;
ao->config_audio_format = false;
}
ao->plugin = plugin;
@ -139,16 +147,6 @@ audio_output_init(struct audio_output *ao, const struct config_param *param,
filter_chain_append(ao->filter, ao->convert_filter);
ao->config_audio_format = format != NULL;
if (ao->config_audio_format) {
bool ret;
ret = audio_format_parse(&ao->out_audio_format, format,
error);
if (!ret)
return false;
}
ao->thread = NULL;
notify_init(&ao->notify);
ao->command = AO_COMMAND_NONE;