complex is not available on all platforms. Furthermore, it is trivial to rewrite complex number expressions to real arithmetic, and in fact sometimes advantageous for performance reasons: by wrapping as a complex, one forces a particular Cartesian representation that is not necessarily optimal for the purpose.
Configure tests are also removed, and aemphasis is now available across all platforms. Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> --- configure | 26 -------------------------- libavfilter/af_aemphasis.c | 13 ++++++------- 2 files changed, 6 insertions(+), 33 deletions(-) diff --git a/configure b/configure index 0227540..46021c4 100755 --- a/configure +++ b/configure @@ -1070,21 +1070,6 @@ int main(void){ $func(); } EOF } -check_complexfunc(){ - log check_complexfunc "$@" - func=$1 - narg=$2 - shift 2 - test $narg = 2 && args="f, g" || args="f * I" - disable $func - check_ld "cc" "$@" <<EOF && enable $func -#include <complex.h> -#include <math.h> -float foo(complex float f, complex float g) { return $func($args); } -int main(void){ return (int) foo; } -EOF -} - check_mathfunc(){ log check_mathfunc "$@" func=$1 @@ -1803,11 +1788,6 @@ INTRINSICS_LIST=" intrinsics_neon " -COMPLEX_FUNCS=" - cabs - cexp -" - MATH_FUNCS=" atanf atan2f @@ -1944,7 +1924,6 @@ HAVE_LIST=" $ARCH_FEATURES $ATOMICS_LIST $BUILTIN_LIST - $COMPLEX_FUNCS $HAVE_LIST_CMDLINE $HAVE_LIST_PUB $HEADERS_LIST @@ -2835,7 +2814,6 @@ unix_protocol_deps="sys_un_h" unix_protocol_select="network" # filters -aemphasis_filter_deps="cabs cexp" amovie_filter_deps="avcodec avformat" aresample_filter_deps="swresample" ass_filter_deps="libass" @@ -5379,10 +5357,6 @@ for func in $MATH_FUNCS; do eval check_mathfunc $func \${${func}_args:-1} done -for func in $COMPLEX_FUNCS; do - eval check_complexfunc $func \${${func}_args:-1} -done - # these are off by default, so fail if requested and not available enabled avfoundation_indev && { check_header_objcc AVFoundation/AVFoundation.h || disable avfoundation_indev; } enabled avfoundation_indev && { check_lib2 CoreGraphics/CoreGraphics.h CGGetActiveDisplayList -framework CoreGraphics || diff --git a/libavfilter/af_aemphasis.c b/libavfilter/af_aemphasis.c index 2966f77..a5b8e30 100644 --- a/libavfilter/af_aemphasis.c +++ b/libavfilter/af_aemphasis.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include <complex.h> - #include "libavutil/opt.h" #include "avfilter.h" #include "internal.h" @@ -189,14 +187,15 @@ static inline void set_lp_rbj(BiquadD2 *bq, double fc, double q, double sr, doub static double freq_gain(BiquadCoeffs *c, double freq, double sr) { - double complex z, w; + double zr, zi; freq *= 2.0 * M_PI / sr; - w = 0 + I * freq; - z = 1.0 / cexp(w); + zr = cos(freq); + zi = -sin(freq); - return cabs(((double complex)c->a0 + c->a1 * z + c->a2 * z*z) / - ((double complex)1.0 + c->b1 * z + c->b2 * z*z)); + /* |(a0 + a1*z + a2*z^2)/(1 + b1*z + b2*z^2)| */ + return hypot(c->a0 + c->a1*zr + c->a2*(zr*zr-zi*zi), c->a1*zi + 2*c->a2*zr*zi) / + hypot(1 + c->b1*zr + c->b2*(zr*zr-zi*zi), c->b1*zi + 2*c->b2*zr*zi); } static int config_input(AVFilterLink *inlink) -- 2.6.4 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel