[FFmpeg-cvslog] r19375 - in trunk: Changelog libavcodec/Makefile libavcodec/aac.h libavcodec/aaccoder.c libavcodec/aacenc.c libavcodec/aacenc.h libavcodec/aacpsy.c libavcodec/allcodecs.c libavcodec/psymodel.c liba...

Måns Rullgård mans
Thu Jul 9 14:59:13 CEST 2009

Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Wed, Jul 08, 2009 at 10:01:31PM +0200, alexc wrote:
>> Author: alexc
>> Date: Wed Jul  8 22:01:31 2009
>> New Revision: 19375
>> Log:
>> Merge the AAC encoder from SoC svn. It is still considered experimental.
> You broke a good deal of FATE configurations. In particular, complex
> types do not seem to be generally working.
> From the gcc 4.3.3/Solaris 10 build:
> /home/fate/source/libavcodec/iirfilter.c: In function 'ff_iir_filter_init_coeffs':
> /home/fate/source/libavcodec/iirfilter.c:83: error: '_Imaginary_I' undeclared (first use in this function)
> /home/fate/source/libavcodec/iirfilter.c:83: error: (Each undeclared identifier is reported only once
> /home/fate/source/libavcodec/iirfilter.c:83: error: for each function it appears in.)
> /home/fate/source/libavcodec/iirfilter.c:56: warning: unused variable 'size'

Quoth the spec:

  The macro I expands to either _Imaginary_I or _Complex_I. If
  _Imaginary_I is not defined, I shall expand to _Complex_I.

It follows that the system headers are buggy.

> From the ARM RVCT build:
> "/misc/fate/satyr/source/libavcodec/iirfilter.c", line 59: Error:
> #1082: a floating-point type must be included in the type specifier for
> a _Complex or _Imaginary type
>       complex p[MAXORDER + 1];

As you may have seen, I fixed this by making them "double complex".  I
chose double because this is an init function, so precision is
probably more important than speed.

> From the NetBSD, DragonFly BSD and AVR Linux builds:
> aaccoder.c:(.text+0x2ba2): undefined reference to `fminf'
> aaccoder.c:(.text+0x2bbc): undefined reference to `fmaxf'

Can't FFMIN and FFMAX be used?  They only differ in the case of NaN

> From the FreeBSD build:
> /usr/home/mik/src/fate/build/libavcodec/libavcodec.a(aaccoder.o)(.text+0x998):
> In function `search_for_quantizers_fast':
> : undefined reference to `log2'

Yet another standard C function they've missed/ignored...

> From the gcc 4.2.4 DOS build:
> /home/mik/src/fate/source/libavcodec/aacpsy.c:144: warning: implicit
> declaration of function 'fminf'

See above.

> /home/mik/src/fate/source/libavcodec/iirfilter.c:28:21: error:
> complex.h: No such file or directory


> From the icc builds:
> /home/fate/fate32/source/libavcodec/iirfilter.c(59): error: a float,
> double or long double type must be included in the type specifier for a
> _Complex or _Imaginary type
>       _Complex p[30 + 1];

Fixed, see above.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-cvslog mailing list