mirror of
https://github.com/jojo61/vdr-plugin-softhdcuvid.git
synced 2023-10-10 13:37:41 +02:00
README update
This commit is contained in:
parent
1038725182
commit
27d70e742d
404
README.md
404
README.md
@ -1 +1,403 @@
|
|||||||
# vdr-plugin-softhdcuvid
|
@file README.txt @brief A software HD output device for VDR
|
||||||
|
|
||||||
|
Copyright (c) 2011 - 2013 by Johns. All Rights Reserved.
|
||||||
|
Copyright (c) 2018 by jojo61. All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
jojo61
|
||||||
|
|
||||||
|
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
|
||||||
|
License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
$Id: 5267da021a68b4a727b479417334bfbe67bbba14 $
|
||||||
|
|
||||||
|
A software and GPU emulated HD output device plugin for VDR.
|
||||||
|
|
||||||
|
o Video decoder CPU / VDPAU
|
||||||
|
o Video output opengl
|
||||||
|
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 CUDA deinterlacer
|
||||||
|
o Autocrop
|
||||||
|
o Suspend / Dettach
|
||||||
|
o PIP (Picture-in-Picture) (not working yet)
|
||||||
|
|
||||||
|
|
||||||
|
To compile you must have the 'requires' installed.
|
||||||
|
|
||||||
|
|
||||||
|
This is a fork of johns original softhddevice work and I reworked ist to support HEVC with CUDA and opengl output.
|
||||||
|
Currently I have tested it with a GTX 1050 from NVIDIA. HD and UHD ist working, but SD ist instable.
|
||||||
|
|
||||||
|
Current Status NVIDA:
|
||||||
|
The CUDA driver supports HEVC with 8 Bit and 10 Bit up to UHD resolution. Opengl is able to output also 10 Bit, but NVIDIA does not support to output 10 Bit via HDMI.
|
||||||
|
Only via DisplayPort you can get 10 Bit output to a ompatible screen. Thias is a restriction from NVIDIA.
|
||||||
|
|
||||||
|
|
||||||
|
You have to adapt the Makefile to your needs. I use FFMPEG 4.0
|
||||||
|
The Makefile expects the CUDA SDK in /usr/local/cuda. Currently it is tested with CUDA 9.1
|
||||||
|
|
||||||
|
Unfortunatly FFMEG has a bug with deinterlacing cuda frames. So you have to patch the file in libavcodec/cuviddec.c
|
||||||
|
|
||||||
|
Somewhere near line 360 depending on your release:
|
||||||
|
old:
|
||||||
|
ctx->frame_queue = av_fifo_alloc(ctx->nb_surfaces * sizeof(CuvidParsedFrame));
|
||||||
|
|
||||||
|
new:
|
||||||
|
ctx->frame_queue = av_fifo_alloc((ctx->nb_surfaces + 2 ) * sizeof(CuvidParsedFrame));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Good luck
|
||||||
|
jojo61
|
||||||
|
|
||||||
|
Quickstart:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Just type make and use.
|
||||||
|
|
||||||
|
Install:
|
||||||
|
--------
|
||||||
|
1a) git
|
||||||
|
|
||||||
|
git clone git://github.com/jojo61/vdr-plugin-softhdcuvid.git
|
||||||
|
cd vdr-plugin-softhdcuvid
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
You can edit Makefile to enable/disable Alsa / OSS
|
||||||
|
support. The default is to autodetect as much as possible.
|
||||||
|
|
||||||
|
You have to start vdr with -P 'softhdcuvid -d :0.0 ..<more option>.. -v cuvid'
|
||||||
|
|
||||||
|
|
||||||
|
Setup: environment
|
||||||
|
------
|
||||||
|
Following is supported:
|
||||||
|
|
||||||
|
DISPLAY=:0.0
|
||||||
|
x11 display name
|
||||||
|
|
||||||
|
only if alsa is configured
|
||||||
|
ALSA_DEVICE=default
|
||||||
|
alsa PCM device name
|
||||||
|
ALSA_PASSTHROUGH_DEVICE=
|
||||||
|
alsa pass-though (AC-3,E-AC-3,DTS,...) device name
|
||||||
|
ALSA_MIXER=default
|
||||||
|
alsa control device name
|
||||||
|
ALSA_MIXER_CHANNEL=PCM
|
||||||
|
alsa control channel name
|
||||||
|
|
||||||
|
only if oss is configured
|
||||||
|
OSS_AUDIODEV=/dev/dsp
|
||||||
|
oss dsp device name
|
||||||
|
OSS_PASSTHROUGHDEV=
|
||||||
|
oss pass-though (AC-3,E-AC-3,DTS,...) device name
|
||||||
|
OSS_MIXERDEV=/dev/mixer
|
||||||
|
oss mixer device name
|
||||||
|
OSS_MIXER_CHANNEL=pcm
|
||||||
|
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
|
||||||
|
used.
|
||||||
|
|
||||||
|
softhddevice.AutoCrop.Tolerance = 0
|
||||||
|
if detected crop area is too small, cut max 'n' pixels at top and
|
||||||
|
bottom.
|
||||||
|
|
||||||
|
softhddevice.Background = 0
|
||||||
|
32bit RGBA background color
|
||||||
|
(Red * 16777216 + Green * 65536 + Blue * 256 + Alpha)
|
||||||
|
or hex RRGGBBAA
|
||||||
|
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.
|
||||||
|
|
||||||
|
fe.
|
||||||
|
XKeySym.Up Up
|
||||||
|
XKeySym.Down Down
|
||||||
|
...
|
||||||
|
|
||||||
|
Additional to the x11 input sends the window close button "Close".
|
||||||
|
|
||||||
|
fe.
|
||||||
|
XKeySym.Power Close
|
||||||
|
|
||||||
|
Commandline:
|
||||||
|
------------
|
||||||
|
|
||||||
|
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
|
||||||
|
support)
|
||||||
|
other to use alsa audio module (if compiled with alsa
|
||||||
|
support)
|
||||||
|
|
||||||
|
SVDRP:
|
||||||
|
------
|
||||||
|
|
||||||
|
Use 'svdrpsend.pl plug softhddevice HELP'
|
||||||
|
or 'svdrpsend plug softhddevice HELP' to see the SVDRP commands help
|
||||||
|
and which are supported by the plugin.
|
||||||
|
|
||||||
|
Keymacros:
|
||||||
|
----------
|
||||||
|
|
||||||
|
See keymacros.conf how to setup the macros.
|
||||||
|
|
||||||
|
This are the supported key sequences:
|
||||||
|
|
||||||
|
@softhdcuvid Blue 1 0 disable pass-through
|
||||||
|
@softhdcuvid Blue 1 1 enable pass-through
|
||||||
|
@softhdcuvid Blue 1 2 toggle pass-through
|
||||||
|
@softhdcuvid Blue 1 3 decrease audio delay by 10ms
|
||||||
|
@softhdcuvid Blue 1 4 increase audio delay by 10ms
|
||||||
|
@softhdcuvid Blue 1 5 toggle ac3 mixdown
|
||||||
|
@softhdcuvid Blue 2 0 disable fullscreen
|
||||||
|
@softhdcuvid Blue 2 1 enable fullscreen
|
||||||
|
@softhdcuvid Blue 2 2 toggle fullscreen
|
||||||
|
|
||||||
|
Running:
|
||||||
|
--------
|
||||||
|
|
||||||
|
Click into video window to toggle fullscreen/window mode, only if you
|
||||||
|
have a window manager running.
|
||||||
|
|
||||||
|
|
||||||
|
Known Bugs:
|
||||||
|
-----------
|
||||||
|
SD Stream not working very well
|
||||||
|
RESUME starts wirh black screen (channelswitch needed)
|
||||||
|
|
||||||
|
Requires:
|
||||||
|
---------
|
||||||
|
media-video/vdr (version >=1.7.xx)
|
||||||
|
Video Disk Recorder - turns a pc into a powerful set top box
|
||||||
|
for DVB.
|
||||||
|
http://www.tvdr.de/
|
||||||
|
|
||||||
|
media-video/ffmpeg (version >=0.7)
|
||||||
|
Complete solution to record, convert and stream audio and
|
||||||
|
video. Includes libavcodec and libswresample.
|
||||||
|
http://ffmpeg.org
|
||||||
|
media-libs/alsa-lib
|
||||||
|
Advanced Linux Sound Architecture Library
|
||||||
|
http://www.alsa-project.org
|
||||||
|
or
|
||||||
|
kernel support for oss/oss4 or alsa oss emulation
|
||||||
|
|
||||||
|
x11-libs/libva (deprecated)
|
||||||
|
Video Acceleration (VA) API for Linux
|
||||||
|
http://www.freedesktop.org/wiki/Software/vaapi
|
||||||
|
x11-libs/libva-intel-driver
|
||||||
|
HW video decode support for Intel integrated graphics
|
||||||
|
http://www.freedesktop.org/wiki/Software/vaapi
|
||||||
|
or
|
||||||
|
x11-libs/vdpau-video
|
||||||
|
VDPAU Backend for Video Acceleration (VA) API
|
||||||
|
http://www.freedesktop.org/wiki/Software/vaapi
|
||||||
|
or
|
||||||
|
x11-libs/xvba-video
|
||||||
|
XVBA Backend for Video Acceleration (VA) API
|
||||||
|
http://www.freedesktop.org/wiki/Software/vaapi
|
||||||
|
|
||||||
|
x11-libs/libvdpau
|
||||||
|
VDPAU wrapper and trace libraries
|
||||||
|
http://www.freedesktop.org/wiki/Software/VDPAU
|
||||||
|
|
||||||
|
x11-libs/libxcb,
|
||||||
|
X C-language Bindings library
|
||||||
|
http://xcb.freedesktop.org
|
||||||
|
x11-libs/xcb-util,
|
||||||
|
x11-libs/xcb-util-wm,
|
||||||
|
x11-libs/xcb-util-keysyms
|
||||||
|
X C-language Bindings library
|
||||||
|
http://xcb.freedesktop.org
|
||||||
|
Only versions >= 0.3.8 are good supported
|
||||||
|
|
||||||
|
x11-libs/libX11
|
||||||
|
X.Org X11 library
|
||||||
|
http://xorg.freedesktop.org
|
||||||
|
|
||||||
|
GNU Make 3.xx
|
||||||
|
http://www.gnu.org/software/make/make.html
|
||||||
|
|
||||||
|
Optional:
|
||||||
|
Loading…
Reference in New Issue
Block a user