On Tue, Dec 22, 2015 at 12:46 AM, Paul B Mahol <one...@gmail.com> wrote: > On 12/22/15, Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote: >> 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 >> > > ok
I assume by this you are ok with the configure change as well. Personally, I think the effort needed for writing the configure hacks is higher than using real arithmetic, and hence I removed it to help ensure it is not added back again. This filter was added during the next version work, so does not need a Changelog update. Thanks, will push later. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel