resample: Simplify initialization().
authorAndre Noll <maan@tuebingen.mpg.de>
Tue, 27 Dec 2016 18:29:38 +0000 (19:29 +0100)
committerAndre Noll <maan@tuebingen.mpg.de>
Wed, 28 Dec 2016 14:33:20 +0000 (15:33 +0100)
In resample_init(), the first check removed in this commit was bogus
because in case there is no parent buffer tree node, we must only
abort if there is no input pending either.

In resample_post_select(), we move up the check of the node status
so that we now call resample_init() only after we know that there
is input available. This makes the second check in resample_init()
pointless as the condition can never be true.

resample_filter.c

index 6a285ec3bbcacfd88941aeec5d913862adeb8839..1699ed2c03afcc84cc7b8b3e2e8a7f91aca13cc5 100644 (file)
@@ -128,13 +128,7 @@ static int resample_init(struct filter_node *fn)
        int ret, converter;
        struct resample_context *ctx = fn->private_data;
        struct resample_filter_args_info *conf = fn->conf;
        int ret, converter;
        struct resample_context *ctx = fn->private_data;
        struct resample_filter_args_info *conf = fn->conf;
-       struct btr_node *btrn = fn->btrn;
 
 
-       ret = -E_RESAMPLE_EOF;
-       if (btr_no_parent(btrn))
-               return ret;
-       if (btr_get_input_queue_size(btrn) == 0)
-               return 0;
        ret = resample_set_params(fn);
        if (ret < 0)
                return ret;
        ret = resample_set_params(fn);
        if (ret < 0)
                return ret;
@@ -216,14 +210,14 @@ static int resample_post_select(__a_unused struct sched *s, void *context)
        ret = check_wav_post_select(ctx->cwc);
        if (ret < 0)
                goto out;
        ret = check_wav_post_select(ctx->cwc);
        if (ret < 0)
                goto out;
+       ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
+       if (ret <= 0)
+               goto out;
        if (!ctx->src_state) {
                ret = resample_init(fn);
                if (ret <= 0)
                        goto out;
        }
        if (!ctx->src_state) {
                ret = resample_init(fn);
                if (ret <= 0)
                        goto out;
        }
-       ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
-       if (ret <= 0)
-               goto out;
        if (ctx->source_sample_rate == conf->dest_sample_rate_arg) {
                /*
                 * No resampling necessary. We do not splice ourselves out
        if (ctx->source_sample_rate == conf->dest_sample_rate_arg) {
                /*
                 * No resampling necessary. We do not splice ourselves out