diff options
Diffstat (limited to 'apps/codecs/libffmpegFLAC/decoder.c')
| -rw-r--r-- | apps/codecs/libffmpegFLAC/decoder.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/codecs/libffmpegFLAC/decoder.c b/apps/codecs/libffmpegFLAC/decoder.c index 9c85864..4dbae97 100644 --- a/apps/codecs/libffmpegFLAC/decoder.c +++ b/apps/codecs/libffmpegFLAC/decoder.c @@ -262,10 +262,12 @@ static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) if ((s->bps + coeff_prec + av_log2(pred_order)) <= 32) { #if defined(CPU_COLDFIRE) && !defined(SIMULATOR) (void)sum; - lpc_decode_emac(s->blocksize - pred_order, qlevel, pred_order, decoded + pred_order, coeffs); + lpc_decode_emac(s->blocksize - pred_order, qlevel, pred_order, + decoded + pred_order, coeffs); #elif defined(CPU_ARM) && !defined(SIMULATOR) (void)sum; - lpc_decode_arm(s->blocksize - pred_order, qlevel, pred_order, decoded + pred_order, coeffs); + lpc_decode_arm(s->blocksize - pred_order, qlevel, pred_order, + decoded + pred_order, coeffs); #else for (i = pred_order; i < s->blocksize; i++) { @@ -276,6 +278,12 @@ static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) } #endif } else { + #if defined(CPU_COLDFIRE) && !defined(SIMULATOR) + (void)wsum; + (void)j; + lpc_decode_emac_wide(s->blocksize - pred_order, qlevel, pred_order, + decoded + pred_order, coeffs); + #else for (i = pred_order; i < s->blocksize; i++) { wsum = 0; @@ -283,6 +291,7 @@ static int decode_subframe_lpc(FLACContext *s, int32_t* decoded, int pred_order) wsum += (int64_t)coeffs[j] * (int64_t)decoded[i-j-1]; decoded[i] += wsum >> qlevel; } + #endif } return 0; |