fix bug with negative indexing

This commit is contained in:
Josh Coalson
2007-06-14 06:21:44 +00:00
parent 62cb525f3a
commit 5f11406281

View File

@@ -303,7 +303,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
#else /* fully unrolled version for normal use */ #else /* fully unrolled version for normal use */
{ {
unsigned i; int i;
FLAC__int32 sum; FLAC__int32 sum;
FLAC__ASSERT(order > 0); FLAC__ASSERT(order > 0);
@@ -318,7 +318,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
if(order > 8) { if(order > 8) {
if(order > 10) { if(order > 10) {
if(order == 12) { if(order == 12) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[11] * data[i-12]; sum += qlp_coeff[11] * data[i-12];
sum += qlp_coeff[10] * data[i-11]; sum += qlp_coeff[10] * data[i-11];
@@ -336,7 +336,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
} }
else { /* order == 11 */ else { /* order == 11 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[10] * data[i-11]; sum += qlp_coeff[10] * data[i-11];
sum += qlp_coeff[9] * data[i-10]; sum += qlp_coeff[9] * data[i-10];
@@ -355,7 +355,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
else { else {
if(order == 10) { if(order == 10) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[9] * data[i-10]; sum += qlp_coeff[9] * data[i-10];
sum += qlp_coeff[8] * data[i-9]; sum += qlp_coeff[8] * data[i-9];
@@ -371,7 +371,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
} }
else { /* order == 9 */ else { /* order == 9 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[8] * data[i-9]; sum += qlp_coeff[8] * data[i-9];
sum += qlp_coeff[7] * data[i-8]; sum += qlp_coeff[7] * data[i-8];
@@ -390,7 +390,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
else if(order > 4) { else if(order > 4) {
if(order > 6) { if(order > 6) {
if(order == 8) { if(order == 8) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[7] * data[i-8]; sum += qlp_coeff[7] * data[i-8];
sum += qlp_coeff[6] * data[i-7]; sum += qlp_coeff[6] * data[i-7];
@@ -404,7 +404,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
} }
else { /* order == 7 */ else { /* order == 7 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[6] * data[i-7]; sum += qlp_coeff[6] * data[i-7];
sum += qlp_coeff[5] * data[i-6]; sum += qlp_coeff[5] * data[i-6];
@@ -419,7 +419,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
else { else {
if(order == 6) { if(order == 6) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[5] * data[i-6]; sum += qlp_coeff[5] * data[i-6];
sum += qlp_coeff[4] * data[i-5]; sum += qlp_coeff[4] * data[i-5];
@@ -431,7 +431,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
} }
else { /* order == 5 */ else { /* order == 5 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[4] * data[i-5]; sum += qlp_coeff[4] * data[i-5];
sum += qlp_coeff[3] * data[i-4]; sum += qlp_coeff[3] * data[i-4];
@@ -446,7 +446,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
else { else {
if(order > 2) { if(order > 2) {
if(order == 4) { if(order == 4) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[3] * data[i-4]; sum += qlp_coeff[3] * data[i-4];
sum += qlp_coeff[2] * data[i-3]; sum += qlp_coeff[2] * data[i-3];
@@ -456,7 +456,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
} }
else { /* order == 3 */ else { /* order == 3 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[2] * data[i-3]; sum += qlp_coeff[2] * data[i-3];
sum += qlp_coeff[1] * data[i-2]; sum += qlp_coeff[1] * data[i-2];
@@ -467,7 +467,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
else { else {
if(order == 2) { if(order == 2) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[1] * data[i-2]; sum += qlp_coeff[1] * data[i-2];
sum += qlp_coeff[0] * data[i-1]; sum += qlp_coeff[0] * data[i-1];
@@ -475,14 +475,14 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, u
} }
} }
else { /* order == 1 */ else { /* order == 1 */
for(i = 0; i < data_len; i++) for(i = 0; i < (int)data_len; i++)
residual[i] = data[i] - ((qlp_coeff[0] * data[i-1]) >> lp_quantization); residual[i] = data[i] - ((qlp_coeff[0] * data[i-1]) >> lp_quantization);
} }
} }
} }
} }
else { /* order > 12 */ else { /* order > 12 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
switch(order) { switch(order) {
case 32: sum += qlp_coeff[31] * data[i-32]; case 32: sum += qlp_coeff[31] * data[i-32];
@@ -833,7 +833,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
#else /* fully unrolled version for normal use */ #else /* fully unrolled version for normal use */
{ {
unsigned i; int i;
FLAC__int32 sum; FLAC__int32 sum;
FLAC__ASSERT(order > 0); FLAC__ASSERT(order > 0);
@@ -848,7 +848,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
if(order > 8) { if(order > 8) {
if(order > 10) { if(order > 10) {
if(order == 12) { if(order == 12) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[11] * data[i-12]; sum += qlp_coeff[11] * data[i-12];
sum += qlp_coeff[10] * data[i-11]; sum += qlp_coeff[10] * data[i-11];
@@ -866,7 +866,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
} }
else { /* order == 11 */ else { /* order == 11 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[10] * data[i-11]; sum += qlp_coeff[10] * data[i-11];
sum += qlp_coeff[9] * data[i-10]; sum += qlp_coeff[9] * data[i-10];
@@ -885,7 +885,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
else { else {
if(order == 10) { if(order == 10) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[9] * data[i-10]; sum += qlp_coeff[9] * data[i-10];
sum += qlp_coeff[8] * data[i-9]; sum += qlp_coeff[8] * data[i-9];
@@ -901,7 +901,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
} }
else { /* order == 9 */ else { /* order == 9 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[8] * data[i-9]; sum += qlp_coeff[8] * data[i-9];
sum += qlp_coeff[7] * data[i-8]; sum += qlp_coeff[7] * data[i-8];
@@ -920,7 +920,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
else if(order > 4) { else if(order > 4) {
if(order > 6) { if(order > 6) {
if(order == 8) { if(order == 8) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[7] * data[i-8]; sum += qlp_coeff[7] * data[i-8];
sum += qlp_coeff[6] * data[i-7]; sum += qlp_coeff[6] * data[i-7];
@@ -934,7 +934,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
} }
else { /* order == 7 */ else { /* order == 7 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[6] * data[i-7]; sum += qlp_coeff[6] * data[i-7];
sum += qlp_coeff[5] * data[i-6]; sum += qlp_coeff[5] * data[i-6];
@@ -949,7 +949,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
else { else {
if(order == 6) { if(order == 6) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[5] * data[i-6]; sum += qlp_coeff[5] * data[i-6];
sum += qlp_coeff[4] * data[i-5]; sum += qlp_coeff[4] * data[i-5];
@@ -961,7 +961,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
} }
else { /* order == 5 */ else { /* order == 5 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[4] * data[i-5]; sum += qlp_coeff[4] * data[i-5];
sum += qlp_coeff[3] * data[i-4]; sum += qlp_coeff[3] * data[i-4];
@@ -976,7 +976,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
else { else {
if(order > 2) { if(order > 2) {
if(order == 4) { if(order == 4) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[3] * data[i-4]; sum += qlp_coeff[3] * data[i-4];
sum += qlp_coeff[2] * data[i-3]; sum += qlp_coeff[2] * data[i-3];
@@ -986,7 +986,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
} }
else { /* order == 3 */ else { /* order == 3 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[2] * data[i-3]; sum += qlp_coeff[2] * data[i-3];
sum += qlp_coeff[1] * data[i-2]; sum += qlp_coeff[1] * data[i-2];
@@ -997,7 +997,7 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
else { else {
if(order == 2) { if(order == 2) {
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
sum += qlp_coeff[1] * data[i-2]; sum += qlp_coeff[1] * data[i-2];
sum += qlp_coeff[0] * data[i-1]; sum += qlp_coeff[0] * data[i-1];
@@ -1005,14 +1005,14 @@ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, c
} }
} }
else { /* order == 1 */ else { /* order == 1 */
for(i = 0; i < data_len; i++) for(i = 0; i < (int)data_len; i++)
data[i] = residual[i] + ((qlp_coeff[0] * data[i-1]) >> lp_quantization); data[i] = residual[i] + ((qlp_coeff[0] * data[i-1]) >> lp_quantization);
} }
} }
} }
} }
else { /* order > 12 */ else { /* order > 12 */
for(i = 0; i < data_len; i++) { for(i = 0; i < (int)data_len; i++) {
sum = 0; sum = 0;
switch(order) { switch(order) {
case 32: sum += qlp_coeff[31] * data[i-32]; case 32: sum += qlp_coeff[31] * data[i-32];