Giter Club home page Giter Club logo

vdr-plugin-softhdodroid's Introduction

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

Copyright (c) 2024 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.

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

o Video hardware decoder Amlogic
o Audio FFMpeg / Alsa / Analog
o Audio FFMpeg / Alsa / Digital
o Audio Amp/TV control via CEC
o HDMI/SPDIF pass-through
o Suspend / Dettach 

This is a Device driver for Amlogic Hardware. SD, HD and UHD is suported. Working devices are: Odroid-N2+, Tanix TX3, X96Max+ and almost all other devices where Coreelec is working.

Good luck jojo61

Install:

Preparation:

I use ubuntu 20.04 for Odroid-n2 with kernel 4.9 from here:	https://odroid.in/ubuntu_20.04lts/n2/

In order to compile the vdr you need to prepare the following.
# apt build-dep vdr
# apt install libgl-dev libglu-dev libgles2-mesa-dev freeglut3-dev libglm-dev libavcodec-dev libdrm-dev libasound2-dev vdr-dev

Install from git

git clone git://github.com/jojo61/vdr-plugin-softhdodroid.git
cd vdr-plugin-softhdodroid
make
make install

You have to start vdr with e.g.:  -P 'softhdodroid '

You need to run vdr as root.
You should adapt config.ini in /media/boot and change the Screensettings from hdmimode=1080p60hz to your preferred 
Resolution. Also set display_autodetect=false

If you want to have 10Bit colordepth you should insert something like that in rc.local:
echo 420,10bit >/sys/class/amhdmitx/amhdmitx0/attr
echo 2160p50hz >/sys/class/display/mode
You need a UHD Display for this. All FullHD Displays are only 8 Bit.

Setup: environment

Following is supported:



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

Commandline:

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

-a Audiodevice         e.g. plughw:CARD=AMLAUGESOUND,DEV=3  (usually not needed)
-p DigitalAudiodevice  e.g. plughw:CARD=AMLAUGESOUND,DEV=2  (usually not needed)
-s Start in suspended Mode
-D Start in detached Mode
-g widthxheight        e.g. 3840x2160        only supported in Kernel 5.x
-r Refresh Rate        e.g. 60 default is 50 only supported in Kernel 5.x
-w use-spdif           use spdif instead of the default spdif_b

Normaly you do not need any Parameters. The Audiodevices have sensible defaults.

SVDRP:

Use 'svdrpsend.pl plug softhdodroid HELP'
or 'svdrpsend plug softhdodroid 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:

@softhdodroid Blue 1 0		disable pass-through
@softhdodroid Blue 1 1		enable pass-through
@softhdodroid Blue 1 2		toggle pass-through
@softhdodroid Blue 1 3		decrease audio delay by 10ms
@softhdodroid Blue 1 4		increase audio delay by 10ms
@softhdodroid Blue 1 5		toggle ac3 mixdown

vdr-plugin-softhdodroid's People

Contributors

jojo61 avatar fauthd avatar

Stargazers

Byeonghoon Yoo avatar astrapp avatar  avatar  avatar  avatar German Ulrich avatar

Watchers

 avatar  avatar James Cloos avatar  avatar  avatar  avatar

Forkers

fauthd vitmod

vdr-plugin-softhdodroid's Issues

vdr-dev should be added to readme

Hi,
apt install vdr-dev was required here on both Ubuntu and Armbian

PS: The libasound2-dev was already install in the hardkernel ubuntu image.
But it does not hurt to add to the list.

P": I can send a pull request for the Makefile (-I.). Also does not hurt. Many toolchains need that (at least I have seen that requirement often in my job).

alsa.pc missing

Hi jojo61,
just trying to build on Armbian focal (40โ‚ฌ TV box Tanix TX3). There it complains about alsa.pc is not found.
Solution was to install:
sudo apt install libasound2-dev

Perhaps that sould go into the readme.

PS: Now I have to search for the next issue:
amports/amstream.h:55:10: fatal error: amports/vformat.h: No such file or directory 55 | #include "amports/vformat.h"

Thanks for this plugin !!!
Dieter (also in vdr-portal)

Why need to run vdr as root?

Hi Jojo,
is this because we need to access certain devices?
Then a udev rule would help.
I'd be glad to create one.

Many rards, Dieter
PS: Perhaps this wa my issues at friday. I did not run vdr as root. So there is hope...

Lots of warnings

Hi,
I get a few screens with warnings. Too much for my taste.
Typical signed/unsigned issues. Sometimes these bite you when you not expect it.

At least the last few look fishy to my old eyes:
case 6: if (AudioChannelsInHw[7]) { AudioChannelMatrix[u][chan] = 7; break; }
(idents are lost here)
Or is that on purpose? To parse the same data in different case statements?

Many regards, Dieter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.