Re: mplayer optimization for AMD x2
"Zuxy Meng" <[email protected]>
| Newsgroups | gmane.comp.video.mplayer.cygwin |
|---|---|
| Message-ID | <[email protected]> |
Hi, 2007/7/4, Anatoli Marinov <[email protected]>: > Hi folks, > > I am an old mplayer's fan so I use it with many OSes. Currently I am > trying to build ultimately optimized mplayer for my AMD 4600+ x2 > processor (for windows XP). > I found somewhere a description how to build it step by step with > mingw. The manual was a pretty old but however now I have proper > environment with latest ming stuff. Yesterday I have compiled current > mplayer sources from SVN repository and everithing works fine but I am > curious about several thing: > > 1. I've compiled (configured) my mplayer without runtime CPU > detection and with these flags: > --enable-mmx enable MMX [autodetect] > --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect] > --enable-3dnow enable 3DNow! [autodetect] > --enable-3dnowext enable extended 3DNow! [autodetect] > --enable-sse enable SSE [autodetect] > --enable-sse2 enable SSE2 [autodetect] > --enable-ssse3 enable SSSE3 [autodetect] > > The CPU supports all these sets of instruction. Does ssse3 work > because I didn't see nothing special with or without it? SSSE3 != SSE3. No AMD processors support SSSE3 yet. And currently SSSE3 only helps encode, so you aren't actually losing anything. > When I start the player with x264 encodec file I see: > $ ./mplayer.exe /1.mkv > MPlayer dev-SVN-r23715-3.4.5 (C) 2000-2007 MPlayer Team > CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ (Family: 15, > Model: 75, Stepping: 2) > CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0 > Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2 > getch2: 6 can't get number of input events [disabling console input] > > Playing C:/mingw/1.mkv. > [mkv] Track ID 1: video (V_MPEG4/ISO/AVC), -vid 0 > [mkv] Track ID 2: audio (A_AC3), -aid 0, -alang eng > [mkv] Will play video track 1. > Matroska file format detected. > VIDEO: [avc1] 1280x544 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s) > <vo_directx><ERROR>Your card doesn't support overlay > ========================================================================== > Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family > Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264) > ========================================================================== > ========================================================================== > Opening audio decoder: [liba52] AC3 decoding with liba52 > AUDIO: 48000 Hz, 2 ch, s16le, 448.0 kbit/29.17% (ratio: 56000->192000) > Selected audio codec: [a52] afm: liba52 (AC3-liba52) > ========================================================================== > > see this line -> CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0 > This compilation supports sse, sse2 and sse3 but why the flags are 0 > and sse3 missing? SSE/SSE2 are disabled for Windows @ runtime due to historical reasons. You can modify cpudetect.c to turn them on. However, even you leave this off you are't losing much because 1. libavcodec can still use SSE/SSE2 regardless of mplayer's settings. 2. SSE are only used for some audio, and SSE2 isn't much faster than MMX. > and this too- > Compiled for x86 CPU with extensions: MMX MMX2 3DNow > 3DNowEx SSE SSE2 - missing sse3 why ? Again, SSE3 != SSSE3. Neither mplayer nor ffmpeg uses SSE3. > > 2. For h264 decoding I am using default x264 functionality from ffmpeg > internal codec bundle. Is it better than x264 library from > videolan.org? IIRC x264 is an encoder, not a decoder. > > 3. Can I compile fully statically linked mplayer binary and how? I guess there's an option called --enable-static or similar. But dynamic linking in Windows doesn't hurt runtime performance much, except for a possible slower start time. > 4. Could you tell me more hints for better performance :) especially > for h264? Is it possible to use hardware acceleration mechanism from > my nv8600GT video card because it has hardware h264 decoder, filter > etc. Maybe you should try CoreAVC for the time being :-( It's indeed faster, and supports dual core. > > 5. What about pthreads support. I couldn't find pthreds for mingw. > Will it works faster with pthreads or not? You don't actually need pthread under Windows although a win32 port of pthread does exist and works well with mplayer (Google it!). Just install it or add a line of "HAVE_W32THREADS" in your config.mak. Either way will turn on multithread support. Currently only mpeg1/mpeg2 decoding supports multithreading but h264 is not far away. > > Lol I have so many questions :P > > > eng. Anatoli Marinov > Bulgaria -- Zuxy Beauty is truth, While truth is beauty. PGP KeyID: E8555ED6