X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=oggdec.c;h=b4befd01179ec58d2b9dc32afecd45914d3a93a8;hp=e22ea1e464fa083c108c1474c37c802fa6b64659;hb=89a0e510df07bc7210ca9e73381763fdd183df75;hpb=0b31b8477e307651513874fcb20c85165c0f129e diff --git a/oggdec.c b/oggdec.c index e22ea1e4..b4befd01 100644 --- a/oggdec.c +++ b/oggdec.c @@ -163,15 +163,16 @@ static ssize_t ogg_convert(char *inbuffer, size_t len, struct filter_node *fn) return pod->converted; } -static void *oggdec_parse_config(int argc, char **argv) +static int oggdec_parse_config(int argc, char **argv, void **config) { int ret; struct oggdec_filter_args_info *ogg_conf; ogg_conf = para_calloc(sizeof(*ogg_conf)); - ret = oggdec_cmdline_parser(argc, argv, ogg_conf); - if (ret) + ret = -E_OGGDEC_SYNTAX; + if (oggdec_cmdline_parser(argc, argv, ogg_conf)) goto err; + ret = -ERRNO_TO_PARA_ERROR(EINVAL); if (ogg_conf->bufsize_arg < 0) goto err; if (ogg_conf->bufsize_arg >= INT_MAX / 1024) @@ -180,10 +181,11 @@ static void *oggdec_parse_config(int argc, char **argv) goto err; if (ogg_conf->initial_buffer_arg >= INT_MAX / 1024) goto err; - return ogg_conf; + *config = ogg_conf; + return 1; err: free(ogg_conf); - return NULL; + return ret; } /** @@ -191,7 +193,7 @@ err: * * \param f Its fields are filled in by the function. */ -void oggdec_init(struct filter *f) +void oggdec_filter_init(struct filter *f) { f->open = ogg_open; f->close = ogg_close;