diff options
Diffstat (limited to 'doc/faq/faq.docbook')
| -rw-r--r-- | doc/faq/faq.docbook | 2332 | 
1 files changed, 2332 insertions, 0 deletions
| diff --git a/doc/faq/faq.docbook b/doc/faq/faq.docbook new file mode 100644 index 000000000..bffd955e3 --- /dev/null +++ b/doc/faq/faq.docbook @@ -0,0 +1,2332 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" +  "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd" > + +<book> + + <bookinfo> +  <title>The xine engine FAQ</title> +  <titleabbrev>xine FAQ</titleabbrev> +  <copyright> +   <year>2001-2008</year> +   <holder>the xine project team</holder> +  </copyright> + </bookinfo> + + <article> +  <sect1 id="general"> +   <title>General questions about xine and this document</title> + +   <sect2 id="about"> +    <title>What is the xine engine?</title> +    <para> +     The xine engine is a free media player engine. It comes in the form of +     a shared libarary and is typically used by media player frontends +     and other multimedia applications for playback of multimedia streams +     such as movies, radio/tv network streams, DVDs, VCDs. +    </para> +    <para> +     Since there are several frontends for the xine library available, +     this document has a problem when it comes to examples. +     The two most common frontends xine-ui and gxine are mixed in command +     line examples throughout this FAQ. When you use a different +     frontend, some of these will not work for you. The filename of +     the config file also varies amongst frontends. If you get confused, +     I recommend you try with one of xine-ui or gxine. +    </para> +   </sect2> + +   <sect2 id="scope"> +    <title>What's the aim and scope of this text?</title> +    <para> +     The primary goal of this FAQ is to cover all recurring questions related +     to the xine engine. Frontend specific questions are usually not covered here. +    </para> +   </sect2> + +   <sect2 id="wheretogethelp"> +    <title>My question is not yet covered here – where can I ask for help?</title> +    <para> +     First of all be sure that your question is really not covered here and +     that you haven't just been a bit too lazy to read through all of this +     text. ;-). Also check out the documentation specific to +     the frontend (e.g. <command>xine-ui</command> or <command>gxine</command> or +     <command>totem</command>). +    </para> +    <para> +     That said – you are welcome to mail to our user mailing list: +     <email>xine-user@lists.sourceforge.net</email> +     Please provide some info about your setup so people have a chance to +     help you, e.g. include information about your audio/video hardware +     and drivers you use, operating system, cpu type and some console +     output/any error messages. Also include command line parameters you +     have specified and information about the type of stream you're +     trying to play back. Also very important is the version of xine +     you're using and information about any additional plugins you +     may have installed on your system. +    </para> +   </sect2> + +   <sect2 id="pronounce"> +    <title>How do I pronounce "xine"?</title> +    <para> +     As long as people know what you are talking about, you are free to +     pronounce it the way you like, but the official pronounciation is +     [ksi:n], like the name "Maxine" with the "Ma" removed. +    </para> +   </sect2> + +   <sect2 id="modules"> +    <title>What are those xine-lib, xine-ui, gnome-xine, … modules in cvs for?</title> +    <para> +     Some time ago xine just became too complex to be just one big program. +     Therefore it was split into two major parts. +    </para> +    <para> +     xine-lib is simply speaking the engine of xine. It contains all basic plugins +     and is necessary to run anything that relies on xine. (This is the part that +     is covered in this FAQ.) +    </para> +    <para> +     Then there are frontends – applications that use xine. The most +     common frontend is that of a media player. There are currently +     two frontends being developed in the xine project, xine-ui (skinned +     dvd-player style frontend directly based on xlib) and gxine, +     a desktop media-player style frontend using the standard gtk widget set +     and comes with a mozilla browser plugin. +     External projects like kaffeine, sinek and totem develop additional frontends. +     In the future you will likely see more and different types of applications +     being developed which will use the xine engine for video processing +     and other multimedia purposes. +    </para> +    <para> +     If you simply want a media/dvd player, you'll need to install xine-lib +     first and then choose and install a player frontend like xine-ui or gxine. +    </para> +    <para> +     Other modules in CVS are: <filename>xine-plugin</filename> a mozilla browser plugin +     for streaming media playback using xine, +     <filename>xine_www</filename> the +     xine project website sources. +    </para> +   </sect2> + +   <sect2 id="cvs"> +    <title>Where and how do I get the latest development version?</title> +    <para> +     Be advised that end-users should stick to the official xine releases. +     The CVS and Mercurial repositories are only intended for developers and for others who know why they use it. +    </para> +    <sect3> +     <title>Checking out xine modules from Mercurial</title> +     <para> +      The repositories are listed at <ulink url="http://hg.debian.org/hg/">http://hg.debian.org/hg/</ulink>; +      however, this is a list of all repositories which are kept there, not just the +      xine project's (which are the ones which begin with <filename>xine-lib/</filename>). To check one out: +      <screen>   <command>hg clone http://hg.debian.org/hg/<filename>repository</filename> <filename>local_copy</filename></command></screen> +      e.g. +      <screen>   <command>hg clone http://hg.debian.org/hg/xine-lib/xine-lib xine-lib</command></screen> +     </para> +     <para> +      Currently, only xine-lib and gxine are present here. +     </para> +    </sect3> +    <sect3> +     <title>Checking out xine modules from CVS</title> +     <para> +      To check out xine modules from CVS, first do this: +      <screen>   <command>cvs -d :pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine login</command></screen> +      The password is empty, just press Enter. +     </para> +     <para> +      Then, to check out individual modules (e.g. <filename>xine-lib</filename> or <filename>xine-ui</filename>): +      <screen>   <command>cvs -d :pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine co <modulename></command></screen> +     </para> +     <para> +      If you want xine-lib or gxine, you should use Mercurial instead. +      The CVS repositories for these are not maintained. +     </para> +    </sect3> +   </sect2> + +   <sect2 id="patch"> +    <title>How do I submit patches?</title> +    <para> +     First, make sure that you're using a current development version +     (see above) or at least the current release version. Then, once you're +     ready to send the patch… +    </para> +    <para> +     Generate your patch using either <command>cvs diff -u > +     my.patch</command> or <command>hg diff > my.patch</command> (as +     appropriate). Make sure that your message subject briefly describes the +     patch; your message body should contain a longer description of the +     patch. Your patch should be applicable using <command>patch -p0 -i +     my.patch</command> or, preferably, <command>patch -p1 -i +     my.patch</command> from the top-level directory in the source tree +     (i.e. where configure.ac is) – this is fairly important for our +     Mercurial-based repositories since it makes importing your patch that +     much easier (hg import defaults to -p1). +    </para> +    <para> +     Alternatively, if you've been hacking away at a module which is +     maintained using mercurial, you can make them available as diffs – use +     <command>hg export</command> or, if you have several patches, you could +     use <command>hg bundle</command> instead (both require extra +     parameters; <command>hg help export</command> and <command>hg help +     bundle</command> for more details) – or via HTTP by using <command>hg +     serve</command>. In the latter case, you'll need to post a URL from +     which a developer can pull the changes. +    </para> +    <para> +     Patches should normally be sent to the xine-devel mailing list, +     <email>xine-devel@lists.sourceforge.net</email>. +    </para> +   </sect2> + +   <sect2 id="gnome-xine"> +    <title>Why is gxine's CVS module named "gnome-xine"?</title> +    <para> +     Historical reasons: gxine was originally named gnome-xine. +    </para> +   </sect2> + +   <sect2 id="binaries"> +    <title>Where can I find pre-compiled binaries, e.g. RPMs?</title> +    <para> +     The xine project does not provide pre-compiled binaries for legal +     reasons (some parts of xine may be covered by patents in some countries). +     Some OS projects/vendors (e.g. Debian, FreeBSD, …) offer binaries +     for their distributions – please contact them or use their package search +     tools for further info. +     You can also find links to third parties providing xine RPMs on +     the xine homepage at +     <ulink url="http://www.xine-project.org/releases">http://www.xine-project.org/releases</ulink>. +    </para> +    <para> +     See the next section of this FAQ for instructions on how to build xine +     from source. +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="building"> +   <title>Building and installing xine from source</title> + +   <sect2 id="buildrequirements"> +    <title>What do I need to compile everything properly?</title> +    <para> +     First of all an official and stable release of gcc. Also be aware +     that patched gcc versions may break parts of xine and are therefore +     not supported by the xine project. +    </para> +    <para> +     Furthermore 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. +     Also, zlib is required (including the appropriate header files, which are +     often found in a package called zlib-devel or similar.) +    </para> +    <para> +     If you want to compile xine from CVS, you'll need to have the autobuild tools +     installed (automake, autoconf and libtool – in recent versions). +    </para> +    <para> +     Frontends might need additional libraries, e.g. for gxine you'll need to have +     GTK2 installed. Make sure you have not only the shared libraries themselves +     but also the header files (often packaged seperately as so-called -dev packages) +     on your system. +    </para> +    <para> +     Some plugins that come with the xine engine need additional libraries (otherwise +     they will not be built). For example, libogg and libvorbis (plus their include files) +     are needed for ogg/vorbis support. Most notably, if you want to see any video +     on your X11 desktop (and that's what you're here for, isn't it?), you need the +     X developer packages as well. +    </para> +    <para> +     Don't worry about this too much right now, xine's <command>configure</command> +     (see below) will check for all the stuff needed and will tell you what's missing +     (which means that you should check the output it produces carefully ;) ). +    </para> +   </sect2> + +   <sect2> +    <title>How do I compile xine?</title> +    <sect3 id="simplebuildinstr"> +     <title> Simple build instructions for beginners </title> +     <para> +      Download the latest xine-lib and gxine/xine-ui tarballs, then follow +      these instruction. To unpack a tarball, use: +      <screen>   <command>tar xfvz tarballname.tar.gz</command></screen> +     </para> +     <para> +      The following instructions will install xine in <filename>/usr/local</filename> +      where it will be visible for all users. You need root privileges to do this on most systems. +     </para> +     <para> +      After unpacking xine-lib, issue: +      <screen> +   <command>./configure</command> +   <command>make install</command></screen> +     </para> +     <para> +      Make sure your <filename>/etc/ld.so.conf</filename> contains +      <filename>/usr/local/lib</filename> and continue with: +      <screen>   <command>ldconfig</command></screen> +     </para> +     <para> +      Now unpack your frontend (gxine or xine-ui or …), then: +      <screen> +   <command>./configure</command> +   <command>make install</command></screen> +     </para> +    </sect3> +    <sect3 id="completebuildinstr"> +     <title>Complete build instructions</title> +     <para> +      The build process is the same for all of the xine modules. +     </para> +     <para> +      You have to start with xine-lib. If built and installed successfully, you +      can continue with the frontend(s). +     </para> +     <para> +      If you have installed xine-lib to a non-standard prefix, make sure +      that you have <filename>$prefix/bin</filename> in your PATH and that your linker finds +      libs in <filename>$prefix/lib</filename> – otherwise trying to build modules that +      rely on xine-lib will fail with configure complaining about not +      finding certain parts of libxine. Using bash you can do something like: +      <screen> +   <command>export PATH="$prefix/bin:$PATH"</command> +   <command>export LD_LIBRARY_PATH="$prefix/lib:$LD_LIBRARY_PATH"</command></screen> +      to make sure libxine can be found by the frontend(s). +     </para> +     <para> +      Last but not least. Here the build instructions. As stated earlier, +      those are the same for every xine module. +      <screen> +   <command>./autogen.sh</command> [→ <emphasis>only</emphasis> if you checked your sources out of CVS] +   <command>./configure</command> +   <command>make</command> +   <command>make install</command></screen> +     </para> +    </sect3> +   </sect2> + +   <sect2 id="rpmbuild"> +    <title>Making your own RPM packages (xine-lib, xine-ui, gxine)</title> +    <para> +     Basically you will only have to issue one command, if you have just +     downloaded a source tarball from our web site: +     <screen>   <command>rpmbuild -ta <THE_NAME_OF_YOUR_SOURCE_TAR_BALL></command></screen> +     (Older versions of RPM use <command>rpm</command> instead of <command>rpmbuild</command>.) +    </para> +    <para> +     This will start the binary and source RPM building. After compiling is +     finished, a binary rpm is placed in your rpm binary directory which is +     something like <filename>/usr/src/RPM/RPMS/<YOUR_ARCHITECTURE></filename> +     and a source RPM is written to your rpm source dir +     (e.g. <filename>/usr/src/RPM/SRPMS</filename>). +    </para> +    <para> +     In case that you have a fresh CVS checkout, you will need to do the +     following first in order to get a tarball release out of it which you +     can later use with the <command>rpmbuild -ta</command> command above: +     <screen>   <command>./autogen.sh && make clean && make dist</command></screen> +    </para> +    <para> +     In any case, please keep in mind that you have to build and install +     xine-lib first before you can proceed with xine-ui. +    </para> +   </sect2> + +   <sect2 id="debbuild"> +    <title>Making your own .deb packages (xine-lib, xine-ui, gxine)</title> +    <para> +     You'll need a CVS or HG snapshot tarball or source checked out from the repository. +    </para> +    <para> +     First, make sure that the "devscripts" package is installed. You'll +     then need the following commands (the first one isn't needed unless you're using a snapshot tarball): +     <screen> +   <command>tar xzf <PACKAGE-VER.tar.gz></command> +   <command>cd <PACKAGE-VER></command> +   <command>./autogen.sh noconfig</command> +   <command>debuild binary</command> +     </screen> +     (If <command>debuild</command> complains about unmet dependencies, then +     install them using <command>aptitude install <PACKAGES></command> (as root) then re-run +     <command>debuild binary</command>. +    </para> +    <para> +     Once the build has been successfully completed, you'll have some new .debs. +     <screen> +   <command>cd ..</command> +   <command>ls *.deb</command> +   <command>su - -c 'cd '"`pwd`"' && dpkg -i <DEB_PACKAGES>'</command> +     </screen> +     Ubuntu users will probably want to use this instead of that <command>su</command>: +     <screen> +   <command>sudo dpkg -i <DEB_PACKAGES></command> +     </screen> +    </para> +    <para> +     In any case, please keep in mind that you have to build and install +     xine-lib first before you can proceed with xine-ui or gxine. +    </para> +   </sect2> + +   <sect2 id="cflags"> +    <title>Can I provide additional CFLAGS for compilation?</title> +    <para> +     Yes, you can do so by setting the CFLAGS variable and then running +     <command>configure</command> again. You can even pass them to +     <command>configure</command> directly. Example: +     <screen>   <command>./configure CFLAGS="-march=i686"</command></screen> +    </para> +    <para> +     Other user variables <command>configure</command> respects are: +     <itemizedlist> +      <listitem> +       <para> +        <command>CC</command> to specify the compiler executable +       </para> +      </listitem> +      <listitem> +       <para> +        <command>CPP</command> to specify the C preprocessor executable +       </para> +      </listitem> +      <listitem> +       <para> +        <command>LD</command> to specify the linker executable +       </para> +      </listitem> +      <listitem> +       <para> +        <command>CPPFLAGS</command> to pass additional include paths or other +        preprocessor options +       </para> +      </listitem> +      <listitem> +       <para> +        <command>LDFLAGS</command> to pass additional library paths or other +        linker options +       </para> +      </listitem> +     </itemizedlist> +    </para> +    <para> +     An example combining some of these would look like: +     <screen>   <command>./configure CC="/opt/intel/bin/icc" LD="/opt/intel/bin/xild" \ +   CPPFLAGS="-I/usr/local/include/dvdnav" LDFLAGS="-L/home/guenter/xine_libs"</command></screen> +    </para> +   </sect2> + +   <sect2 id="athlonflags"> +    <title>Are there binaries for my AMD K7 (Athlon™) available? Can I build them?</title> +    <para> +     If you have a recent gcc you can try to compile "more" k7 support in (esp. +     better instruction scheduling). If the configure script should fail to +     detect your processor/gcc correctly, try passing the canonical system name for +     your machine to configure with the <command>--host</command> option, e.g. +     <screen>   <command>./configure --host=k7-pc-linux-gnu</command></screen> +    </para> +   </sect2> + +   <sect2> +    <title>Build problems: xine engine (xine-lib)</title> +    <sect3 id="doesntcompile"> +     <title>The package doesn't compile at all!</title> +     <para> +      In order to be able to compile xine-lib, you need (amongst other things) +      the zlib compression library plus the appropriate headers, which are +      often found in a package called zlib-devel or similar. +     </para> +     <para> +      Read again carefully the output <command>./configure</command> +      produced and/or compiler warnings and error reports, they often contain +      helpful information to find out what's going on. If you're stuck here +      and decide to post your problem on the xine-user mailing list, +      make sure you include these outputs. +     </para> +    </sect3> +    <sect3 id="xvpluginfailstobuild"> +     <title>The Xv video-out plugin fails to compile!</title> +     <para> +      If you want to have Xv support compiled in, make sure you either have +      a shared Xv library on your system, e.g. +      <command>ls /usr/X11R6/lib/libXv*</command> +      should give you some .so libs, like this: +      <screen> +   /usr/X11R6/lib/libXv.a +   /usr/X11R6/lib/libXv.so +   /usr/X11R6/lib/libXv.so.1</screen> +     </para> +     <para> +      Alternatively you need to have libtool 1.4 or newer installed, then +      libXv.a is sufficient. Otherwise you can create the shared versions yourself: +      <screen> +   <command>ld --whole-archive -shared -o libXv.so.1 libXv.a</command> +   <command>ln -s libXv.so.1 libXv.so</command> +   <command>ldconfig</command></screen> +     </para> +     <para> +      Now you should be ready to build the Xv video-out plugin on your system. +     </para> +    </sect3> +   </sect2> + +   <sect2> +    <title>Build problems in frontends (gxine/xine-ui/…)</title> +    <sect3 id="xinelibnotfound"> +     <title>I have installed xine-lib but the frontend complains about not finding it!</title> +     <para> +      First of all take a closer look at the compilation instructions above again. +      You will probably find your answer there right away. +     </para> +     <para> +      As stated there (there again that hint *grin*), make sure that you +      have <filename>$prefix/bin</filename> in your path and that your +      linker is able to find libraries installed in <filename>$prefix/lib</filename> +      By the way, $prefix is where you installed your xine-lib to earlier +      (yes, installing xine-lib with <command>make install</command> or +      installing the corresponding distribution-provided -dev or -devel +      package would be a good idea before trying to compile the frontend ;) +      ). +     </para> +    </sect3> +   </sect2> + +   <sect2 id="nonrootbuild"> +    <title>Can I install xine in my home directory (without being root)?</title> +    <para> +     Sure. First set up a subdir where you install your private software, eg. +     <screen>   <command>mkdir ~/xine</command></screen> +    </para> +    <para> +     Then you have to set a few environment variables – it's probably a good +     idea to add this to your <filename>~/.bashrc</filename> (or somewhere similar): +     <screen> +   <command>export PATH="$HOME/xine/bin:$PATH"</command> +   <command>export LD_LIBRARY_PATH="$HOME/xine/lib:$LD_LIBRARY_PATH"</command></screen> +    </para> +    <para> +     Now you can unpack tarballs e.g. in <filename>~/xine/src</filename> +     (<command>mkdir ~/xine/src</command> if necessary) and do a +     <screen> +   <command>./configure --prefix=$HOME/xine</command> +   <command>make install</command></screen> +    </para> +    <para> +     You also need to tell frontends using xine-lib, where to find it: +     <screen>   <command>./configure --prefix=$HOME/xine --with-xine-prefix=$HOME/xine</command></screen> +    </para> +   </sect2> + +   <sect2 id="win32build"> +    <title>How to compile xine for Windows?</title> +    <para> +     For compiling xine under Windows with MinGW, CygWin or MS Visual C see <ulink url="http://hg.debian.org/hg/xine-lib/xine-lib?cmd=file;file=doc/README.WIN32;filenode=-1;style=raw"><filename>README.WIN32</filename></ulink>. +    </para> +    <para> +     For cross-compiling xine under comfortable unix-like environment with MinGW see <ulink url="http://hg.debian.org/hg/xine-lib/xine-lib?cmd=file;file=doc/README.MINGWCROSS;filenode=-1;style=raw"><filename>README.MINGWCROSS</filename></ulink>. +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="playback"> +   <title>Playback of various stream types</title> + +   <sect2> +    <title>DVD Playback with xine</title> +    <sect3 id="dvdplayback"> +     <title>How do I play back DVDs with xine?</title> +     <para> +      Newer xine (1.0.x) releases come with a full-featured +      DVD plugin that should be able to handle any unencrypted, +      non-locked DVD with full menu navigation support. No external +      plugins are required anymore here. +     </para> +     <para> +      To get DVD playback working, first make sure you have +      a symlink <filename>/dev/dvd</filename> pointing to your +      DVD device on your system. For example, if your DVD drive +      is the master ide drive on the second IDE channel, +      <filename>/dev/dvd</filename> should point to +      <filename>/dev/hdc</filename>. Please note that if you +      are using the ide-scsi emulation on your system, it is +      likely that your DVD drive got mapped to a scsi device +      node even though it is an ide drive. In that case first +      check out you boot/kernel logs (or run <command>cdrecord -scanbus</command>) +      to find out which device it got mapped to and set the +      symlink accordingly (should be something like <filename>/dev/scd0</filename>, +      <filename>/dev/scd1</filename>, … in that case). +      Also make sure you (as a user) have sufficient (read and write) permissions +      on your DVD drive. This could mean you either have to change the device +      permissions or add your user to a special group +      (e.g. <command>addgroup cdrom username</command>), +      depending on your setup and/or distribution. +     </para> +     <para> +      It is highly recommended to switch DMA mode on for your DVD drive +      (without it even very recent machines will have trouble producing +      smooth video output). Use a command like +      <command>hdparm -d 1 <device></command> +      on your DVD device. Please note that even if you're using ide-scsi +      you will have to set the dma flag on the ide device node (e.g. +      <filename>/dev/hdc</filename>), not the mapped <filename>/dev/scd</filename> +      scsi device. +     </para> +     <para> +      To be able to play back encrypted DVDs you need to have +      libdvdcss installed on your system (please check if this is legal where +      you live). If you do not understand what the term "encrypted DVD" means +      here: As a rule of thumb, every DVD you have to pay money for is most +      likely encrypted. +     </para> +     <para> +      To make matters worse, apart from encryption, there is another obstacle +      to take: the region code. The DVD authorities decided to divide the world +      into eight geographical regions. Have a look at +      <ulink url="http://www.dvdforum.gr.jp/RegionMap.pdf">http://www.dvdforum.gr.jp/RegionMap.pdf</ulink> +      if you want to know which number has been assigned to your country. It is +      now their idea, that you shall only play DVDs, which have been produced +      for your region. If you take a DVD off the shelf in your local store, +      you should find a little globe-like icon which shows the region code the +      disc is for. +     </para> +     <para> +      Newer (post-2000) DVD drives (so-called RPC-2 drives) check the DVD +      region, which means they'll prevent you from playing back DVDs that have +      a different region code from what the drive is set up for. Some drives +      come with a factory setting of region 0 so they can play back +      any DVD until a region code is set. Others refuse to play any DVD at all +      until they are told a region. The easiest way to handle this is to use +      the regionset utility from +      <ulink url="http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415"> +       http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415 +      </ulink>. +     </para> +     <para> +      Once you have everything set up, try something like +      <command>gxine dvd:/</command> or <command>xine -p dvd:/</command> +      to start dvd playback. Some frontend also offer so-called autoplay +      buttons or menu entries that start dvd playback immediately. +     </para> +     <para> +      Important: do not try to mount the DVD. Just insert it and hit the DVD autoplay +      button or start xine from the command line. +     </para> +     <para> +      If things do not work as expected, try running the <command>xine-check</command> +      shellscript that comes with xine to see if this gives you further hints on +      what could be wrong. +     </para> +    </sect3> +    <sect3 id="dvdlongwait"> +     <title>DVD playback works, but it takes a long time until playback starts</title> +     <para> +      This points to a region code problem. Some versions of libdvdcss can play +      back DVDs from other regions than the RPC-2 DVD drive is set up for, +      but this usually means a cryptographic attack (which takes time) has +      to be used to access the DVD. +     </para> +     <para> +      You can download a tool to set the region code of RPC-Drives here: +      <ulink url="http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415"> +       http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415 +      </ulink>. +     </para> +     <para> +      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. +     </para> +    </sect3> +    <sect3 id="regionset"> +     <title>I have problems setting up my RPC-2 drive for the right region!</title> +     <para> +      You can download a tool to set the region code of RPC-Drives here: +      <ulink url="http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415"> +       http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=168415 +      </ulink>. +     </para> +     <para> +      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. +     </para> +    </sect3> +   </sect2> + +   <sect2 id="vcdsupport"> +    <title>Can I watch Video CDs (VCDs)? SVCDS ? CD-i?</title> +    <para> +     xine supports VCD and SVCD playback out-of-the box. Similar to DVDs, +     make sure you have a <filename>/dev/cdrom</filename> alias pointing +     to your CDROM drive which you will use to play back the (S)VCD. +    </para> +    <para> +     At the moment, CD-i formats are not supported by xine. +    </para> +    <para> +     Do not try to mount the (S)VCD. Simply insert it into your CDROM drive +     and hit the VCD autoplay button or start something like +     <command>gxine vcd:/</command> or <command>xine vcd:/</command> +     from the command line. +    </para> +    <sect3 id="vcdtroubleshooting"> +     <title>VideoCD troubleshooting guide</title> +     <para> +      This gives higher-level troubleshooting. More lower-level information is +      given in <link linkend="vcddebug">the next section</link>. +     </para> +     <itemizedlist> +      <listitem> +       <para> +        When you open the configuration dialog of your frontend, you should +        see a <parameter>vcd</parameter> config section. An important setting is +        <parameter>default_device</parameter>. If this is set to the empty string, +        the VCD plugin will try to scan your drives for a suitable device if the +        driver has the capability to scan for drives. However you can set +        the device to something of your choosing. On GNU/Linux, this may be +        <filename>/dev/cdrom</filename> and on Solaris it may be +        <filename>/vol/dev/aliases/cdrom0</filename>. +       </para> +       <para> +        If you set this field, make sure these are correct for your +        particular setup. For example, I generally play out of the DVD +        device and this is called <filename>/dev/dvd</filename> rather than <filename>/dev/cdrom</filename>. +       </para> +       <para></para> +      </listitem> +      <listitem> +       <para> +        Your frontend should offer a VCD autoscan button or menu item. +        If you select this, you should see your CD disk light go on if you have one. +        And the CD should be read. You should get a playlist of what's on the VideoCD. +       </para> +       <para> +        If not something's wrong, possibly you configured the wrong drive. +        You might try to read a disk image of a VideoCD and thus elimate any problems +        with hardware. You can get a test VideoCD disk image to test here: +        <ulink url="http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_pal.zip"> +         http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_pal.zip +        </ulink>. +        After unzipping this there should be files <filename>test_svcd_pal.cue</filename> and +        <filename>test_svcd_pal.bin</filename>. Run xine with the MRL +<!-- FIXME: This MRL needs to be changed --> +        <filename>vcd:/test_svcd_pal.cue:E0</filename>. +        If you see something playing then this is a hardware problem. +        You might also want to try starting playback-control with +<!-- FIXME: This MRL needs to be changed --> +        <filename>vcd:/test_svcd_pal.cue:P1</filename>. +       </para> +       <para></para> +      </listitem> +      <listitem> +       <para> +        There should be at least one "track", and one "entry" listed for +        the VideoCD and the names of these in the MRL list will end with +        "T1" and "E0" respectively. Often there are other playlist items, +        and if you have menus or still frames there will be +        "segments" as well. The simplest things to check are probably +        "entries" and "tracks". If there are no entries listed or none of +        the tracks or entries play, then there may be a problem with +        that particular medium. So as in the step above, you can try a known good +        sample and perhaps burn a CD from that. More likely if you get this +        far, some of the items listed work and some do not. There are a +        number of debugging switches that you can dynamically turn on and +        off that may be able to help in isolating more specific problems. +        See the <link linkend="vcddebug">section below</link>. +       </para> +       <para></para> +      </listitem> +      <listitem> +       <para> +        Something plays now, but you do not get any menus? Well, first is there +        supposed to be a menu? In the last step you should have seen what is on +        the VideoCD. Still frames are always "segments" so see if you can find one in the MRL +        list and select that. +       </para> +       <para> +        If there are no segments listed, there aren't any still-frame +        menus. It's also possible to have menus in looping MPEG's. Use the +        <command>vcddump</command> tool to find loops. <command>vcddump</command> is +        also part of VCDImager. Another program that can help you examine the contents +        of a VideoCD is <command>vcdxrip</command>. +       </para> +       <para> +        To troubleshoot, start out with the known SVCD example that has a +        still-frame menu at the beginning: +        <ulink url="http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_pal.zip"> +         http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_pal.zip +        </ulink> +        Inside this is a largish file called <filename>test_svcd_pal.bin</filename> and another +        short text file called <filename>test_svcd_ntsc.cue</filename>. These are CD disk +        images; that is, something that could be burned to a CD drive such +        as with <command>cdrdao</command>. However you don't have to create a CD to view these +        with the xine VCD plugin. You should be able to play the VideoCD by running the MRL +<!-- FIXME: This MRL needs to be changed --> +        <filename>vcd:/test_svcd_pal.cue</filename>. +        If you see a still frame on startup. Great! If instead you see what +        looks like the beginning of a movie (Blue Streak with Martin Lawrence) +        then go to the next step. +       </para> +       <para></para> +      </listitem> +      <listitem> +       <para> +        You have a VideoCD with menu and can see it, but there is no menu on startup? +        If you have the VideoCD from the last step, then run the MRL +<!-- FIXME: This MRL needs to be changed --> +        <filename>vcd:/test_svcd_pal.cue:P1</filename> +        If this shows a still frame, but it just does not show when you +        hit either the "VCD" autoscan button or give a MRL without the P1 at +        the end then go to the next step. +       </para> +       <para> +        If you have another VideoCD, from the MRL list, you should also see "playlist" +        entries. Try selecting the one that ends "P1". If you don't see an entry with P1, +        then your VideoCD does not have playback control (PBC) and although there may +        be a still frame on the VideoCD it may have been authored so it is not easily +        accessed. Again <command>vcddump</command> or <command>vcdxrip</command> can help here. +       </para> +       <para></para> +      </listitem> +      <listitem> +       <para> +        You have a VideoCD with menu at beginning and can see it using an MRL +        with P1 at the end, but you want to see it by hitting the "VCD" autoscan button +        as well? Check to see that you have the configuration entry +        <parameter>media.vcd.autoplay</parameter> set to <parameter>playlist</parameter>. +       </para> +      </listitem> +     </itemizedlist> +    </sect3> +    <sect3 id="vcddebug"> +     <title>VideoCD debugging</title> +     <para> +      To facilitate tracking down problems we let you see what's going on dynamically. +      Various debugging settings will cause output to appear on xine's plugin log +      and/or on standard error output. See the config entry <parameter>media.vcd.debug</parameter> +      for details. +     </para> +     <para> +      The tool <command>vcd-info</command> from the cdio branch of vcdimager can be used to +      show the entire contents of a VideoCD or selected portions of that. Until the cdio +      branch of vcdimager is completely merged with vcdimager, the cd-info branch version +      has a few more features. (However consult vcdimager for complete version of the program.) +     </para> +     <para> +      <command>vcdxrip</command> can be used to extract portions of a VideoCD and or create an +      XML description file of the VideoCD. This XML file and the extracted +      files can be used by <command>vcdxbuild</command> to recreate another VideoCD. +     </para> +     <para> +      And finally see also tools <command>cd-info</command> and <command>cd-read</command> from libcdio. +     </para> +    </sect3> +   </sect2> + +   <sect2 id="quicktime"> +    <title>Can I watch Quicktime (.mov, .mp4) files using xine?</title> +    <para> +     Quicktime is just a system layer (container format) which can contain various +     different audio and video formats. The system layer itself is fully supported +     in xine. However, some quicktime audio/video codecs are not natively supported yet. +     Luckily, if you are using a x86 compatible machine (any recent PC hardware should do) +     you can install and use the original Quicktime DLLs and watch most streams +     (trailers) that can be downloaded from the net. +    </para> +    <para> +     Possibly the most convenient way to get the Quicktime DLLs is to download +     them from the MPlayer website +     <ulink url="http://www.mplayerhq.hu/design7/dload.html"> +      http://www.mplayerhq.hu/design7/dload.html +     </ulink>. +     The package is called "essential". Unpack it and move everything you find +     inside to <filename>/usr/lib/codecs</filename> (actually you can place them +     anywhere you want, e.g. someplace in your home directory, but then you'll +     have to set <parameter>decoder.external.win32_codecs_path</parameter> in your +     xine config file accordingly). Restart xine then and you should be +     able to watch Quicktime trailers. +    </para> +   </sect2> + +   <sect2> +    <title>Real Network files/streams</title> +    <sect3 id="realfileplayback"> +     <title>Can I watch Real (.rm, .ram) files using xine?</title> +     <para> +      The situation with real files and streams is pretty similar to the situation +      with Quicktime Streams (see above). The newer real audio and video formats +      are only supported by using binary-only codecs which are not included in +      xine. +     </para> +    <para> +     Possibly the most convenient way to get the Real codecs is to install +     RealPlayer 9 or RealPlayer 10 and set the +     <parameter>decoder.external.real_codecs_path</parameter> in your xine +     config file to the name of the directory which contains the codecs +     (look for drvc.so); it's probably something like +     <filename>/opt/real/RealPlayer/codecs/</filename>.  Restart xine then +     and you should be able to watch Real files/streams. +    </para> +    <para> +     Another way to get the Real codecs is to download them from the MPlayer website +     <ulink url="http://www.mplayerhq.hu/design7/dload.html"> +      http://www.mplayerhq.hu/design7/dload.html +     </ulink>. +     The package is called "essential". Unpack it and move everything you +     find inside to <filename>/usr/lib/codecs</filename> and set the +     <parameter>decoder.external.real_codecs_path</parameter> in your xine config file +     to <filename>/usr/lib/codecs</filename> (actually you can place them +     anywhere you want, e.g. someplace in your home directory, but then you'll +     have to set <parameter>decoder.external.real_codecs_path</parameter> accordingly). +     Restart xine then and you should be able to watch Real files/streams. +    </para> +    </sect3> +    <sect3 id="realnetworkstreams"> +     <title>What about (live) network streams (pnm://, rtsp:// style urls)?</title> +     <para> +      xine supports both pnm and rtsp streaming. However, digging out the actual +      pnm/rtsp url can be tricky as they're often packed into heavy JavaScript and +      HTML code on most websites. You can either use a combination of your +      browser's "save source" function and wget or use a xine browser plugin +      (currently the gxine frontend comes with a simple mozilla plugin, +      for example). When you decided to dig out the url by hand don't get fooled +      by the many redirectors that are often placed around the actual url. +      Use wget to download any http://-style urls and use less to look inside +      the downloaded .ra/.ram files where you will find the actual pnm/rtsp +      url which can be opened using xine. +     </para> +    </sect3> +   </sect2> + +   <sect2 id="wmv"> +    <title>Can I watch Windows Media (.asf/.wmv/.wma) files using xine?</title> +    <para> +     While the container format (system layer) ASF (wmv is just an alias) +     is fully supported in xine, for newer windows media 9 based streams +     you'll need to install windows binary codecs (.DLLs). +    </para> +    <para> +     Possibly the most convenient way to get the Windows DLLs is to download +     them from the MPlayer website +     <ulink url="http://www.mplayerhq.hu/design7/dload.html"> +      http://www.mplayerhq.hu/design7/dload.html +     </ulink>. +     The package is called "essential". Unpack it and move everything you find +     inside to <filename>/usr/lib/codecs</filename> (actually you can place them +     anywhere you want, e.g. someplace in your home directory, but then you'll +     have to set <parameter>decoder.external.win32_codecs_path</parameter> in your +     xine config file accordingly). Restart xine then and you should be +     able to watch windows media streams. +    </para> +   </sect2> + +   <sect2 id="dvb"> +    <title>Can I watch Digital TV (Digital Video Broadcast) using xine?</title> +    <para> +     At the time of this writing DVB support is a very new and experimental +     feature in xine. The number of supported cards is pretty limited at the moment. +     See <filename>doc/README.dvb</filename> (in the xine-lib tarball) for details. +    </para> +   </sect2> + +   <sect2 id="stdin"> +    <title>How do I play streams from STDIN?</title> +    <para> +     Use something like: +     <screen>   <command>cat stream.mpg | gxine stdin:/</command></screen> +    </para> +   </sect2> + +   <sect2 id="avisubtitles"> +    <title>How can I watch files with external AVI subtitles?</title> +    <para> +     In xine 0.9.13 this used to be: +     <screen>   <command>xine foo.avi%bar.sub</command></screen> +    </para> +    <para> +     Latest xine-lib modules (1-beta3 or newer) support external subtitles +     for any media file, not only AVI. In order to use it you can pass a +     special MRL construction like: +     <screen>   <command>xine file://path/to/test.mpg#subtitle:/path/to/file.sub</command></screen> +     The external subtitles support can also be used by any xine frontend. +     Currently xine-ui and kaffeine implement this feature with a subtitle +     selection dialog. +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="running"> +   <title>Running xine</title> + +   <sect2 id="speedup"> +    <title>I have a lot of dropped frames – what can I do?</title> +    <para> +     Your hardware might be too slow for xine. Make sure you turn on all +     speed optimizing options. A few things you should check (in order of +     importance): +     <itemizedlist> +      <listitem> +       <para> +        First of all, run the <command>xine-check</command> script included in xine +        package (probably already installed in your system). +        <command>xine-check</command> will report several of the most common problems +        listed here. Sample output from xine-check: +        <screen> +   <command>xine-check</command> +   Please be patient, this script may take a while to run... +   [ good ] you're using Linux, doing specific tests +   [ good ] looks like you have a /proc filesystem mounted. +   [ good ] You seem to have a reasonable kernel version (2.4.18) +   [ good ] intel compatible processor, checking MTRR support +   [ good ] you have MTRR support and there are some ranges set. +   [ good ] found the player at /usr/local/bin/xine +   [ good ] /usr/local/bin/xine is in your PATH +   [ good ] found /usr/local/bin/xine-config in your PATH +   [ good ] plugin directory /usr/local/lib/xine/plugins exists. +   [ good ] found input plugins +   [ good ] found demux plugins +   [ good ] found decoder plugins +   [ good ] found video_out plugins +   [ good ] found audio_out plugins +   [ good ] skin directory /usr/local/share/xine/skins exists. +   [ good ] found logo in /usr/local/share/xine/skins +   [ good ] I even found some skins. +   [ good ] /dev/cdrom points to /dev/hdc +   [ good ] /dev/dvd points to /dev/hdc +   [ good ] DMA is enabled for your DVD drive +   [ good ] found xvinfo: X-Video Extension version 2.2 +   [ good ] your Xv extension supports YUV overlays (improves MPEG performance) +   [ good ] your Xv extension supports packed YUV overlays +   [ good ] Xv ports:  YUY2 YV12 I420 UYVY</screen> +       </para> +      </listitem> +      <listitem> +       <para> +        Try to use the Xv driver, it greatly improves performance and quality +        because your graphics card does image scaling and colourspace conversion. The +        <link linkend="video">video section</link> contains important information +        about several Xv drivers. +       </para> +       <para> +        If Xv cannot be used for some reason, make sure your display is set up +        to 16bpp, not 24 or higher (reduces memory bandwith). Some Xv drivers +        may also have better performance with 16bpp. +       </para> +      </listitem> +      <listitem> +       <para> +        Make sure the hard drive (or cdrom/dvd drive) which supplies the +        video data is in DMA mode (if supported). +       </para> +       <para> +        On most linux-based systems, you can use hdparm to check this: +        <screen> +   <command>hdparm /dev/hda</command> +   [...] +   using_dma    =  1 (on) +   [...]</screen> +       </para> +       <para> +        You can enable DMA mode with the following command: +        <screen>   <command>hdparm -d1 device_of_your_drive_that_supplies_video_data</command></screen> +        In some cases where this fails it helps to specify the dma mode +        to use, for example: +        <screen>   <command>hdparm -d1 -X 66 device_of_your_drive_that_supplies_video_data</command></screen> +        In RedHat 8.0 an additional entry in /etc/modules.conf +        <screen>   options ide-cd dma=1</screen> +        should help (reboot for this change to take effect). +       </para> +       <para> +        More information about this may be found here: +        <ulink url="http://oreilly.linux.com/pub/a/linux/2000/06/29/hdparm.html"> +         http://oreilly.linux.com/pub/a/linux/2000/06/29/hdparm.html +        </ulink>. +       </para> +      </listitem> +      <listitem> +       <para> +        Use a recent kernel which is optimized for your hardware. Old kernels +        may lack support for accelerated instructions like SSE, for example. +       </para> +      </listitem> +      <listitem> +       <para> +        Close other applications (use a tool like "top" to find out +        what applications are using up CPU power). Programs that update the +        system clock like ntp should also be disabled. +       </para> +      </listitem> +      <listitem> +       <para> +        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. +       </para> +       <para> +        If you're using X.org or XFree 4.x, enabling MTRR support in your kernel should +        be enough (use a recent kernel!). +       </para> +       <para> +        Try a <command>cat /proc/mtrr</command> – if the file exists and you find an entry +        corresponding to the amount of graphics memory you have, everything +        should be fine. +       </para> +      </listitem> +      <listitem> +       <para> +        Have your X-server (usually X.org or XFree86) running with higher priority. +        Most recent linux distributions (like RedHat 8.0 or Mandrake 9.0) should +        do that for you, improving not only xine but desktop responsiveness +        in general. +       </para> +       <para> +        Use the "top" utility and verify under the "NI" column if +        the X process has a negative value, this indicates a higher priority. +        See "The X Window User HOWTO – Performance considerations" for +        further instructions +        <ulink url="http://www.tldp.org/HOWTO/XWindow-User-HOWTO/performance.html"> +         http://www.tldp.org/HOWTO/XWindow-User-HOWTO/performance.html +        </ulink>. +       </para> +      </listitem> +      <listitem> +       <para> +        Use the latest or a known-good gcc version and build an optimized xine-lib for +        your architecture. +       </para> +      </listitem> +      <listitem> +       <para> +        Besides boosting X-server priority, sometimes it's possible to avoid +        discarding frames by making xine itself higher priority. This is not +        a recommended  pratice since it will require to run xine as root, +        but you may give it a try if you want: +        <screen>   <command>nice --5 xine</command></screen> +       </para> +      </listitem> +      <listitem> +       <para> +        xine needs high speed memory access which depends on your chip set. +        Make sure you enable all speed-improving options. +       </para> +       <para> +        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): +        <ulink url="http://www.overclockers.com/tips105/index03.asp"> +         http://www.overclockers.com/tips105/index03.asp +        </ulink> +       </para> +       <para> +        This website centers around a windows-tool to tweak the chipset, you +        can do the same on FreeBSD with <command>pciconf</command>. +        On some linux distributions there are similar tools. +       </para> +      </listitem> +      <listitem> +       <para> +        a nice performance tuning tool can be found here: +        <ulink url="http://powertweak.sourceforge.net">http://powertweak.sourceforge.net</ulink> +       </para> +      </listitem> +      <listitem> +       <para> +        Set up and use raw devices for DVD access. Please note that the +        actual performance gain during playback is very small if any, but +        since raw devices are bypassing the kernel's buffer cache, Linux +        will not try to cache the DVDs you play. This would not be useful, +        because xine does its own caching and you usually play DVDs +        sequentially, which means you won't reuse anything from the cache. +        But the problem would be that Linux throws everything out of the +        cache that might be in there. +       </para> +       <para> +        Raw devices should be available in linux kernel 2.4.x and there are +        patches for older kernels available from: +        <ulink url="ftp://ftp.kernel.org/pub/linux/kernel/people/sct/raw-io/"> +         ftp://ftp.kernel.org/pub/linux/kernel/people/sct/raw-io/ +        </ulink> +       </para> +       <para> +	 For recent kernels (2.6.x series) the raw devices are neither +	 needed nor supported anymore, so don't bother. +       </para> +       <para> +        To use raw devices, first connect a free raw device to your dvd +        device, use something like: +        <screen>   <command>raw /dev/raw1 /dev/dvd</command></screen> +       </para> +       <para> +        Then create a link named "rdvd" pointing to that raw device: +        <screen>   <command>ln -s raw1 /dev/rdvd</command></screen> +       </para> +      </listitem> +      <listitem> +       <para> +         For slow / high-latency dvd drives it might help to increase +         the number of video buffers xine allocates. Try setting +         <parameter>engine.buffers.video_num_buffers:500</parameter> +         to a higher value (e.g. 1000 or 2500). +       </para> +      </listitem> +     </itemizedlist> +    </para> +   </sect2> + +   <sect2 id="smoothness"> +    <title>Oki, xine doesn't drop frames now but video output still is not really smooth!</title> +    <para> +     Video output can be further improved by tuning your linux kernel: +     <itemizedlist> +      <listitem> +       <para> +        Set HZ to 1000 in +        <filename>/usr/src/linux/include/asm-i386/param.h</filename> +       </para> +      </listitem> +      <listitem> +       <para> +        Try applying scheduler patches, especially the O(1) and the preemptive +        patches have proven useful at the time of this writing (spring 2003). +       </para> +      </listitem> +     </itemizedlist> +     Linux 2.5/2.6 will probably have these improvements out of the box. +    </para> +    <para> +     Miguel Freitas has written a nice +     <ulink url="http://cambuca.ldhs.cetuc.puc-rio.br/~miguel/multimedia_sim/"> +      article about his kernel multimedia experiments +     </ulink>. +    </para> +   </sect2> + +   <sect2 id="ports"> +    <title>I have problems when using xine on FreeBSD, Solaris, … !</title> +    <para> +     Check out the the corresponding README files in the directory <filename>xine-lib/doc</filename>. +    </para> +   </sect2> + +   <sect2 id="aaxine"> +    <title>What is aalib? How do I use it in xine?</title> +    <para> +     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 ;> … another nice option is to preview movies +     on a remote server in your shell over ssh. +    </para> +    <para> +     To use it make sure you have aalib installed correctly before you +     configure/build xine-lib and xine-ui. In addition to the <command>xine</command> binary a +     binary named <command>aaxine</command> should get built and installed. You can then use +     something like: +     <screen>   <command>aaxine foo.mpg</command></screen> +     to use aalib video output. +    </para> +   </sect2> + +   <sect2 id="dxr3"> +    <title>Does xine support my dxr3 / hollywood+ card?</title> +    <para> +     While xine's focus is clearly on software decoding, the dxr3 is supported. +    </para> +    <para> +     You can find more information about using xine with the dxr3 +     <ulink url="http://www.amalthea.de/xine/">here</ulink> +     (also covers how to do tv output using the dxr3). +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="audio"> +   <title>Audio related questions</title> + +   <sect2 id="audiodrivers"> +    <title>What audio drivers does xine support? OSS? Alsa? Arts? Esd?</title> +    <para> +     Currently xine support audio output via OSS (Linux 2.4 and most +     *BSD audio drivers), +     ALSA 0.9 and 1.0 (ALSA 0.5.x is no longer supported), aRTs (KDE +     3's sound daemon), ESounD (esd, gnome's sound daemon not +     recommended because it has serious issues with a/v sync), JACK, +     PulseAudio, plus platform-specific output through Sun devices for +     Solaris and NetBSD and Irix output. +    </para> +   </sect2> + +   <sect2 id="compressor"> +    <title>When I'm watching a movie, the sound effects are much higher in volume than the voices!</title> +    <para> +     Congratulations, you seem to have an original movie audio track there. +    </para> +    <para> +     Uhm. So you don't like it. Well, there are two things you can do: +     <itemizedlist> +      <listitem> +       <para> +        You can enable xine's audio compressor. Most frontends have +        a settings window and in that you'll find a slider for the +        compressor setting. The values are percent values, so a +        slider setting of 200 means that xine will double the volume +        of silent parts of the movie (loud parts stay the same). +       </para> +       <para> +        If your frontend does not have such a compression slider, +        you can pass the value with the MRL: +        <screen>   <command>xine dvd:/#compression:150</command></screen> +       </para> +      </listitem> +      <listitem> +       <para> +        If you have a dolby digital (AC3) soundtrack, you can try +        to enable liba52's dynamic range compression setting +        <parameter>audio.a52.dynamic_range:1</parameter> +        in your xine config file (or use some gui config dialog). +       </para> +      </listitem> +     </itemizedlist> +    </para> +   </sect2> + +   <sect2 id="noaudio"> +    <title>When I play this stream, xine shows video but there's no audio!</title> +    <para> +     If this happens with any video, first try a different audio driver +     (<command>gxine -A oss</command>, <command>gxine -A arts</command>, +     <command>xine -A alsa</command> …). +    </para> +    <para> +     If this problem only occurs with one specific stream, maybe switching to +     a different audio channel (using the gui) helps. Some DVD streams have +     audio on strange channels. +    </para> +    <para> +     If all this doesn't help, maybe you're missing an audio codec or you found +     a bug. If you decide to post your problem on the xine-user mailing list, +     make sure to include all console output xine produced and also clearly +     state what type of stream you tried to play back or, even better, make +     a test stream available somewhere for developers to download and try. +    </para> +   </sect2> + +   <sect2 id="surroundsound"> +    <title>Can xine produce 4-/5-channel surround audio output?</title> +    <para> +     Yep, it can do that using OSS or ALSA drivers, provided that the driver +     supports it. However, since xine cannot detect if there are actually speakers +     connected to the additional channels, you'll have to activate that feature manually. +    </para> +    <para> +     You can do this either in the config dialog while xine is running (press +     the config button on the xine panel and go to the AUDIO tab) or have it +     the complicated way by editing the config file yourself which is located +     in your home directory in <filename>.config/gxine</filename> or +     <filename>.xine</filename>: +     <programlisting> +   audio.output.speaker_arrangement:Surround 4.0 +   audio.output.speaker_arrangement:Surround 4.1 +   audio.output.speaker_arrangement:Surround 5.1</programlisting> +    </para> +   </sect2> + +   <sect2 id="spdif"> +    <title>What about ac3 output via spdif to an external ac3 decoder?</title> +    <para> +     xine can do that too. Pretty much the same story as for 4-/5-channel +     surround (see above). You can either use the config dialog or edit +     the config file (<filename>~/.xine/config</filename> or +     <filename>~/.config/gxine/config</filename>) yourself: +     <programlisting>   audio.output.speaker_arrangement:Pass Through</programlisting> +    </para> +   </sect2> + +   <sect2 id="sblivespdif"> +    <title>Getting SPDIF output from a SBLive 5.1 using OSS drivers</title> +    <para> +     The following explains how to get the above configuration +     going with xine. Some parts of it may applicable to other +     configurations (cards that use the EMU10k1 chip) as well. +    </para> +    <sect3> +     <title>Requirements</title> +     <orderedlist> +      <listitem> +       <para>xine-lib >= 1.x.x</para> +      </listitem> +      <listitem> +       <para>OSS driver</para> +      </listitem> +      <listitem> +       <para>an external decoder</para> +      </listitem> +      <listitem> +       <para>a cable to connect the SBLive to the external decoder</para> +      </listitem> +     </orderedlist> +     <para> +      The configuration described was tested using a Soundblaster live 5.1 (rev 7) +      with a Yamaha DSP-AX620 external decoder. +     </para> +    </sect3> +    <sect3> +     <title>Retrieving the driver</title> +     <para> +      The OSS driver is maintained by creative and can be downloaded at +      <ulink url="http://opensource.creative.com/">http://opensource.creative.com/</ulink>. +      The driver package contains documentation on how to install it. +      Besides that I'd like to add the following notes. +     </para> +     <para> +      In order to compile and install these drivers, you need a valid kernel +      configuration file. For RedHat Linux's pre-compiled kernels these +      configuration files can be found in +      <filename>/usr/src/linux/configs</filename>. +      After you've located the correct config file for your kernel, +      you need to copy it to <filename>/usr/src/linux/.config</filename> +      For example, when you run the 2.4.18-i686 kernel do : +      <screen>   <command>cp /usr/src/linux/configs/kernel-2.4.18-i686.config /usr/src/linux/.config</command></screen> +      Make sure that the emu10k1 module that is currently installed is +      not loaded. To unload the modules: +      <screen>   <command>/sbin/modprobe -rv emu10k1.o ac97_codec.o</command></screen> +      If this mentions that the device is busy, some program is +      using the driver. Some example could be a mixer application +      or sound daemon like artsd. You'll need to close down the +      applications before continuing. +      At success it should print something like: +      <screen> +   # delete emu10k1 +   # delete ac97_codec +   # delete soundcore</screen> +      Run make in the directory where you unpacked the driver and follow the +      instructions printed at the end of each step. +      The last step should be: +      <screen>   <command>make install-tools</command></screen> +      As the README of the driver package mentions the SPDIF AC3 +      output doesn't work by default. In the directory +      <filename>utils/scripts</filename> an <filename>emu10k1.conf</filename> +      file can be found which need to be placed in the default +      installation directory (<filename>/usr/local/etc</filename>). +      After this the <filename>emu10k1.conf</filename> needs to be modified. +      The following settings worked fine for me (I don't use the analog +      outputs of the card): +      <programlisting> +   CARD_IS_5_1=yes +   USE_DIGITAL_OUTPUT=yes +   ENABLE_TONE_CONTROL=yes +   AC3PASSTHROUGH=yes +   ENABLE_LIVEDRIVE_IR=no +   INVERT_REAR=no +   MULTICHANNEL=yes +   ROUTE_ALL_TO_SUB=no +   ANALOG_FRONT_BOOST=no +   SURROUND=no +   PROLOGIC=no +   ENABLE_CD_Spdif=yes +   ENABLE_OPTICAL_SPDIF=no +   ENABLE_LINE2_MIC2=no +   ENABLE_RCA_SPDIF=no +   ENABLE_RCA_AUX=no</programlisting> +      After modifying the <filename>emu10k1.conf</filename>, +      you need to modify your <filename>/etc/modules.conf</filename> and +      make sure the following lines are in there. +      <programlisting> +   alias sound-slot-0 emu10k1 +   post-install emu10k1 /usr/local/etc/emu-script</programlisting> +      After saving the changes to <filename>modules.conf</filename>, run +      <screen>   <command>/sbin/depmod -a</command></screen> +      Now, you're ready to load the new modules and set the correct +      options for it. To load the modules run: +      <screen>   <command>/sbin/modprobe emu10k1</command></screen> +     </para> +    </sect3> +    <sect3> +     <title>Setting up xine for SPDIF (AC3 passthrough) output</title> +     <para> +      You can either use the config dialog of your frontend or edit +      the config file (<filename>~/.xine/config</filename>) yourself: +      <programlisting>   audio.output.speaker_arrangement:Pass Through</programlisting> +      In case the setting is not in the file you can add it. +     </para> +    </sect3> +    <sect3> +     <title> +      The cable used for the SBLive can easily be self-made +      or buy a stereo 3.5mm jack to dual RCA cable. +     </title> +     <para> +      What you need to make the cable yourself: +      <itemizedlist> +       <listitem><para>stereo 3.5mm jack plug</para></listitem> +       <listitem><para>RCA plug</para></listitem> +       <listitem><para>shielded cable (video coax 75 Ohm will do)</para></listitem> +      </itemizedlist> +      Connect them as follows : +      <programlisting> +   center pin jackplug ------|----- center pin RCA plug +                   GND     __|__    GND</programlisting> +     </para> +     <para> +      In order to test it use a DVD with AC3 or DTS track +      start xine and select the right audio track +      from user interface or start xine as: +      <screen>   <command>xine dvd:/1 -a 0</command></screen> +      The external decoder should display something like +      "Dolby Digital" in case the selected audio track contains +      AC3 data or "DTS" in case the selected audio track +      contains DTS data. Of course stereo audio also goes +      through the SPDIF output, so the analog outputs of the +      SBLive 5.1 are not needed anymore. +     </para> +    </sect3> +   </sect2> + +   <sect2 id="volumecontrol"> +    <title>Changing the volume with the GUI control has no effect! What's up!?</title> +    <para> +     Some xine drivers do not support volume changing although the GUI +     will show the volume bar. Usually this is not xine's fault: aRts C +     API, for example, doesn't offer any volume property to applications. +     Similarly, with ac3 pass through it is not possible to set the volume. +    </para> +    <para> +     Note that recently we added support to "simulate" volume in aRts by +     changing sample values on-the-fly before delivering them to the driver. +     Not as good as having access to sound card's mixer but at least users +     will not complain about lacking of volume bar anymore! :) +    </para> +   </sect2> + +   <sect2 id="stuttering"> +    <title>Audio is stuttering and i see a lot of "metronom: fixing sound card drift by -2115 pts" on the console output</title> +    <para> +     Might be a soundcard problem, if it only comes in longer intervals. +     Your soundcard does not keep it's sampling frequency accurately +     enough, which results in audio and video +     getting out of sync and xine has to compensate. If you see the message +     only from time to time, you might remedy it by using the resampling sync +     method. You can do this by setting the configuration entry +     <parameter>audio.synchronization.av_sync_method</parameter> to <parameter>resample</parameter>. +    </para> +    <para> +     If you receive the metronom message more often, +     maybe switching to different drivers (alsa to oss or vise-versa) +     can help here. It has also been reported that setting the configuration +     entry <parameter>audio.synchronization.force_rate</parameter> to the native sampling +     rate of your soundcard (try 44100 and 48000) helps sometimes. +    </para> +    <para> +     Another, whole different possibility is that you have some background +     process running which is messing with the clock (like some ntp client – +     chrony, ntpd, …). +    </para> +    <para> +     Occasional messages of "fixing sound card drift" may happen on start and +     when playing a long stream (like a movie). This is normal behaviour, +     nothing to worry about. +    </para> +   </sect2> + +   <sect2 id="soundloss"> +    <title>xine seems to lose sound arbitrarily during playback, especially with DVDs</title> +    <para> +     You are using the OSS audio output plugin, right? In order to keep video and audio +     in sync, xine regularly queries the audio driver for the amount of delay induced by +     the current length of the driver's audio buffer. Unfortunately some OSS drivers seem +     to be broken because the can return strange values here. This confuses the xine audio +     subsystem and makes it drop audio. +    </para> +    <para> +     You should try the various settings of the +     configuration entry <parameter>audio.oss_sync_method</parameter>. The options +     <parameter>getodelay</parameter> and <parameter>getoptr</parameter> ask the driver and +     might therefore show the problem. But chances are that only one is broken and the other +     works, so you should try them both first, since they are the most accurate. +     The option <parameter>probebuffer</parameter> does not ask the driver directly but +     tries to determine the buffer length from outside. This should work with any driver +     and is the way to go, of the driver dependent methods fail. +     <parameter>softsync</parameter> is the least accurate and should be used only in +     emergency situations. +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="video"> +   <title>Video related questions</title> + +   <sect2 id="novideo"> +    <title>I can hear the audio – but I don't see a picture!</title> +    <para> +     Probably your hardware is simply too slow – see above for some +     hints on how to speed things up. +    </para> +    <para> +     Another possibility is that you using a buggy Xv driver, see the next +     questions. +    </para> +   </sect2> + +   <sect2 id="bluescreen"> +    <title>I only see a blue (or green or black) video image most of the time.</title> +    <para> +     You are either watching a very boring video (just kidding) or you are +     suffering from a bug in the Xorg 6.7 implementation of X11. +    </para> +    <para> +     The workaround is to add the line +     <programlisting>   Option "XaaNoOffscreenPixmaps"</programlisting> +     in the <varname>Device</varname> section of your X server configuration (usually +     <filename>/etc/X11/xorg.conf</filename> or <filename>/etc/X11/XF86Config</filename>). +    </para> +   </sect2> + +   <sect2 id="buggyxv"> +    <title>The image looks strange, it is shifted, cropped or shows weird lines!</title> +    <para> +     This points to a problem with the Xv extension, which is used by xine +     to display the video image. To verify this, try running xine with the XShm +     video output plugin: +     <screen>   <command>xine -V XShm</command></screen> +    </para> +    <para> +     If that works fine, you just proved, that the Xv extension is buggy. xine will +     remember the last used video output plugin, so the setting will stay at XShm. +     You could simply continue using this, but XShm is a lot slower than Xv, so +     read on and see if you can get it working. Usually you should look for +     updated versions of the X driver module that belongs to your graphics card. +    </para> +    <para> +     Other possibilites are limitations in either your X driver module or your +     graphics hardware. If your card could somehow be running out of ressources (graphics +     RAM perhaps) and displays an incorrect Xv overlay because of that, try reducing +     the display resolution and/or colour depth. +    </para> +    <para> +     Consult the next question for more details on Xv. +    </para> +   </sect2> + +   <sect2 id="xvextension"> +    <title>How can I make xine use the Xv extension and what drivers do I need?</title> +    <para> +     xine will normally use Xv by default if it is available. In some cases +     you might need to choose Xv playback manually (when the <filename>~/.xine/config</filename> +     file for some reason says that you want to use XShm): +     <screen>   <command>xine -V Xv</command></screen> +    </para> +    <para> +     If this doesn't work for you, it may be possible that Xv is not present +     on your system. +    </para> +    <para> +     First you need to install/use X.org or XFree 4.x. Once you got that you have to +     make sure the X drivers you're using are supporting Xv on your +     hardware. Here are some hints for individual gfx chips: +     <itemizedlist> +      <listitem> +       <para> +        3Dfx: if all you get is a solid black window, upgrade to X.org or XFree 4.1.0 or later. +       </para> +      </listitem> +      <listitem> +       <para> +        ATI: if you only get "half a picture", try lowering your resolution +        or bit depth, disable DRI (looks like you ran out of video RAM) +       </para> +      </listitem> +      <listitem> +       <para> +        Trident card: If you see vertical bands jumbled, upgrade to the latest +        xfree/experimental trident drivers (for the CyberBlade XP +        a driver exists here: +        <ulink url="http://www.xfree86.org/~alanh/">http://www.xfree86.org/~alanh/ </ulink>) +       </para> +      </listitem> +      <listitem> +       <para> +        nVidia: With newer GeForce cards, Xv should work with XFree 4.2.0 or +        newer, for older RivaTNT cards use the binary drivers from nvidia +        (of course the binary drivers work as well for GeForce cards) +       </para> +      </listitem> +      <listitem> +       <para> +        Mach64/Rage3D (not Rage128/Radeon) cards/chips get no XVideo with +        standard drivers, try +        <ulink url="http://gatos.sourceforge.net/">GATOS drivers +        </ulink> instead +       </para> +      </listitem> +      <listitem> +       <para> +        intel: i815 has Xv support in XFree 4.x, others unknown +       </para> +      </listitem> +      <listitem> +       <para> +        Permedia 2/3 has Xv support in XFree 4.x +       </para> +      </listitem> +      <listitem> +       <para> +        Savage: at least some older drivers tend to lock up the whole machine, +        try the drivers available from +        <ulink url="http://www.probo.com/timr/savage40.html"> +         http://www.probo.com/timr/savage40.html +        </ulink>. +       </para> +      </listitem> +      <listitem> +       <para> +        SIS: certain controllers (more info needed!) have Xv support in XFree 4.x +       </para> +      </listitem> +      <listitem> +       <para> +        Chips and Tech 6555x, 68554, 69000, 69030 have Xv support in XFree 4.x +       </para> +      </listitem> +      <listitem> +       <para> +        NeoMagic: certain controllers (more info needed!) have Xv support in Xfree 4.x +       </para> +      </listitem> +      <listitem> +       <para> +        SiliconMotion: certain controllers (more info needed!) have Xv support in Xfree 4.x +       </para> +      </listitem> +      <listitem> +       <para> +        Matrox: G200 or newer (but not Parhelia) have Xv support in XFree 4.x. +        For Parhelia, use the binary only drivers available from matrox' website. +       </para> +      </listitem> +     </itemizedlist> +    </para> +   </sect2> + +   <sect2 id="colorkey"> +    <title>Some parts of my X Desktop get transparent when xine plays the video!</title> +    <para> +     Looks like some colours on your GUI match the colour key which Xv uses. You can +     change the colour key value to avoid this. There should be a line like: +     <programlisting>   video.device.xv_colorkey:2110</programlisting> +     in your <filename>~/.xine/config</filename> file where you can change the colour that's used +     by xine for the video overlay. +    </para> +   </sect2> + +   <sect2 id="texturedvideo"> +    <title>How do I get Xv working with compiz?</title> +    <para> +     Tell xine to prefer textured video. There should be a line like: +     <programlisting>   video.device.xv_preferred_method:Any</programlisting> +     in your <filename>~/.xine/config</filename> file where you can change the preferred method +     used by xine for the video overlay. +    </para> +    <para> +     It may be that your graphics card or driver doesn't have the necessary +     support for textured video, or the video is rendered too slowly. +    </para> +    <itemizedlist> +     <listitem><para> +      ATI: you are likely to need xf86-video-ati later than 6.8.0; 6.9.0.91 +      or newer is recommended for slower/older hardware (< X1300) because +      the rendering speed has been improved a lot. +     </para></listitem> +     <listitem><para> +      Intel: 945 and later, at least, should be fine with xf86-video-intel +      2.0 or later. Certainly with 2.2 or later. +     </para></listitem> +     <listitem><para> +      nVidia: will probably be fine. (FIXME) +     </para></listitem> +    </itemizedlist> +    <para> +     If you find that textured video is significantly slower or isn't +     supported, you should either not use compiz or tell xine to use the +     xshm video output driver. +    </para> +   </sect2> + +   <sect2 id="aspectratio"> +    <title>The aspect ratio of the video is wrong!</title> +    <para> +     Usually xine discovers the screen aspect ratio by +     querying the X-server and then adjusts the video automatically +     to make it look right. However, if that doesn't work try +     pressing "a" to manually change the aspect ratio. +    </para> +    <para> +     If you have a wide screen monitor, make sure the X-server +     is correctly configured. The X-server must know the physical +     size of the screen, which is independent of the resolution +     being used. +    </para> +    <para> +     For X.org, the screen size should be set in the <parameter>"Monitor"</parameter> +     section in the file <filename>/etc/X11/xorg.conf</filename>, as in the example below: +     <programlisting> +   Section "Monitor" +      Identifier   "Monitor0" +      VendorName   "Monitor Vendor" +      ModelName    "DDC Probed Monitor - ViewSonic G773-2" +      DisplaySize  320	240 +      HorizSync    30.0 - 70.0 +      VertRefresh  50.0 - 180.0 +   EndSection</programlisting> +     For XFree86, the filename is normally <filename>/etc/X11/XF86Config</filename>. +    </para> +    <para> +     Where <parameter>DisplaySize</parameter> specifies, +     in millimeters, the physical size of the monitor's picture area. +    </para> +   </sect2> + +   <sect2 id="discardedskipped"> +    <title>What is the difference between discarded and skipped frames?</title> +    <para> +     Sometimes xine will output a message like that: +     <programlisting>   200 frames delivered, XX frames skipped, YY frames discarded</programlisting> +    </para> +    <para> +     The difference between these counters is a little subtle for the non +     developer. There are two threads running in order to display video: +     the decoder thread will deliver frames to the video output thread. +     The latter is responsible for scheduling the frames to be displayed at +     the right time. +    </para> +    <para> +     If your system can't keep up with decoding requirements, decoder will +     deliver overdue frames. Imagine if it finished decoding the frame +     tagged for displaying at 11:30 but xine clock marks 11:31. When this +     situation is detected, xine will try to skip decoding a few frames +     to recover. Not every decoder may support this feature. +    </para> +    <para> +     When the frame is decoded to be shown somewhere in future but the +     output thread doesn't get scheduled in time by the operating system +     to complete the operation, the frame is discarded. One cause might +     be the disk access operation, which may halt the system for a few +     miliseconds without DMA. See performance section tips above. +    </para> +    <para> +     Note that if a decoder can't skip frames for some reason, you would +     never see frames skipped (they would be all discarded). +    </para> +   </sect2> + +   <sect2 id="contrastbrightnesssaturation"> +    <title>My xine is runing in black and white! / I only get a grey video output!</title> +    <para> +     This frequently happens with new Xv drivers or when switching to a +     different video card. Background is that different Xv drivers often +     use different ranges for the contrast/brightness/saturation settings. +    </para> +    <para> +     To fix this, try opening the xine settings window and try adjusting +     the sliders for contrast, brightness and saturation. +    </para> +    <para> +     Please note that some frontends save these settings in their config file +     so when you have found a working combination, make sure you exit +     xine cleanly so the values are saved. +    </para> +   </sect2> + +   <sect2 id="videodriver"> +    <title>Which is the best video driver to use?</title> +    <para> +     xine supports several video drivers for outputing the image. These will +     differ on how the frames are copied to the video card memory, whether +     colourspace conversion and scaling is done in software or hardware, among +     other things. They may also differ on ease of use and stability. +    </para> +    <para> +     Most of the time, Xv should give the users a good trade-off between +     quality, compatibility and ease of use. This is why xine tries to use +     Xv by default. +    </para> +    <para> +     However some users may want to explore better the available hardware +     capabilities (eg. syncing frame drawing with monitor refresh). +     Also some Xv drivers contain slow copies and accessing the video card +     directly may yield performance gains. +    </para> +    <para> +     Drivers that access hardware directly includes VIDIX (warning: requires +     root priviledges or kernel helper). +     User may try one of those, but should be warned that with root access +     they can cause the system to crash hard. The support is also limited to +     a couple of graphics cards only. +    </para> +    <para> +     Graphic workstations like SGI have usually a good support for OpenGL. +     In that case, using OpenGL may be a better choice than XShm. However for +     most desktop systems the performance of OpenGL will be quite bad. +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="overlay"> +   <title>OSD and overlay related questions</title> + +   <sect2 id="unscaledosd"> +    <title>What is this "unscaled" OSD about?</title> +    <para> +     Since version 1-rc3 of xine-lib supports a new method for rendering OSD +     (On Screen Display) and subtitles. This method uses a X11 extension +     called XShape that allows using screen resolution instead of +     stream resolution. It is called "unscaled" OSD because it does not +     scales with the video being played. +    </para> +    <para> +     Suppose you are watching a 320x200 video in full screen. Normal OSD +     would be blended at 320x200 and then scaled to full screen (lets say, +     1024x768), resulting in big and ugly fonts. The unscaled overlay is +     drawn directly to screen, creating a sharper and better looking OSD. +    </para> +    <para> +     There are side effects too. Sometimes the unscaled overlay show some +     glitch just before disappearing. Some people may be annoyed enough +     by that and might want to disable the usage of unscaled overlay +     altogether. +    </para> +    <para> +     Unscaled OSD usage by subtitles and xine-ui is controlled by +     the following settings (<filename>~/.xine/config</filename> or +     <filename>~/.config/gxine/config</filename>): +     <programlisting>   gui.osd_use_unscaled:0</programlisting> +     <programlisting>   subtitles.separate.use_unscaled_osd:0</programlisting> +    </para> +   </sect2> + +   <sect2 id="noosd"> +    <title>I can't see the OSD or it leaves a black box over the image!</title> +    <para> +     If you are using xine-lib version 1-rc3 or newer, this is probably +     due buggy XV drivers that do not support +     <link linkend="unscaledosd">unscaled OSD</link> (the XShape +     extension) properly. +    </para> +    <para> +     There have being reports of some ATI drivers that don't allow +     displaying anything over the video. The VIA Epia binary drivers +     is reported to leave a black box where the OSD was displayed. +    </para> +    <para> +     The problem may be fixed by either updating the video driver, +     or disabling xine unscaled OSD support. +    </para> +   </sect2> + +   <sect2 id="overlaycolorleak"> +    <title>Why colours of overlays/subtitles seem to be "leaking"?</title> +    <para> +     xine blends most overlays, specially the ones from DVD discs, +     directly over the image (scaled OSD). Unfortunately most codecs +     (like MPEG2) use a subsampled image format (YV12) that makes +     properly blending an interesting challenge. +    </para> +    <para> +     In short, this is a known xine bug. There have being discussions +     on improving the blending quality but, so far, nobody implemented +     a better (scaled) overlay renderer. Contact developers if you want +     to try doing something about it. +    </para> +   </sect2> + +   <sect2 id="uglysubtitles"> +    <title>Why external subtitles look so ugly?</title> +    <para> +    You are probably using a xine-lib version older than 1-rc3. +    Try upgrading your copy and read the +    <link linkend="unscaledosd">section about unscaled osd</link>. +    </para> +   </sect2> + +   <sect2 id="subtitlesoutsidevideo"> +    <title>Why subtitles can't be displayed outside the video?</title> +    <para> +    It is possible, but older xine versions may not support it. There are two +    alternatives for rendering the subtitles outside the video image: +    </para> +    <para> +     <itemizedlist> +      <listitem> +       <para> +        Use the "expand" post plugin to increase frame height adding +        black bars to it. This will allow blending the subtitles +        over the black bars, since they will be part of the video now. +       </para> +      </listitem> +      <listitem> +       <para> +        Use <link linkend="unscaledosd">unscaled OSD</link>, as it +        does not requires any video to render the subtitles on. +       </para> +      </listitem> +     </itemizedlist> +    </para> +    <para> +    Also notice that DVD overlays (including subtitles) are meant to +    be displayed in a fixed position, this is how the DVD menu +    highlighting works. xine does not support moving them. +    </para> +   </sect2> + +   <sect2 id="supportedfonts"> +    <title>What kinds of subtitle fonts does xine use?</title> +    <para> +     xine can use two kinds of fonts: +     <itemizedlist> +      <listitem> +       <para> +        TTF fonts +       </para> +       <para> +        If xine is compiled with freetype library xine recognizes and uses TTF +        fonts directly. +       </para> +      </listitem> +      <listitem> +       <para> +        xine fonts +       </para> +       <para> +        This is xine's native format. It's better because the font +        generator utility implements more features than the "on the fly" TTF renderer. +       </para> +      </listitem> +     </itemizedlist> +    </para> +    <para> +     The font for text subtitles is selected via config option +     <parameter>subtitles.separate.font</parameter>. You can specify xine font name +     (<parameter>sans</parameter>, <parameter>serif</parameter>, …) +     or file name of the TTF font. The directories +     <filename>$prefix/share/xine/libxine1/fonts</filename> and +     <filename>~/.xine/fonts</filename> are searched for the fonts, with +     <filename>$prefix</filename> being the place xine-lib was installed to. +     Usually this is <filename>/usr/local</filename> or <filename>/usr</filename>. +     TTF fonts are also searched for in the current directory. +    </para> +   </sect2> + +   <sect2 id="generatefonts"> +    <title>How to create own xine subtitle fonts?</title> +    <para> +     xine's native subtitle fonts can be generated from TTF fonts with the +     utility <command>xine-fontconv</command>. It isn't compiled and installed by default but +     you can make it manually. You'll need freetype and zlib packages together with +     their versions for development plus a compiler, of course ;) +     Here's how you build <command>xine-fontconv</command>: +     <itemizedlist> +      <listitem> +       <para> +        Get the source of xine-fontconv utility from the <filename>misc</filename> +        directory within the xine-lib sources. +       </para> +      </listitem> +      <listitem> +       <para> +        Compile it: +        <screen>   <command>gcc xine-fontconv.c -o xine-fontconv `freetype-config --cflags --libs` -lz</command></screen> +       </para> +      </listitem> +     </itemizedlist> +     You'll need some TTF font for generating. Characters in this font should +     cover all codepages you want supported, otherwise you'll have missing characters. +    </para> +    <para> +     Syntax is: +     <screen>   <command>./xine-fontconf font.ttf font_name [encoding1 [encoding2 […]]]</command></screen> +    </para> +    <para> +     For example default font <filename>sans</filename> was generated with +     following command: +     <screen> +   <command>./xine-fontconv Aril_Bold.ttf sans iso-8859-1 iso-8859-2 iso-8859-5 \ +                                      iso-8859-9 iso-8859-15 cp1250 cp1251</command></screen> +    </para> +    <para> +     There are displayed messages about missing characters on the screen +     during generating. It's OK if the missing characters are U+007f..U+009F. +     These characters come from iso-8859-1 and they aren't displayable. +    </para> +   </sect2> + +   <sect2 id="subencoding"> +    <title>Encoding of external subtitles is bad. What is wrong?</title> +    <para> +     The encoding of the external subtitles is expected to be iso-8859-1 by +     default. You need to set an appropriate encoding in the config option +     <parameter>subtitles.separate.src_encoding</parameter>. Note that you also need +     a font which contains all characters from the given encoding. +    </para> +    <para> +     The default font <filename>sans</filename> and fonts +     <filename>serif</filename> and <filename>mono</filename> cover these +     encodings: +     <itemizedlist> +      <listitem><para>iso-8859-1</para></listitem> +      <listitem><para>iso-8859-2</para></listitem> +      <listitem><para>iso-8859-5</para></listitem> +      <listitem><para>iso-8859-9</para></listitem> +      <listitem><para>iso-8859-15</para></listitem> +      <listitem><para>windows-1250</para></listitem> +      <listitem><para>windows-1251</para></listitem> +     </itemizedlist> +    </para> +   </sect2> + +  </sect1> + +  <sect1 id="errors"> +   <title>Error Messages: What they mean and what you can do</title> + +   <sect2 id="xfreecrash"> +    <title>Starting xine crashes X, I am logged out of my desktop!</title> +    <para> +     xine itself is unable to crash X, so when your X server just shuts down or +     restarts with the login screen, there is something wrong with your X setup. +     Most common are problems with the Xv extension. Try running xine with the XShm +     video output plugin: +     <screen>   <command>xine -V XShm</command></screen> +    </para> +    <para> +     If that works fine, you just proved, that the Xv extension is buggy. xine will +     remember the last used video output plugin, so the setting will stay at XShm. +     You could simply continue using this, but XShm is a lot slower than Xv, so +     consult the <link linkend="xvextension">section on Xv</link> and see if you can +     get it working. Usually you should look for updated versions of the X driver +     module that belongs to your graphics card. +    </para> +   </sect2> + +   <sect2 id="audiodrivererr"> +    <title>Starting xine fails with complains about audio drivers/devices!</title> +    <para> +     You can select the audio driver using the -A option. So try: +     <screen>   <command>xine -A null</command></screen> +     If you have ALSA drivers installed, try: +     <screen>   <command>xine -A alsa</command></screen> +     If you run ESD (not recommended), try: +     <screen>   <command>xine -A esd</command></screen> +     If you run artsd, try: +     <screen>   <command>xine -A arts</command></screen> +    </para> +   </sect2> + +   <sect2 id="novideoportfound"> +    <title>"no video port found"</title> +    <para> +     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 resolution (1024x768 is enough even for +     anamorphic DVDs). +    </para> +    <para> +     If all that fails, you can still use plain X11/XShm: +     <screen>   <command>gxine -V XShm foo.vob</command></screen> +    </para> +   </sect2> + +   <sect2 id="unabletoopendvddrive"> +    <title>"Unable to open dvd drive (/dev/dvd)"</title> +    <para> +     You probably don't have /dev/dvd (check that). If so, simply create a +     link /dev/dvd that points to your DVD device. Something like… +     <screen>   <command>ln -s hdc /dev/dvd</command></screen> +     … should do the job. Also make sure you have read and write access on +     the device the symlink points to. +     See the <link linkend="dvdplayback">dvd playback section</link> +     for more information. +    </para> +   </sect2> + +   <sect2 id="status0x51"> +    <title>My drive doesn't work and the kernel says "status=0x51 { DriveReady SeekComplete Error }"</title> +    <para> +     This error can be fixed by recompiling your kernel with the option +     "Use multi-mode by default" enabled in the IDE settings. +    </para> +   </sect2> + +   <sect2 id="demuxerror0000"> +    <title>"demux error! 00 00 00 (should be 0x000001)"</title> +    <para> +     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 (see above). +    </para> +    <para> +     If it is legal where you live, you can try to install libdvdcss. Once +     you have done that and re-start xine, it should automatically detect +     and use it to play back encrypted DVDs. +    </para> +    <para> +     Another reason could be that your (RPC-2) DVD drive isn't set up +     for the right region (see above). +    </para> +   </sect2> + +   <sect2 id="ossfailed"> +    <title>"audio driver 'oss' failed, using null driver instead"</title> +    <para> +     First of all, make sure that your OSS Audio drivers are working (i.e. +     you can play music with other software). Maybe you're using alsa? +     If so, try <command>gxine -A alsa</command> to see if this helps. +    </para> +    <para> +     The most common reason for oss not working is that some other program is accesing +     your audio device. If you're using linux, the command <command>fuser /dev/dsp</command> +     should give you the PID of the process. +    </para> +    <para> +     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" or just kill it. Then xine will use OSS audio output. The other +     method is to make xine use ESD for audio output with: +     <screen>   <command>gxine -A esd</command></screen> +     This may result in worse playback – exact syncronization is not possible +     with esd, so using oss should be preferred. +    </para> +    <para> +     If you are using KDE, there is the possibility that the aRts sound +     daemon is currently running and thus blocking your sound device. You +     can check that by starting the aRts control (in your KDE menu it should +     be under Multimedia). If it is running, you can either use the aRts +     audio output plugin: +     <screen>   <command>gxine -A arts</command></screen> +     Or you suspend the aRts daemon by checking the appropriate option in +     your aRts control. (recommended) +    </para> +    <para> +     Newer versions of arts have an auto-suspend mode – this can lead to +     some nondeterministic behaviour of xine if it is set up to use +     the audio device directly. Using arts is recommended in that case; +     however, you will lose the ability to do four/five channel audio output. +    </para> +   </sect2> + +   <sect2 id="throwingawayimage"> +    <title>"video_out: throwing away image with pts xxx because it's too old"</title> +    <para> +     This is a performance related problem. +     If you have a fast computer and this message is shown from time to +     time when playing a DVD or CD, it's very likely that DMA is not enabled +     for your drive. +    </para> +   </sect2> + +   <sect2 id="novideopluginavailable"> +    <title>"No video plugin available to decode 'xxxxxx'."</title> +    <para> +     You have tried to play a stream using a unknown or unhandled codec. +     Possibly the file uses some obscure proprietary format and no +     information is available on how to decode it. +    </para> +    <para> +     If you're on an x86 platform (e.g. PC hardware) you might want to +     try installing binary-only windows medial, real networks and +     quicktime codecs (see above). +    </para> +   </sect2> + +   <sect2 id="decoderfailedtostart"> +    <title>"w32codec: decoder failed to start. Is 'xxxxxx' installed?"</title> +    <para> +     You probably don't have the win32 dll needed to decode this file. +    </para> +   </sect2> + +   <sect2 id="xinecrashed"> +    <title>xine just crashed on me – i didn't get any error message</title> +    <para> +     OK, yes, that shouldn't happen and you're upset. We can understand that. +     But, to help you and of course to fix this, we need some information. +     So, let's go through the checklist and maybe prepare a nice bug report +     for the <ulink url="http://bugs.xine-project.org/">xine bug tracker</ulink>: +     <itemizedlist> +      <listitem> +       <para> +        Did xine really crash (segfault) or did it hang (deadlock)? +       </para> +      </listitem> +      <listitem> +       <para> +        Can you reproduce the bug? (e.g. do you remember what you +        did and when you do it again it crashes again?) +       </para> +      </listitem> +      <listitem> +       <para> +        Is that a specific media file or format which crashes xine? (Have you +        tried other files types?) +       </para> +      </listitem> +      <listitem> +       <para> +        Check the console output (and include it in a bug report), maybe earlier +        there is some output that points to the problem. +       </para> +      </listitem> +      <listitem> +       <para> +        Your X server just froze on you? unfortunately that's a known problem +        with some chipsets and drivers (most commonly Savage chipsets) when +        using Xv. You might want to try running <command>gxine -V XShm</command> +        to see if the problem is related to the Xv driver. This will unfortunately +        be much slower, as lots of things are now done in software instead of +        hardware scaling/colour space conversion. +       </para> +       <para> +        Maybe at the time you read this, there's an X upgrade which fixes +        this for the Savage driver. If that works for you, please notify the xine crew at +        <email>xine-user@lists.sourceforge.net</email>, so they can update this FAQ! +       </para> +      </listitem> +      <listitem> +       <para> +        Even though we try to make each release as bug free as possible, xine is +        still under heavy development (nice excuse, isn't it? *grin*). +       </para> +       <para> +        If you write to the <ulink url="http://bugs.xine-project.org/">xine bug tracker</ulink> +        make sure you include a the above information (when applicable) +        and also some information about your machine (operating system, cpu type and +        speed, gfx card, sound card, …) and please use a meaningfull subject +        line ("xine bug" is bad, "xine fails to play this quicktime trailer in fullscreen mode" +        ist much better). +       </para> +       <para> +        Thanks for taking the time to help improve xine. +       </para> +      </listitem> +     </itemizedlist> +    </para> +   </sect2> + +  </sect1> + + </article> + +</book> | 
