Log in

View Full Version : ffdshow filter : i686 compilation option -> problem with old proc


David caid
2nd October 2002, 08:55
Hello,

I used to playback my avi (Xvid or divX3.11) file with this beautifull tool which is ffdshow. The version I was using was 20020617. In September when new binaries I installed it on my PC. each time I was starting a avi file, WMP crashed with ffdshow.ax error.
As I have a AMD K6-400 and as I already experience this similar crash with binaries of Xvid, I suspected a compilation issue.
After contacting Milan, he sent me a special version of ffdshow. The 20021001 version without any i686 or higher instructions during the compilation.
And this version works perfectly. GREAT.
So first of all I want to thanks Milan for this special version so I can validate my hypothesis.
But I have several questions about this :
ffdshow is not the only project that has this problem (I called it problem, you can understand why), Koepi Xvid binaries are not working on old processor (but Umaniacs ARE).
I don't know how to compile sources, but
Is i686 instruction compilation option important for binaries ? Does it improves performance ? CPU load ?
For ffdshow, I can imagine that CPU load is important, for Xvid encoding, I think the speed is really not a criterium. So I can imagine that compiling twice sources is extra work, so is that possible to compile sources so that a maximum of people can use binarires ?
If not, please mention in a readme that those binaries are not working with some processors.
It would be great also to give the method, or at least software, used for compilation so that everybody can make their own binaries. I'm not a programmer and I don't know how to compile but if I had some advices and tutorials (I'll start looking on the web), I can try.

David

-h
2nd October 2002, 09:03
By default, XviD will compile and function on anything above a 486.

The optimizations which break this are set in VC++ by going to the "Project" menu and selecting "Project Settings", then the "C/C++" tab, selecting the "Code Generation" category and changing the "Processor" pull-down option to something other than "Blend *" (the default).

Setting this to "Pentium Pro" does result in slightly faster binaries, but yes it breaks compatibility with CPUs such as yours. The default settings in CVS should work fine though.

-h

Nic
2nd October 2002, 10:35
& it then gets even more complicated when the Intel Compiler is used (i.e. It uses xmm registers even when I havent specified it too! lol)

Which reminds me, its about time I sent some source to Koepi :D

-Nic

milan
2nd October 2002, 14:47
Sent.

I've just compiled ffdshow with ICL with settings specified in "Win32 Release ICL" target in project file and with assembly listing enabled. No CMOV instructions were generated, no xmm registres were used. If there are other features specific to i686 to check for, let me know.