From 9f70117233c88b6cf4329c93e0d89f56f96acbac Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 5 Aug 2016 12:23:42 +0200 Subject: ao_null: use channel list option type for channel-layouts suboption --- audio/out/ao_null.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/audio/out/ao_null.c b/audio/out/ao_null.c index 7d45795d9e..ac3f8348b5 100644 --- a/audio/out/ao_null.c +++ b/audio/out/ao_null.c @@ -57,7 +57,7 @@ struct priv { // (This is not needed by the AO API, but many AOs behave this way.) int outburst; // samples - char **channel_layouts; + struct m_channels channel_layouts; }; static void drain(struct ao *ao) @@ -91,15 +91,9 @@ static int init(struct ao *ao) ao->untimed = priv->untimed; struct mp_chmap_sel sel = {.tmp = ao}; - if (priv->channel_layouts) { - for (int n = 0; priv->channel_layouts[n]; n++) { - struct mp_chmap map = {0}; - if (!mp_chmap_from_str(&map, bstr0(priv->channel_layouts[n]))) { - MP_FATAL(ao, "Invalid channel map in option.\n"); - return -1; - } - mp_chmap_sel_add_map(&sel, &map); - } + if (priv->channel_layouts.num_chmaps) { + for (int n = 0; n < priv->channel_layouts.num_chmaps; n++) + mp_chmap_sel_add_map(&sel, &priv->channel_layouts.chmaps[n]); } else { mp_chmap_sel_add_any(&sel); } @@ -244,7 +238,7 @@ const struct ao_driver audio_out_null = { OPT_FLOATRANGE("latency", latency_sec, 0, 0, 100), OPT_FLAG("broken-eof", broken_eof, 0), OPT_FLAG("broken-delay", broken_delay, 0), - OPT_STRINGLIST("channel-layouts", channel_layouts, 0), + OPT_CHANNELS("channel-layouts", channel_layouts, 0), {0} }, }; -- cgit v1.2.3