MPlayer in Slackware.


Linux-SWAT

Forum Addict!
Joined
Feb 13, 2010
Messages
9,194
Separated from pder SMPlayer thread.


So i made some tests.


It's great to see that your pnd now works under Slackware !!!


So here's the funny thing:


Your port is faster with x264 videos while mine is faster with divx !!!
 
Last edited by a moderator:
Interesting, I wonder what's different. A couple questions:


What did you end up using regarding libav, the submodule version from mplayer2-build or something else?


Are you statically linking or dynamic?


What gcc version are you using? I'm using:


arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2011.03-41) 4.5.2
 
So as i told you, the libavcodec, libavfilter etc are in my ffmpeg package i built from sources, after a bunch of deps.


All were -O2, i've now just recompiled ffmpeg -O3.


I may try a -O3 x264, but it's getting boring to spend two days compiling ^^.


Do you know if when i optimize a dep, i also have to recompile ffmpeg ?


I think it's all dynamic.


I use 4.7.1.


I saw your mplayer binary is huge.
 
Oh, i just saw that ffmpeg doesn't optimize at max, even with --cpu=host and classic exports.


I had to manually --enable-armvfp and --enable-neon .


That's also the case with your libav, but maybe you enable them in a hidden script ?
 
Oh, i just saw that ffmpeg doesn't optimize at max, even with --cpu=host and classic exports.


I had to manually --enable-armvfp and --enable-neon .


That's also the case with your libav, but maybe you enable them in a hidden script ?

There is nothing hidden, everything of interest is in scripts/libav-config and libav_options


This python script ends up running configure with the following options(from config.log)



Code:
# /home/pder/projects/pandora/mplayer2-build/libav/configure --prefix=/home/pder/projects/pandora/mplayer2-build/build_libs --enable-gpl --cpu=host --disable-debug --enable-pthreads --disable-shared --enable-static --disable-avdevice --disable-avfilter --disable-vaapi --disable-avconv --disable-avplay --disable-avserver --disable-avprobe --target-os=linux --arch=armv7 --cpu=cortex-a8 --cross-prefix=arm-none-linux-gnueabi- --extra-cflags='-mfpu=neon -mfloat-abi=softfp' --extra-cflags=-I/home/pder/pandora-dev/arm-2011.03/usr/include --extra-ldflags=-L/home/pder/pandora-dev/arm-2011.03/usr/lib



Its probably the --extra-cflags option that is enabling neon:

Here is an excerpt of the output of running make libav-config:



Code:
install prefix		    /home/pder/projects/pandora/mplayer2-build/build_libs

source path			   /home/pder/projects/pandora/mplayer2-build/libav

C compiler			    arm-none-linux-gnueabi-gcc

ARCH					  arm (cortex-a8)

big-endian			    no

runtime cpu detection	 no

ARMv5TE enabled		   yes

ARMv6 enabled			 yes

ARMv6T2 enabled		   yes

ARM VFP enabled		   yes

NEON enabled			  yes

debug symbols			 no

optimize for size		 no

optimizations			 yes

static				    yes

shared				    no

new filter support	    no

network support		   yes

threading support		 pthreads

safe bitstream reader	 yes

SDL support			   yes

libdxva2 enabled		  no

libva enabled			 no

libvdpau enabled		  no

AVISynth enabled		  no

frei0r enabled		    no

gnutls enabled		    no

libcdio support		   no

libdc1394 support		 no

libfaac enabled		   no

libfdk-aac enabled	    no

libgsm enabled		    no

libilbc enabled		   no

libmp3lame enabled	    no

libopencore-amrnb support no

libopencore-amrwb support no

libopencv support		 no

libopenjpeg enabled	   no

libopus enabled		   no

libpulse enabled		  no

librtmp enabled		   no

libschroedinger enabled   no

libspeex enabled		  no

libtheora enabled		 no

libvo-aacenc support	  no

libvo-amrwbenc support    no

libvorbis enabled		 no

libvpx enabled		    no

libx264 enabled		   no

libxavs enabled		   no

libxvid enabled		   no

openssl enabled		   no

zlib enabled			  yes

bzlib enabled			 yes


Also the mplayer binary is so big because every library that is built in the mplayer2-build repo is statically linked.
 
Ok thanks, the ./configure output is precious for me ^^.


May i ask you why you prefer static over shared ? Is this about performance ?
 
My new optimized ffmpeg/mplayer build uses ~2% more CPU (43% vs 41%) on the same .mpg video... That's weird...


And yours is far better: 29%
 
Last edited by a moderator:
I used your full sources.


I had to copy /linux in the mplyer folder.


It ends with:



Code:
CC    mplayer

/usr/lib/gcc/arm-slackware-linux-gnueabi/4.7.1/../../../../arm-slackware-linux-gnueabi/bin/ld: libmpcodecs/vd_xanim.o: undefined reference to symbol 'dlsym@@GLIBC_2.4'

/usr/lib/gcc/arm-slackware-linux-gnueabi/4.7.1/../../../../arm-slackware-linux-gnueabi/bin/ld: note: 'dlsym@@GLIBC_2.4' is defined in DSO /lib/libdl.so.2 so try adding it to the linker command line

/lib/libdl.so.2: could not read symbols: Invalid operation

collect2: error: ld returned 1 exit status

make[1]: *** [mplayer] Error 1

make[1]: Leaving directory `/home/me/mplayer2-build/mplayer'

make: *** [mplayer] Error 2
 
Last edited by a moderator:
Managed to compile it with the help of make V=1 and some manual tweaks.


Finally have a good mplayer binary !
 
Back
Top