summaryrefslogtreecommitdiffstats
path: root/audio/filter
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-10-23 18:14:30 +0200
committerwm4 <wm4@nowhere>2013-10-23 19:30:01 +0200
commita46453347f40a3e5be72bf8c3a8461a32bd7733f (patch)
tree9941043b629fc21b9e2ab2265ba209536c5316e9 /audio/filter
parent247c89d6ba39ff2a1d9912b3dc09cae20ccba063 (diff)
downloadmpv-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/filter')
-rw-r--r--audio/filter/af_format.c52
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;
}