You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Johns 6dfa88aecf Preparations for new ffmpeg VDPAU API. 6 years ago
po Preparations for new ffmpeg VDPAU API. 6 years ago
.gitattributes Standard distribution files. 10 years ago
.gitignore Resume plugin, if dummy player looses control. 9 years ago Standard distribution files. 10 years ago
AGPL-3.0.txt Standard distribution files. 10 years ago
ChangeLog Preparations for new ffmpeg VDPAU API. 6 years ago
Makefile Added VDPAU multi decoder loop changes to VA-API code. 6 years ago
README.txt Enable toggle AC3 downmix. 7 years ago
Todo Fix spelling in arguments help. 8 years ago
audio.c Try smaller audio puffer, if default size fails. 7 years ago
audio.h Fix last commit. 7 years ago
codec.c Preparations for new ffmpeg VDPAU API. 6 years ago
codec.h Preparations for new ffmpeg VDPAU API. 6 years ago
iatomic.h Use GCC built-in functions for atomic operations. 7 years ago
misc.h More debug for flush buffers. Bigger audio buffer. 10 years ago
ringbuffer.c Use GCC built-in functions for atomic operations. 7 years ago
ringbuffer.h Make audio ring buffer size a multiple of 3,5,7,8. 10 years ago
softhddev.c Preparations for new ffmpeg VDPAU API. 6 years ago
softhddev.h Fix bug: wrong and crash, if vdr draws pixmaps outside OSD. 6 years ago
softhddevice.cpp Handle change of audio ac3 downmix direct. 6 years ago
softhddevice.h Add support for umlauts in input fields. 8 years ago
softhddevice_service.h Adds VDR SeduAtmo Plugin support. 9 years ago
vdr-softhddevice-9999.ebuild Fix compile with newer libav. 8 years ago
video.c Fix compile error with opengl and without va-api. 6 years ago
video.h Configurable enable DPMS, while black screen is displayed. 6 years ago


@file README.txt		@brief A software HD output device for VDR

Copyright (c) 2011 - 2013 by Johns. All Rights Reserved.


License: AGPLv3

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Affero General Public License for more details.


A software and GPU emulated HD output device plugin for VDR.

o Video decoder CPU / VDPAU
o Video output VDPAU
o Audio FFMpeg / Alsa / Analog
o Audio FFMpeg / Alsa / Digital
o Audio FFMpeg / OSS / Analog
o HDMI/SPDIF pass-through
o Software volume, compression, normalize and channel resample
o VDR ScaleVideo API
o Software deinterlacer Bob (VA-API only)
o Autocrop
o Grab image (VDPAU only)
o Suspend / Dettach
o Letterbox, Stretch and Center cut-out video display modes
o atmo light support with plugin
o PIP (Picture-in-Picture) (VDPAU only)

o planned: Remove VA-API decoder and output support
o planned: Video decoder OpenMax
o planned: Video output Opengl / Xv
o planned: Improved software deinterlacer (yadif or/and ffmpeg filters)
o XvBa support is no longer planned (use future Radeon UVD VDPAU)

To compile you must have the 'requires' installed.

Good luck


Just type make and use.

1a) git

git clone git://
cd vdr-plugin-softhddevice
make install

2a) tarball

Download latest version from:

tar vxf vdr-softhddevice-*.tar.bz2
cd softhddevice-*
make install

You can edit Makefile to enable/disable VDPAU / VA-API / Alsa / OSS
support. The default is to autodetect as much as possible.

Setup: environment
Following is supported:

x11 display name
if set don't use the hardware decoders
if set don't use the hardware decoder for mpeg1/2

only if alsa is configured
alsa PCM device name
alsa pass-though (AC-3,E-AC-3,DTS,...) device name
alsa control device name
alsa control channel name

only if oss is configured
oss dsp device name
oss pass-though (AC-3,E-AC-3,DTS,...) device name
oss mixer device name
oss mixer channel name

Setup: /etc/vdr/setup.conf
Following is supported:

softhddevice.MakePrimary = 0
0 = no change, 1 make softhddevice primary at start

softhddevice.HideMainMenuEntry = 0
0 = show softhddevice main menu entry, 1 = hide entry

softhddevice.Osd.Width = 0
0 = auto (=display, unscaled) n = fixed osd size scaled for display
softhddevice.Osd.Height = 0
0 = auto (=display, unscaled) n = fixed osd size scaled for display

<res> of the next parameters is 576i, 720p, 1080i_fake or 1080i.
1080i_fake is 1280x1080 or 1440x1080
1080i is "real" 1920x1080

softhddevice.<res>.Scaling = 0
0 = normal, 1 = fast, 2 = HQ, 3 = anamorphic

softhddevice.<res>.Deinterlace = 0
0 = bob, 1 = weave, 2 = temporal, 3 = temporal_spatial, 4 = software
(only 0, 1, 4 supported with VA-API)

softhddevice.<res>.SkipChromaDeinterlace = 0
0 = disabled, 1 = enabled (for slower cards, poor qualität)

softhddevice.<res>.InverseTelecine = 0
0 = disabled, 1 = enabled

softhddevice.<res>.Denoise = 0
0 .. 1000 noise reduction level (0 off, 1000 max)

softhddevice.<res>.Sharpness = 0
-1000 .. 1000 noise reduction level (0 off, -1000 max blur,
1000 max sharp)

softhddevice.<res>.CutTopBottom = 0
Cut 'n' pixels at at top and bottom of the video picture.

softhddevice.<res>.CutLeftRight = 0
Cut 'n' pixels at at left and right of the video picture.

softhddevice.AudioDelay = 0
+n or -n ms
delay audio or delay video

softhddevice.AudioPassthrough = 0
0 = none, 1 = PCM, 2 = MPA, 4 = AC-3, 8 = EAC-3, -X disable

for PCM/AC-3/EAC-3 the pass-through device is used and the audio
stream is passed undecoded to the output device.
z.b. 12 = AC-3+EAC-3, 13 = PCM+AC-3+EAC-3
note: MPA/DTS/TrueHD/... aren't supported yet
negative values disable passthrough

softhddevice.AudioDownmix = 0
0 = none, 1 = downmix
Use ffmpeg/libav downmix of AC-3/EAC-3 audio to stereo.

softhddevice.AudioSoftvol = 0
0 = off, use hardware volume control
1 = on, use software volume control

softhddevice.AudioNormalize = 0
0 = off, 1 = enable audio normalize

softhddevice.AudioMaxNormalize = 0
maximal volume factor/1000 of the normalize filter

softhddevice.AudioCompression = 0
0 = off, 1 = enable audio compression

softhddevice.AudioMaxCompression = 0
maximal volume factor/1000 of the compression filter

softhddevice.AudioStereoDescent = 0
reduce volume level (/1000) for stereo sources

softhddevice.AudioBufferTime = 0
0 = default (336 ms)
1 - 1000 = size of the buffer in ms

softhddevice.AutoCrop.Interval = 0
0 disables auto-crop
n each 'n' frames auto-crop is checked.

softhddevice.AutoCrop.Delay = 0
if auto-crop is over 'n' intervals the same, the cropping is

softhddevice.AutoCrop.Tolerance = 0
if detected crop area is too small, cut max 'n' pixels at top and

softhddevice.Background = 0
32bit RGBA background color
(Red * 16777216 + Green * 65536 + Blue * 256 + Alpha)
grey 127 * 16777216 + 127 * 65536 + 127 * 256 => 2139062016
in the setup menu this is entered as (24bit RGB and 8bit Alpha)
(Red * 65536 + Green * 256 + Blue)

softhddevice.StudioLevels = 0
0 use PC levels (0-255) with vdpau.
1 use studio levels (16-235) with vdpau.

softhddevice.Suspend.Close = 0
1 suspend closes x11 window, connection and audio device.
(use svdrpsend plug softhddevice RESU to resume, if you have no lirc)

softhddevice.Suspend.X11 = 0
1 suspend stops X11 server (not working yet)

softhddevice.60HzMode = 0
0 disable 60Hz display mode
1 enable 60Hz display mode

softhddevice.SoftStartSync = 0
0 disable soft start of audio/video sync
1 enable soft start of audio/video sync

softhddevice.BlackPicture = 0
0 disable black picture during channel switch
1 enable black picture during channel switch

softhddevice.ClearOnSwitch = 0
0 keep video und audio buffers during channel switch
1 clear video and audio buffers on channel switch

softhddevice.Video4to3DisplayFormat = 1
0 pan and scan
1 letter box
2 center cut-out

softhddevice.VideoOtherDisplayFormat = 1
0 pan and scan
1 pillar box
2 center cut-out

softhddevice.pip.X = 79
softhddevice.pip.Y = 78
softhddevice.pip.Width = 18
softhddevice.pip.Height = 18
PIP pip window position and size in percent.

softhddevice.pip.VideoX = 0
softhddevice.pip.VideoY = 0
softhddevice.pip.VideoWidth = 0
softhddevice.pip.VideoHeight = 0
PIP video window position and size in percent.

softhddevice.pip.Alt.X = 0
softhddevice.pip.Alt.Y = 50
softhddevice.pip.Alt.Width = 0
softhddevice.pip.Alt.Height = 50
PIP alternative pip window position and size in percent.

softhddevice.pip.Alt.VideoX = 0
softhddevice.pip.Alt.VideoY = 0
softhddevice.pip.Alt.VideoWidth = 0
softhddevice.pip.Alt.VideoHeight = 50
PIP alternative video window position and size in percent.

Setup: /etc/vdr/remote.conf

Add "XKeySym." definitions to /etc/vdr/remote.conf to control
the vdr and plugin with the connected input device.

XKeySym.Up Up
XKeySym.Down Down

Additional to the x11 input sends the window close button "Close".

XKeySym.Power Close


Use vdr -h to see the command line arguments supported by the plugin.

-a audio_device

Selects audio output module and device.
"" to disable audio output
/... to use oss audio module (if compiled with oss
other to use alsa audio module (if compiled with alsa


Use ' plug softhddevice HELP'
or 'svdrpsend plug softhddevice HELP' to see the SVDRP commands help
and which are supported by the plugin.


See keymacros.conf how to setup the macros.

This are the supported key sequences:

@softhddevice Blue 1 0 disable pass-through
@softhddevice Blue 1 1 enable pass-through
@softhddevice Blue 1 2 toggle pass-through
@softhddevice Blue 1 3 decrease audio delay by 10ms
@softhddevice Blue 1 4 increase audio delay by 10ms
@softhddevice Blue 1 5 toggle ac3 mixdown
@softhddevice Blue 2 0 disable fullscreen
@softhddevice Blue 2 1 enable fullscreen
@softhddevice Blue 2 2 toggle fullscreen
@softhddevice Blue 2 3 disable auto-crop
@softhddevice Blue 2 4 enable auto-crop
@softhddevice Blue 2 5 toggle auto-crop
@softhddevice Blue 3 0 stretch 4:3 to 16:9
@softhddevice Blue 3 1 letter box 4:3 in 16:9
@softhddevice Blue 3 2 center cut-out 4:3 to 16:9
@softhddevice Blue 3 9 rotate 4:3 to 16:9 zoom mode


Click into video window to toggle fullscreen/window mode, only if you
have a window manager running.

libav is not supported, expect many bugs with it.

Known Bugs:
VA-API doesn't v-sync h264 interlaced streams
vdr-image not working

media-video/vdr (version >=1.7.xx)
Video Disk Recorder - turns a pc into a powerful set top box
for DVB.

media-video/ffmpeg (version >=0.7)
Complete solution to record, convert and stream audio and
video. Includes libavcodec and libswresample.
Advanced Linux Sound Architecture Library
kernel support for oss/oss4 or alsa oss emulation

x11-libs/libva (deprecated)
Video Acceleration (VA) API for Linux
HW video decode support for Intel integrated graphics
VDPAU Backend for Video Acceleration (VA) API
XVBA Backend for Video Acceleration (VA) API

VDPAU wrapper and trace libraries

X C-language Bindings library
X C-language Bindings library
Only versions >= 0.3.8 are good supported

X.Org X11 library

GNU Make 3.xx