X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=fecdec_filter.c;h=aea32bfdb8976180dd6aa34f21766c272097973d;hp=939f7e3d06b5061e70275244ddcc3e112b7ce1ea;hb=e5fbc490c2c16ecfa7bce58a18e11a0f7d382b91;hpb=9b565c60fd159e12d255bb18db9dbff066deebea diff --git a/fecdec_filter.c b/fecdec_filter.c index 939f7e3d..aea32bfd 100644 --- a/fecdec_filter.c +++ b/fecdec_filter.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2010 Andre Noll + * Copyright (C) 2009-2012 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -7,9 +7,7 @@ /** \file fecdec_filter.c A filter that fec-decodes an audio stream. */ #include -#include -#include #include "para.h" #include "error.h" #include "list.h" @@ -292,7 +290,7 @@ static int decode_group(struct fecdec_group *fg, struct filter_node *fn) size_t written, need; struct private_fecdec_data *pfd = fn->private_data; enum fec_group_usability u = group_is_usable(fg, pfd); - char *buf = NULL, *p; + char *buf = NULL; if (u == FEC_GROUP_UNUSABLE) { PARA_INFO_LOG("dropping unusable group %d\n", fg->h.group_num); @@ -306,8 +304,7 @@ static int decode_group(struct fecdec_group *fg, struct filter_node *fn) pfd->have_header = 1; i = 0; if (u == FEC_GROUP_USABLE_SKIP_HEADER) { - i = ROUND_UP(fg->h.audio_header_size, fg->h.slice_bytes) - / fg->h.slice_bytes; + i = DIV_ROUND_UP(fg->h.audio_header_size, fg->h.slice_bytes); PARA_DEBUG_LOG("skipping %d header slices\n", i); } PARA_DEBUG_LOG("writing group %d (%d/%d decoded data bytes)\n", @@ -317,7 +314,6 @@ static int decode_group(struct fecdec_group *fg, struct filter_node *fn) if (need > btr_pool_unused(pfd->btrp)) return -E_FECDEC_OVERRUN; btr_pool_get_buffer(pfd->btrp, &buf); - p = buf; if (u == FEC_GROUP_USABLE_WITH_HEADER) { PARA_INFO_LOG("writing audio file header\n"); written = 0; @@ -330,7 +326,6 @@ static int decode_group(struct fecdec_group *fg, struct filter_node *fn) btr_copy(fg->data[i], n, pfd->btrp, fn->btrn); written += n; } - p += written; } written = 0; for (; i < fg->h.data_slices_per_group; i++) { @@ -340,7 +335,6 @@ static int decode_group(struct fecdec_group *fg, struct filter_node *fn) btr_copy(fg->data[i], n, pfd->btrp, fn->btrn); written += n; } - p += written; return 0; } @@ -415,7 +409,7 @@ static int dispatch_slice(char *buf, size_t len, struct fec_header *h, ret = fec_new(k, n, &pfd->fec); if (ret < 0) return ret; - pfd->btrp = btr_pool_new("fecdec", 20 * k * h->slice_bytes); + pfd->btrp = btr_pool_new("fecdec", 64 * 1024); /* decode and clear the first group */ ret = decode_group(pfd->first_complete_group, fn); if (ret < 0)