diff options
author | wm4 <wm4@nowhere> | 2013-10-23 18:14:30 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-10-23 19:30:01 +0200 |
commit | a46453347f40a3e5be72bf8c3a8461a32bd7733f (patch) | |
tree | 9941043b629fc21b9e2ab2265ba209536c5316e9 /audio | |
parent | 247c89d6ba39ff2a1d9912b3dc09cae20ccba063 (diff) | |
download | mpv-a46453347f40a3e5be72bf8c3a8461a32bd7733f.tar.bz2 mpv-a46453347f40a3e5be72bf8c3a8461a32bd7733f.tar.xz |
af_force: set format early for better debug output
Set the input/output format in filter init. This doesn't change anything
functionally, but it makes the forced format show up in the filter chain
init verbose output (which sometimes prints the filter chain before all
filters have been configured).
Diffstat (limited to 'audio')
-rw-r--r-- | audio/filter/af_format.c | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/audio/filter/af_format.c b/audio/filter/af_format.c index bb827df248..116a039a04 100644 --- a/audio/filter/af_format.c +++ b/audio/filter/af_format.c @@ -40,6 +40,34 @@ struct priv { struct mp_audio temp; }; +static void force_in_params(struct af_instance *af, struct mp_audio *in) +{ + struct priv *priv = af->priv; + + if (priv->in_format != AF_FORMAT_UNKNOWN) + mp_audio_set_format(in, priv->in_format); + + if (priv->in_channels.num) + mp_audio_set_channels(in, &priv->in_channels); + + if (priv->in_srate) + in->rate = priv->in_srate; +} + +static void force_out_params(struct af_instance *af, struct mp_audio *out) +{ + struct priv *priv = af->priv; + + if (priv->out_format != AF_FORMAT_UNKNOWN) + mp_audio_set_format(out, priv->out_format); + + if (priv->out_channels.num) + mp_audio_set_channels(out, &priv->out_channels); + + if (priv->out_srate) + out->rate = priv->out_srate; +} + static int control(struct af_instance *af, int cmd, void *arg) { struct priv *priv = af->priv; @@ -50,25 +78,9 @@ static int control(struct af_instance *af, int cmd, void *arg) struct mp_audio orig_in = *in; struct mp_audio *out = af->data; - if (priv->in_format != AF_FORMAT_UNKNOWN) - mp_audio_set_format(in, priv->in_format); - - if (priv->in_channels.num) - mp_audio_set_channels(in, &priv->in_channels); - - if (priv->in_srate) - in->rate = priv->in_srate; - + force_in_params(af, in); mp_audio_copy_config(out, in); - - if (priv->out_format != AF_FORMAT_UNKNOWN) - mp_audio_set_format(out, priv->out_format); - - if (priv->out_channels.num) - mp_audio_set_channels(out, &priv->out_channels); - - if (priv->out_srate) - out->rate = priv->out_srate; + force_out_params(af, out); if (in->nch != out->nch || in->bps != out->bps) { mp_msg(MSGT_AFILTER, MSGL_ERR, @@ -106,6 +118,10 @@ static int af_open(struct af_instance *af) af->mul = 1; struct priv *priv = af->priv; af->data = &priv->data; + + force_in_params(af, af->data); + force_out_params(af, af->data); + return AF_OK; } |