X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=oggdec_filter.c;h=02f04b4809e66864e78e0bde29b8cd0665c6984e;hp=7c79fd50a403423621ece3f10f335925642690bc;hb=05ac3a8322555355fac0e224305a4a10a5d7caa2;hpb=6442f07bb08eb6e557086587f997b1785ea18ef7 diff --git a/oggdec_filter.c b/oggdec_filter.c index 7c79fd50..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; @@ -204,8 +206,6 @@ void oggdec_filter_init(struct filter *f) f->convert = ogg_convert; f->parse_config = oggdec_parse_config; f->help = (struct ggo_help) { - .purpose = oggdec_filter_args_info_purpose, - .usage = oggdec_filter_args_info_usage, .short_help = oggdec_filter_args_info_help, .detailed_help = oggdec_filter_args_info_detailed_help };