X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=fecdec_filter.c;h=2c63fc6b00ac6d671f74142ac74060bacece8bed;hp=a393a230e436bbacbdd367a6d26032eb20292090;hb=6b2414cd3ea3437ffb39d25ddc60eeecf3194ebc;hpb=b46e786ab743f807d627eac3c3321e5e39d3d299 diff --git a/fecdec_filter.c b/fecdec_filter.c index a393a230..2c63fc6b 100644 --- a/fecdec_filter.c +++ b/fecdec_filter.c @@ -6,6 +6,8 @@ /** \file fecdec_filter.c A filter that fec-decodes an audio stream. */ +#include + #include #include "para.h" #include "error.h" @@ -102,7 +104,7 @@ struct private_fecdec_data { /** Iterate over all fecdec groups. */ #define FOR_EACH_FECDEC_GROUP(g, d) for (g = (d)->groups; \ - (g) - (d)->groups < NUM_FEC_GROUPS; (g)++) + (g) < (d)->groups + NUM_FEC_GROUPS; (g)++) static int group_complete(struct fecdec_group *fg) { @@ -394,6 +396,10 @@ static int dispatch_slice(char *buf, size_t len, struct fec_header *h, return 1; if (group_complete(fg)) { if (pfd->completion_status == GCS_NO_COMPLETE_GROUP) { + enum fec_group_usability u = group_is_usable(fg, pfd); + assert(u != FEC_GROUP_USABLE_SKIP_HEADER); + if (u == FEC_GROUP_UNUSABLE) + return 1; pfd->completion_status = GCS_FIRST_GROUP_COMPLETE; pfd->first_complete_group = fg; return 1;