]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - oggdec_filter.c
oggdec: Decode only OGGDEC_OUTPUT_CHUNK_SIZE many bytes per iteration.
[paraslash.git] / oggdec_filter.c
index b30abaa1f13cd14f2a019fd8aea862c43e1c4790..fd06cd160ca881df70a1f449b4b316214415c6b8 100644 (file)
@@ -236,13 +236,8 @@ static int ogg_post_select(__a_unused struct sched *s, struct task *t)
                        break;
                fn->min_iqs = 0;
                have += ret;
-               if (have < OGGDEC_OUTPUT_CHUNK_SIZE)
-                       continue;
-               if (btr_get_output_queue_size(btrn) > OGGDEC_MAX_OUTPUT_SIZE)
+               if (have >= OGGDEC_OUTPUT_CHUNK_SIZE)
                        break;
-               btr_add_output(buf, have, btrn);
-               buf = para_malloc(OGGDEC_OUTPUT_CHUNK_SIZE);
-               have = 0;
        }
        pod->have_more = (ret > 0);
        if (have > 0) {
@@ -272,6 +267,6 @@ void oggdec_filter_init(struct filter *f)
        f->open = ogg_open;
        f->close = ogg_close;
        f->pre_select = ogg_pre_select;
-       f->new_post_select = ogg_post_select;
+       f->post_select = ogg_post_select;
        f->execute = oggdec_execute;
 }