
   ----------------------
          xine FAQ
   ----------------------


scope of this FAQ
-----------------

this FAQ covers xine version 0.5 and newer, it covers both xine-lib 
(the xine engine and default plugins) and xine-ui (xlib and console
user interface implementations).


how do I build this beast?
--------------------------

first make sure you use a stable, official release of gcc to compile.
You can try patched gcc versions, but these are not supported and will 
probably not work (pgcc for example is known to make libmpeg break).

You'll have to use gnu make to compile xine, on most GNU/Linux systems
make is gnu make, on other platforms use "gmake" instead.

If you want to have Xv support compiled in, make sure you either have a shared 
Xv library on your system, e.g. ls /usr/X11R6/lib/libXv* should give you
some .so libs, like this:

/usr/X11R6/lib/libXv.a  /usr/X11R6/lib/libXv.so  /usr/X11R6/lib/libXv.so.1

or you have libtool 1.4 or newer installed. If not and you only got 
libXv.a you can create the shared versions yourself:

# ld --whole-archive -shared -o libXv.so.1 libXv.a
# ln -s libXv.so.1 libXv.so
# ldconfig

now you should be ready to build xine on your system:

xine comes in two (official) parts now, xine-lib and xine-ui.

First you have to build and install xine-lib:

./cvscompile.sh  <--- only neccessary if you checked xine out of CVS
./configure
make
make install

if you have installed xine-lib to a non-standard prefix, make
sure you have <prefix>/bin in your PATH and your linker will
find libs in <prefix>/libs, in bash you can use something like

export PATH="<prefix>/bin:$PATH"
export LD_LIBRARY_PATH="<prefix>/lib:$LD_LIBRARY_PATH"

to make sure this works.

Now you can build and install xine-ui, same procedure as for xine-lib:

./cvscompile.sh  <--- only neccessary if you checked xine out of CVS
./configure
make
make install

if ./configure complains about not finding xine-lib, again (see above) 
check that <prefix>/bin is in your path and your linker will find
libs installed in </prefix>/lib.


xine-lib installed nicely but xine-ui complains about not finding xine-lib
--------------------------------------------------------------------------

make sure <prefix>/bin is in your path and the linker is able to find
libraries installed in <prefix>/lib, where <prefix> is where you installed
xine-lib (yes, you have to "make install" xine-lib first before you
can compile xine-ui). See previous question for details about how to
properly compile and install xine-lib and xine-ui.


how can I supply additional CFLAGS for the compilation ?
--------------------------------------------------------

you can do so by setting the GLOBAL_CFLAGS variable and then run 
configure again.

This can be usefull to specify additional include paths or library 
paths to the compiler. Example:

export GLOBAL_CFLAGS="-I/usr/include -L/home/guenter/xine_libs"


are there binaries for my K7 available? Can I build them?
---------------------------------------------------------

At the moment we do not provide K7 binaries, since the latest
stable gcc version (2.92.2 at the time of this writing) doesn't
have K7 support. Use the 686 binaries instead. These binaries 
should run ok and will use 3DNow!

If you have a newer gcc you can try to compile "more" k7 support
in (esp. better instruction sheduling). If the configure script
should fail to detect your processor/gcc correctly, try setting the 
XINE_BUILD envvar explicitly to a valid description string for 
your configuration, e.g.

export XINE_BUILD=k7-pc-linux-gnu
rm -f config.cache
./cvscompile.sh
make
make install


how can I make xine use the Xv extension?
-----------------------------------------

xine -V Xv foo.mpg

xine fails with "no video port found"
-------------------------------------

you got the Xv extension, but your video card driver doesn't 
support it. First try to find a driver that does support Xv on
your hardware (check your graphics card vendor). If your driver
has Xv support but you can't get it working, try at a lower
resultion (1024x768 is still enough even for anamorphic mpeg-2).

If all that fails, you can still use plain X11/XShm

xine -V XShm foo.vob


xine fails complaining about audio drivers/devices
--------------------------------------------------

you can select the audio driver using the -A option. So try

xine -A null

if you have ALSA drivers installed, try

xine -A alsa09

if you run ESD, try

xine -A esd

if you run artsd, try

xine -A arts


xine displays it's logo but I don't see my video?
-------------------------------------------------

use the play button of the gui or press RETURN for PLAY.


xine plays audio but I don't see a picture
------------------------------------------

If you see lot's of "rejected" messages, your hardware isn't
set up right for xine. It might be your sound card doesn't
support the "realtime" feature (xine tests that on startup
so you might want to look at the messages again). Try to
find better drivers then.

Perhaps your hardware is simply to slow - see "xine drops a
lot of frames" below for speed tips.


where should I put the windows codec dlls for xine?
---------------------------------------------------

xine uses 

/usr/lib/win32

by default to search for dlls, but you can change this in your
.xinerc by editing

win32_path:/usr/lib/win32


I get this message: demux error! 00 00 00 (should be 0x000001)
--------------------------------------------------------------

Probably xine can't access your input source. Most commonly this happens
when you're trying to play locked/encrypted DVDs. Remember that xine
can't play such DVDs out-of-the box (for legal reasons). 

You could use an css-enabled DVD input plugin to avoid this.

Another reason could be that your (RPC-2) DVD drive isn't set up
for the right region.


when I play this stream, xine shows some pictures but there's no audio
----------------------------------------------------------------------

Try another audio channel:

xine -a channel stream.vob

some .vob files have audio on strange channels (e.g. 3, 7, 10)


can xine play (S)VCDs ?
---------------------

Yes, use a MRL like

xine VCD://<track number>


xine drops a lot of frames
--------------------------

Your hardware is too slow for xine. Make sure you turn on all
speed optimizing options. A few point you should check:

- use a recent kernel optimized for your hardware

- use the latest gas/gcc

- close other applications (use a tool like "top" to find out
  what applications are using up CPU power)

- if you are not using Xv, make sure your display is set up
  to 16bpp, not 24 or higher (reduces memory bandwith)

- make sure the hard drive which supplies the video data
  is in DMA mode (if supported) 
  Under linux, you can use hdparm to check this, for example

  hdparm /dev/hda

  =>
  ...
   using_dma    =  1 (on)

  more information about this may be found here:

  http://oreilly.linux.com/pub/a/linux/2000/06/29/hdparm.html

- xine needs high speed memory access which depends on your chip set.
  Make sure you enable all speed-improving options. 

  especially the via apollo pro chipset is known to be quite weird,
  (most of all on my gigabyte board). If you can't configure the ram
  access thoroughly using the bios you might want to try some really
  nasty tricks, as explained on (for example)
         http://www.overclockers.com/tips105/index03.asp
  this website centers around a windows-tool to tweak the chipset,
  you can do the same on FreeBSD with pciconf. On some linux
  distributions there are similar tools.

  please contact heiko if you have any problems or tips about via
  apollo pro chipset tweaking.

- a nice performance tuning tool can be found here:

  http://powertweak.sourceforge.net

- enable MTRR support in your kernel. If you are still using XFree 3.x,
  you'll have to tell the kernel yourself where the graphics memory is.
  You'll find details about that in the linux dvd howto.

  If you're using XFree 4.x enabling MTRR support should be enough.

  Try a cat /proc/mtrr - if the file exists and you find an entry
  corresponding to the amount of graphics memory you have, everything
  should be fine.

- set up and use raw devices for dvd access

  raw devices should be available in linux kernel 2.4.x and there
  are patches for older kernels available from

  ftp://ftp.kernel.org/pub/linux/kernel/people/sct/raw-io/

  to use raw devices, first connect a free raw device to your dvd
  device, use something like

  raw /dev/raw1 /dev/hdc

  then create a link named "rdvd" pointing to that raw device

  ln -s /dev/raw1 /dev/rdvd


now how do I get this Xv extension to work?
-------------------------------------------

First you need to install/use XFree 4.x. Once you got that you have to
make sure the XFree drivers you're using are supporting Xv on your
hardware. Here are some locations to look for suitable drivers:

g200/g400    : xfree 4.x supports these out-of-the-box
nvidia cards : www.nvidia.com (the've got binary drivers)
ATI cards    : GATOS www.linuxvideo.org/gatos/
i815         : the latest xfree 4.x code supports these
3dfx (voodoo): the latest xfree 4.x code supports these
savage       : http://www.probo.com/timr/savage40.html


can xine produce 4-/5-channel surround audio output?
----------------------------------------------------

yep, xine can do that using OSS or ALSA drivers, provided that
the driver supports it. On startup xine tells you what modes are
supported by your audio driver, e.g:

audio_oss_out : supported modes are mono stereo (4-channel not enabled in .xiner
c) (ac3-pass-through not enabled in .xinerc)

on this machine 4-channel surround would be possible. However,
since xine cannot detect if there are actually speakers connected
to the additional channels, you'll have to manually enable this mode
in your ~/.xinerc:

four_channel:1


what about ac3 output via spdif to an external ac3 decoder?
-----------------------------------------------------------

xine can do that too. Pretty much the same story as for 4-/5-channel
surround here, you'll have to enable it in your ~/.xinerc:

ac3_pass_through:1


what do all these .xinerc entries mean?
---------------------------------------

you'll find more info about them in doc/README.xinerc


where and how do I get the latest development version?
------------------------------------------------------

check it out of our CVS:

cvs -d :pserver:anonymous@cvs.xine.sourceforge.net:/cvsroot/xine login

<empty password>

cvs -d :pserver:anonymous@cvs.xine.sourceforge.net:/cvsroot/xine co xine-lib
cvs -d :pserver:anonymous@cvs.xine.sourceforge.net:/cvsroot/xine co xine-ui



how do I use the dvd plugin?
----------------------------

First of all:
The dvd plugin delivered with xine currently does not support playback 
of locked and/or encrypted dvds. You will need external programs
or something like an "improved" xine_dvd_plugin to view these
DVDs with xine directly. Of course you could
play back the decrypted mpeg2 stream (technically speaking) that is the
movie on the dvd with xine with the help of additional programs.
Due to the uncertain legal situation regarding css encryption we do
not include anything of that nature in the xine distribution, nor do
we generally endorse the use of such software (you should check if
the use of such software is legal where you live).
We hope that this situation will change soon.

For unlocked/unencrypted dvds it is a good idea first to check what
files are on the dvd by mounting it. The files are called something
like .../VIDEO_TS/VTS_xx_x.VOB, where x are numbers.
If you look for the big .VOB files on a dvd these are probably where the
movie is in. Currently we don't support seamless playback of complete
movies - you will have to play back all of its individual parts.

To play that VOB file use something like

xine dvd://VTS_xx_x.VOB

make sure you do not supply any path name (no VIDEO_TS/) and use
capital letters for the file name.

xine tries to open the dvd using /dev/cdrom. On freebsd this will only
work if you create a symlink to your dvd-devicenode for the time being.


unable to open dvd drive (/dev/dvd) 
-----------------------------------

You probalby don't have /dev/dvd (check that). If so, simply
create a link /dev/dvd that points to your DVD device. 
Something like 

cd /dev
ln -s hdc dvd

should do the job.


I seem to have problems setting up my RPC-2 drive for the right region
----------------------------------------------------------------------

You can download a tool to set the region code of RPC-Drives here:

http://linuxtv.org/download/dvd/dvd_disc_20000215_css.tar.gz

Warning: Please be aware that the number of region code changes in 
RPC-2 drives is limited (usually about 5 times), after that your drive 
will stay locked to the region you last set it up for.


the aspect ratio is wrong!
--------------------------

Try pressing "A" to toggle the aspect ratio



how do I play streams from STDIN ?
----------------------------------

use something like

cat stream.mpg | xine stdin://mpeg1

or, if you've got an mpeg-2 stream use

cat stream.vob | xine stdin://mpeg2


how do I change the skin?
-------------------------

Run xine at least once - it should write it's config file
.xinerc to your home directory. Now edit that file and change
the line "skin:default" to mach the skin you would like to use.


how can I change color/brightness/contrast?
-------------------------------------------

At the moment this is only supported on some Xv drivers. You'll find
three entries like these in our ~/.xinerc:

brightness:0
saturation:0
contrast:128
 
the values and possible ranges depend on your Xv driver so you'll have 
to experiment a bit to get a good picture.


some parts of my X Desktop get transparent when xine plays the video!
---------------------------------------------------------------------

Looks like some colors on your GUI match the colorkey Xv uses. You can
change the colorkey value to avoid this. There should be a line like

colorkey:2110

to your ~/.xinerc where you can change the color that's used by xine 
for the video overlay.


i get no sound, but "audio driver 'oss' failed, using null driver instead."
---------------------------------------------------------------------------

First of all, make sure that your OSS Audio drivers are working (ie you can
play music with other software).

The most common reason for this is that some other program is accesing your
audio device. If you're using linux, the command "fuser /dev/dsp" should give
you the PID of the process.

If you are using GNOME, chances are, that this is caused by ESD. Now you
have two possibilities. Either deactivate ESD (temporarily) by right
clicking on the sound monitor applet and selecting "Place Esound in
standby". Then xine will use OSS audio output. The other method is to make
xine use ESD for audio output with

xine -A esd

This may result in more jerkier playback, so the first method is the
preferred one.


i have problems when using xine on FreeBSD, Solaris
---------------------------------------------------

check out the the corresponding README files in the doc directory


what is aalib? how do I use it in xine?
---------------------------------------

aalib is an ascii art library. xine comes with an aalib video output
plugin so you can watch movies in your xterm, on the console or
on your old vt100 - very cool, btw ;>

to use it simply make sure you have aalib installed correctly before
you configure/build xine-lib and xine-ui. Besides the "xine" binary
a "aaxine" binary should get built and installed, so you can use something 
like

aaxine foo.mpg

to use aalib video output.


problem with loading alsa 09 libraries
--------------------------------------

Joel Atyas <smilin@seedling.com> wrote:

i had a similar problem which turned out to be caused by a feature in
.xinerc which is still undocumented.  so this proposed solution is bound
to be a wild guess:  put the lines

alsa_pcm_device:plughw:0,0
alsa_ac3_device:plughw:0,2

somewhere into your ~/.xinerc and try again.


i think I found a bug!
----------------------

xine is still under heavy developement. Please be patient.
If you got time, please contact us and send us a full bug report.
Please include all xine console output and some details about
your hardware and operating system.

You can reach us via email:

  Xine Mailing List <xine-user@lists.sourceforge.net>
