static int decode_residuals(FLACContext *s, int channel, int pred_order)
{
int i, tmp, partition, method_type, rice_order;
+ int rice_bits, rice_esc;
int sample = 0, samples;
method_type = get_bits(&s->gb, 2);
return -1;
}
+ rice_bits = 4 + method_type;
+ rice_esc = (1 << rice_bits) - 1;
+
sample=
i= pred_order;
for (partition = 0; partition < (1 << rice_order); partition++) {
- tmp = get_bits(&s->gb, method_type == 0 ? 4 : 5);
- if (tmp == (method_type == 0 ? 15 : 31)) {
+ tmp = get_bits(&s->gb, rice_bits);
+ if (tmp == rice_esc) {
tmp = get_bits(&s->gb, 5);
for (; i < samples; i++, sample++)
s->decoded[channel][sample] = get_sbits_long(&s->gb, tmp);