VDR

Dec 16, 2013
4 min read
Dec 3, 2024 08:41 EET

General

I have here an AMD64 but with the 64-bit version of Gentoo I had several problem with some VDR plugins so I went back to the 32-bit version. To install Gentoo download the livecd and use the GUI installer, see Gentoo documentation how to do it (I used 2006.1).

After the installation is finished boot your new gentoo.

Edit make.conf and add:

LIRC_DEVICES="serial"

Now we must install some packages first which VDR or the plugins I use needs to compile correctly.

emerge --sync
emerge portage
etc-update
emerge gentoolkit eix gentoo-sources mc app-admin/sudo

Now compile the kernel with your DVB drivers and everything else, reboot your new kernel.

Now we install software needed by VDR:

emerge lirc imagemagick sys-libs/libcap media-libs/libmad media-libs/libid3tag media-libs/libvorbis media-libs/libsndfile \
       media-libs/libdvdnav media-libs/a52dec dev-libs/boost media-libs/gd cvs subversion

Driver for new Cards

http://mercurial.intuxication.org/hg/s2-liplianin

Compile new Driver

To get the driver:

cd /usr/local/src/
mkdir hvr4000
mkdir -p hvr4000/liblianindvb-test
cd hvr4000/liblianindvb-test
hg init
hg pull http://arvdr-dev.free-x.de:8080/testdvb/
hg update

Compile the driver:

make
make install

To compile VDR:

cd /usr/local/src/hvr4000/liblianindvb-test/linux/include/linux
ln -s /usr/src/linux/include/linux/compiler.h .

vdpau Support

Make sure you have a current gcc on the system, I used gcc-4.3.4.

gcc-config -l
gcc-config 2
source /etc/profile

I use the following versions:

nvidia 190.53 (install with sh /usr/portage/distfiles/NVIDIA-Linux-x86-190.53-pkg0.run)
kernel 2.6.32-gentoo-r1
vdr 1.7.10

Required libs:

emerge -av media-video/vcdimager
emerge -av media-sound/musepack-tools

Make sure you do not have any xine or xine-lib installed, search with the command and decide to delete necessary files:

cd /usr
find . -name "*xine*"

Download the following files: xine-lib from hg repository http://hg.debian.org/hg/xine-lib/xine-lib-1.2-vdpau .

cd /usr/local/src
hg pull http://hg.debian.org/hg/xine-lib/xine-lib-1.2-vdpau

Compile xine-lib:

cd /usr/local/src/xine-lib-1.2-vdpau
./autogen.sh --prefix=/usr --disable-xinerama
make
make install

Compile Plugin for VDR:

cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput

Copy the checkout to you vdr/PLUGINS/src folder and compile it with make plugins.

Copy to your /etc/vdr/setup.conf:

xineliboutput.Audio.Compression = 100
xineliboutput.Audio.Delay = -120
xineliboutput.Audio.Headphone = 0
xineliboutput.Audio.SoftwareVolumeControl = 0
xineliboutput.Audio.Speakers = Pass Through
xineliboutput.Audio.Surround = 0
xineliboutput.Audio.Upmix = 0
xineliboutput.Audio.Visualization = goom
xineliboutput.Audio.Visualization.GoomOpts = width=400,height=300,fps=25
xineliboutput.Frontend  ======
xineliboutput.Media.BrowseFilesDir = /video0/storage/videos/redeacted
xineliboutput.Media.BrowseImagesDir = /video0
xineliboutput.Media.BrowseMusicDir = /video0/storage/mp3s-server/redeacted
xineliboutput.Media.CacheImplicitPlaylists = 1
xineliboutput.Media.DVD.ArrowKeysControlPlayback = 1
xineliboutput.Media.EnableID3Scanner = 1
xineliboutput.Media.MenuItems = -1
xineliboutput.OSD.AlphaCorrection = 0
xineliboutput.OSD.AlphaCorrectionAbs = 0
xineliboutput.OSD.Blending = 1
xineliboutput.OSD.BlendingLowRes = 0
xineliboutput.OSD.DvbSubtitles = 0
xineliboutput.OSD.ExtSubSize = -1
xineliboutput.OSD.Height = 576
xineliboutput.OSD.HideMainMenu = 0
xineliboutput.OSD.LayersVisible = 4
xineliboutput.OSD.Scaling = 2
xineliboutput.OSD.Size = automatic
xineliboutput.OSD.Width = 720
xineliboutput.Playlist.Album = 1
xineliboutput.Playlist.Artist = 1
xineliboutput.Playlist.Tracknumber = 0
xineliboutput.Post.denoise3d.chroma = 30
xineliboutput.Post.denoise3d.Enable = 0
xineliboutput.Post.denoise3d.luma = 40
xineliboutput.Post.denoise3d.time = 60
xineliboutput.Post.pp.Enable = 0
xineliboutput.Post.pp.Mode = de
xineliboutput.Post.pp.Quality = 3
xineliboutput.Post.unsharp.chroma_amount = 0
xineliboutput.Post.unsharp.chroma_matrix_height = 3
xineliboutput.Post.unsharp.chroma_matrix_width = 3
xineliboutput.Post.unsharp.Enable = 0
xineliboutput.Post.unsharp.luma_amount = 0
xineliboutput.Post.unsharp.luma_matrix_height = 5
xineliboutput.Post.unsharp.luma_matrix_width = 5
xineliboutput.Remote.AllowHttp = 1
xineliboutput.Remote.AllowHttpCtrl = 0
xineliboutput.Remote.AllowRtsp = 1
xineliboutput.Remote.AllowRtspCtrl = 0
xineliboutput.Remote.Iface  ======
xineliboutput.Remote.Keyboard = 1
xineliboutput.Remote.ListenPort = 37890
xineliboutput.Remote.LocalIP  ======
xineliboutput.Remote.MaxClients = 10
xineliboutput.Remote.Rtp.Address = 224.0.1.9
xineliboutput.Remote.Rtp.AlwaysOn = 0
xineliboutput.Remote.Rtp.Port = 37890
xineliboutput.Remote.Rtp.SapAnnouncements = 1
xineliboutput.Remote.Rtp.TTL = 1
xineliboutput.Remote.UseBroadcast = 1
xineliboutput.Remote.UseHttp = 1
xineliboutput.Remote.UsePipe = 1
xineliboutput.Remote.UseRtp = 0
xineliboutput.Remote.UseTcp = 1
xineliboutput.Remote.UseUdp = 1
xineliboutput.RemoteMode = 1
xineliboutput.Video.AspectRatio = 0
xineliboutput.Video.AutoCrop = 0
xineliboutput.Video.AutoCrop.AutoDetect = 1
xineliboutput.Video.AutoCrop.DetectSubs = 1
xineliboutput.Video.AutoCrop.FixedSize = 1
xineliboutput.Video.AutoCrop.SoftStart = 1
xineliboutput.Video.Brightness = -1
xineliboutput.Video.Contrast = -1
xineliboutput.Video.Decoder.H264 = automatic
xineliboutput.Video.Decoder.MPEG2 = automatic
xineliboutput.Video.Deinterlace = tvtime
xineliboutput.Video.DeinterlaceOptions = method=Linear,cheap_mode=1,pulldown=none,framerate_mode=full,judder_correction=1,use_progressive_frame_flag=1,chroma_filter=0,enabled=1
xineliboutput.Video.HUE = -1
xineliboutput.Video.IBPTrickSpeed = 1
xineliboutput.Video.MaxTrickSpeed = 12
xineliboutput.Video.NoiseReduction = -1
xineliboutput.Video.Overscan = 0
xineliboutput.Video.Saturation = -1
xineliboutput.Video.Sharpness = -1
xineliboutput.Video.SwScale = 0
xineliboutput.Video.SwScale.Aspect = 0
xineliboutput.Video.SwScale.Downscale = 0
xineliboutput.Video.SwScale.Height = 576
xineliboutput.Video.SwScale.Resize = 0
xineliboutput.Video.SwScale.Width = 720

Edit the file ~/.xine/config_xineliboutput

.version:2
audio.device.alsa_default_device:hw:0,3
audio.device.alsa_front_device:hw:0,3
audio.device.alsa_passthrough_device:hdmi:CARD=NVidia,DEV=0
audio.output.speaker_arrangement:Pass Through
audio.synchronization.av_sync_method:resample
video.processing.ffmpeg_thread_count:4
effects.goom.fps:25
effects.goom.height:576
effects.goom.width:720
engine.buffers.video_num_buffers:250
engine.buffers.video_num_frames:22
engine.performance.memcpy_method:mmxext

To test everything, start the X server with:

xinit

Start VDR with

runvdr

Start the display with

/usr/local/bin/vdr-sxfe --post tvtime:use_vo_driver,cheap_mode=0,pulldown=0,use_progressive_frame_flag=1 --fullscreen --reconnect xvdr+tcp://127.0.0.1:37890 --video=vdpau

You should see know a picture on your display.

To start everything automatically copy the vdr-sxfe line into a file /usr/local/bin/start-vdr-sxfe and make it executable.
Change /etc/inittab and add the line:

sxfe:3:respawn:/usr/local/bin/start-vdr-sxfe

VDPAU Support Gentoo Way

Add an overlay:

layman -a vdr-xine
layman -S
eix-sync

Edit /etc/portage/package.unmask

media-libs/xine-lib

Edit /etc/portage/package.keywords

media-libs/xine-lib

Install it with:

emerge -av xine-lib

make sure here that really version 9999 is installed (the mecurial version) and check there in the configure output while compiling that vdpau is shown.

PS3 Remote Control and VDR

Install required software:

emerge -av dev-python/dbus-python dev-python/pygobject net-wireless/bluez

Add bluetooth to start-up:

rc-update add bluetooth boot
/etc/init.d/bluetooth start

Related Posts