diff options
author | wm4 <wm4@nowhere> | 2013-11-09 23:21:17 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-11-09 23:32:58 +0100 |
commit | 142d5c985e691189ebfa341cb88f6bc4d22c532b (patch) | |
tree | bdd3fed1ed424eb4b3fab2587f1ccfca2017d5c0 /audio | |
parent | a89549e8db86aa8dde2cc27b56a34de868668ab3 (diff) | |
download | mpv-142d5c985e691189ebfa341cb88f6bc4d22c532b.tar.bz2 mpv-142d5c985e691189ebfa341cb88f6bc4d22c532b.tar.xz |
af_lavrresample: reconfigure libavresample only on successful init
If filter initialization fails anyway, we don't need to reconfigure
libavresample.
Diffstat (limited to 'audio')
-rw-r--r-- | audio/filter/af_lavrresample.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/audio/filter/af_lavrresample.c b/audio/filter/af_lavrresample.c index b94d9ffcd2..46428e1f76 100644 --- a/audio/filter/af_lavrresample.c +++ b/audio/filter/af_lavrresample.c @@ -250,14 +250,13 @@ static int control(struct af_instance *af, int cmd, void *arg) af->mul = (double) (out->rate * out->nch) / (in->rate * in->nch); af->delay = out->nch * s->opts.filter_size / FFMIN(af->mul, 1); - if (needs_lavrctx_reconfigure(s, in, out)) { - int r = configure_lavrr(af, in, out); - if (r != AF_OK) - return r; - } - return ((in->format == orig_in.format) && + int r = ((in->format == orig_in.format) && mp_chmap_equals(&in->channels, &orig_in.channels)) - ? AF_OK : AF_FALSE; + ? AF_OK : AF_FALSE; + + if (r == AF_OK && needs_lavrctx_reconfigure(s, in, out)) + r = configure_lavrr(af, in, out); + return r; } case AF_CONTROL_FORMAT_FMT | AF_CONTROL_SET: { if (af_to_avformat(*(int*)arg) == AV_SAMPLE_FMT_NONE) |