gui: Combine open_stat_pipe() and para_open_stat_pipe().
[paraslash.git] / mp3dec_filter.c
index b13c602bbf6a4ef03b20093254bcf80d87013399..3344ea4198595e22629b392b2d90041fdee06c8b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2009 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2010 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -114,8 +114,6 @@ static void mp3dec_close(struct filter_node *fn)
        mad_frame_finish(&pmd->frame);
        mad_stream_finish(&pmd->stream);
 
-       free(fn->buf);
-       fn->buf = NULL;
        free(pmd);
        fn->private_data = NULL;
 }
@@ -133,11 +131,11 @@ next_buffer:
        pmd->stream.error = 0;
        t->error = 0;
        iqs = btr_get_input_queue_size(btrn);
-       if (need_bad_data_delay(pmd, iqs))
-               return;
        ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
        if (ret < 0)
                goto err;
+       if (need_bad_data_delay(pmd, iqs))
+               return;
        if (ret == 0)
                return;
        btr_merge(btrn, fn->min_iqs);
@@ -207,9 +205,6 @@ static void mp3dec_open(struct filter_node *fn)
        mad_stream_init(&pmd->stream);
        mad_frame_init(&pmd->frame);
        mad_synth_init(&pmd->synth);
-       fn->loaded = 0;
-       fn->bufsize = mp3_conf->bufsize_arg * 1024;
-       fn->buf = para_calloc(fn->bufsize);
        if (mp3_conf->ignore_crc_given)
                mad_stream_options(&pmd->stream, MAD_OPTION_IGNORECRC);
 }
@@ -223,11 +218,6 @@ static int mp3dec_parse_config(int argc, char **argv, void **config)
        ret = -E_MP3DEC_SYNTAX;
        if (mp3dec_cmdline_parser(argc, argv, mp3_conf))
                goto err;
-       ret = -ERRNO_TO_PARA_ERROR(EINVAL);
-       if (mp3_conf->bufsize_arg < 32)
-               goto err;
-       if (mp3_conf->bufsize_arg >= INT_MAX / 1024)
-               goto err;
        *config = mp3_conf;
        return 1;
 err:
@@ -242,13 +232,13 @@ static int mp3dec_execute(struct btr_node *btrn, const char *cmd, char **result)
 
        if (!strcmp(cmd, "samplerate")) {
                if (pmd->samplerate == 0)
-                       return -ERRNO_TO_PARA_ERROR(ENAVAIL);
+                       return -E_BTR_NAVAIL;
                *result = make_message("%u", pmd->samplerate);
                return 1;
        }
        if (!strcmp(cmd, "channels")) {
                if (pmd->channels == 0)
-                       return -ERRNO_TO_PARA_ERROR(ENAVAIL);
+                       return -E_BTR_NAVAIL;
                *result = make_message("%u", pmd->channels);
                return 1;
        }