]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - mp3dec_filter.c
[btr] Split btr_del_node() into two functions.
[paraslash.git] / mp3dec_filter.c
index 1e074a7e8104075b2963a64beb55aa9c720590a4..2383fba669c58ef743c40f12997f7b734d4d1451 100644 (file)
@@ -179,6 +179,7 @@ static void mp3dec_close(struct filter_node *fn)
 
        free(fn->buf);
        fn->buf = NULL;
+       mp3dec_cmdline_parser_free(fn->conf);
        free(pmd);
        fn->private_data = NULL;
 }
@@ -198,11 +199,12 @@ next_buffer:
        iqs = btr_get_input_queue_size(btrn);
        if (need_bad_data_delay(pmd, iqs))
                return;
-       ret = prepare_filter_node(fn);
+       ret = btr_node_status(btrn, fn->min_iqs);
        if (ret < 0)
                goto err;
        if (ret == 0)
                return;
+       btr_merge(btrn, fn->min_iqs);
        len = btr_next_buffer(btrn, &inbuffer);
        mad_stream_buffer(&pmd->stream, (unsigned char *)inbuffer, len);
 next_frame:
@@ -256,9 +258,8 @@ next_frame:
        goto next_frame;
 err:
        assert(ret < 0);
-       mp3dec_close(fn);
        t->error = ret;
-       btr_del_node(btrn);
+       btr_remove_node(btrn);
 }
 
 static void mp3dec_open(struct filter_node *fn)