+ /* If we reached this point, not all probes are used, so "compress". */
+ in_offset = out_offset = 0;
+ while (in_offset <= length_in - in_unitsize) {
+ memcpy(&sample_in, data_in + in_offset, in_unitsize);
+ sample_out = out_bit = 0;
+ for (i = 0; probelist[i]; i++) {
+ if (sample_in & (1 << (probelist[i] - 1)))
+ sample_out |= (1 << out_bit);
+ out_bit++;
+ }
+ memcpy((*data_out) + out_offset, &sample_out, out_unitsize);
+ in_offset += in_unitsize;
+ out_offset += out_unitsize;
+ }
+ *length_out = out_offset;