#define NUM_FEC_GROUPS 3
/** Size of the output buffer of the fecdec filter. */
-#define FECDEC_OUTBUF_SIZE 81920
+#define FECDEC_OUTBUF_SIZE (128 * 1024)
/** Data read from the header of a slice. */
struct fec_header {
FOR_EACH_FECDEC_GROUP(fg, pfd) {
if (fg->h.group_num != h->group_num)
continue;
- /* FIXME: Add some more sanity checks here */
+ if (fg->h.slices_per_group != h->slices_per_group)
+ continue;
+ if (fg->h.data_slices_per_group != h->data_slices_per_group)
+ continue;
*result = fg;
return 1;
}
/* group not found */
fg = find_unused_group(pfd);
if (fg)
- goto update_header;
+ goto success;
fg = try_to_free_group(pfd);
if (fg)
- goto update_header;
+ goto success;
fg = free_oldest_group(pfd);
-update_header:
- fg->h = *h;
success:
+ fg->h = *h;
*result = fg;
return 1;
}
h->slice_num);
return 1;
}
- fg->h = *h;
ret = add_slice(buf, fg);
if (ret < 0)
return ret;