X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=oggdec_filter.c;h=02f04b4809e66864e78e0bde29b8cd0665c6984e;hp=0653f7dadd0d7223e27ea9e339d113420aaa7a5f;hb=aef566e9c8680629bac1ea84893b8b3ccd13da77;hpb=a00bb171f7ca390e3eb9edf8f7c83c32cbaf81ab diff --git a/oggdec_filter.c b/oggdec_filter.c index 0653f7da..02f04b48 100644 --- a/oggdec_filter.c +++ b/oggdec_filter.c @@ -1,13 +1,15 @@ /* - * Copyright (C) 2005-2008 Andre Noll + * Copyright (C) 2005-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ /** \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;