[FFmpeg-devel] [PATCH 0/4] more accurate constants

John Warburton john at johnwarburton.net
Thu Nov 26 11:23:09 CET 2015


On Fri, Nov 13, 2015 at 4:42 PM, Ganesh Ajjanagadde
<gajjanagadde at gmail.com> wrote:
>
> 4/4 is a "best effort" patch that maximizes accuracy on all platforms for
> avcodec/faandct. It results in concrete accuracy benefits on the "default" x86-64
> GNU/Linux platform.
>
> Patches tested with FATE. ppc untested.

Sorry to say the libavcodec/faandct.c patch prevents compilation on a
ppc using GCC 5.2.0. In all cases (the first of which are given
below), the GCC "note" states:

"in expansion of macro 'Bn'"

...where n is the digit following B

libavcodec/faandct.c:39:12: error: initializer element is not constant
 #define B1 0.720959822006947913789091890943021267L // (cos(pi*1/16)sqrt(2))^-1
...
libavcodec/faandct.c:40:12: error: initializer element is not constant
 #define B2 0.765366864730179543456919968060797734L // (cos(pi*2/16)sqrt(2))^-1
...
libavcodec/faandct.c:41:12: error: initializer element is not constant
 #define B3 0.850430094767256448766702844371412325L // (cos(pi*3/16)sqrt(2))^-1
...
libavcodec/faandct.c:43:12: error: initializer element is not constant
 #define B5 1.272758580572833938461007018281767032L // (cos(pi*5/16)sqrt(2))^-1
...
libavcodec/faandct.c:44:12: error: initializer element is not constant
 #define B6 1.847759065022573512256366378793576574L // (cos(pi*6/16)sqrt(2))^-1
...
libavcodec/faandct.c:45:12: error: initializer element is not constant
 #define B7 3.624509785411551372409941227504289587L // (cos(pi*7/16)sqrt(2))^-1
...
kind regards,
John


More information about the ffmpeg-devel mailing list