# mplayer-mt on freebsd 7.2?



## wonslung (Jul 6, 2009)

hello, i'm trying to install the multithreaded version of mplayer on freebsd.  This isn't available in ports and requires you to compile ffmpeg-mt and then mplayer with some of the same stuff from ffmpeg-mt

i've got ffmpeg-mt installed now, but with mplayer i get the following error:

```
vidix/pci.o(.text+0x69): In function `pci_scan':
: undefined reference to `pci_config_type'
vidix/pci.o(.text+0x119): In function `pci_scan':
: undefined reference to `pci_get_vendor'
vidix/pci.o(.text+0x173): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x192): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1ae): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1cd): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1e6): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1ff): more undefined references to `pci_config_read_long' follow
gmake: *** [mplayer] Error 1
```

if anyone knows how to fix this, please let me know


----------



## blah (Jul 6, 2009)

multimedia/mplayer/files/patch-vidix-pci.c


----------



## wonslung (Jul 6, 2009)

blah said:
			
		

> multimedia/mplayer/files/patch-vidix-pci.c



and i can apply this to the mplayer source from svn?

how do i download JUST the patch?

thanks AGAIN, you've been a major help blah.

edit:


n/m, i see it's already there, thanks
will try.

well, the patch fails

i get this:


```
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- vidix/pci.c.orig   2007-10-07 15:49:27.000000000 -0400
|+++ vidix/pci.c        2007-11-14 03:12:26.000000000 -0500
--------------------------
Patching file vidix/pci.c using Plan A...
Hunk #1 failed at 484.
1 out of 1 hunks failed--saving rejects to vidix/pci.c.rej
done
```

this is from the pci.c.rej


```
***************
*** 484,491 ****
  #include "sysdep/pci_arm32.c"
  #elif defined(__powerpc__)
  #include "sysdep/pci_powerpc.c"
- #elif defined(__x86_64__)
- /* Nothing here right now */
  #else
  #include "sysdep/pci_x86.c"
  #endif
--- 484,489 ----
  #include "sysdep/pci_arm32.c"
  #elif defined(__powerpc__)
  #include "sysdep/pci_powerpc.c"
  #else
  #include "sysdep/pci_x86.c"
  #endif
```


----------



## blah (Jul 6, 2009)

Apply it by hand.


----------



## wonslung (Jul 6, 2009)

yah, i figured it out right before i read your post, i removed the 2 lines in the patch and it worked
thanks again man

this is great, once i get everything else working i should be able to use ps3mediaplayer the way i did on linux.  I've got mediatomb working in freebsd but it doesn't allow you to pause the transcoded mkv files from what i can tell.


----------



## wonslung (Jul 6, 2009)

ok, new issue....after following your advice on how to use the new compiler/assembler ffmpeg-mt DOES compile but now mplayer DOESNT

it IS installed with the old compiler though but it seems i should get it working with the new one if i'm to understand your post in the other thread, anyways

the new errors

```
libavformat/libavformat.a(allformats.o)(.text+0x69f): In function `av_register_all':
libavformat/allformats.c:163: undefined reference to `redir_demuxer'
libavformat/libavformat.a(allformats.o)(.text+0x6e5):libavformat/allformats.c:168: undefined reference to `rtp_muxer'
libavformat/libavformat.a(allformats.o)(.text+0x6ef):libavformat/allformats.c:169: undefined reference to `rtsp_demuxer'
libavformat/libavformat.a(allformats.o)(.text+0x6f9):libavformat/allformats.c:170: undefined reference to `sdp_demuxer'
libavformat/libavformat.a(allformats.o)(.text+0x703):libavformat/allformats.c:172: undefined reference to `av_register_rtp_dynamic_payload_handlers'
libavformat/libavformat.a(allformats.o)(.text+0x708):libavformat/allformats.c:173: undefined reference to `av_register_rdt_dynamic_payload_handlers'
libavformat/libavformat.a(allformats.o)(.text+0x86b):libavformat/allformats.c:208: undefined reference to `file_protocol'
libavformat/libavformat.a(allformats.o)(.text+0x875):libavformat/allformats.c:209: undefined reference to `gopher_protocol'
libavformat/libavformat.a(allformats.o)(.text+0x87f):libavformat/allformats.c:210: undefined reference to `http_protocol'
libavformat/libavformat.a(allformats.o)(.text+0x889):libavformat/allformats.c:211: undefined reference to `pipe_protocol'
libavformat/libavformat.a(allformats.o)(.text+0x893):libavformat/allformats.c:212: undefined reference to `rtp_protocol'
libavformat/libavformat.a(allformats.o)(.text+0x89d):libavformat/allformats.c:213: undefined reference to `tcp_protocol'
libavformat/libavformat.a(allformats.o)(.text+0x8a7):libavformat/allformats.c:214: undefined reference to `udp_protocol'
collect2: ld returned 1 exit status
```


----------



## blah (Jul 6, 2009)

Hmm, I can't reproduce it. Have you tried `gmake distclean' before building mplayer? Can you dump your configure.log somewhere? What revision of mplayer/ffmpeg-mt you have?

Builds fine here using:
mplayer r29412M (M because of hack for vidix/pci.c)
ffmpeg-mt git51428e56
gcc 4.4.1, as 2.19.1 on FreeBSD 8-CURRENT r195403M amd64


----------



## wonslung (Jul 6, 2009)

its mplayer from svn.

i'll check the revision number after breakfast.

like i said, it was able to build and install with the default compiler/assembler but when i changed to the new ones you helped me get it refused to build.  I thought perhaps it was due to it being the same sources so i went ahead and deleted them and used svn to download them a second time, i got the same errors.

I'm on freebsd 7.2 amd64..as soon as i'm done eating i'll go post these logs you asked for.  I do thank you for your time.  It's much appreciated


----------



## wonslung (Jul 6, 2009)

ok, i use svn to check out the latest version via this command

```
svn co svn://svn.mplayerhq.hu/mplayer/trunk mplayer
```
that gives me revision 29412.

then i copy libavcodec libavformat and libavutil from the ffmpeg-mt directories so when i build mplayer i get a multithreaded version

This works FINE with gcc 4.2.1

it doesn't work with gcc 4.4

i'm on freebsd 7.2 amd 64

heres the configure.log
http://pastebin.com/f64a7c0ae

do you think i might need to use one of the other patches in /usr/ports/multimedia/mplayer/files

??

oh, looking back, perhaps it's a problem with ld...when i search the last line of the error on google i get lots of stuff about ld...i'm thinking perhaps it's due to how i set my "path"


----------



## blah (Jul 6, 2009)

One of these ports may (or may not) affect breakage. List compiled based on presence of *.h files in pkg-plists from configure.log diff.

I have and you don't:

```
archivers/lzo2
audio/cdparanoia
audio/speex
converters/enca
converters/fribidi
graphics/jpeg
graphics/libungif
graphics/png
net/samba-libsmbclient
sysutils/libcdio
x11/libXv - hardware scaling (-vo xv)
x11/scrnsaverproto
x11/xf86dgaproto
x11/xineramaproto
```

you have and I don't:

```
audio/faac
audio/lame
audio/libamrnb
audio/libamrwb
multimedia/x264
multimedia/xvid
```

You can try install/remove one of these ports and see if it will fix. I'm lazy to try.

Do you see that error if you don't use ffmpeg-ft? If the error occurs without ffmpeg-mt then I guess it's better to ask someone on mplayer's IRC or maillist.


----------



## wonslung (Jul 6, 2009)

blah said:
			
		

> One of these ports may (or may not) affect breakage. List compiled based on presence of *.h files in pkg-plists from configure.log diff.
> 
> I have and you don't:
> 
> ...



i will try to install your ports to see if it makes a difference.

originally, i installed ffmpeg (non-mt)  then i deinstalled it, then i installed ffmpeg-mt and mplayer with the compiler that gmake uses, then i followed your instructions to get gcc44 working, i was able to reinstall ffmpeg-mt with the new compiler/assembler but i wasn't able to reinstall mplayer.

I HAVE mplayer installed still via the old compiler but it SHOULD be working if it works for you. Thanks for the list

question:  if i install said ports do i need to reinstall ffmpeg-mt again before i install mplayer?

thanks again for your time, it's been invaluable.


edit:

well i'm not sure what's going wrong....still same issue....i still have the mplayer i was able to install using gcc 4.2.1 though so maybe it will be enough.


----------

