aacenc_is: add a flag to use pure coefficients instead
authorRostislav Pehlivanov <atomnuker@gmail.com>
Sat, 5 Sep 2015 07:32:09 +0000 (08:32 +0100)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Sat, 5 Sep 2015 07:32:09 +0000 (08:32 +0100)
commit4565611b04d53b7333fa5ed81e5dc0074482c20c
treec407cfc3f504fae4cb08ba47a54deb54a5647312
parenta87ada53c39c983ad20c86983c3bedfd56e7e8eb
aacenc_is: add a flag to use pure coefficients instead

This commit adds a flag to use the pure coefficients instead
of the processed ones (sce->coeffs). This is needed because
IS will apply the changes to the coefficients immediately
before the adjust_common_prediction function and it doesn't
make sense to measure stereo channel coefficient difference
when one of the channels coefficients are all zero.

Therefore add a flag to use pure coefficients in that case.
TNS is the only thing touching the coefficients before IS
so common window prediction will not take that into account
but the effect of the TNS filter per coefficient can be small
(a few percent) so to some approximation it's fine to just
ignore that.

Also fixed a small error which doesn't alter the results
that much. pow(sqrt(number), 3.0/4.0) == pow(number, 3.0/8.0) !=
pow(number, 3.0/4.0).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/aacenc_is.c
libavcodec/aacenc_is.h
libavcodec/aacenc_pred.c