> > I have a build of ffmpeg compiled with the intel compiler (version
> 10.1). it
> > works fine for almost everything, except the wma decoder. The decoder
> just
> > seems to output random noise. Running through the debugger I can see
> nothing
> > going wrong (up and including to wmadec.c).
> 
>      -Mike Melanson 

> How are you configuring FFmpeg? And is this 32-bit or 64-bit binary? We
> test FFmpeg continuously on icc/x86_32/Linux and it consistently passes
> the WMA encode/decode test (both part of the formal regression suite).
> 

Hi;

Configured through Visual Studio 2005 on Vista 32. I am not building FFMpeg
directly, I am building the libs. I have my own encoder that calls the
libav* libs. It all works fine with a build made with GCC under MingW on
Win32.

Configuration basically goes as follows: 

1) Do a ./configure with the usual parameters; in my case:
./configure --enable-memalign-hack --enable-gpl --enable-swscale
--enable-w32threads --enable-avisynth --enable-libmp3lame --enable-libxvid
--enable-libvorbis --enable-libtheora --enable-libfaad --enable-libfaac
--enable-libamr-nb --enable-libamr-wb --enable-libx264 --disable-mmx
--disable-mmx2 --disable-ssse3 --enable-nonfree

2) Run all av files through the MSVC C pre-processor to expand them (since
intel doesn't recurse some macro's correctly). Note that I disable MMX/SSE.

(I have a bunch of files changed some include headers because of that, since
the output showed me that several macro's where not expanded because of
missing defines).

3) Have some of the cabac routines fall back to plain C (one in 264.c
doesn't want to compile since ICC seems to have less reg available).

4) Have some extra empty functions for none existing proto's (ege the
register/deregister calls on codecs and protocols have an external name
mangled, GCC removes them through the linker * me thinks * )

4b. Various little tweaks here and there, but basically nothing that big.
Read: supporting a Win32 MSVC build would be perfectly possible without any
major changes or hacks. All workflow up until final build took me a good 15
hours to get right (and that's because I didn't want to hack the code
around).

5) Compile everything under c99 with icc.

6) Call the lib.

Works fine with ege AAC decoder, the mp3 decoder, the wav LC decoder, etc,
Just not the WMA decoder. When I step through the sources in aacdec.c I see
the flow going, just that the output buffers are filled with what sounds
like random noise.

I found some MSG's from people in the past referring to the possible
breaking of the AAC encoder with float_to_int routines, but I tried
replacing those directly with SSE2/MMX routines in a cut& paste, and didnt
make a difference.

On an interesting note: the expansion of the macro's kinda has me boggled. I
have no clue why it works correctly under GCC (it's a macro, and expanded,
so if the header  isn't there it should not expand). Patching those in the
sourcebase would be a "good thing" perhaps.

I can upload a lib with debug/symbol info (or a tar of the build tree)
somewhere if that helps. The obj build prob gone be big to upload though.

Tested under 10.1, and the latest beta (the latest beta breaks the AAC
decoder though, under investigation)

Erik

_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to