/* libFLAC - Free Lossless Audio Codec library
- * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
+ * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009 Josh Coalson
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
#endif
#include <math.h>
+#include <inttypes.h>
#include "FLAC/assert.h"
#include "FLAC/format.h"
#include "private/bitmath.h"
#include "private/lpc.h"
+#include "private/macros.h"
#if defined DEBUG || defined FLAC__OVERFLOW_DETECT || defined FLAC__OVERFLOW_DETECT_VERBOSE
#include <stdio.h>
#endif
+/* OPT: #undef'ing this may improve the speed on some architectures */
+#define FLAC__LPC_UNROLLED_FILTER_LOOPS
+
#ifndef FLAC__INTEGER_ONLY_LIBRARY
#ifndef M_LN2
#define M_LN2 0.69314718055994530942
#endif
-void FLAC__lpc_window_data(const FLAC__real in[], const FLAC__real window[], FLAC__real out[], unsigned data_len)
+#if !defined(HAVE_LROUND)
+#if defined(_MSC_VER)
+#include <float.h>
+#define copysign _copysign
+#elif defined(__GNUC__)
+#define copysign __builtin_copysign
+#endif
+static inline long int lround(double x) {
+ return (long)(x + copysign (0.5, x));
+}
+//If this fails, we are in the precence of a mid 90's compiler..move along...
+#endif
+
+void FLAC__lpc_window_data(const FLAC__int32 in[], const FLAC__real window[], FLAC__real out[], unsigned data_len)
{
unsigned i;
for(i = 0; i < data_len; i++)
void FLAC__lpc_compute_lp_coefficients(const FLAC__real autoc[], unsigned *max_order, FLAC__real lp_coeff[][FLAC__MAX_LPC_ORDER], FLAC__double error[])
{
unsigned i, j;
- FLAC__double r, err, ref[FLAC__MAX_LPC_ORDER], lpc[FLAC__MAX_LPC_ORDER];
+ FLAC__double r, err, lpc[FLAC__MAX_LPC_ORDER];
FLAC__ASSERT(0 != max_order);
FLAC__ASSERT(0 < *max_order);
r = -autoc[i+1];
for(j = 0; j < i; j++)
r -= lpc[j] * autoc[i-j];
- ref[i] = (r/=err);
/* Update LPC coefficients and total error. */
lpc[i]=r;
FLAC__int32 q;
for(i = 0; i < order; i++) {
error += lp_coeff[i] * (1 << *shift);
-#if 1 /* unfortunately lround() is C99 */
- if(error >= 0.0)
- q = (FLAC__int32)(error + 0.5);
- else
- q = (FLAC__int32)(error - 0.5);
-#else
q = lround(error);
-#endif
+
#ifdef FLAC__OVERFLOW_DETECT
if(q > qmax+1) /* we expect q==qmax+1 occasionally due to rounding */
fprintf(stderr,"FLAC__lpc_quantize_coefficients: quantizer overflow: q>qmax %d>%d shift=%d cmax=%f precision=%u lpc[%u]=%f\n",q,qmax,*shift,cmax,precision+1,i,lp_coeff[i]);
#endif
for(i = 0; i < order; i++) {
error += lp_coeff[i] / (1 << nshift);
-#if 1 /* unfortunately lround() is C99 */
- if(error >= 0.0)
- q = (FLAC__int32)(error + 0.5);
- else
- q = (FLAC__int32)(error - 0.5);
-#else
q = lround(error);
-#endif
#ifdef FLAC__OVERFLOW_DETECT
if(q > qmax+1) /* we expect q==qmax+1 occasionally due to rounding */
fprintf(stderr,"FLAC__lpc_quantize_coefficients: quantizer overflow: q>qmax %d>%d shift=%d cmax=%f precision=%u lpc[%u]=%f\n",q,qmax,*shift,cmax,precision+1,i,lp_coeff[i]);
}
void FLAC__lpc_compute_residual_from_qlp_coefficients(const FLAC__int32 *data, unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 residual[])
-#ifdef FLAC__OVERFLOW_DETECT /* this ugly flavor is only for debugging */
+#if defined(FLAC__OVERFLOW_DETECT) || !defined(FLAC__LPC_UNROLLED_FILTER_LOOPS)
{
FLAC__int64 sumo;
unsigned i, j;
for(j = 0; j < order; j++) {
sum += qlp_coeff[j] * (*(--history));
sumo += (FLAC__int64)qlp_coeff[j] * (FLAC__int64)(*history);
-#if defined _MSC_VER
- if(sumo > 2147483647I64 || sumo < -2147483648I64)
- fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients: OVERFLOW, i=%u, j=%u, c=%d, d=%d, sumo=%I64d\n",i,j,qlp_coeff[j],*history,sumo);
-#else
- if(sumo > 2147483647ll || sumo < -2147483648ll)
- fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients: OVERFLOW, i=%u, j=%u, c=%d, d=%d, sumo=%lld\n",i,j,qlp_coeff[j],*history,(long long)sumo);
-#endif
+ fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients: OVERFLOW, i=%u, j=%u, c=%d, d=%d, sumo=%" PRId64 "\n",i,j,qlp_coeff[j],*history,sumo);
}
*(residual++) = *(data++) - (sum >> lp_quantization);
}
}
#else /* fully unrolled version for normal use */
{
- unsigned i;
+ int i;
FLAC__int32 sum;
FLAC__ASSERT(order > 0);
if(order > 8) {
if(order > 10) {
if(order == 12) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[11] * data[i-12];
sum += qlp_coeff[10] * data[i-11];
}
}
else { /* order == 11 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[10] * data[i-11];
sum += qlp_coeff[9] * data[i-10];
}
else {
if(order == 10) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[9] * data[i-10];
sum += qlp_coeff[8] * data[i-9];
}
}
else { /* order == 9 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[8] * data[i-9];
sum += qlp_coeff[7] * data[i-8];
else if(order > 4) {
if(order > 6) {
if(order == 8) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[7] * data[i-8];
sum += qlp_coeff[6] * data[i-7];
}
}
else { /* order == 7 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[6] * data[i-7];
sum += qlp_coeff[5] * data[i-6];
}
else {
if(order == 6) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[5] * data[i-6];
sum += qlp_coeff[4] * data[i-5];
}
}
else { /* order == 5 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[4] * data[i-5];
sum += qlp_coeff[3] * data[i-4];
else {
if(order > 2) {
if(order == 4) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[3] * data[i-4];
sum += qlp_coeff[2] * data[i-3];
}
}
else { /* order == 3 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[2] * data[i-3];
sum += qlp_coeff[1] * data[i-2];
}
else {
if(order == 2) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[1] * data[i-2];
sum += qlp_coeff[0] * data[i-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);
}
}
}
}
else { /* order > 12 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
switch(order) {
case 32: sum += qlp_coeff[31] * data[i-32];
#endif
void FLAC__lpc_compute_residual_from_qlp_coefficients_wide(const FLAC__int32 *data, unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 residual[])
-#ifdef FLAC__OVERFLOW_DETECT /* this ugly flavor is only for debugging */
+#if defined(FLAC__OVERFLOW_DETECT) || !defined(FLAC__LPC_UNROLLED_FILTER_LOOPS)
{
unsigned i, j;
FLAC__int64 sum;
for(j = 0; j < order; j++)
sum += (FLAC__int64)qlp_coeff[j] * (FLAC__int64)(*(--history));
if(FLAC__bitmath_silog2_wide(sum >> lp_quantization) > 32) {
-#if defined _MSC_VER
- fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients_wide: OVERFLOW, i=%u, sum=%I64d\n", i, sum >> lp_quantization);
-#else
- fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients_wide: OVERFLOW, i=%u, sum=%lld\n", i, (long long)(sum >> lp_quantization));
-#endif
+ fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients_wide: OVERFLOW, i=%u, sum=%" PRId64 "\n", i, (sum >> lp_quantization));
break;
}
if(FLAC__bitmath_silog2_wide((FLAC__int64)(*data) - (sum >> lp_quantization)) > 32) {
-#if defined _MSC_VER
- fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients_wide: OVERFLOW, i=%u, data=%d, sum=%I64d, residual=%I64d\n", i, *data, sum >> lp_quantization, (FLAC__int64)(*data) - (sum >> lp_quantization));
-#else
- fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients_wide: OVERFLOW, i=%u, data=%d, sum=%lld, residual=%lld\n", i, *data, (long long)(sum >> lp_quantization), (long long)((FLAC__int64)(*data) - (sum >> lp_quantization)));
-#endif
+ fprintf(stderr,"FLAC__lpc_compute_residual_from_qlp_coefficients_wide: OVERFLOW, i=%u, data=%d, sum=%" PRId64 ", residual=%" PRId64 "\n", i, *data, (long long)(sum >> lp_quantization), ((FLAC__int64)(*data) - (sum >> lp_quantization)));
break;
}
*(residual++) = *(data++) - (FLAC__int32)(sum >> lp_quantization);
}
#else /* fully unrolled version for normal use */
{
- unsigned i;
+ int i;
FLAC__int64 sum;
FLAC__ASSERT(order > 0);
if(order > 8) {
if(order > 10) {
if(order == 12) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[11] * (FLAC__int64)data[i-12];
sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
}
}
else { /* order == 11 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
}
else {
if(order == 10) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
}
}
else { /* order == 9 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
else if(order > 4) {
if(order > 6) {
if(order == 8) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
}
}
else { /* order == 7 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
}
else {
if(order == 6) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
}
}
else { /* order == 5 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
else {
if(order > 2) {
if(order == 4) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
}
}
else { /* order == 3 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
}
else {
if(order == 2) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
sum += qlp_coeff[0] * (FLAC__int64)data[i-1];
}
}
else { /* order == 1 */
- for(i = 0; i < data_len; i++)
+ for(i = 0; i < (int)data_len; i++)
residual[i] = data[i] - (FLAC__int32)((qlp_coeff[0] * (FLAC__int64)data[i-1]) >> lp_quantization);
}
}
}
}
else { /* order > 12 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
switch(order) {
case 32: sum += qlp_coeff[31] * (FLAC__int64)data[i-32];
#endif /* !defined FLAC__INTEGER_ONLY_LIBRARY */
void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
-#ifdef FLAC__OVERFLOW_DETECT /* this ugly flavor is only for debugging */
+#if defined(FLAC__OVERFLOW_DETECT) || !defined(FLAC__LPC_UNROLLED_FILTER_LOOPS)
{
FLAC__int64 sumo;
unsigned i, j;
for(j = 0; j < order; j++) {
sum += qlp_coeff[j] * (*(--history));
sumo += (FLAC__int64)qlp_coeff[j] * (FLAC__int64)(*history);
-#if defined _MSC_VER
- if(sumo > 2147483647I64 || sumo < -2147483648I64)
- fprintf(stderr,"FLAC__lpc_restore_signal: OVERFLOW, i=%u, j=%u, c=%d, d=%d, sumo=%I64d\n",i,j,qlp_coeff[j],*history,sumo);
-#else
if(sumo > 2147483647ll || sumo < -2147483648ll)
- fprintf(stderr,"FLAC__lpc_restore_signal: OVERFLOW, i=%u, j=%u, c=%d, d=%d, sumo=%lld\n",i,j,qlp_coeff[j],*history,(long long)sumo);
-#endif
+ fprintf(stderr,"FLAC__lpc_restore_signal: OVERFLOW, i=%u, j=%u, c=%d, d=%d, sumo=%" PRId64 "\n",i,j,qlp_coeff[j],*history,sumo);
}
*(data++) = *(r++) + (sum >> lp_quantization);
}
}
#else /* fully unrolled version for normal use */
{
- unsigned i;
+ int i;
FLAC__int32 sum;
FLAC__ASSERT(order > 0);
if(order > 8) {
if(order > 10) {
if(order == 12) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[11] * data[i-12];
sum += qlp_coeff[10] * data[i-11];
}
}
else { /* order == 11 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[10] * data[i-11];
sum += qlp_coeff[9] * data[i-10];
}
else {
if(order == 10) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[9] * data[i-10];
sum += qlp_coeff[8] * data[i-9];
}
}
else { /* order == 9 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[8] * data[i-9];
sum += qlp_coeff[7] * data[i-8];
else if(order > 4) {
if(order > 6) {
if(order == 8) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[7] * data[i-8];
sum += qlp_coeff[6] * data[i-7];
}
}
else { /* order == 7 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[6] * data[i-7];
sum += qlp_coeff[5] * data[i-6];
}
else {
if(order == 6) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[5] * data[i-6];
sum += qlp_coeff[4] * data[i-5];
}
}
else { /* order == 5 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[4] * data[i-5];
sum += qlp_coeff[3] * data[i-4];
else {
if(order > 2) {
if(order == 4) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[3] * data[i-4];
sum += qlp_coeff[2] * data[i-3];
}
}
else { /* order == 3 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[2] * data[i-3];
sum += qlp_coeff[1] * data[i-2];
}
else {
if(order == 2) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[1] * data[i-2];
sum += qlp_coeff[0] * data[i-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);
}
}
}
}
else { /* order > 12 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
switch(order) {
case 32: sum += qlp_coeff[31] * data[i-32];
#endif
void FLAC__lpc_restore_signal_wide(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
-#ifdef FLAC__OVERFLOW_DETECT /* this ugly flavor is only for debugging */
+#if defined(FLAC__OVERFLOW_DETECT) || !defined(FLAC__LPC_UNROLLED_FILTER_LOOPS)
{
unsigned i, j;
FLAC__int64 sum;
for(j = 0; j < order; j++)
sum += (FLAC__int64)qlp_coeff[j] * (FLAC__int64)(*(--history));
if(FLAC__bitmath_silog2_wide(sum >> lp_quantization) > 32) {
-#ifdef _MSC_VER
- fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, sum=%I64d\n", i, sum >> lp_quantization);
-#else
- fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, sum=%lld\n", i, (long long)(sum >> lp_quantization));
-#endif
+ fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, sum=%" PRId64 "\n", i, (sum >> lp_quantization));
break;
}
if(FLAC__bitmath_silog2_wide((FLAC__int64)(*r) + (sum >> lp_quantization)) > 32) {
-#ifdef _MSC_VER
- fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, residual=%d, sum=%I64d, data=%I64d\n", i, *r, sum >> lp_quantization, (FLAC__int64)(*r) + (sum >> lp_quantization));
-#else
- fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, residual=%d, sum=%lld, data=%lld\n", i, *r, (long long)(sum >> lp_quantization), (long long)((FLAC__int64)(*r) + (sum >> lp_quantization)));
-#endif
+ fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, residual=%d, sum=%" PRId64 ", data=%" PRId64 "\n", i, *r, (sum >> lp_quantization), ((FLAC__int64)(*r) + (sum >> lp_quantization)));
break;
}
*(data++) = *(r++) + (FLAC__int32)(sum >> lp_quantization);
}
#else /* fully unrolled version for normal use */
{
- unsigned i;
+ int i;
FLAC__int64 sum;
FLAC__ASSERT(order > 0);
if(order > 8) {
if(order > 10) {
if(order == 12) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[11] * (FLAC__int64)data[i-12];
sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
}
}
else { /* order == 11 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[10] * (FLAC__int64)data[i-11];
sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
}
else {
if(order == 10) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[9] * (FLAC__int64)data[i-10];
sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
}
}
else { /* order == 9 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[8] * (FLAC__int64)data[i-9];
sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
else if(order > 4) {
if(order > 6) {
if(order == 8) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[7] * (FLAC__int64)data[i-8];
sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
}
}
else { /* order == 7 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[6] * (FLAC__int64)data[i-7];
sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
}
else {
if(order == 6) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[5] * (FLAC__int64)data[i-6];
sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
}
}
else { /* order == 5 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[4] * (FLAC__int64)data[i-5];
sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
else {
if(order > 2) {
if(order == 4) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[3] * (FLAC__int64)data[i-4];
sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
}
}
else { /* order == 3 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[2] * (FLAC__int64)data[i-3];
sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
}
else {
if(order == 2) {
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
sum += qlp_coeff[1] * (FLAC__int64)data[i-2];
sum += qlp_coeff[0] * (FLAC__int64)data[i-1];
}
}
else { /* order == 1 */
- for(i = 0; i < data_len; i++)
+ for(i = 0; i < (int)data_len; i++)
data[i] = residual[i] + (FLAC__int32)((qlp_coeff[0] * (FLAC__int64)data[i-1]) >> lp_quantization);
}
}
}
}
else { /* order > 12 */
- for(i = 0; i < data_len; i++) {
+ for(i = 0; i < (int)data_len; i++) {
sum = 0;
switch(order) {
case 32: sum += qlp_coeff[31] * (FLAC__int64)data[i-32];