}
}
-static void subband_scale(int *dst, int *src, int scale, int offset, int len)
+static void subband_scale(int *dst, int *src, int scale, int offset, int len, void *log_context)
{
int ssign = scale < 0 ? -1 : 1;
int s = FFABS(scale);
dst[i] = out * (unsigned)ssign;
}
} else {
- av_log(NULL, AV_LOG_ERROR, "Overflow in subband_scale()\n");
+ av_log(log_context, AV_LOG_ERROR, "Overflow in subband_scale()\n");
}
}
}
else {
s = s + 32;
- round = 1 << (s-1);
+ round = s ? 1 << (s-1) : 0;
for (i=0; i<len; i++) {
out = (int)((int64_t)((int64_t)coefs[i] * c + round) >> s);
coefs[i] = out * ssign;