You are not logged in.

#1 2009-08-02 17:40:09

wantilles
Member
From: Athens - Greece
Registered: 2007-03-29
Posts: 327

Attempting to build mplayer with external (shared) ffmpeg libraries.

Theoretically it is possible - the Gentoo guys have done in their e-build (USE flag external-ffmpeg).

However, when I do it I get multiple build errors about undefined references.

I use mplayer svn 29438 and ffmpeg 0.5 (and svn 19564).

The necessary additions to a normal mplayer build are:

depends=('ffmpeg>=0.5')

    --enable-rpath \
    --enable-dynamic-plugins \
    --disable-libavutil_a \
    --disable-libavcodec_a \
    --disable-libavformat_a \
    --disable-libpostproc_a \
    --disable-libswscale_a \
    --enable-libavutil_so \
    --enable-libavcodec_so \
    --enable-libavformat_so \
    --enable-libpostproc_so \
    --enable-libswscale_so \

Any help-insight why it does not build?



PS: Does ffmpeg has to be built with:

--disable-stripping

Last edited by wantilles (2009-08-02 17:49:14)

Offline

#2 2009-08-02 18:43:27

dyscoria
Member
Registered: 2008-01-10
Posts: 1,007

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

I'm not at my usual laptop at the moment (typing this on the disgusting Vista in fact), but off the top of my head, I don't think you need the --enable-lib flags that you've listed. They should be detected automatically. Try without and see if it works. I also don't remember having to use the other 2 --enable options (rpath and dynamic-plugins) but I may be wrong.


flack 2.0.6: menu-driven BASH script to easily tag FLAC files (AUR)
knock-once 1.2: BASH script to easily create/send one-time sequences for knockd (forum/AUR)

Offline

#3 2009-08-02 20:37:59

Nezmer
Member
Registered: 2008-10-24
Posts: 559
Website

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

wantilles wrote:

However, when I do it I get multiple build errors about undefined references.

Can you paste the error ?
If the error is fribidi-related , you should add '--disable-fribidi' .
I think mplayer needs other dependencies too (not just ffmpeg) .


English is not my native language .

Offline

#4 2009-08-02 20:57:40

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

You want skottish for this stuff - until he comes along, have a look at this recent post of his.

Offline

#5 2009-08-03 09:16:04

Nepherte
Member
From: Singapore
Registered: 2008-09-09
Posts: 427

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

I would certainly remove these to start with:

    --enable-libavutil_so \
    --enable-libavcodec_so \
    --enable-libavformat_so \
    --enable-libpostproc_so \
    --enable-libswscale_so \

No need to enable something that is autodetected in the first place. Other than that, skottish's pkgbuild are a good reference for what you're trying to do.

Offline

#6 2009-08-03 12:52:21

wantilles
Member
From: Athens - Greece
Registered: 2007-03-29
Posts: 327

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

Right now I am trying to narrow down the cause of this crash:

http://bbs.archlinux.org/viewtopic.php? … 61#p594461

At first I thought it was mplayer-svn's fault (tried 29446, 29462, 29463, 29465), but then I rebuilt the same snapshot (29438) that I had build on 24-07-2009, and it crashes.

The build I made then, works fine.

So what gives?

I went back to the nvidia driver of that date (185.14.18 instead of 185.14.31 of now) and the same happens -> the same build does not work. (I am using --enable-vdpau so I need nvidia in makedepends).

And now, as I am writing these lines, I even went back to gcc & gcc-libs 4.4.0 (instead of the now 4.4.1) and I am making the same build.

If it works, logic dictates that the crash has nothing to do with the mplayer code and/or the nvidia driver, but it is only related to the newer gcc snapshot.

Last edited by wantilles (2009-08-03 12:55:14)

Offline

#7 2009-08-03 13:30:15

wantilles
Member
From: Athens - Greece
Registered: 2007-03-29
Posts: 327

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

wantilles wrote:

And now, as I am writing these lines, I even went back to gcc & gcc-libs 4.4.0 (instead of the now 4.4.1) and I am making the same build.

If it works, logic dictates that the crash has nothing to do with the mplayer code and/or the nvidia driver, but it is only related to the newer gcc snapshot.

The gcc 4.4.0 build works.

It also works if built against the nvidia 185.14.31 driver.

So it is definitely a gcc 4.4.1 bug.

Should I file a bug report?

Offline

#8 2009-08-05 05:27:43

skottish
Forum Fellow
From: Here
Registered: 2006-06-16
Posts: 7,942

Re: Attempting to build mplayer with external (shared) ffmpeg libraries.

It may be a GCC linker issue, but as had been stated a few times above, there are unnecessary parts of your build that are causing the problem. I don't use --enable-path, don't --enable-vdpau, don't explicitly try to link to the FFmpeg shared objects. I really don't --enable anything. In fact, I try to disable as much as Mplayer as possible to avoid it using it's own internal libraries. This is my configure line, with the exception that I added the dynamic-plugins bit just to see if it works. And yes, even VDPAU is working great here:

./configure --prefix=/usr --confdir=/etc/mplayer \
      --disable-gui \
      --disable-faad \
      --disable-faad-internal \
      --disable-runtime-cpudetection \
      --enable-dynamic-plugins \
      --disable-faac \
      --disable-faac-lavc \
      --disable-libdv \
      --disable-aa \
      --disable-mencoder \
      --disable-liblzo \
      --disable-speex \
      --disable-fribidi \
      --disable-smb \
      --disable-openal \
      --disable-x264 \
      --disable-esd \
      --disable-jack \
      --disable-gl \
      --disable-fbdev \
      --disable-mp3lib \
      --disable-dvb \
      --disable-dvbhead \
      --disable-libvorbis \
      --disable-musepack \
      --disable-directfb \
      --disable-nas \
      --disable-liba52 \
      --disable-libavutil_a \
      --disable-libavcodec_a  \
      --disable-libavformat_a \
      --disable-libswscale_a \
      --disable-libpostproc_a \
      --disable-tv \
      --disable-tv-v4l1 \
      --disable-tv-v4l2 \
      --disable-tv-teletext \
      --disable-v4l2 \
      --disable-dga2 \
      --disable-dga2 \
      --disable-vidix

My advice to you is to let Mplayer link to whatever it finds and if there's some functionality it didn't pick up on, then try the --enable switch.

Offline

Board footer

Powered by FluxBB