View Full Version : Compiling Xvid
ToiletDuck
19th February 2004, 07:43
Ok I want to try out the latest xbid build. I have a dual opteron system and would like make a 64bit version so I could crunch a movie to the full effect of my system. However my extent of ripping has been the use of vidomi, gordian knot, autorv9, and autodub. I've never compiled my own anything..... ever..... what is the EASIEST way for me to compile my own 64bit build? Or any new xvid build for that matter?
jimmy basushi
19th February 2004, 08:26
hi there, check out crusty's faq (http://forum.doom9.org/showthread.php?s=&threadid=70658) it has a section about compiling xvid.
ToiletDuck
19th February 2004, 08:46
god bless!
ToiletDuck
21st February 2004, 19:28
Ok I will paypal someone $10 if they compile a 64bit AMD optimised xvid codec for the opteron processor(if the exact processor matters). Any takers?
Duck
kadajawi
21st February 2004, 20:54
uh, are you using a 64 bit Windows? Without it wouldn't work.
BoNz1
21st February 2004, 22:58
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/30887.pdf in order to build with ICL8 for ia64 and you will need the platform sdk. You will also need yasm probably to build the assembler for ia64. Alternatively you may try mingw http://www.sourceforge.net/projects/mingw/ you will need mingw, msys, and the developer tools also you will probably need nasm or yasm. Run bootstrap then configure and then see if it detects you as ia64 if it does then you are in business. But probably it will only be able to build the c code for you. The best bet for the fastest build is yasm + icl8 but if you can get yasm to work in mingw that will probably be pretty good too.
Koepi
21st February 2004, 23:19
Unfortunately we're not talking about IA64 but about AMD64 :)
Regards
Koepi
evade
21st February 2004, 23:20
I just went through all this on my amd64 GNU\linux machine.
The x86 assembly code in XviD is not compatible with x86_64. I got yasm to complile XviD for x86 but it won't give you a 64-bit binary.
Xvid will compile on x86_64 in pure c, however this removes all speed advantages of running a 64-bit binary, it is slower than running the assembly optimized 32-bit binary.
Also I get a segmentation fault when encoding with the pure c 64-bit XviD (only when I use B-frames)
On the upside however running a 32-bit version of XviD on an AMD64 works flawlessly and is is very fast! And you gain the advantage of the SSE2 optimizations.
BoNz1
22nd February 2004, 00:24
Originally posted by Koepi
Unfortunately we're not talking about IA64 but about AMD64 :)
Regards
Koepi
Wups I didn't realize they were not equivalent, I had forgotten about Intel Itanium :(. That pdf will still be helpful as well as this http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_9044,00.html this interests me a lot too because I probably will get a AMD64 for my next pc :).
kadajawi
22nd February 2004, 00:53
Hmm... Gentoo is available as x86-64 optimized version, or you can compile it by yourself. But these optimizations are only for C/C++ I guess. Will the XviD developers have to rewrite the assembler part to get it optimized or can it be done by compiling it with the right options?
sysKin
22nd February 2004, 01:45
Originally posted by kadajawi
Will the XviD developers have to rewrite the assembler part to get it optimized or can it be done by compiling it with the right options? Yes, assembly part needs to be rewritten. It's mostly copy & paste & replace pointers form e** to x** registers and remember that pointers are 8-byte now and that's it, hopefully.
ToiletDuck
22nd February 2004, 08:38
Well right now i'm dual boot into windows 2k3 32bit and Windows xp 64bit. I actually find the 64bit of windows xp to be more stable than the 2k3 version. Both you can get free from M$ for now. I was thinking about putting on gentoo again now that I have 64bit however I've heard complaints about its 64 bit abilities. I was waiting on the gentoo 2004 distro to be launched. I've used it on 32 bit quite often but not 64 bit at all. I'm also worried about ripping in linux and then not being able to put the files on my NTSF drives for windows usage.
Duck
******EDIT**********
Before I got my dual opteron system I was reading reviews and one of them showed encoding on the 32bit vs 64bit system and they showed how the 64bit actually had better looking quality. Not much but some. I can't find the review but when I do I'll post it.
*******EDIT***********
And I was reading something about the Intel optimizations that if you were to change them around you could get 14% more out of the amd processors. is that true with the AMD SSE instructions too?
crusty
23rd February 2004, 22:49
I added some of this to my FAQ...hope it helps.
:
"-There's currently no possible way to use 64-bits optimizations. All the speed-hungry parts of XviD are written in assembler.
And the source has to be rewritten to make use of 64-bits registers and extensions (mostly cut&paste and register adjusments, but it still has to be done properly and thoroughly).
Xvid will compile on x86_64 in pure c, however this removes all speed advantages of running a 64-bit binary, it is slower than running the assembly optimized 32-bit binary. Other stuff like the VfW interface is not done in assembler and you can compile it with 64-bits optimizations, but it won't make any difference really."
Evade can i use this quote of you for the FAQ:
"Xvid will compile on x86_64 in pure c, however this removes all speed advantages of running a 64-bit binary, it is slower than running the assembly optimized 32-bit binary."
evade
23rd February 2004, 23:38
Originally posted by crusty
Evade can i use this quote of you for the FAQ:
"Xvid will compile on x86_64 in pure c, however this removes all speed advantages of running a 64-bit binary, it is slower than running the assembly optimized 32-bit binary."
Sure.
Hopefully it will save someone some time and energy!
Originally posted by crusty
"-There's currently no possible way to use 64-bits optimizations. All the speed-hungry parts of XviD are written in assembler.
And the source has to be rewritten to make use of 64-bits registers and extensions (mostly cut&paste and register adjusments, but it still has to be done properly and thoroughly).
You will probably want make sure you are specific to the archeteiture x86_64. There is ia64 assembly code.
tripnotik
25th February 2004, 23:37
While we're on the subject of compiling xvid, could someone help me to compile the directShow decoder? There seems to be some files missing, and I have no idea where to get them (I tried getting them from CVS, but no luck). The missing files are:
config.c
Configure.cpp
config.h
If someone could help me it would be greatly appreciated.
Thanks.
sysKin
26th February 2004, 03:42
Originally posted by tripnotik
While we're on the subject of compiling xvid, could someone help me to compile the directShow decoder? There seems to be some files missing, and I have no idea where to get them (I tried getting them from CVS, but no luck). The missing files are:
config.c
Configure.cpp
config.hThis is very weird. You're not the foirst person to say this, but these files definitely *are* in the cvs.
Strange
tripnotik
26th February 2004, 21:56
Originally posted by sysKin
This is very weird. You're not the first person to say this, but these files definitely *are* in the cvs.
Strange
I'm sorry, I was not doing it the right way. I was trying to checkout the module dshow, but I just realized that the code for dshow and vfw was now in the module xvidcore in dev-api-4. I still wonder why those files are not in the source code download on the xvid.org page.
ToiletDuck
4th March 2004, 06:54
so basically if a codec was rewritten from assembly code for AMD64 it would be highly optimized and be able to take full advantage of the chip? Or are we saying that 64bit encoding just has no real future? And with IA64 what is that itanium? How does that chip compain in mhz to a regular 32bit encode?
kadajawi
4th March 2004, 12:07
Well, depends on how well it would be optimized. I'm not a coder, but I believe it depends on the programmers knowledge about the CPU and how to optimize for it. A friend has a thick fat book from Intel about that subject.
About the Itanium... I doubt too many people have their hands on one... and is able to run XviD there (is it possible anyway? Maybe in a non assembly optimized IA64 compile... but then its probably the same problem as with the x86-64.
Yong
10th April 2005, 14:18
How to compile Xvid dshow decoder?
i followed the dx90sdk-update-gcc.txt,
but still failed,
i'm using Mingw.
Chen Yong@NEC /f/[source]/xvid/xvidcore/dshow
$ make
C: ./CAbout.cpp
In file included from <command line>:3:
c:/DX90SDK/mingw_dshow_port.h:6:1: warning: "_WINGDI_" redefined
In file included from C:/msys/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/windows.h:52,
from C:/msys/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/rpc.h:2,
from C:/msys/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/wtypes.h:1,
from c:/DX90SDK/mingw_dshow_port.h:1,
from <command line>:3:
C:/msys/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../include/wingdi.h:3:1: warning: this is the location of the previous definition
In file included from c:/DX90SDK/Samples/C++/DirectShow/BaseClasses/streams.h:166,
from src/CAbout.h:29,
from src/CAbout.cpp:36:
c:/DX90SDK/Samples/C++/DirectShow/BaseClasses/refclock.h:171:49: invalid suffix "I64" on integer constant
make: *** [CAbout.obj] Error 1
Same thing happend to compiling strmbase.lib.
Please help...
(i know i can use libavcodec or pre-compiled binary, but i want to learn c or c++ programming):p
Koepi
10th April 2005, 14:45
Use i.e. google to search for a _generic mingw issue_ - this is not at all xvid related!
First result will help you maybe: http://edu.bnhof.de/pipermail/xvid-devel/2004-August/004461.html
Cheers
Koepi
Nudnik
10th April 2005, 16:16
I have successfully built several VFW frontends using Intel's 8.1 with Visual C++, but would like to know how to incorporate the decoder settings option as well as some of the other useful tools included in professional builds by Nic and Koepi.
Sincerely,
Hevel Nudnik
A Nudnik for Our Times
(Times is Rough)
2.6 Ghz 800Mhz FSB P4
512 MB P3200 DDR RAM
celtic_druid
11th April 2005, 01:26
You mean the installer?
http://sourceforge.net/projects/innounp/
You could use the above on Koepi's installer to get an idea how it works. Or just have a look at other similar installers.
Not sure about nsis unpackers, but you can have the script I use. Not that it installs any tools or sets the decoder options, which should just be a matter of setting the registry key anyway.
Nudnik
11th April 2005, 05:34
Thank you very much for the information. I will experiment using the link you provided.
I would indeed appreciate the use of your script.
If you could explain further regarding the registry it would be most helpful.
My ulitmate goal is to be able to manufacture professional builds like those found on your site and others. This would include the installer as you mentioned, as well as the codec appearing in the start menu where one can access the decoder and encoder options etc.
All The Best,
Nudnik
Koepi
11th April 2005, 07:41
Hm, you should _know_ what you're dealing with if you want to distribute an installer - just providing an installer without being capable of helping others if they have problems with it is a really bad idea.
My 2 cents.
Cheers
Koepi
Nudnik
11th April 2005, 17:21
I am interested in this information so that I can experiment with custom builds, strictly for my own use. I wont be distributing anything, I lack the experience that would make such an endeavour worthwhile. I will leave that to those among us who actually know what they are doing : )
Sincerely,
Nudnik
:eek: :D
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.