On Tue, Dec 22, 2015 at 11:32 PM, Paul B Mahol <one...@gmail.com> wrote: > On 12/22/15, Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote: >> On Tue, Dec 22, 2015 at 2:10 PM, Paul B Mahol <one...@gmail.com> wrote: >>> On 12/22/15, Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote: >>>> 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. >>>> >>> >>> Please leave configure check alone, I'm writting some code that uses >>> complex again. >> >> and how hard is it to use real numbers? It does not take > 5 min to >> come up real number expressions... >> > > It's long expression.
Fair enough. No worries, will only get rid of the dependencies in configure, thanks. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel