[MPlayer-users] Re: zlib and fontconfig

John Brown johnbrown105 at hotmail.com
Sat Nov 4 19:00:40 CET 2006


Nicholas Schell wrote:
>Hmmms
>
>On 11/3/06, John Brown <johnbrown105 at hotmail.com> wrote:
>>Nicholas Schell wrote:
>> >On 11/3/06, John Brown <johnbrown105 at hotmail.com> wrote:
>> >But who cares about shared libs anymore n_n, we want to get
>> >all this static stuff working! Except for static builds the full path
>> >to fonts.conf is compiled into the fontconfig lib itself. Do you by
>> >chance notice the same thing in your windows build? You can see the
>> >path right in the mplayer.exe with a hex editor (or in
>> >libfontconfig.a), look for fontconfig_path. I wonder if its a windows
>> >only build issue?
>>
>>I configured --with-confdir=./fonts. I see (in vi mplayer.exe):
>>@FONTCONFIG_PATH^@./fonts
>>as I expected.
>>I use Windows XP, gcc-4.1.1, MSYS 1.0.11, fontconfig-2.2.3
>
>Interesting, perhaps the difference is in the fontconfig versions we
>are using unless that is a really bad typo and you meant 2.3.2 :) ?

$ ls font*.gz
fontconfig-2.2.0.tar.gz  fontconfig-2.2.3.tar.gz
I am currently working with 2.2.3.


>I
>am also on Windows XP using gcc 3.4.5, MSYS 1.0.11 (and the latest
>msys.dll updates) with fontconfig 2.3.2. Though when I used
>--with-confdir I did not explicitly set it to a local dir with ./ ,
>perhaps that is why. I'll give that another go. You didn't really
>explicitly state yes or no, do you also get an absolute path in your
>static fontconfig builds ?

That *was* my static libfontconfig.a. I have not tried to build the DLL. 
Sorry for the confusion.
>
<snip>

>>In a previous message, you suggested that you could not distribute a 
>>static
>>libfontconfig.a because you could not build it with a relative confdir.
>>Remember that a relative confdir such as ./etc/fonts is relative to the
>>calling program's current directory, and not the directory where the 
>>program
>>lives.
>>
>>This is not very useful, as it forces you to always run MPlayer from a
>>particular directory. You are actually better off with an absolute path.
>>It's just that there should be a way for the user to choose the path. 
>>Maybe
>>there is a way, such as an environment variable; I have not really read 
>>the
>>fontconfig docs.
>>
>Well I am going for a distributable mplayer build with fontconfig so I
>do need a relative path. Which is why previously with shared
>fontconfig using ./mplayer made everything so simple. I can't send out
>a build which requires fonts.conf to be located at
>"C:/msys/1.0/mingw/etc/fonts/fonts.conf" or any other absolute path,
>it just doesn't make sense.

Consider the following directory structure:

c:\
...Movies\
......Action\
.........Top_Gun.avi
.........Independence_Day.ogm
.........etc.
......Sci-Fi\
.........Star_Wars.mkv
.........Star_Trek.mpg
.........Aliens.mov
.........etc.rm
......Etc\

As I said, when I specify a relative confdir, then confdir has to exist *in 
the directory that I am in*. If I "cd \Movies\Action" and type "mplayer 
-fontconfig -font 'Courier New' Top_Gun.avi, MPlayer crashes, because 
confdir does not exist there. It is in the fontconfig source directory.
I would have to copy confdir from the fontconfig source directory to 
C:\Movies\Action, and when I get tired of action movies, I would have to 
copy it to c:\Movies\Sci-Fi, and so on. Or, having copied the confdir to 
<mplayer-dir>\mplayer\fonts, I could stay there, and type:
mplayer ... c:\Movies\Action\Top_Gun.avi then
mplayer ... c:\Movies\Action\Independence_Day.ogm
which is a nuisance, even with command recall.

What you probably want is behaviour like MPlayer's --codecsdir. If 
--codecsdir=codecs, MPlayer looks for codecs relative to MPlayer.exe. 
MPlayer can be installed in any directory, as long as it has a subdirectory 
codecs with the binary codecs in it. You can run MPlayer from anywhere, 
because it will find the codecs in  <path-to-mplayer.exe>\codecs. You could 
check the MPlayer source to see how it determines the path to the 
executable, (probably argv[0] - is there an extern argv[] that is accessible 
to functions other than main()?) then implement something similar in 
fontconfig.

Did you check to see whether fontconfig recognizes any environment 
variables? I had a quick look at the docs, but I did not find anything.

_________________________________________________________________
All-in-one security and maintenance for your PC.  Get a free 90-day trial! 
http://clk.atdmt.com/MSN/go/msnnkwlo0050000002msn/direct/01/?href=http://www.windowsonecare.com/?sc_cid=msn_hotmail




More information about the MPlayer-users mailing list