X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=aacdec_filter.c;h=ce3eb3bd93dc315afc91a01737a3a1a2195e1b36;hp=7e3ed80a700a13319b3790eeb4093a7db8f51a7e;hb=4791d009b3a2952e9c1d2bef22a5f301d28ed2a0;hpb=0d90aa75852c4e76d8d00659d48ba4baf32deae2 diff --git a/aacdec_filter.c b/aacdec_filter.c index 7e3ed80a..ce3eb3bd 100644 --- a/aacdec_filter.c +++ b/aacdec_filter.c @@ -17,7 +17,6 @@ #include "portable_io.h" #include "list.h" #include "sched.h" -#include "ggo.h" #include "buffer_tree.h" #include "filter.h" #include "error.h" @@ -29,7 +28,7 @@ /** * data specific to the aacdec filter * - * \sa filter, filter_node + * \sa \ref filter, \ref filter_node. */ struct private_aacdec_data { /** the return value of aac_open */ @@ -86,7 +85,7 @@ static int aacdec_post_select(__a_unused struct sched *s, void *context) struct private_aacdec_data *padd = fn->private_data; int i, ret; char *inbuf, *outbuf, *btrbuf; - size_t len, consumed, loaded; + size_t len, consumed, loaded = 0; NeAACDecFrameInfo frame_info; next_buffer: @@ -142,7 +141,6 @@ next_buffer: if (!frame_info.samples) goto success; btrbuf = para_malloc(2 * frame_info.samples); - loaded = 0; for (i = 0; i < frame_info.samples; i++) { short sh = ((short *)outbuf)[i]; write_int16_host_endian(btrbuf + loaded, sh); @@ -152,25 +150,19 @@ next_buffer: success: btr_consume(btrn, consumed); padd->consumed_total += consumed; - goto next_buffer; + if (loaded == 0) + goto next_buffer; + return 1; err: assert(ret < 0); btr_remove_node(&fn->btrn); return ret; } -/** - * The init function of the aacdec filter. - * - * \param f Pointer to the filter struct to initialize. - * - * \sa filter::init - */ -void aacdec_filter_init(struct filter *f) -{ - f->open = aacdec_open; - f->close = aacdec_close; - f->pre_select = generic_filter_pre_select; - f->post_select = aacdec_post_select; - f->execute = aacdec_execute; -} +const struct filter lsg_filter_cmd_com_aacdec_user_data = { + .open = aacdec_open, + .close = aacdec_close, + .pre_select = generic_filter_pre_select, + .post_select = aacdec_post_select, + .execute = aacdec_execute +};