X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=flacdec_filter.c;h=6a3a8effaf83b3b9e333e429762f0ff2d3938afe;hp=b741f6b2a13c787d3a635db7566c2036cdd08e2f;hb=HEAD;hpb=093dda1824631372587d107d64601389027c6187 diff --git a/flacdec_filter.c b/flacdec_filter.c index b741f6b2..fb8ebf15 100644 --- a/flacdec_filter.c +++ b/flacdec_filter.c @@ -1,8 +1,4 @@ -/* - * Copyright (C) 2011-2014 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2011 Andre Noll , see file COPYING. */ /** \file flacdec_filter.c The flac decoder. */ @@ -12,7 +8,6 @@ #include "para.h" #include "list.h" #include "sched.h" -#include "ggo.h" #include "buffer_tree.h" #include "filter.h" #include "error.h" @@ -140,7 +135,7 @@ static FLAC__StreamDecoderWriteStatus write_cb( struct btr_node *btrn = fn->btrn; size_t k, n = frame->header.blocksize; unsigned channels = FLAC__stream_decoder_get_channels(decoder); - char *outbuffer = para_malloc(n * channels * 2); + char *outbuffer = arr_alloc(n, channels * 2); if (channels == 1) { for (k = 0; k < n; k++) { @@ -210,7 +205,7 @@ static bool output_queue_full(struct btr_node *btrn) return btr_get_output_queue_size(btrn) > FLACDEC_MAX_OUTPUT_SIZE; } -static void flacdec_pre_select(struct sched *s, void *context) +static void flacdec_pre_monitor(struct sched *s, void *context) { struct filter_node *fn = context; struct private_flacdec_data *pfd = fn->private_data; @@ -226,7 +221,7 @@ static void flacdec_pre_select(struct sched *s, void *context) return sched_min_delay(s); } -static int flacdec_post_select(__a_unused struct sched *s, void *context) +static int flacdec_post_monitor(__a_unused struct sched *s, void *context) { struct filter_node *fn = context; struct private_flacdec_data *pfd = fn->private_data; @@ -237,7 +232,7 @@ static int flacdec_post_select(__a_unused struct sched *s, void *context) if (output_queue_full(btrn)) return 0; ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL); - if (ret < 0 && ret != -E_BTR_EOF) /* fatal error */ + if (ret < 0 && ret != -E_EOF) /* fatal error */ goto out; if (ret <= 0 && !pfd->have_more) /* nothing to do */ goto out; @@ -253,7 +248,7 @@ static int flacdec_post_select(__a_unused struct sched *s, void *context) pfd->have_more = false; FLAC__stream_decoder_process_single(pfd->decoder); state = FLAC__stream_decoder_get_state(pfd->decoder); - ret = -E_FLACDEC_EOF; + ret = -E_EOF; if (state == FLAC__STREAM_DECODER_END_OF_STREAM) goto out; if (state == FLAC__STREAM_DECODER_ABORTED) { @@ -291,23 +286,15 @@ static void flacdec_close(struct filter_node *fn) static void flacdec_open(struct filter_node *fn) { - struct private_flacdec_data *pfd = para_calloc(sizeof(*pfd)); + struct private_flacdec_data *pfd = zalloc(sizeof(*pfd)); fn->private_data = pfd; fn->min_iqs = 0; } -/** - * The init function of the flacdec filter. - * - * \param f Pointer to the filter struct to initialize. - * - * \sa filter::init. - */ -void flacdec_filter_init(struct filter *f) -{ - f->open = flacdec_open; - f->close = flacdec_close; - f->pre_select = flacdec_pre_select; - f->post_select = flacdec_post_select; - f->execute = flacdec_execute; -} +const struct filter lsg_filter_cmd_com_flacdec_user_data = { + .open = flacdec_open, + .close = flacdec_close, + .pre_monitor = flacdec_pre_monitor, + .post_monitor = flacdec_post_monitor, + .execute = flacdec_execute, +};