vdr/xine-lib-vdr/doc Makefile.am Makefile.in README README.dvb README.dxr3 README.freebsd README.irix README.network_dvd README.opengl README.solaris README.syncfb README_xxmc.html
Darren Salt
pkg-vdr-dvb-changes@lists.alioth.debian.org
Mon, 04 Apr 2005 22:29:13 +0000
Update of /cvsroot/pkg-vdr-dvb/vdr/xine-lib-vdr/doc
In directory haydn:/tmp/cvs-serv2129/doc
Added Files:
Makefile.am Makefile.in README README.dvb README.dxr3
README.freebsd README.irix README.network_dvd README.opengl
README.solaris README.syncfb README_xxmc.html
Log Message:
Import of VDR-patched xine-lib.
--- NEW FILE: README.dxr3 ---
----------------------
xine
----------------------
a free video player
Introduction
============
This documentation is intended for users of a dxr3 decoder card
from creative labs or a hollywood plus decoder card from sigma
designs.
This version of xine contains a plugin for the mentioned hardware
decoders "out of the box". The missing part is the linux kernel
driver. The driver can be obtained from the main dxr3/hw+ linux
development site at
http://dxr3.sourceforge.net/
The various release formats (tarball, RPMs) are listed on
http://dxr3.sourceforge.net/download.html
As setting up the dxr3/hw+ driver is a little bit tricky, please
consult also the HOWTO:
http://dxr3.sourceforge.net/howto.html
The xine dxr3 plugin requires at least the version
em8300-0.8.1 of the linux drivers.
Additional information on using xine with the dxr3 and on how to
setup the kernel module along with precompiled RPMs can be found
here:
http://www.amalthea.de/xine/
XINE dxr3 plugin
=================
There are two different ways in which xine can make use of the dxr3
card.
1. mpeg-1/mpeg-2 (DVD, VCD, ...) decoding and displaying.
This is the normal use. Instead of doing the mpeg decoding in
software, xine sets up the display (TV or overlay) and sends the mpeg
data via the kernel driver to the mpeg decoder on the dxr3 card, very
much like the Windows player that you problably got with the card. In
this mode, you should be using the dxr3 video decoder plugin together
with the dxr3 video out plugin.
Xine should select the dxr3 video decoder plugin automatically when it
encounters an mpeg stream, but it is possible it does not use the dxr3
video out plugin by default. In that case, start xine with the
"-V dxr3" argument to specify the dxr3 video out plugin. If you use
another video out driver, such as Xv or XShm, xine won't be able
to use the mpeg decoding capability of the dxr3 hardware and will
use libmpeg2 instead.
Here's a short overview what happens when you play a dvd with xine
using the dxr3 video out driver:
DVD -> split mpeg video and audio and audio streams
-> send mpeg video to dxr3 -> image appears on screen
2. displaying non-mpeg video on dxr3 hardware.
Non-mpeg video may be AVI, quicktime, windows media files or whatever
else xine can decode.
This option must be compiled in and requires a supported mpeg encoder.
At the moment there are three:
- libavcodec from xine-lib's ffmpeg plugin (good quality, quite fast)
- libfame from fame.sourceforge.net (very fast, good quality)
(currently the 0.9 versions of libfame don't work, use the 0.8 versions)
- librte (version 0.4) from zapping.sourceforge.net (fast, very good quality)
If configure finds one or both it will compile in encoding support into
the dxr3 driver.
In order to use this driver for output instead of, say, Xv, just start
xine with the command line option "-V dxr3", for example
% xine -V dxr3 my_movie.avi
Unlike in case 1), where the card does the video decoding, in this
case Xine does the decoding in software, as usual, and sends the
decompressed image to the video out driver. The dxr3 video out
driver encodes, in real time, this image as an mpeg-1 intra frame and
sends it to the mpeg decoder on the card.
Using this trick, we can display arbitrary video formats via the
tv out port of the dxr3 card. Nifty huh? The only downside is that
it requires extra computational power, because we have to both
decode the original video and encode to mpeg-1 in software. The
cpu power needed depends of course on the resolution and the source
format, but as a rule of thumb it is recommended to do this on a
system with at least 128 MB of RAM and a P-III/Athlon at 800 MHz.
Here's an overview what happens when you play an AVI this way
(compare this with the previous overview!)
-> split video and audio streams -> decode video stream
-> encode video as mpeg-1 -> send mpeg-1 stream to dxr3
-> image appears on screen
XINE configuration
==================
The dxr3 video driver can be forced using the "-V dxr3"
command line option. Only the tvmode value has to be edited
if the default driver setting is not correct. Of course you can also
use xine-ui's setup dialog to edit your configuration. Have a look
at the DXR3 section of the configuration.
Here are some additional settings interesting for the DXR3:
video.driver:
dxr3 The dxr3 video driver does all the necessary card setup
and the mpeg encoding when playing non-mpeg video.
(see above)
audio.driver:
oss The em8300 audio output is available as an usual
OSS device. Therefore the audio driver must be
set to oss. Can also be specified using "-A oss"
on the command line.
audio.device.oss_device_number:
0-16 Machines with a dxr3 installed often have a usual
soundcard too. If audio playback occurs on the
wrong device, the demanded device can be set using
this option.
engine.decoder_priorities.dxr3-mpeg2:
10 Priority of the dxr3 video decoder plugin. <5 means
that hardware decoding by the card will be disabled
and libmpeg2 will be used instead. Therefore all video
material including mpeg will pass the software
decoding and mpeg re-encoding stages.
(see also above explanation of the encoding mode)
Zooming Feature (TVout Only)
============================
Pressing the 'z' key enables another tv-only mode which zooms into the
centre of a 16:9 video to display much smaller (or none) black bars
top & bottom. It crops the video on the left and right sides to
maintain the correct aspect ratio. Use SHIFT-z to disable.
TV mode Cycling Feature
======================
Pressing CTRL-o repeatedly will allow you to cycle between tv modes PAL,
PAL60, & NTSC. The format selected will only remain valid for the
current xine session, on startup the tv mode will revert to the default
in .xine/config
VGA overlay feature
===================
In previous versions of xine support, one had to use dxr3view in order
to use the em8300 overlay mechanism. Now, since the xine 0.5 version,
it is possible to output the em8300 overlay directly in the video
out window.
In order to activate it, "dxr3.output.mode" must be set to "overlay".
But it won't work until the old dxr3view works too (just a check). Before
a first use, "autocal" has to be run. This will store the right overlay
parameters in "~/.overlay". For more information, please consult the
dxr3 howto too.
As of version 0.9.5, you can now switch between overlay and tv-out modes
on-the-fly, simply by hiding the video_out window ('h' key by default,
see the README file). If you want to start xine with video on the tv,
you can run xine with the -H option to auto-hide the vo window, instead
of changing the configuration (although you can still do that instead if you
prefer, of course).
Have a look at the previous explained configuration options dxr3.output.keycolor
and dxr3.output.keycolor_interval too.
---
version of this file:
$Id: README.dxr3,v 1.1 2005/04/04 22:29:11 dsalt-guest Exp $
--- NEW FILE: README.irix ---
building xine on IRIX
---------------------
* Choose gcc for compilation during configure,
e.g. 'env CC=gcc ./configure'
* Compile xine with GNU make (gmake).
Known Problems
--------------
* Cannot compile with IRIX cc
This is an unresolved issue with automake and dependencies.
Not likely to be fixed soon.
* xine only opens a 16 bit visual and looks ugly
This is done intentionally (speedup on most architectures).
Choose an appropriate visual (with xdpyinfo) and select it
e.g. with 'xine --visual 0x33'.
* Scaling is slow
Choose the opengl plugin instead of the xshm plugin.
However, this plugin is still highly experimental, expect
some crashes, and read README.opengl
Matthias Hopf <mat@mshopf.de>
--- NEW FILE: README ---
xine-lib/doc/README
This directory contains documentation for xine-lib (the xine engine).
Parts of this documentation are targeted towards end-users, other parts
toward developers.
Some frontends (e.g. xine-ui) may come with additional, frontend-specific
documentation. The documents in this directory try to talk about xine
engine features common to all frontends.
faq/
contains the xine engine FAQ
hackersguide/
contains the xine hacker's guide for developers
man/
contains some general manpages about xine-lib
README.dvb
instructions on how to get DVB (DigitalTV) working in xine
README.dxr3
instructions on how to get use the DXR3 (hollywood+) in xine
README.freebsd
hints on running xine on FreeBSD
README.irix
hints on running xine on IRIX
README.network_dvd
how to play DVDs / Audio CDs over the network
README.opengl
how to use xine's OpenGL video output
README.solaris
hints on running xine on Solaris
README.syncfb
information about xine's SyncFB video output plugin
--- NEW FILE: README.freebsd ---
----------------------
xine
----------------------
a free video player
This document contains FreeBSD related information about xine
xine fails when allocating images
---------------------------------
Make sure you have enough shared memory enabled. This is very
limited by default.
Edit your /etc/sysctl.conf:
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
mtrr on freebsd
---------------
setting up the caching behaviour of the memory on the graphics board.
what is being done with the mtrr support on linux is to set the caching
type of the memory of the graphics board to 'write-combine' mode.
that way the performance of big writes into this memory should be faster.
it seems that the same can be achieved on freebsd by executing:
memcontrol set -b <base-address> -l <length> write-combine
for example on my system i executed:
memcontrol set -n 0xd8000000 -l 0x02000000 write-combine
i got the base-adress by executing 'startx' and looking at the output.
it seems to be dangerous to change the cache setting of the graphics memory
while xfree is running - at least i managed to have my system freeze that
way. so better do it on the commandline.
this tip is still subject of research, so it might be incorrect - please
report any further information on this topic to the xine-user list.
please also report success or non-success on xine-user if you have the time.
playing video cd on freebsd
---------------------------
currently (because of issues with the freebsd kernel) xine can only
play video cd from atapi cdrom drives. not for scsi drives!
currently (Jan 2001), FreeBSD-stable (and thus the current releases also)
needs a patch to the kernel sources to make video cd work (please check
the freebsd documentation if you are unsure on how to build a custom
kernel with this patch included).
the file you have to patch is /sys/dev/ata/atapi-cd.c:
*** atapi-cd.c.orig Sun Jan 21 14:42:57 2001
--- atapi-cd.c Sun Jan 21 14:47:13 2001
***************
*** 1163,1174 ****
return;
}
}
! if (blocksize == 2048)
! ccb[0] = ATAPI_READ_BIG;
! else {
! ccb[0] = ATAPI_READ_CD;
! ccb[9] = 0x10;
! }
}
else
ccb[0] = ATAPI_WRITE_BIG;
--- 1163,1182 ----
return;
}
}
! switch (blocksize) {
! case 2048:
! ccb[0] = ATAPI_READ_BIG;
! break;
!
! case 2352:
! ccb[0] = ATAPI_READ_CD;
! ccb[9] = 0xf8;
! break;
!
! default:
! ccb[0] = ATAPI_READ_CD;
! ccb[9] = 0x10;
! }
}
else
ccb[0] = ATAPI_WRITE_BIG;
------------------------------------------------------------------------
---
version of this file:
$Id: README.freebsd,v 1.1 2005/04/04 22:29:11 dsalt-guest Exp $
--- NEW FILE: README.dvb ---
xine Digital TV (DVB)
=====================
xine can be used to watch digital television.
xine supports Digital TV (Digital Video Broadcasting - DVB) cards
using the Linux DVB driver from Convergence (http://www.linuxtv.org).
DVB-S (direct satellite reception), DVB-C (Cable) and DVB-T (Teresstrical)
cards should be supported (e.g. the Hauppauge WinTV Nova DVB-S card).
driver download and installation
--------------------------------
Download and install the drivers from http://www.linuxtv.org, the 1.0.0 or later release
should work fine.
You will need kernel sources configured for your configuration for
a successfull build, preferably in /usr/src/linux plus a link to them in
/lib/modules/<kernel-version>/build. Once you have that you should be ready
to compile the driver
# cd linuxtv-dvb-1.0.0/driver
# make
if that doesn't fail, do a
# make insmod
UPDATE: the latest 2.6 kernels include the necessary drivers for most
cards, check on the linuxtv.org website for information about supported
cards, or read the documentation available in the linux kernel
sources (linux/Documentation/dvb/*).
to load the generated modules into your running kernel. If everything went
fine, you should have something like
DVB: registering new adapter (TT-Budget/WinTV-NOVA-S PCI).
PCI: Found IRQ 10 for device 00:0d.0
PCI: Sharing IRQ 10 with 00:0c.0
DVB: registering frontend 0:0 (stv0299 based (e.g. Alps BSRU6 or LG TDQB-S00x))...
in your dmesg.
install a channel list
----------------------
xine's dvb input plugin needs a channel/transponder list that fits your
dvb equipment. xine now uses the channels.conf format of szap, czap and
tzap as appropriate for DVB-S, DVB-C and DVB-T. it will search the channel
list file in ~/.xine/channels.conf
channel list format for DVB-S: (satellite)
-------------------------------------------
NBC :11053 :h :1 :27500 :550 :551 :1 :8008
station name:freqency:h/v:sat no :symbol rate:vpid:apid:sid:????
-------------------------------------------
channel list format for DVB-T (terrestrial):
-------------------------------------------
WINSA :557500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_AUTO:QAM_64: \
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE :33 :36 :1
station name:frequency:config options go on seemingly forever ... :vpid:apid:serviceid
-------------------------------------------
you automatically scan for all available channels using the scan utility
which comes with the dvb package. compile it using something like
# cd linuxtv-dvb-1.0.0/apps/scan
# make
then start scanning
# scan >~/.xine/channels.conf
newer versions of scan (after July 2004) are called dvbscan, but you can use it much the same way:
# dvbscan Hotbird-13.0 >~/.xine/channels.conf
this can take a while. in a DiSEqC environment, use the -s N switch to select
different sattelites to scan and paste the results in one big channels.conf file. As always,
please be sure to read the man page for the version of the tool you are using.
HINT 1: you might want to manually sort the channels.conf file to have your favourite
channels at the top and maybe remove scrambled channels which you don't have access to.
************************ If the dvb plugin doesn't seem to work for you ******************
* if xine doesn't seem to work for you, double check to make sure that the channels.conf *
* file is _NOT_ in vdr format, which looks something like this: *
* WINSA:557500:I999B7C23D0M64T8G8Y0:T:27500:33:36:47:0:1:0:0:0 *
******************************************************************************************
using xine to watch digital television
--------------------------------------
make sure you have a recent libxine and frontend installed (latest CVS as of
this writing). then simply start something like
$ gxine dvb://
or click on the DVB button in xine-ui. you should be able to zap around using
the NumPad-9 / NumPad-3 keys, the xine playlist, or using the next/previous chapter
buttons in your gui.
An OSD menu is available too. Press NumPad-8 / NumPad-2 to scroll
through the channels, then press NumPad-Enter to switch to the channel
you have selected. As of 06-12-2004, the channel list can be brought up and scrolled
through via the wheel on many mouses. Use the left mouse button to switch to
the channel you've selected. The side buttons (6 & 7) can be used to rapidly switch
to previous/next channels, if they are available on your mouse.
You can use MENU3 (F2 in xine-ui, F3 in gxine) to zoom into the centre of a videostream.
This will allow you to view 4:3 content that has been embedded into a
16:9 stream in fullscreen (no more black borders). Press the key again
to return to normal viewing. There is also an option in the xine
preferences to zoom automatically when using xine to view DVB.
MENU7 (F6 in xine-ui or F7 in gxine) will toggle viewing of the current channels'
Electronic Program Guide (information on the current/next program) on the OSD, if available.
HINT: if audio or video is stuttering, pause (space key) shortly
to give xine a chance to fill up it's buffers. If watching a large HDTV stream, you
may need to increase the xine video & audio buffer size - increasing audio buffers to
300 and video buffers to 700 has been known to work with streams up to 1920x1088 in size.
recording digital television
----------------------------
there is a very simple vcr-like feature built into the xine engine. just press
MENU2 (that is F2 in gxine, or F1 in xine-ui for example) to start/stop recording
the currently displayed program to your local disc. a small osd in the upper
left corner of your screen will tell you the file name the recorded stream is
written to. You can select the directory to save to in the xine configuration under
the MISC tab, otherwise the plugin will record to your home directory. You can
pause the recording at any time by pressing MENU4 (F3 in xine-ui, F4 in gxine).
An OSD in the top left hand corner will notify you of the status of the recording.
Pressing MENU4 again will resume recording.
Have fun.
--- NEW FILE: README.solaris ---
----------------------
xine
----------------------
a free video player
building xine on solaris
------------------------
* The preferred make command to compile xine is GNU make (gmake,
/opt/sfw/bin/gmake).
Sun's make (/usr/ccs/bin/make, or dmake) may work, too.
* On Solaris x86: When xine-lib code is build using GCC as the compiler,
xine-lib tries to use MMX/SSE/3DNOW! instructions of x86 CPUs, which
may not assemble using Solaris' /usr/ccs/bin/as.
Make sure to use the GNU assembler as the assembler backend for the
GNU C compiler and as a standalone assembler command.
A quick workaround when using the GCC from Sun's
"Software Companion" CD is to replace /usr/ccs/bin/as with a
link to GNU as, for example like this:
cd /usr/ccs/bin
ln -s /opt/sfw/bin/gas gnu-as
mv as sun-as
ln -s gnu-as as
(Use "ln -s gnu-as as" or "ln -s sun-as as" to switch between the
two assemblers)
* To get VIS accelerated video decoding and colour space conversion
on Solaris SPARC with an UltraSPARC cpu, download and install Sun's
mediaLib 2.0 before compiling xine. mediaLib is available here:
http://www.sun.com/sparc/vis/mediaLib.html
Known Problems
--------------
* Can't use MIT shared memory for local video display
The default value for the maximum allowed shared memory segment size
(1MByte) and the number of allowed shared memory segments (6)
is very small on solaris. You may want to increase both parameters.
Add the following lines to /etc/system to increase the shmmax parameter
to 8MBytes and the shmseg parameter to at least 32 [*]:
set shmsys:shminfo_shmmax=8388608
set shmsys:shminfo_shmseg=32
Reboot the machine after modifying /etc/system to activate the new
shared memory defaults.
[*] Note: 15 shared memory segments is the minimum requirement for
xine's "XShm" video output plugin; 32 gives a bit of extra room
for other applications. The GUI frontend might need more
shared memory segments, see below.
* Warnings from xine-ui, when playlist / control / mrl browser panel
is opened (and broken skin image elements in these panels):
xiTK WARNING: X error received: 'BadShmSeg (invalid shared
segment parameter)'
xiTK WARNING: X error received: 'BadAccess (attempt to access
private resource denied)'
xiTK WARNING: XShmAttach() failed.
xine-ui tries to use even more shared memory segments for skin
images.
Workaround: The problem can be avoided with one of
- create a text file $HOME/.xitkrc (or /etc/xitkrc) and add the
following line into it
feature.shm = 0
- configure and build xine-ui with option "--disable-shm" or
"--disable-shm-default"
- increase shmsys:shminfo_shmseg to at least 768
* When using an 8-bit display, xine aborts with the error message:
IMLIB ERROR: Cannot Find Palette. A Palette is required for this mode
Unable to initialize Imlib
xine expects an installed Imlib package, installed using the "prefix" /
xine is looking for the global Imlib config file in /etc/imrc.
If you have the solaris 8 companion CD installed, an Imlib package is
already installed on your system, but it uses the "prefix" /opt/sfw.
To work around the problem:
- install a symbolic link /etc/imrc, pointing to /opt/sfw/etc/imrc
(needs root permission)
# ln -s /opt/sfw/etc/imrc /etc
or
- install an ".imrc" file in your home directory,
with the following contents:
PaletteFile /opt/sfw/etc/im_palette.pal
* On Solaris x86, you cannot reliably play DVDs using a capacity >4GB:
The sd(7D) driver on solaris x86 has a bug when accessing a disk
block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e.
CDROM and DVD media). Due to a 32bit int overflow, a disk address
modulo 4GB is accessed.
There's no workaround available.
See the following message for more details about this bug:
http://groups.yahoo.com/group/solarisonintel/message/22516
---
version of this file:
$Id: README.solaris,v 1.1 2005/04/04 22:29:11 dsalt-guest Exp $
--- NEW FILE: README.opengl ---
Startup
-------
Start xine with '-V opengl'. Note that xine might choose a visual with a
different color depth than you would prefer. Choose an appropriate visual
with 'glxinfo' and select it with '-V opengl --visual xyz' in this case.
Problems you might encounter
----------------------------
* Output is extremely slow
Run 'glxinfo' and check the third output line saying 'direct rendering:'
If it doesn't say 'Yes', you are not running an accelerated OpenGL setup.
Check your installation.
Image_Pipeline based rendering is typically slower than 2D_Textures.
Note that OpenGL output is always slower than XVideo, and often faster
than X shared memory.
* xine complains about a memory leak
This is known and - unfortunately - cannot be solved without changing
the user interface code. This will happen at least for xine-ui in the
near future.
Background: The output plugin does not get notified, when the XWindow
is destroyed, and the OpenGL context can only be destroyed while the
drawable is still accessible.
Known issues
------------
* GL_BGRA (used on little endian machines, i.e. ix86) needs an extension
check. This has not been implemented yet.
* Big endian machines have not been checked yet.
* VO_CAP_UNSCALED_OVERLAY reduces performance a lot during the first few
frames.
* Cropping is not yet implemented - this is done by video_out.c
* XINE_GUI_SEND_WILL_DESTROY_DRAWABLE not yet sent by any GUI, thus untested
Matthias Hopf <mat@mshopf.de>
--- NEW FILE: Makefile.am ---
include $(top_srcdir)/misc/Makefile.common
SUBDIRS = man hackersguide faq
docs_DATA = README README.dvb README.dxr3 \
README.freebsd README.irix README.network_dvd README.opengl \
README.solaris README.syncfb README_xxmc.html
EXTRA_DIST = $(docs_DATA)
docsdir = $(prefix)/share/doc/xine
docs clean-docs:
@cd faq && $(MAKE) $@
@cd hackersguide && $(MAKE) $@
--- NEW FILE: README.network_dvd ---
Playing DVDs / Audio CDs over the network
=========================================
xine can be used to play DVDs and Audio CDs over the network.
ok, but.... why?
there are some reasons people want to do that:
- because you may have a 200 discs DVD changer on your garage and you
want to watch them on your room.
- because you don't want to have a lousy cdrom driver around when
listening to your favorite music.
- because the computer that is hooked to the TV doesn't have a dvdrom.
- because you can :)
network block devices
---------------------
yes, network block device (nbd) could be an option for that. however:
- they don't support ioctls which are needed for cd audio playback and
dvd key exchange. (obs: one may write a custom ioctl code for enbd)
- a completely user space solution is more portable.
- the user space solution can handle failures more gratefuly and gives
better control of closing/opening the device.
installation for audio cds
--------------------------
- you must compile the cdda_server.c that comes with xine-lib sources:
xine-lib$ cd misc
xine-lib/misc$ make cdda_server
gcc -W -Wall -g -o cdda_server cdda_server.c -ldl
Your xine-lib source tree needs to be configured for that, so please
run ./configure in the toplevel sourcedir on a fresh tree.
- start cdda_server at the machine that has the cdrom drive:
xine-lib/misc$ ./cdda_server /dev/cdrom 3000
note: 3000 is the port number to listen.
- start xine on the client machine with:
$ xine cdda://server_address:3000/1
that will play the first track of the CD. in order to use the
GUI button for "CD" you have to change the setting media.audio_cd.device
to point to the server.
installation for dvds
---------------------
- compile and run cdda_server (see above).
note: you may also need to install libdvdcss or some equivalent
library on your server.
- patch libdvdcss on the client.
note: no CSS code is needed at all, so it would be possible to use a
kind of "dummy" dvd library that is API compatible with libdvdcss.
a sample patch is provided for libdvdcss-1.2.6, install it as follow:
libdvdcss-1.2.6$ patch -p1 < ../xine-lib/misc/libdvdcss-1.2.6-network.patch
libdvdcss-1.2.6$ ./bootstrap
libdvdcss-1.2.6$ make
libdvdcss-1.2.6$ make install
- start xine on the client machine with:
$ xine dvd://server_address:3000/
(don't forget the trailing slash)
protocol details
----------------
the network protocol is pretty simple. it consists of text-based commands
and replies over a TCP stream.
command format:
<command> <arg0> <arg1> <arg2> ... \n
reply format:
<error code> <n> <value0> <value1> ... \n
followed by n bytes of binary data (like cd or dvd sectors)
cdda commands:
cdda_open
<error code> 0
cdda_read <start_frame> <num_frames>
<error code> <n>
<n bytes (frames)>
cdda_tochdr
<error code> 0 <first_track> <last_track>
cdda_tocentry
<error code> 0 <track_mode> <first_frame_min> <first_frame_sec> <first_frame_frame>
dvd commands:
dvd_open
<error code> 0
dvd_error
<error code> <n>
<n bytes (error string)>
dvd_read <blocks> <flags>
<error code> <n>
<n bytes (blocks)>
dvd_seek <block> <flags>
<error code> 0
dvd_title <block>
<error code> 0
---
version of this file:
$Id: README.network_dvd,v 1.1 2005/04/04 22:29:11 dsalt-guest Exp $
--- NEW FILE: Makefile.in ---
# Makefile.in generated by automake 1.9.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/misc/Makefile.common
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/_xine.m4 $(top_srcdir)/m4/aa.m4 \
$(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/arts.m4 \
$(top_srcdir)/m4/as.m4 $(top_srcdir)/m4/caca.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/directx.m4 \
$(top_srcdir)/m4/dl.m4 $(top_srcdir)/m4/dvdnav.m4 \
$(top_srcdir)/m4/esd.m4 $(top_srcdir)/m4/ffmpeg.m4 \
$(top_srcdir)/m4/freetype2.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/irixal.m4 $(top_srcdir)/m4/lcmessage.m4 \
$(top_srcdir)/m4/libFLAC.m4 $(top_srcdir)/m4/libfame.m4 \
$(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/opengl.m4 \
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/m4/sdl.m4 $(top_srcdir)/m4/speex.m4 \
$(top_srcdir)/m4/theora.m4 $(top_srcdir)/m4/vorbis.m4 \
$(top_srcdir)/m4/xv.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(docsdir)"
docsDATA_INSTALL = $(INSTALL_DATA)
DATA = $(docs_DATA)
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AAINFO = @AAINFO@
AALIB_CFLAGS = @AALIB_CFLAGS@
AALIB_CONFIG = @AALIB_CONFIG@
AALIB_LIBS = @AALIB_LIBS@
ACLOCAL = @ACLOCAL@
ACLOCAL_DIR = @ACLOCAL_DIR@
ALLOCA = @ALLOCA@
ALSA_CFLAGS = @ALSA_CFLAGS@
ALSA_LIBS = @ALSA_LIBS@
ALSA_STATIC_LIB = @ALSA_STATIC_LIB@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
ARTS_CFLAGS = @ARTS_CFLAGS@
ARTS_CONFIG = @ARTS_CONFIG@
ARTS_LIBS = @ARTS_LIBS@
AS = @AS@
ASFLAGS = @ASFLAGS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_ASF_FALSE = @BUILD_ASF_FALSE@
BUILD_ASF_TRUE = @BUILD_ASF_TRUE@
BUILD_DHA_KMOD_FALSE = @BUILD_DHA_KMOD_FALSE@
BUILD_DHA_KMOD_TRUE = @BUILD_DHA_KMOD_TRUE@
BUILD_FAAD_FALSE = @BUILD_FAAD_FALSE@
BUILD_FAAD_TRUE = @BUILD_FAAD_TRUE@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CACA_CFLAGS = @CACA_CFLAGS@
CACA_CONFIG = @CACA_CONFIG@
CACA_LIBS = @CACA_LIBS@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCAS = @CCAS@
CCASCOMPILE = @CCASCOMPILE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEBUG_CFLAGS = @DEBUG_CFLAGS@
DEFS = @DEFS@
DEPCOMP = @DEPCOMP@
DEPDIR = @DEPDIR@
DEPMOD = @DEPMOD@
DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
DIRECTFB_LIBS = @DIRECTFB_LIBS@
DIRECTX_AUDIO_LIBS = @DIRECTX_AUDIO_LIBS@
DIRECTX_CPPFLAGS = @DIRECTX_CPPFLAGS@
DIRECTX_VIDEO_LIBS = @DIRECTX_VIDEO_LIBS@
DLLTOOL = @DLLTOOL@
DVDNAV_CFLAGS = @DVDNAV_CFLAGS@
DVDNAV_CONFIG = @DVDNAV_CONFIG@
DVDNAV_LIBS = @DVDNAV_LIBS@
DYNAMIC_LD_LIBS = @DYNAMIC_LD_LIBS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_VCD_FALSE = @ENABLE_VCD_FALSE@
ENABLE_VCD_TRUE = @ENABLE_VCD_TRUE@
ESD_CFLAGS = @ESD_CFLAGS@
ESD_CONFIG = @ESD_CONFIG@
ESD_LIBS = @ESD_LIBS@
EXEEXT = @EXEEXT@
EXTRA_X_CFLAGS = @EXTRA_X_CFLAGS@
EXTRA_X_LIBS = @EXTRA_X_LIBS@
F77 = @F77@
FFLAGS = @FFLAGS@
FFMPEG_CPPFLAGS = @FFMPEG_CPPFLAGS@
FFMPEG_LIBS = @FFMPEG_LIBS@
FIG2DEV = @FIG2DEV@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FT2_CFLAGS = @FT2_CFLAGS@
FT2_LIBS = @FT2_LIBS@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GLUT_LIBS = @GLUT_LIBS@
GLU_LIBS = @GLU_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
GOOM_LIBS = @GOOM_LIBS@
HAVE_AA_FALSE = @HAVE_AA_FALSE@
HAVE_AA_TRUE = @HAVE_AA_TRUE@
HAVE_ALSA09_FALSE = @HAVE_ALSA09_FALSE@
HAVE_ALSA09_TRUE = @HAVE_ALSA09_TRUE@
HAVE_ALSA_FALSE = @HAVE_ALSA_FALSE@
HAVE_ALSA_TRUE = @HAVE_ALSA_TRUE@
HAVE_ARMV4L_FALSE = @HAVE_ARMV4L_FALSE@
HAVE_ARMV4L_TRUE = @HAVE_ARMV4L_TRUE@
HAVE_ARTS_FALSE = @HAVE_ARTS_FALSE@
HAVE_ARTS_TRUE = @HAVE_ARTS_TRUE@
HAVE_BSDI_CDROM = @HAVE_BSDI_CDROM@
HAVE_CACA_FALSE = @HAVE_CACA_FALSE@
HAVE_CACA_TRUE = @HAVE_CACA_TRUE@
HAVE_CDROM_IOCTLS_FALSE = @HAVE_CDROM_IOCTLS_FALSE@
HAVE_CDROM_IOCTLS_TRUE = @HAVE_CDROM_IOCTLS_TRUE@
HAVE_COREAUDIO_FALSE = @HAVE_COREAUDIO_FALSE@
HAVE_COREAUDIO_TRUE = @HAVE_COREAUDIO_TRUE@
HAVE_DARWIN_CDROM = @HAVE_DARWIN_CDROM@
HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@
HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@
HAVE_DIRECTX_FALSE = @HAVE_DIRECTX_FALSE@
HAVE_DIRECTX_TRUE = @HAVE_DIRECTX_TRUE@
HAVE_DVDNAV_FALSE = @HAVE_DVDNAV_FALSE@
HAVE_DVDNAV_TRUE = @HAVE_DVDNAV_TRUE@
HAVE_DXR3_FALSE = @HAVE_DXR3_FALSE@
HAVE_DXR3_TRUE = @HAVE_DXR3_TRUE@
HAVE_ESD_FALSE = @HAVE_ESD_FALSE@
HAVE_ESD_TRUE = @HAVE_ESD_TRUE@
HAVE_FB_FALSE = @HAVE_FB_FALSE@
HAVE_FB_TRUE = @HAVE_FB_TRUE@
HAVE_FFMMX_FALSE = @HAVE_FFMMX_FALSE@
HAVE_FFMMX_TRUE = @HAVE_FFMMX_TRUE@
HAVE_FFMPEG_FALSE = @HAVE_FFMPEG_FALSE@
HAVE_FFMPEG_TRUE = @HAVE_FFMPEG_TRUE@
HAVE_FIG2DEV_FALSE = @HAVE_FIG2DEV_FALSE@
HAVE_FIG2DEV_TRUE = @HAVE_FIG2DEV_TRUE@
HAVE_FLAC_FALSE = @HAVE_FLAC_FALSE@
HAVE_FLAC_TRUE = @HAVE_FLAC_TRUE@
HAVE_FREEBSD_CDROM = @HAVE_FREEBSD_CDROM@
HAVE_GNOME_VFS_FALSE = @HAVE_GNOME_VFS_FALSE@
HAVE_GNOME_VFS_TRUE = @HAVE_GNOME_VFS_TRUE@
HAVE_IRIXAL_FALSE = @HAVE_IRIXAL_FALSE@
HAVE_IRIXAL_TRUE = @HAVE_IRIXAL_TRUE@
HAVE_LIBFAME_FALSE = @HAVE_LIBFAME_FALSE@
HAVE_LIBFAME_TRUE = @HAVE_LIBFAME_TRUE@
HAVE_LIBMNG_FALSE = @HAVE_LIBMNG_FALSE@
HAVE_LIBMNG_TRUE = @HAVE_LIBMNG_TRUE@
HAVE_LIBPNG_FALSE = @HAVE_LIBPNG_FALSE@
HAVE_LIBPNG_TRUE = @HAVE_LIBPNG_TRUE@
HAVE_LIBRTE_FALSE = @HAVE_LIBRTE_FALSE@
HAVE_LIBRTE_TRUE = @HAVE_LIBRTE_TRUE@
HAVE_LIBSMBCLIENT_FALSE = @HAVE_LIBSMBCLIENT_FALSE@
HAVE_LIBSMBCLIENT_TRUE = @HAVE_LIBSMBCLIENT_TRUE@
HAVE_LINUX_CDROM = @HAVE_LINUX_CDROM@
HAVE_LINUX_FALSE = @HAVE_LINUX_FALSE@
HAVE_LINUX_TRUE = @HAVE_LINUX_TRUE@
HAVE_MACOSX_VIDEO_FALSE = @HAVE_MACOSX_VIDEO_FALSE@
HAVE_MACOSX_VIDEO_TRUE = @HAVE_MACOSX_VIDEO_TRUE@
HAVE_MLIB_FALSE = @HAVE_MLIB_FALSE@
HAVE_MLIB_TRUE = @HAVE_MLIB_TRUE@
HAVE_OPENGL_FALSE = @HAVE_OPENGL_FALSE@
HAVE_OPENGL_TRUE = @HAVE_OPENGL_TRUE@
HAVE_OSS_FALSE = @HAVE_OSS_FALSE@
HAVE_OSS_TRUE = @HAVE_OSS_TRUE@
HAVE_POLYPAUDIO_FALSE = @HAVE_POLYPAUDIO_FALSE@
HAVE_POLYPAUDIO_TRUE = @HAVE_POLYPAUDIO_TRUE@
HAVE_SDL_FALSE = @HAVE_SDL_FALSE@
HAVE_SDL_TRUE = @HAVE_SDL_TRUE@
HAVE_SGMLTOOLS_FALSE = @HAVE_SGMLTOOLS_FALSE@
HAVE_SGMLTOOLS_TRUE = @HAVE_SGMLTOOLS_TRUE@
HAVE_SOLARIS_CDROM = @HAVE_SOLARIS_CDROM@
HAVE_SPEEX_FALSE = @HAVE_SPEEX_FALSE@
HAVE_SPEEX_TRUE = @HAVE_SPEEX_TRUE@
HAVE_STK_FALSE = @HAVE_STK_FALSE@
HAVE_STK_TRUE = @HAVE_STK_TRUE@
HAVE_SUNAUDIO_FALSE = @HAVE_SUNAUDIO_FALSE@
HAVE_SUNAUDIO_TRUE = @HAVE_SUNAUDIO_TRUE@
HAVE_SUNDGA_FALSE = @HAVE_SUNDGA_FALSE@
HAVE_SUNDGA_TRUE = @HAVE_SUNDGA_TRUE@
HAVE_SUNFB_FALSE = @HAVE_SUNFB_FALSE@
HAVE_SUNFB_TRUE = @HAVE_SUNFB_TRUE@
HAVE_SYNCFB_FALSE = @HAVE_SYNCFB_FALSE@
HAVE_SYNCFB_TRUE = @HAVE_SYNCFB_TRUE@
HAVE_THEORA_FALSE = @HAVE_THEORA_FALSE@
HAVE_THEORA_TRUE = @HAVE_THEORA_TRUE@
HAVE_V4L_FALSE = @HAVE_V4L_FALSE@
HAVE_V4L_TRUE = @HAVE_V4L_TRUE@
HAVE_VCDNAV_FALSE = @HAVE_VCDNAV_FALSE@
HAVE_VCDNAV_TRUE = @HAVE_VCDNAV_TRUE@
HAVE_VIDIX_FALSE = @HAVE_VIDIX_FALSE@
HAVE_VIDIX_TRUE = @HAVE_VIDIX_TRUE@
HAVE_VLDXVMC_FALSE = @HAVE_VLDXVMC_FALSE@
HAVE_VLDXVMC_TRUE = @HAVE_VLDXVMC_TRUE@
HAVE_VORBIS_FALSE = @HAVE_VORBIS_FALSE@
HAVE_VORBIS_TRUE = @HAVE_VORBIS_TRUE@
HAVE_W32DLL_FALSE = @HAVE_W32DLL_FALSE@
HAVE_W32DLL_TRUE = @HAVE_W32DLL_TRUE@
HAVE_WIN32_CDROM = @HAVE_WIN32_CDROM@
HAVE_X11_FALSE = @HAVE_X11_FALSE@
HAVE_X11_TRUE = @HAVE_X11_TRUE@
HAVE_XVMC_FALSE = @HAVE_XVMC_FALSE@
HAVE_XVMC_TRUE = @HAVE_XVMC_TRUE@
HAVE_XV_FALSE = @HAVE_XV_FALSE@
HAVE_XV_TRUE = @HAVE_XV_TRUE@
HAVE_XXMC_FALSE = @HAVE_XXMC_FALSE@
HAVE_XXMC_TRUE = @HAVE_XXMC_TRUE@
HAVE_ZLIB_FALSE = @HAVE_ZLIB_FALSE@
HAVE_ZLIB_TRUE = @HAVE_ZLIB_TRUE@
HOST_OS_DARWIN_FALSE = @HOST_OS_DARWIN_FALSE@
HOST_OS_DARWIN_TRUE = @HOST_OS_DARWIN_TRUE@
INCLUDED_INTL_FALSE = @INCLUDED_INTL_FALSE@
INCLUDED_INTL_TRUE = @INCLUDED_INTL_TRUE@
INCLUDES = @INCLUDES@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_M4_FALSE = @INSTALL_M4_FALSE@
INSTALL_M4_TRUE = @INSTALL_M4_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLDIR = @INTLDIR@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
IRIXAL_CFLAGS = @IRIXAL_CFLAGS@
IRIXAL_LIBS = @IRIXAL_LIBS@
IRIXAL_STATIC_LIB = @IRIXAL_STATIC_LIB@
KSTAT_LIBS = @KSTAT_LIBS@
LDFLAGS = @LDFLAGS@
LIBCDIO_CFLAGS = @LIBCDIO_CFLAGS@
LIBCDIO_LIBS = @LIBCDIO_LIBS@
LIBFAME_CFLAGS = @LIBFAME_CFLAGS@
LIBFAME_CONFIG = @LIBFAME_CONFIG@
LIBFAME_LIBS = @LIBFAME_LIBS@
LIBFFMPEG_CFLAGS = @LIBFFMPEG_CFLAGS@
LIBFLAC_CFLAGS = @LIBFLAC_CFLAGS@
LIBFLAC_LIBS = @LIBFLAC_LIBS@
LIBICONV = @LIBICONV@
LIBISO9660_LIBS = @LIBISO9660_LIBS@
LIBMODPLUG_CFLAGS = @LIBMODPLUG_CFLAGS@
LIBMODPLUG_LIBS = @LIBMODPLUG_LIBS@
LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@
LIBNAME = @LIBNAME@
LIBOBJS = @LIBOBJS@
LIBPNG_CONFIG = @LIBPNG_CONFIG@
LIBS = @LIBS@
LIBSMBCLIENT_LIBS = @LIBSMBCLIENT_LIBS@
LIBSTK_CFLAGS = @LIBSTK_CFLAGS@
LIBSTK_LIBS = @LIBSTK_LIBS@
LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBVCDINFO_LIBS = @LIBVCDINFO_LIBS@
LIBVCD_CFLAGS = @LIBVCD_CFLAGS@
LIBVCD_LIBS = @LIBVCD_LIBS@
LIBVCD_SYSDEP = @LIBVCD_SYSDEP@
LINUX_CDROM_TIMEOUT = @LINUX_CDROM_TIMEOUT@
LINUX_INCLUDE = @LINUX_INCLUDE@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_REVISION = @LT_REVISION@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MKNOD = @MKNOD@
MLIB_CFLAGS = @MLIB_CFLAGS@
MLIB_LIBS = @MLIB_LIBS@
MNG_LIBS = @MNG_LIBS@
MSGFMT = @MSGFMT@
NET_LIBS = @NET_LIBS@
OBJC = @OBJC@
OBJCDEPMODE = @OBJCDEPMODE@
OBJCFLAGS = @OBJCFLAGS@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OGG_CFLAGS = @OGG_CFLAGS@
OGG_LIBS = @OGG_LIBS@
OPENGL_CFLAGS = @OPENGL_CFLAGS@
OPENGL_LIBS = @OPENGL_LIBS@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PASS1_CFLAGS = @PASS1_CFLAGS@
PASS2_CFLAGS = @PASS2_CFLAGS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PNG_CFLAGS = @PNG_CFLAGS@
PNG_LIBS = @PNG_LIBS@
POFILES = @POFILES@
POLYPAUDIO_CFLAGS = @POLYPAUDIO_CFLAGS@
POLYPAUDIO_LIBS = @POLYPAUDIO_LIBS@
POSUB = @POSUB@
PPC_ARCH_FALSE = @PPC_ARCH_FALSE@
PPC_ARCH_TRUE = @PPC_ARCH_TRUE@
RANLIB = @RANLIB@
RT_LIBS = @RT_LIBS@
SDL_CFLAGS = @SDL_CFLAGS@
SDL_CONFIG = @SDL_CONFIG@
SDL_LIBS = @SDL_LIBS@
SET_MAKE = @SET_MAKE@
SGMLTOOLS = @SGMLTOOLS@
SHELL = @SHELL@
SPEC_VERSION = @SPEC_VERSION@
SPEEX_CFLAGS = @SPEEX_CFLAGS@
SPEEX_LIBS = @SPEEX_LIBS@
STATIC = @STATIC@
STRIP = @STRIP@
SUNDGA_CFLAGS = @SUNDGA_CFLAGS@
SUNDGA_LIBS = @SUNDGA_LIBS@
TAR_NAME = @TAR_NAME@
THEORAENC_LIBS = @THEORAENC_LIBS@
THEORAFILE_LIBS = @THEORAFILE_LIBS@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
THREAD_CFLAGS = @THREAD_CFLAGS@
THREAD_CFLAGS_CONFIG = @THREAD_CFLAGS_CONFIG@
THREAD_INCLUDES = @THREAD_INCLUDES@
THREAD_LIBS = @THREAD_LIBS@
THREAD_LIBS_CONFIG = @THREAD_LIBS_CONFIG@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VORBISENC_LIBS = @VORBISENC_LIBS@
VORBISFILE_LIBS = @VORBISFILE_LIBS@
VORBIS_CFLAGS = @VORBIS_CFLAGS@
VORBIS_LIBS = @VORBIS_LIBS@
W32DLL_DEP = @W32DLL_DEP@
W32_NO_OPTIMIZE = @W32_NO_OPTIMIZE@
WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
WIN32_FALSE = @WIN32_FALSE@
WIN32_TRUE = @WIN32_TRUE@
XGETTEXT = @XGETTEXT@
XINE_ACFLAGS = @XINE_ACFLAGS@
XINE_BIN_AGE = @XINE_BIN_AGE@
XINE_BUILD_CC = @XINE_BUILD_CC@
XINE_BUILD_DATE = @XINE_BUILD_DATE@
XINE_BUILD_OS = @XINE_BUILD_OS@
XINE_CONFIG_PREFIX = @XINE_CONFIG_PREFIX@
XINE_DATADIR = @XINE_DATADIR@
XINE_FONTDIR = @XINE_FONTDIR@
XINE_FONTPATH = @XINE_FONTPATH@
XINE_IFACE_AGE = @XINE_IFACE_AGE@
XINE_LOCALEDIR = @XINE_LOCALEDIR@
XINE_LOCALEPATH = @XINE_LOCALEPATH@
XINE_MAJOR = @XINE_MAJOR@
XINE_MINOR = @XINE_MINOR@
XINE_PLUGINDIR = @XINE_PLUGINDIR@
XINE_PLUGINPATH = @XINE_PLUGINPATH@
XINE_PLUGIN_MIN_SYMS = @XINE_PLUGIN_MIN_SYMS@
XINE_SCRIPTPATH = @XINE_SCRIPTPATH@
XINE_SUB = @XINE_SUB@
XVMC_LIB = @XVMC_LIB@
XV_LIB = @XV_LIB@
XXMC_LIB = @XXMC_LIB@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZLIB_INCLUDES = @ZLIB_INCLUDES@
ZLIB_LIBS = @ZLIB_LIBS@
ZLIB_LIBS_CONFIG = @ZLIB_LIBS_CONFIG@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__fastdepOBJC_FALSE = @am__fastdepOBJC_FALSE@
am__fastdepOBJC_TRUE = @am__fastdepOBJC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
w32_path = @w32_path@
XINE_LIB = $(top_builddir)/src/xine-engine/libxine.la
SUBDIRS = man hackersguide faq
docs_DATA = README README.dvb README.dxr3 \
README.freebsd README.irix README.network_dvd README.opengl \
README.solaris README.syncfb README_xxmc.html
EXTRA_DIST = $(docs_DATA)
docsdir = $(prefix)/share/doc/xine
all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/misc/Makefile.common $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-docsDATA: $(docs_DATA)
@$(NORMAL_INSTALL)
test -z "$(docsdir)" || $(mkdir_p) "$(DESTDIR)$(docsdir)"
@list='$(docs_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(docsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docsdir)/$$f'"; \
$(docsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docsdir)/$$f"; \
done
uninstall-docsDATA:
@$(NORMAL_UNINSTALL)
@list='$(docs_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(docsdir)/$$f'"; \
rm -f "$(DESTDIR)$(docsdir)/$$f"; \
done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/../misc
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(docsdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \
distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
info: info-recursive
info-am:
install-data-am: install-docsDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-docsDATA uninstall-info-am
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
clean clean-generic clean-libtool clean-recursive ctags \
ctags-recursive distclean distclean-generic distclean-libtool \
distclean-recursive distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-hook install-docsDATA \
install-exec install-exec-am install-info install-info-am \
install-man install-strip installcheck installcheck-am \
installdirs installdirs-am maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive \
mostlyclean mostlyclean-generic mostlyclean-libtool \
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-docsDATA uninstall-hook \
uninstall-info-am
$(XINE_LIB):
@cd $(top_srcdir)/src/xine-engine && $(MAKE)
install-data-hook:
@if test $$MAKELEVEL -le 4 ; then \
if test -x "$(top_srcdir)/post-install.sh" ; then \
$(top_srcdir)/post-install.sh ; \
fi \
fi
pass1:
@$(MAKE) MULTIPASS_CFLAGS="$(PASS1_CFLAGS)"
pass2:
@$(MAKE) MULTIPASS_CFLAGS="$(PASS2_CFLAGS)"
debug:
@$(MAKE) CFLAGS="$(DEBUG_CFLAGS)"
install-debug: debug
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
@list='$(SUBDIRS)'; for subdir in $$list; do \
(cd $$subdir && $(MAKE) $@) || exit; \
done;
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
$(install_sh) -d $(DESTDIR)$(includedir)/xine
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/xine/$$p"; \
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/xine/$$p; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
list='$(include_HEADERS)'; for p in $$list; do \
rm -f $(DESTDIR)$(includedir)/xine/$$p; \
done
uninstall-hook:
@if echo '$(libdir)' | egrep ^'$(XINE_PLUGINDIR)' >/dev/null; then \
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p="`echo $$p | sed -e 's/\.la$$/\.so/g;s|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
rm -f $(DESTDIR)$(libdir)/$$p; \
done; \
fi
mostlyclean-generic:
-rm -f *~ \#* .*~ .\#*
maintainer-clean-generic:
-@echo "This command is intended for maintainers to use;"
-@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
docs clean-docs:
@cd faq && $(MAKE) $@
@cd hackersguide && $(MAKE) $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
--- NEW FILE: README.syncfb ---
===== =====
XINE video output plugin for MATROX G200/G400/G450 cards *only*
===== =====
VERSION
=> $Id: README.syncfb,v 1.1 2005/04/04 22:29:11 dsalt-guest Exp $
* WHAT IS THIS PLUGIN ABOUT and WHY SHOULD I EVEN CONSIDER TO USE IT? :)
This xine video output plugin uses the so called SyncFB driver (from
the Teletux project) which provides special hardware features of
Matrox G200 and newer cards like hardware deinterlacing, scaling and
synchronization of your video output to the vertical retrace of your
monitor - just to name a few. The plugin makes all those features
available to xine and because all this tasks are done by the graphic
card there is no need for xine to do them in software -- so you save
precious CPU time which you may gonna need for other things. :-)
Ok ok -- why should you want to have your video output synchronized to
something called the vertical retrace of your monitor?! Well... :)
In order to have an optimal DVD playback the update of the image needs
to be syncronized with the vertical refresh of the screen. Otherwise
you will sometimes see part of frame n and part of frame n+1 during
playback of a movie. Resulting in tearing artefacts on moving objects.
When using this plugin the update of the screen is done during the
vertical retrace of your monitor and those tearing artefacts are gone
forever.
Also the SyncFB kernel module and this plugin totally by-pass XFree86
for anything else but some data gathering routines needed to place the
overlay at the right spot. So on some machines you will gain some
performance too because of the different way the SyncFB kernel module
handles your video output.
Last but not least, you may ask what's so special about deinterlacing?
There are already several deinterlacing methods available in xine and
why should you care about another one? Well (again)... ;-))
All current deinterlacers in xine are done in software and therefore
will cost you some CPU power. The SyncFB video out plugin will use the
hardware deinterlacing support of your graphic card, thus saving your
CPU power because everything is done by your GPU...
* WILL IT WORK WITH MY G200/G400/G450/... CARD?
So far the plugin and the kernel module itself are only being tested
on G400 cards by its developers thus we cannot tell about newer
or older generation chips.
Nevertheless we have received positive feedback that the SyncFB kernel
module and this plugin work fine with G450 cards too.
If you have got things working on older/newer chips, please let us
know about your success and we will place a note here... :-)
* AND HOW DOES IT WORK?
The SyncFB driver is a kernel module you will have to load that makes
a special device (e.g. /dev/syncfb) available which is opened by the
plugin and controlled with certain ioctl calls. Easy, isn't it? ;-)
That module is based on the mga_vid driver from Aaron Holzmann and was
advanced (and reworked) by Matthias Oelmann.
* OK I HEARD ENOUGH - HOW DO I INSTALL and USE IT? :)
Currently the Teletux project which maintains the kernel module seems
orphaned and therefore there hasn't been any progress nor release in a
fair amount of time. :( We will try to resolve this situation so that
the development continues again. As soon as there are any news on this
matter, this README will be updated accordingly. For the time being
you can still use the current Teletux SyncFB kernel module which works
just fine, so there is no need to worry. :-)
Back to the original subject. In order to install and use the SyncFB
kernel module, you *will* need a fresh CVS checkout of the sources
because the last official release is rather outdated.
This sounds more complicated than it actually is. You will only have
to execute the following two commands to get the sources in a sub-dir
called teletux. When you are asked for password, just press return.
cvs -d:pserver:anonymous@cvs.teletux.sf.net:/cvsroot/teletux login
cvs -d:pserver:anonymous@cvs.teletux.sf.net:/cvsroot/teletux co -P teletux
Now enter the directory teletux/syncfb, that's where the actual kernel
modul sources are located. Before you can compile the module, you will
have to change two lines in the Makefile itself to make it work.
In the second line, there is a phrase like "-I/usr/include" which you
have to change to "-I/usr/src/linux/include". In line seven, you need
to remove syncfbtv and syncfb_test from the OBJ list.
Now execute a "make" and the module will be compiled. Place the
resulting syncfb.o in your modules dir which is usually...
/lib/modules/KERNEL_VERSION/
... and issue a "depmod -a" after it. That's it - the kernel module is
installed. To load the syncfb module, execute "modprobe syncfb" every
time you (re)start your computer. This will automatically create the
required /dev/syncfb device if you have devfs support, otherwise you
need to issue a "mknod /dev/syncfb c 178 0" once to create the
device yourself permanently.
Once the module is loaded, you can start xine with the "-V SyncFB"
option to use this plugin. xine automatically remembers the video out
plugin you last used, so you only have to use this option once too. :)
But don't forget, the module *always* has to be already loaded before
you start xine, otherwise xine will fallback to Xv/XShm or some other
available video out plugin.
* THE VIDEO IS JERKING - WHAT'S THE MATTER?!
Playing back video material that is mastered for e.g. NTSC can cause
this jerking if your monitor is not running at a refresh rate that is
a multiple of 30 (PAL: 25).
You can try to fix that by switching your monitor to the appropriate
refresh rates (e.g. 50/75/100 Hz for PAL, 60/90/120 Hz for NTSC). You
will need to add so called modelines to your XFree86 config to make
those modes available, if you don't already have them.
Here is is a short listing of some sample modelines. Please add only
those two lines (for NTSC and PAL) which exactly fit the screensize
you are running your X Server with. You need to add those lines to the
monitor section of your XF86Config file as well as include their names
in the screen section (subsection display of the color depth your are
using).
USE THE FOLLOWING MODELINES AT YOUR OWN RISK. THEY COULD DAMAGE YOUR
MONITOR PERMANTELY - PLEASE TAKE CAUTION AND DON'T BLAME US. YOU HAVE
BEEN WARNED.
So much for the standard disclaimer. :)
Note: If you want to be on the safe side, generate your very own
modelines with an application like kvideogen for example.
Also the modelines may need some fine tuning for your setup. You
can use xvidtune (comes with XFree86) to do that.
# 1024x768
Modeline "1024x768pal" 64.94 1024 1040 1216 1328 768 768 775 802
Modeline "1024x768ntsc" 54.32 1024 1040 1216 1328 768 768 774 802
# 1152x864
Modeline "1152x864pal" 68.82 1152 1168 1384 1496 864 864 871 902
Modeline "1152x864ntsc" 80.93 1152 1168 1384 1496 864 864 872 902
# 1280x1024
none yet - might be added in the future
So before you run xine just turn to the appropriate refresh rate and
the jerking *should* be gone. (you may also want to have a look at the
XF86VidMode support included in xine which makes on-the-fly resolution
switching possible when fullscreen is toggled)
* WHAT SCREENSIZE SHOULD I PREFER?
Well. It is important that the screensize you choose for DVD playback
is exactly the same screensize you're starting up your X Server with
if you are not using the XF86VidMode extension which will properly do
the switching for you and take care that the plugin is updated
accordingly. So you shouldn't switch down to 1024x768 yourself if you
are running 1280x1024 because that gives you a virtual screensize
of 1280x1024 in a resolution of 1024x768 - and the plugin can't handle
that - and probably never will... ok... never say never. ;)
You may want to have a look at the XF86VidMode support in xine which
will enable on-the-fly resolution switching when activating fullscreen.
Now back to the question. A screensize of 800x600 should be it for
non-anamorphic DVDs because their resolution is 720x576 for pal DVDs
and 720x480 for ntsc ones. If you've an anamorphic DVD, you should use
a higher resolution - 1024x768 will be best because the image only has
to be horizontally scaled to get back to the original geometry of 16:9
which is easier to be done.
* WHAT ABOUT DEINTERLACING?!
Pressing 'i' during playback will toggle hardware deinterlacing. A
decrease in picture quality is a known side effect, yet you won't see
any artefacts caused by interlacing anymore. :-)
One more note, hardware deinterlacing uses BOB as deinterlacing method
and is totally independent from the software deinterlacing in xine. So
specifing a different deinterlacing method in your .xinerc won't have
any effect on this feature.
Nevertheless we are thinking about making software deinterlacing also
available as an option. It's on the TODO list... :)
* HEY! THE OVERLAY TURNS OFF WHEN THE WINDOW IS PARTLY OFF THE DESKTOP!?
That's done on purpose. It prevents possible yet harmless screen
corruption. And by the way - why would you want to see a movie just
partly?! ;-)
* MY DESKTOP BACKGROUND IMAGE GETS CORRUPTED WHEN USING THIS PLUGIN!
Even though it doesn't look nice, it's nevertheless harmless. So no
need to worry about it. XFree86 is using your free video memory as
cache for certain things. Now when you use this plugin that part of
your video memory could also be used by the syncfb module. So your
image data cached there will be corrupted. Unfortunately there is no
way to avoid it. Yet, like stated earlier, it is truely harmless and
just a cosmetical side effect.
* THE XINE PANEL DOES NOT APPEAR WHEN I WATCH A MOVIE IN FULLSCREEN?!
Actually it does appear - you just don't see it. :) This is a side
effect of how SyncFB works. The X server can't display anything where
the actual overlay from SyncFB is being displayed because this area in
your video memory is constantly over written - so are the changes done
by your X Server (like a window graphic that is placed there).
This is just cosmetical and harmless, so no need to worry. If you want
to do something with the xine panel when the video overlay is taking
all your screen, just switch back to window mode and do what you have
to do and after that, back to fullscreen it goes. :-)
* KNOWN BUGs
+ the default_repeat config option is currently hardcoded to 0 because
any higher value than 1 will trigger a bug with the SyncFB kernel module
that results in a distorted picture (depending on video resolution)
[this bug is hard to trace, so don't hold your breath for now]
+ SyncFB overlay won't turn off when video window is minimized or
somehow else hidden.
[currently there is no way for the SyncFB plugin to know about the
state of the video window except if the original xine-ui hide function
is used to hide the video window... this will be fixed soon]
+ zooming feature is currently deactivated because it exposes a bug
with the SyncFB kernel module
[for now, don't expect this to be fixed soon - sorry]
+ the syncfb kernel module needs updating pretty badly
* WHAT IS ON THE TODO LIST?
+ fix above listed bugs in the SyncFB kernel module
+ make software deinterlacing available as an option
+ RGB support
(unlikely at the moment because there is no need for it)
+ check if the video source is not too big in terms of dimensions for
the video memory left (video memory - X reserved video memory)
+ bug fixes
+ more sanity checks
+ new features
+ optimizations
* CONTACTS and FEEDBACK
Your first starting point should be this README followed by the FAQ. :-)
If you don't find your answers there or if you found a bug, please leave
a message on the xine user mailinglist (see the general README).
You can also reach the maintainers directly by mail (or you may consider
sending a message in bottle so we have some more time to find a good
excuse for the bug you may have found *grin*):
Matthias Dahl <matthew2k@web.de>
Joachim Koening <joachim.koenig@gmx.net>
--- NEW FILE: README_xxmc.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1">
<title>Xine's xxmc plugin</title>
</head>
<body>
<h1 style="text-align: center;"><a name="mozTocId168296"
class="mozTocH1"></a>Compiling and installing Xine's xxmc plugin.</h1>
<ol id="mozToc">
<!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6--><li><a href="#mozTocId168296">Compiling
and installing Xine's xxmc plugin.</a>
<ol>
<li><a href="#mozTocId69222">Background</a></li>
<li><a href="#mozTocId160476">Needed drivers and libs</a></li>
<li><a href="#mozTocId849061">Configuring and installing</a></li>
<li><a href="#mozTocId197304">Running the plugin</a>
<ol>
<li><a href="#mozTocId437541">General</a></li>
<li><a href="#mozTocId374228">Caveats</a></li>
<li><a href="#mozTocId6059">Optimizing</a></li>
<li><a href="#mozTocId769361">Deinterlacing</a></li>
</ol>
</li>
<li><a href="#mozTocId615875">FAQ</a></li>
</ol>
</li>
</ol>
<h2><a name="mozTocId69222" class="mozTocH2"></a>Background</h2>
The xine xxmc plugin supports playback with <br>
<ul>
<li>Standard XvMC, as supported by many Nvidia chips.</li>
<li>VLD XvMC, as supported by the VIA CLE266 chip, up to 1024x1024.<br>
</li>
<li>Standard Xv. The xxmc plugin will fall back to Xv if any of the
above fails.</li>
</ul>
There is no API or hardware feature called "xxmc". It is only the name
of Xine's plugin, since the name "xvmc" was already taken. The name
"xxmc" stands for eXtended XvMC, and it is extended in the sense that
it also includes support for VLD XvMC, which is a nonstandard extension
to XvMC, proposed by the Unichrome project.<br>
<h2><a name="mozTocId160476" class="mozTocH2"></a>Needed drivers and
libs</h2>
<ul>
<li>You need an XvMC driver for the chip you want to run accelerated
on. (This does not apply if you only want to run Xv on the accelerated
driver). Drivers for Nvidia chips are on <a
href="http://www.nvidia.com">Nvidia's website</a>. Drivers for the VIA
CLE266 chip are present in Xorg CVS or downloadable as patches at <a
href="http://unichrome.sourceforge.net">The Unichrome project's site</a></li>
<li>You need the XvMC wrapper, present in Xorg CVS, or downloadable
from <a href="http://unichrome.sourceforge.net">The Unichrome site</a></li>
</ul>
<h2><a name="mozTocId849061" class="mozTocH2"></a>Configuring and
installing</h2>
Make sure you have the XvMC wrapper installed. The wrapper will try to
figure out at run-time what xvmc-hardware specific driver to load. If
it fails it will open the file <span style="font-family: monospace;">/etc/X11/XvMCConfig</span>
or <span style="font-family: monospace;">/usr/X11R6/lib/X11/XvMCConfig</span>
and try to load the hardware-specific library mentioned in that file.
If you downloaded the XvMC wrapper from the unichrome site, the default
XvMCConfig will make the XvMC wrapper try to load the Nvidia XvMC
driver. If you want to use it with the VIA CLE266 chip, you will have
to edit the XvMCConfig file to contain the single word<br>
<br>
<span style="font-family: monospace;">libviaXvMC.so.1<br>
<br>
</span>Now configure and compile xine-lib as usual. Make sure that the
xxmc plugin got enabled by <span style="font-family: monospace;">configure</span>
or <span style="font-family: monospace;">autogen.sh.<br>
</span>
<h2><a name="mozTocId197304" class="mozTocH2"></a>Running the plugin</h2>
<h3><a name="mozTocId437541" class="mozTocH3"></a>General<br>
</h3>
Start xine with xine -V xxmc, or kaffeine with kaffeine -x xxmc. If the
XvMC wrapper fails to load a hardware specific library or fails to read
the XvMCConfig file it will specifically tell you so. If you have the
wrong hardware-specific library specified in the XvMCConfig file, the
xxmc plugin will think that you are running against a remote X-server
and fall back to software decoding. <span style="font-weight: bold;">If
the driver uses hardware acceleration it will specifically tell you so.
</span>At the moment, the XvMC implementation only accelerates mpeg1
and mpeg2 files, <span style="font-weight: bold;">if the hardware
advertises support for these file types. <br>
<br>
</span>
<h3><a name="mozTocId374228" class="mozTocH3"></a>Caveats<br>
</h3>
Some Nvidia chips seem to use very much CPU when subtitles are
displayed, and black areas of the screen are full of small white dots.
These chips only use motion compensation accelaration, and are bad at
it as well. You're better off running the Xv plugin with these chips.
The white dots are due to hardware- or driver bugs. Nvidia chips that
supports IDCT acceleration also seem to support motion compensation
acceleration correctly.<br>
<br>
OSD might be rendered in the wrong color with Nvidia chips. To work
around this use the xine config option<br>
<br>
<span style="font-family: monospace;">video.device.xvmc_nvidia_color_fix:1<br>
<br>
</span>This is due to a bug in the Nvidia XvMC drivers, and this bug is
probably also present in the i810 drivers.<br>
<br>
There is also a bug in xine's XvMC support for interlaced streams with
IDCT and motion compensation accelerations. The xxmc plugin will fall
back to plain Xv for these streams. Hopefully this will be fixed in the
not too distant future.<br>
<br>
<h3><a name="mozTocId6059" class="mozTocH3"></a>Optimizing</h3>
If you are running VLD XvMC on the CLE266 there are some options that
may affect performance:<br>
<br>
<span style="font-family: monospace;">video.device.unichrome_cpu_save:1</span><br>
<br>
Will save a lot of CPU-power if you are running a 2.6 series kernel. It
does this by sleeping while the hardware decoder works. Otherwise it
will spend a lot of CPU waiting for decoder completion.<br>
<br>
<span style="font-family: monospace;">video.device.xvmc_more_frames:1</span><br>
<br>
Will allocate 15 XvMC surfaces instead of 8. This is very useful if you
are using vdr-xine and want to avoid buffer-underrun stutters in xine.
Don't use this with Nvidia cards since they only allow a maximum of 8
frames. If your driver does not allow 15 frames and you turn this
option on, it will abruptly fall back to software rendering, causing
some rendering glitches while doing so.<br>
<br>
<span style="font-family: monospace;">gui.osd_use_unscaled:0</span><br>
<br>
Don't use unscaled overlays for OSD. Sometimes the X server will have
severe problems painting the OSD surface when unscaled OSD:s are used.
This will be visible as severe stutters when ANY overlay (OSD or
subtitle) are displayed and removed. Use this option for scaled OSD
which is considerably faster with CLE266, since blending is done in
hardware. This option is usable also with Nvidia cards, but I've never
seen problems with unscaled OSD with those. <br>
<br>
<h3><a name="mozTocId769361" class="mozTocH3"></a>Deinterlacing</h3>
XvMC can only do very simple one-field deinterlacing in hardware. It's
also impossible to use software deinterlacing, since XvMC does not
allow xine to read the content of a decoded frame. Therefore, when you
run a hardware accelerated stream, Interlacing will be toggled by
pressing "i". If the xxmc plugin has fallen back to Xv and software
decoding, post plugins will take care of deinterlacing. <br>
<br>
BOB deinterlacing for XvMC accelerated streams will be implemented in
the near future. That means alternating between the top- and bottom
fields of the frame at twice the original frame-rate.<br>
<br>
<h2><a name="mozTocId615875" class="mozTocH2"></a>FAQ</h2>
Q: The xxmc plugin is not enabled when I configure xine-lib<br>
A: Check that you have installed the XvMC wrapper, and that you've run
"ldconfig -v" as root after that.<br>
<br>
Q: The XvMC wrapper complains when I start xine.<br>
A: Check that you have created an XvMCConfig file specifying the
relevant driver name.<br>
<br>
Q: I'm running on a Nvidia card and my OSD colors are wrong.<br>
A: See "caveats" above.<br>
<br>
Q: I'm running VDR-xine and the playback stutters.<br>
A: See "optimizing" above.<br>
<br>
Q: I'm running on a CLE266 and I get severe stutter when subtitles are
displayed.<br>
A: See "optimizing" above.<br>
<br>
Q: Can I use the xxmc plugin without the XvMC wrapper?<br>
A: Yes, you can link directly with a hardware specific library, but
this is not recommended. Run "./configure --help" to check which
options to use.<br>
<br>
</body>
</html>