while (res < frame_end)
put_sbits(&s->pb, sub->obits, *res++);
} else {
- /* warm-up samples */
- for (i = 0; i < sub->order; i++)
- put_sbits(&s->pb, sub->obits, *res++);
-
- /* LPC coefficients */
- if (sub->type == FLAC_SUBFRAME_LPC) {
- int cbits = s->options.lpc_coeff_precision;
- put_bits( &s->pb, 4, cbits-1);
- put_sbits(&s->pb, 5, sub->shift);
+ /* warm-up samples */
for (i = 0; i < sub->order; i++)
- put_sbits(&s->pb, cbits, sub->coefs[i]);
- }
+ put_sbits(&s->pb, sub->obits, *res++);
- /* rice-encoded block */
- put_bits(&s->pb, 2, 0);
-
- /* partition order */
- porder = sub->rc.porder;
- psize = s->frame.blocksize >> porder;
- put_bits(&s->pb, 4, porder);
-
- /* residual */
- part_end = &sub->residual[psize ];
- for (p = 0; p < 1 << porder; p++) {
- int k = sub->rc.params[p];
- put_bits(&s->pb, 4, k);
- while (res < part_end)
- set_sr_golomb_flac(&s->pb, *res++, k, INT32_MAX, 0);
- part_end = FFMIN(frame_end, part_end + psize);
- }
+ /* LPC coefficients */
+ if (sub->type == FLAC_SUBFRAME_LPC) {
+ int cbits = s->options.lpc_coeff_precision;
+ put_bits( &s->pb, 4, cbits-1);
+ put_sbits(&s->pb, 5, sub->shift);
+ for (i = 0; i < sub->order; i++)
+ put_sbits(&s->pb, cbits, sub->coefs[i]);
+ }
+
+ /* rice-encoded block */
+ put_bits(&s->pb, 2, 0);
+
+ /* partition order */
+ porder = sub->rc.porder;
+ psize = s->frame.blocksize >> porder;
+ put_bits(&s->pb, 4, porder);
+
+ /* residual */
+ part_end = &sub->residual[psize];
+ for (p = 0; p < 1 << porder; p++) {
+ int k = sub->rc.params[p];
+ put_bits(&s->pb, 4, k);
+ while (res < part_end)
+ set_sr_golomb_flac(&s->pb, *res++, k, INT32_MAX, 0);
+ part_end = FFMIN(frame_end, part_end + psize);
+ }
}
}