convertBits function
Implementation
List<int> convertBits(data, int from, int to, {bool strictMode = false}) {
double len = data.length * from / to;
final length = strictMode ? len.floor() : len.ceil();
final mask = (1 << to) - 1;
final result = List.generate(length, (_) => 0);
var index = 0;
var accumulator = 0;
var bits = 0;
for (var i = 0; i < data.length; i++) {
var value = data[i];
accumulator = (accumulator << from) | value;
bits += from;
while (bits >= to) {
bits -= to;
result[index] = (accumulator >> bits) & mask;
index++;
}
}
if (!strictMode) {
if (bits > 0) {
result[index] = (accumulator << (to - bits)) & mask;
index++;
}
} else {}
return result;
}