output_thread: moved code to ao_filter_open(), ao_filter_close()

This commit is contained in:
Max Kellermann 2010-05-02 17:38:02 +02:00
parent ecb5f68ba8
commit 0140804ef9

View File

@ -88,6 +88,20 @@ ao_disable(struct audio_output *ao)
} }
} }
static const struct audio_format *
ao_filter_open(struct audio_output *ao,
struct audio_format *audio_format,
GError **error_r)
{
return filter_open(ao->filter, audio_format, error_r);
}
static void
ao_filter_close(struct audio_output *ao)
{
filter_close(ao->filter);
}
static void static void
ao_open(struct audio_output *ao) ao_open(struct audio_output *ao)
{ {
@ -109,8 +123,7 @@ ao_open(struct audio_output *ao)
/* open the filter */ /* open the filter */
filter_audio_format = filter_open(ao->filter, &ao->in_audio_format, filter_audio_format = ao_filter_open(ao, &ao->in_audio_format, &error);
&error);
if (filter_audio_format == NULL) { if (filter_audio_format == NULL) {
g_warning("Failed to open filter for \"%s\" [%s]: %s", g_warning("Failed to open filter for \"%s\" [%s]: %s",
ao->name, ao->plugin->name, error->message); ao->name, ao->plugin->name, error->message);
@ -137,7 +150,7 @@ ao_open(struct audio_output *ao)
ao->name, ao->plugin->name, error->message); ao->name, ao->plugin->name, error->message);
g_error_free(error); g_error_free(error);
filter_close(ao->filter); ao_filter_close(ao);
ao->fail_timer = g_timer_new(); ao->fail_timer = g_timer_new();
return; return;
} }
@ -176,7 +189,7 @@ ao_close(struct audio_output *ao, bool drain)
ao_plugin_cancel(ao->plugin, ao->data); ao_plugin_cancel(ao->plugin, ao->data);
ao_plugin_close(ao->plugin, ao->data); ao_plugin_close(ao->plugin, ao->data);
filter_close(ao->filter); ao_filter_close(ao);
g_mutex_lock(ao->mutex); g_mutex_lock(ao->mutex);
@ -189,9 +202,8 @@ ao_reopen_filter(struct audio_output *ao)
const struct audio_format *filter_audio_format; const struct audio_format *filter_audio_format;
GError *error = NULL; GError *error = NULL;
filter_close(ao->filter); ao_filter_close(ao);
filter_audio_format = filter_open(ao->filter, &ao->in_audio_format, filter_audio_format = ao_filter_open(ao, &ao->in_audio_format, &error);
&error);
if (filter_audio_format == NULL) { if (filter_audio_format == NULL) {
g_warning("Failed to open filter for \"%s\" [%s]: %s", g_warning("Failed to open filter for \"%s\" [%s]: %s",
ao->name, ao->plugin->name, error->message); ao->name, ao->plugin->name, error->message);