X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=oggdec_filter.c;h=02f04b4809e66864e78e0bde29b8cd0665c6984e;hp=8d1abb99b4f9cf47e329fa74c3186b7e47030de8;hb=aef566e9c8680629bac1ea84893b8b3ccd13da77;hpb=00e4d4da1b2c00da139b09d3ed4ab9ad9fba2691 diff --git a/oggdec_filter.c b/oggdec_filter.c index 8d1abb99..02f04b48 100644 --- a/oggdec_filter.c +++ b/oggdec_filter.c @@ -6,8 +6,10 @@ /** \file oggdec_filter.c Paraslash's ogg vorbis decoder. */ -#include "para.h" +#include +#include +#include "para.h" #include "oggdec_filter.cmdline.h" #include "list.h" #include "sched.h" @@ -16,8 +18,6 @@ #include "error.h" #include "string.h" -#include - /** Determine byte sex. */ #ifdef WORDS_BIGENDIAN #define ENDIAN 1 @@ -125,7 +125,9 @@ static ssize_t ogg_convert(char *inbuffer, size_t len, struct filter_node *fn) if (!pod->vf) { int ib = 1024 * conf->initial_buffer_arg; /* initial buffer */ - if (len fc->input_error) { + if (*fn->fc->input_error < 0) + return *fn->fc->input_error; + if (len < ib) { PARA_DEBUG_LOG("initial input buffer %zd/%d, " "waiting for more data\n", len, ib); return 0;