summaryrefslogtreecommitdiffstats
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
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).
-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;
}