mirror of https://github.com/mpv-player/mpv
ao_null: use channel list option type for channel-layouts suboption
This commit is contained in:
parent
eccabeb81c
commit
9f70117233
|
@ -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}
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue