X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=fecdec_filter.c;h=499c0a88931d1712bff7c3b57fef5fa75c075be8;hp=6ca0b037da0f55be826137facc4632415648329c;hb=e77825db70787c9ddbbee3827e2bf6e4452ad7a4;hpb=30496a3da233a6cfb0b1005b808e8d1064cb91ff diff --git a/fecdec_filter.c b/fecdec_filter.c index 6ca0b037..499c0a88 100644 --- a/fecdec_filter.c +++ b/fecdec_filter.c @@ -198,6 +198,8 @@ static int add_slice(char *buf, struct fecdec_group *fg) int r, slice_num; if (group_complete(fg)) { + PARA_DEBUG_LOG("group complete, ignoring slice %d\n", + fg->h.slice_num); fg->num_received_slices++; return 0; } @@ -285,14 +287,8 @@ static int dispatch_slice(char *buf, size_t len, struct fec_header *h, ret = get_group(h, pfd, &fg); if (ret < 0) return ret; - if (group_complete(fg)) { - PARA_DEBUG_LOG("group complete, ignoring slice %d\n", - h->slice_num); + if (!add_slice(buf, fg)) return 1; - } - ret = add_slice(buf, fg); - if (ret < 0) - return ret; if (group_complete(fg)) { if (!pfd->fec) { int k = h->data_slices_per_group, n = h->slices_per_group; @@ -308,7 +304,7 @@ static int dispatch_slice(char *buf, size_t len, struct fec_header *h, return 1; } -static int fecdec(char *buf, size_t len, struct filter_node *fn) +static ssize_t fecdec(char *buf, size_t len, struct filter_node *fn) { int ret; struct fec_header h;