summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2011-10-19 11:09:13 +0300
committerJohan Hedberg <johan.hedberg@intel.com>2011-10-19 11:13:11 +0300
commit79f472538f1c1caa9b444d0de435159b6fbb70eb (patch)
tree642a99509d3d1fe5bc1fa8bd3258746fd1aa2903
parent54cea4274f3368439a3881a8aa5cfa850d4b555a (diff)
sbc: Reduce for-loop induced indentation in sbc_unpack_frame
-rw-r--r--sbc/sbc.c36
1 files changed, 20 insertions, 16 deletions
diff --git a/sbc/sbc.c b/sbc/sbc.c
index ad391bdd9..c5015ab73 100644
--- a/sbc/sbc.c
+++ b/sbc/sbc.c
@@ -493,26 +493,30 @@ static int sbc_unpack_frame(const uint8_t *data, struct sbc_frame *frame,
for (blk = 0; blk < frame->blocks; blk++) {
for (ch = 0; ch < frame->channels; ch++) {
for (sb = 0; sb < frame->subbands; sb++) {
- if (levels[ch][sb] > 0) {
- uint32_t shift =
- frame->scale_factor[ch][sb] +
+ uint32_t shift;
+
+ if (levels[ch][sb] == 0) {
+ frame->sb_sample[blk][ch][sb] = 0;
+ continue;
+ }
+
+ shift = frame->scale_factor[ch][sb] +
1 + SBCDEC_FIXED_EXTRA_BITS;
- audio_sample = 0;
- for (bit = 0; bit < bits[ch][sb]; bit++) {
- if (consumed > len * 8)
- return -1;
- if ((data[consumed >> 3] >> (7 - (consumed & 0x7))) & 0x01)
- audio_sample |= 1 << (bits[ch][sb] - bit - 1);
+ audio_sample = 0;
+ for (bit = 0; bit < bits[ch][sb]; bit++) {
+ if (consumed > len * 8)
+ return -1;
- consumed++;
- }
+ if ((data[consumed >> 3] >> (7 - (consumed & 0x7))) & 0x01)
+ audio_sample |= 1 << (bits[ch][sb] - bit - 1);
- frame->sb_sample[blk][ch][sb] = (int32_t)
- (((((uint64_t) audio_sample << 1) | 1) << shift) /
- levels[ch][sb]) - (1 << shift);
- } else
- frame->sb_sample[blk][ch][sb] = 0;
+ consumed++;
+ }
+
+ frame->sb_sample[blk][ch][sb] = (int32_t)
+ (((((uint64_t) audio_sample << 1) | 1) << shift) /
+ levels[ch][sb]) - (1 << shift);
}
}
}