bitalloc.c (adaba9f34040c696f6e8e6f1096f218bf6ceb78e) bitalloc.c (c1ab6cc1beb14b16b46e74a3723644016d8c3cc7)
1/******************************************************************************
2 *
3 * Copyright (C) 2014 The Android Open Source Project
4 * Copyright 2003 - 2004 Open Interface North America, Inc. All rights reserved.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at:

--- 54 unchanged lines hidden (view full) ---

63 OI_UINT16 result = nbits;
64
65 if (frame->mode == SBC_JOINT_STEREO) {
66 result += nrof_subbands + (8 * nrof_subbands);
67 } else {
68 if (frame->mode == SBC_DUAL_CHANNEL) { result += nbits; }
69 if (frame->mode == SBC_MONO) { result += 4*nrof_subbands; } else { result += 8*nrof_subbands; }
70 }
1/******************************************************************************
2 *
3 * Copyright (C) 2014 The Android Open Source Project
4 * Copyright 2003 - 2004 Open Interface North America, Inc. All rights reserved.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at:

--- 54 unchanged lines hidden (view full) ---

63 OI_UINT16 result = nbits;
64
65 if (frame->mode == SBC_JOINT_STEREO) {
66 result += nrof_subbands + (8 * nrof_subbands);
67 } else {
68 if (frame->mode == SBC_DUAL_CHANNEL) { result += nbits; }
69 if (frame->mode == SBC_MONO) { result += 4*nrof_subbands; } else { result += 8*nrof_subbands; }
70 }
71 return SBC_HEADER_LEN + (result + 7) / 8;
71 return SBC_HEADER_LEN + ((result + 7) / 8);
72}
73
74
75PRIVATE OI_UINT32 internal_CalculateBitrate(OI_CODEC_SBC_FRAME_INFO *frame)
76{
77 OI_UINT blocksbands;
78 blocksbands = frame->nrof_subbands * frame->nrof_blocks;
79
80 return DIVIDE(8 * internal_CalculateFramelen(frame) * frame->frequency, blocksbands);
81}
82
83
84INLINE OI_UINT16 OI_SBC_CalculateFrameAndHeaderlen(OI_CODEC_SBC_FRAME_INFO *frame, OI_UINT *headerLen_)
85{
72}
73
74
75PRIVATE OI_UINT32 internal_CalculateBitrate(OI_CODEC_SBC_FRAME_INFO *frame)
76{
77 OI_UINT blocksbands;
78 blocksbands = frame->nrof_subbands * frame->nrof_blocks;
79
80 return DIVIDE(8 * internal_CalculateFramelen(frame) * frame->frequency, blocksbands);
81}
82
83
84INLINE OI_UINT16 OI_SBC_CalculateFrameAndHeaderlen(OI_CODEC_SBC_FRAME_INFO *frame, OI_UINT *headerLen_)
85{
86 OI_UINT headerLen = SBC_HEADER_LEN + frame->nrof_subbands * frame->nrof_channels/2;
86 OI_UINT headerLen = SBC_HEADER_LEN + (frame->nrof_subbands * frame->nrof_channels/2);
87
88 if (frame->mode == SBC_JOINT_STEREO) { headerLen++; }
89
90 *headerLen_ = headerLen;
91 return internal_CalculateFramelen(frame);
92}
93
94

--- 166 unchanged lines hidden (view full) ---

261 OI_UINT count;
262 OI_UINT32 adjust4;
263 OI_INT i;
264
265 adjust4 = bitadjust & 0x7F;
266 adjust4 |= (adjust4 << 8);
267 adjust4 |= (adjust4 << 16);
268
87
88 if (frame->mode == SBC_JOINT_STEREO) { headerLen++; }
89
90 *headerLen_ = headerLen;
91 return internal_CalculateFramelen(frame);
92}
93
94

--- 166 unchanged lines hidden (view full) ---

261 OI_UINT count;
262 OI_UINT32 adjust4;
263 OI_INT i;
264
265 adjust4 = bitadjust & 0x7F;
266 adjust4 |= (adjust4 << 8);
267 adjust4 |= (adjust4 << 16);
268
269 for (i = (subbands / 4 - 1); i >= 0; --i) {
269 for (i = ((subbands / 4) - 1); i >= 0; --i) {
270 OI_UINT32 mask;
271 OI_UINT32 n = bitneeds[i] + adjust4;
272 mask = 0x7F7F7F7F + ((n & 0x40404040) >> 6);
273 n &= mask;
274 mask = 0x0F0F0F0F + ((n & 0x10101010) >> 4);
275 n &= mask;
276 mask = (((n + 0x0E0E0E0E) >> 4) | 0x1E1E1E1E);
277 n &= mask;

--- 115 unchanged lines hidden ---
270 OI_UINT32 mask;
271 OI_UINT32 n = bitneeds[i] + adjust4;
272 mask = 0x7F7F7F7F + ((n & 0x40404040) >> 6);
273 n &= mask;
274 mask = 0x0F0F0F0F + ((n & 0x10101010) >> 4);
275 n &= mask;
276 mask = (((n + 0x0E0E0E0E) >> 4) | 0x1E1E1E1E);
277 n &= mask;

--- 115 unchanged lines hidden ---