Coder Social home page Coder Social logo

hyperion-project / hyperion.ng Goto Github PK

View Code? Open in Web Editor NEW
2.9K 82.0 367.0 36.86 MB

The successor to Hyperion aka Hyperion Next Generation

Home Page: https://hyperion-project.org/

License: MIT License

CMake 5.02% Shell 1.14% Python 3.22% C++ 61.87% C 1.04% CSS 1.32% HTML 3.53% JavaScript 22.79% AppleScript 0.07%
hyperion ambilight hue adalight ws281x effects capture rpi raspberry mood

hyperion.ng's People

Contributors

aethelsyn avatar bbilger avatar bennealon avatar bimsarck avatar brindosch avatar dependabot[bot] avatar frostworx avatar funatiq avatar gamadril avatar hyperion-bot avatar imgbot[bot] avatar janpfischer avatar kammerjaeger avatar lord-grey avatar m-seker avatar nicohood avatar ntim avatar paulchen-panther avatar penfold42 avatar poljvd avatar portisch avatar qvistgaard avatar redpanther avatar sjunkies avatar tostadora avatar tpmodding avatar tuxuser avatar tvdzwan avatar wisc17 avatar wolph avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hyperion.ng's Issues

Move all header files to include?

should we? theres 60 .h files in include and 60 .h files across src/ and libsrc/

find src/ libsrc/ -name *.h | cut -d / -f 1-2 | sort | uniq -c
1 libsrc/boblightserver
1 libsrc/effectengine
4 libsrc/hyperion
1 libsrc/jsonserver
31 libsrc/leddevice
1 libsrc/protoserver
7 libsrc/webconfig
1 src/hyperion-aml
1 src/hyperiond
1 src/hyperion-dispmanx
1 src/hyperion-framebuffer
1 src/hyperion-osx
5 src/hyperion-remote
3 src/hyperion-v4l2
1 src/hyperion-x11

Grabber refactoring/features

Grabber refactoring overview as notice

  • Sync feature level of all grabbers
  • Add a monitor selection mode (at .json) (x11) on multi monitor setups to start the grabber always from another source, fallback to monitor 0 if the requested monitor not found
  • connect to kodi check via proto for all grabbers (follow hyperion x11)
  • Add to hyperiond a grabber starter which selects automatically the platform depending grabber
  • Add enable option to all grabbers - in case of false don´t start the grabber
  • PixelFormat option is available just for v4l2, x11 and framebuffer - sync it.
  • v4l2 is a half exception here, cause it is often used at the same .json. But could also be externalized with a opt-in option for kodi check, if people use kodi just via v4l2.

@Paulchen-Panther @redPanther @penfold42

new pattern example - feel free to add more

    "framegrabber" : 
    {
        "enable" : true,        
        "width" : 64,
        "height" : 64,
        "frequency_Hz" : 10.0,
        "priority" : 890,
        "display" : 0,
        "cropleft" : 0,
        "cropright" : 0,
        "croptop" : 0,
        "cropbottom" : 0
    },

UDPListener - what to do with short packets ?

If 10 LEDs are configured and we get a packet with only 3 LEDs of data should we set the other 7 to black ?

Right now, it uses whatever was in the buffer from the last packet with black the default at startup.

Choices:
Leave it as it is
Set the remainder to black
Ignore the packet
Ignore and send an error packet back to the client

Move to qt5-serialport

We should replace our 3th party serial port library with serial port implemention from qt.
This shouldn't be hard, because serial port is used only in leddevices and they have a parent class with serial stuff.

Why?

  • delete code in hyperion, deleted code is good code :-)
  • better platform independent
  • qt serialport is better tested
  • we can use signal/slot from qt to be more event driven

Cross compile instructions are not accurate

Hi,

I've been trying to compile hyperion-ng for RPi on my laptop (ubuntu 14.04). Unfortunately I got stuck at running create_all_releases.sh . I am getting the following error:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
BCM_INCLUDE_DIR
   used as include directory in directory /home/jacwk/hyperion1/libsrc/grabber/dispmanx
   used as include directory in directory /home/jacwk/hyperion1/src/hyperion-dispmanx
BCM_LIBRARIES
    linked by target "dispmanx-grabber" in directory /home/jacwk/hyperion1/libsrc/grabber/dispmanx

-- Configuring incomplete, errors occurred!

I do believe I followed all steps properly including qt5 installation.

Any help would be highly appreciated.
Jacek

Travis build with SPI ?

Can we get travis to build with SPI ?

I just tested both ubuntu and centos x86 systems with:
cmake -DPLATFORM=x86 -DENABLE_SPIDEV=ON -DCMAKE_BUILD_TYPE=Release ..

and they build fine

Dynamic link against bcm_host and x11

Bind (dlopen) against bcm and x11 libs only when dispmanx/x11 is used.

This enables us to e.g. to launch raspi build on other arm linux, where bcm libs not available.
Or compile with x11, but hyperion is runable on system without x11 ..

Then we don't have to remove integrated grabbers and use only proto grabbers.

Service filename

The service is not a script. You should rather name it hyperiond.service. Or use if this gives problem with the init scripts use hyperiond.systemd.service.

In the install script I also suggest to name the service hyperiond and not just hyperion. This is a common practise and also the binary itself is also called hyperiond.

Colors: Fix minLuminance, add enable/disable option (also during runtime)

Option: Set the min luminance just during grabbers are active, so it will be diabled if you use a "idle effect/color" or just black with disabled grabbers.
For this you may "move" this to another(new?) component which could be also called (started and stopped) during runtime.

Fix: my ambient light get strange colors at black areas. Looks weird. Another solution is appreciated.
Hint: The old deprecated value "blacklvl" works like a charm, but might be more a hack. As long it works?

Remove widget dependency

Nothing should need it ?

It's big and it forces othe install dependencies with break OSMC without fixing it's library path

I've started trying to do it without knowing what I really doing

migrate logging to new framework

Lots to be done here - if someone new to hyperion wants to contribute, this is a tedious but worthy task!

There are 178 std::cout calls in the code as show here:
/hyperion.ng# find src libsrc -type f -exec grep -n std::cout /dev/null {} ; | wc -l
178

Missing dependencies in cmake

I try to get the AUR package ready for hyperion 2.x now.
I tried compiling the source but cmake does not throw an error for some missing deps. Those should be included to the cmake.

A pacman dep list would also be nice, I will work on that. If someone already develops on arch and has the deps ready, please let me know.

[ 97%] Linking CXX executable ../../bin/hyperiond
/usr/bin/ld: cannot find -ldns_sd
/usr/bin/ld: cannot find -lavahi-client
/usr/bin/ld: cannot find -lavahi-common
/usr/bin/ld: cannot find -lavahi-core
/usr/bin/ld: cannot find -ldbus-1
collect2: error: ld returned 1 exit status
make[2]: *** [src/hyperiond/CMakeFiles/hyperiond.dir/build.make:150: bin/hyperiond] Error 1
make[1]: *** [CMakeFiles/Makefile2:1445: src/hyperiond/CMakeFiles/hyperiond.dir/all] Error 2
make: *** [Makefile:150: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

I checked but the package avahi is installed. I am wondering what is missing.

[arch@arch hyperionpkg]$ find / -name avahi-client 2>/dev/null
/usr/include/avahi-client

zeroconf: move to own setting

if we work anyway on everything ...

zeroconf
{
enable : true,
~~mDNSDescr : "aname",~~
~~mDNSService : "aServiceName"~~
},

I have a general question regarding zeroconf, if people configure another mDNSService (name?) an App could no longer identifiy it as Hyperion port?

Your example lead to this if i am right?
root@Penfold42MediaPlayer:~# avahi-browse -r _hyperiond_json._tcp

This identifier should be hardcoded - always the same.
And i am not sure if we should keep the option mDNDsecr, if we provide this optional in general i need to add it to the JSON checker, @Paulchen-Panther finished the json write to write a config. but it is based at the information of the json checker.
So the problem - the value will be the same on all platforms as long the user don´t change it (or we code a detection to input this) (which will be usually 99%)

I would prefer to stick always with the hostname of the current device.

make documention warningless

The doxygen doc generate lots of (approx.800) warnings. This should be fixed in the long run.

you can generate the doc with:
make doc
and you will find the doc in build/doc/html.

UDP

  • refactor UDP as seperate listener and remove it from the bootsequence and effect list

UDP should be a listener (clean) implemented like boblight

    "udpServer" : 
    {
        "enable" : false,       
        "port" : XXXXX,
        "priority" : 900
    },

JSON RPC/Hyperion: Enable/Disable components during runtime

Hyperion

  • smoothing (activate bypass as it is already used if enable false?)
  • blackborder
  • kodicheck
  • forwarder
  • udplistener
  • boblight server
  • grabbers (this should be handled though a platform depedent selection. To keep the command easy/platform independent)

JSON RPC

  • smoothing
  • blackborder
  • kodicheck
  • forwarder
  • udplistener
  • boblight server
  • grabbers

Segmentation fault

I compiled hyperion for my raspberry 3 in arch and sometimes get a segmentation fault.

[alarm@alarmpi3 ~]$ /usr/bin/hyperiond /etc/hyperion/hyperion.config.json
INFO: Creating linear smoothing
HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
[HYPERIOND MAIN] <ERROR> Hyperion Daemon aborted
QtHttpServer started on port 8099 "Qt Static HTTP File Server"
KODICHECK ERROR: Kodi Connection error (0)
Segmentation fault (core dumped)

I only changed the number of leds to 25 and the adalight device:

    "device" :
    {
        "name"       : "MyHyperionConfig",
        "type"       : "adalight",
        "output"     : "/dev/ttyACM0",
        "VID"        : "0x2341",
        "PID"        : "0x8036",
        "rate"       : 115200,
        "colorOrder" : "rgb"
    },

SPI is not enabled, nor used. It is not even compiled in this binary I use.

I used this PKGBUILD (which is incomplete, but just for documentation):

# Maintainer: TODO

pkgname=hyperion
pkgver=r1160.0feb1d7
pkgrel=1
pkgdesc="An opensource 'AmbiLight' implementation"
arch=('armv6h' 'armv7h')
url="https://github.com/hyperion-project/hyperion.ng"
license=('MIT')

depends=('libusb' 'python' 'icu')
optdepends=('xorg-server: X11 grabbing')
makedepends=('git' 'cmake' 'qt5-base' 'qt5-serialport' 'avahi')
provides=('hyperion')
conflicts=('hyperion')
backup=('etc/hyperion.config.json')
source=('hyperion::git+https://github.com/hyperion-project/hyperion.ng#branch=master')
sha256sums=('SKIP')

pkgver() {
        cd "$srcdir/${pkgname%-git}"
        printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

build() {
        cd "${srcdir}/${pkgname%-git}"
        git submodule init
        git submodule update
  mkdir -p build
  cd build
  cmake -DCMAKE_INSTALL_PREFIX="${pkgdir}/usr" -DPLATFORM=x86 -DCMAKE_BUILD_TYPE=Release -DUSE_SHARED_AVAHI_LIBS=ON ..
        make -j $(nproc)
}

package() {
        cd "${srcdir}/${pkgname%-git}/build"
        make install

        install -Dm 644 "${srcdir}/hyperion/config/hyperion.config.json.default" "${pkgdir}/etc/hyperion/hyperion.config.json"
        # TODO symlink service from make install service?
        install -Dm 644 "${srcdir}/hyperion/bin/service/hyperion.systemd.sh" "${pkgdir}/usr/lib/systemd/system/hyperiond.service"
}

Priorities enhancement

Move all default priorities to a single default-priorities.h

Enhance Json priority list with the name of which components have set that priority

Log a warning of priorities collide so it's more obvious why it's flickering as they fight to the death

Update json schema

We need to update json schema file. This will be important for travis check and automatic building of web config ui.

Add loglevel settingl to .json

If we talk anyway about logging, we need a setting to enable easy different loglevels.

    "loglevel" : 
    {
        "level" : "INFO"
    },

Move component X to QT

  • UDP (led) device
  • serial
  • JSON (in progress)
  • Command Line Parser

If there is more, just write it down

Smoothing improvement (small)

@redPanther
If you may have some time later, there is a small issue now. If you use the backlight option it is much more noticebale.
The smoothing should stop the output not immediately after "no change" -> stop output trigger.
It would be better to keep the output flow -until- the configured smoothing time is reached.

If you have a fast color change: the leds "hang" in a smoothed state between for example blue and black. (If you go from a blue to a black picture)

Thank you

adjustable image to led mapping

Hyperion calculates average color of rectangular screen area to a led. Every led has his area.
Currently calculating average color of whole screen and set this single color to to all leds is not possible. (ok there is a trick, but this waste to much cpu time)
This is one thing ... the other is, not everybody likes average color. There are other algorithms like weighted average, mean vaule, dominant color

Hyperion needs some transform mechanisms for image to led mapping. We already have "color transform", but this make the transformation after the image processing.

Platform an Distribution detector

Hyperion needs more intelligence if we want to automate the grabber selection.

If found this, but the interesting part ist just available with Qt5.4 and hostname with QT5.6
http://doc.qt.io/qt-5/qsysinfo.html

So wie end up with hacking?
/cpu/procinfo (for Pi BCM version), lsb_release and uname?

OS=$(lsb_release -si)
ARCH=$(uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(lsb_release -sr)
HOST=$(uname --nodename)

This information could be also pushed to the webinterface and a minified version for statistic purposes.

Hyperiond is horribly insecure

It runs as root

No authentication on its network services

No source IP restrictions on its network services

When we support reconfiguration via a browser you could overwrite any file on the OS

Add "enable" option to all components

All components should be able to be enabled/disabled with a option, to keep the .json clean (no comment out or removal of options to disable it)

  • Smoothing
  • All Grabbers
  • V4L2 (v4l2 could be used at the same time with the other grabbers - so this section will be there anyway)
  • blackborder
  • kodicheck
  • boblight
  • proto json forward
  • UDP listener (server)

Hyperion forwarder

The forwarder is one of the greatest extensions of Hyperion. So maybe @redPanther wants to push the usage "comfort in general to come faster in touch and to keep the documentation and "how to setting it up" lines low.
My ideas are the following.

The main instance of Hyperion starts more instances if you set it at a .json file here:

    "forwarder" : 
    {
        "json" : ["127.0.0.1:19446"],
        "proto" : ["127.0.0.1:19447"],
                "instance" : SecondConfig.json,ThirdConfig.json
    },

On top of this, a auto assignment of ports might be useful too. Why mess around yourself with ports if Hyperion just need to count +2 to the current base value?

A issue might be that we still have the JSON and PROTO port cat at the .json
A option could be to remove the option to configure it (bad, but count the people who change their ports)
or all following hyperion instances need to ignore the setting for JSON and PROTO port at the .json.

/discuss
This post is not to hurry up things, just to keep track of what could be done :)

webserver port fallback

QtHttpServer error : "The bound address is already in use"

For more comfort, i would prefer port 80, in case port 80 is already in use by another application, could we use 8099 as fallback before we quit the server?

Why? Why not :)
People use Hyperion primarily on a Pi with a mediacenter distribution. So port 80 might be applicable for 99% of users

JSON RPC/Hyperion: Hyperion version number #2

We currently output the full version/id string via JSON, but this is not really a version check, cause an app don´t need a github commit number and you need to sort this out during processing. Also this string just reflects the branch name, which lead to issues.

So we should provide a "hardcoded" version string which just outputs a app friendly formatted value to detect the real feature level of Hyperion. We should give the developers the possibility to react with another ui for example or just to show this easier.

stack smashing detected

@redPanther

Der Fehler "*** stack smashing detected ***" tritt auf sobald ich ein Youtube Video abspielen möchte. Es ist die Zeile 126 im kodivideochecker.cpp
Kommentiere ich diese aus, tritt der Fehler nicht auf.

Hier die Ausgabe:
`Starting program: /home/paulchen/Schreibtisch/KodiVideoChecker/build/bin/hyperiond hyperion.config.json --debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[HYPERIOND MAIN] Selected configuration file: hyperion.config.json
[HYPERIOND Core] ColorTransform 'default' => [0; 45]
[HYPERIOND Core] ColorTemperature 'default' => [0; 45]
[HYPERIOND Core] ColorAdjustment 'default' => [0; 45]
[HYPERIOND LedDevice] configuration:
{
"colorOrder" : "rgb",
"name" : "DefaultHyperionConfig",
"output" : "/dev/null",
"rate" : 1000000,
"type" : "file"
}

[HYPERIOND Core] Smoothing disabled
[HYPERIOND EFFECTENGINE] 27 effects loaded from directory /home/paulchen/Schreibtisch/hyperion/effects
[HYPERIOND EFFECTENGINE] EffectEngine.cpp:63:EffectEngine() Initializing Python interpreter
[HYPERIOND Core] Hyperion.cpp:589:Hyperion() configured leds: 46 hw leds: 46
[HYPERIOND LOGGER] Logger settings overriden by command line argument
[HYPERIOND MAIN] Hyperion started and initialised
[HYPERIOND EFFECTENGINE] run effect Rainbow swirl fast on channel 0
[HYPERIOND BLACKBORDER] BlackBorderDetector.cpp:26:calculateThreshold() threshold set to 0.000000 (0)
[HYPERIOND BLACKBORDER] BlackBorderProcessor.cpp:26:BlackBorderProcessor() mode: default
[HYPERIOND Core] Register new input source named 'EFFECT: /home/paulchen/Schreibtisch/hyperion/effects/rainbow-swirl.py' for priority channel '0'
[HYPERIOND MAIN] Inital foreground effect 'Rainbow swirl fast' started
[HYPERIOND EFFECTENGINE] run effect Full color mood blobs on channel 2147483646
[HYPERIOND BLACKBORDER] BlackBorderDetector.cpp:26:calculateThreshold() threshold set to 0.000000 (0)
[HYPERIOND BLACKBORDER] BlackBorderProcessor.cpp:26:BlackBorderProcessor() mode: default
[HYPERIOND Core] Register new input source named 'EFFECT: /home/paulchen/Schreibtisch/hyperion/effects/mood-blobs.py' for priority channel '2147483646'
[HYPERIOND MAIN] Inital background effect 'Full color mood blobs' started
[HYPERIOND MAIN] hyperiond.cpp:212:createKODIVideoChecker() KODI checker created
[HYPERIOND KODI] started
[HYPERIOND KODI] KODIVideoChecker.cpp:306:reconnect() try reconnect
[HYPERIOND MAIN] Json server created and started on port 19444
[HYPERIOND MAIN] Proto server created and started on port 19445
[HYPERIOND MAIN] hyperiond.cpp:261:startNetworkServices() Boblight server created
[New Thread 0x7fffee455700 (LWP 9322)]
[New Thread 0x7fffeee9b700 (LWP 9321)]
[New Thread 0x7fffef69c700 (LWP 9320)]
[New Thread 0x7fffefe9d700 (LWP 9319)]
[HYPERIOND MAIN] hyperiond.cpp:311:startNetworkServices() Json mDNS responder started
[HYPERIOND MAIN] hyperiond.cpp:319:startNetworkServices() Proto mDNS responder started
[HYPERIOND WEBSERVER] started on port 8099 name "Hyperion WebConfig"
[HYPERIOND KODI] Connected
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"id":666,"jsonrpc":"2.0","result":[]}
[HYPERIOND KODI] switching to MENU mode
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"id":668,"jsonrpc":"2.0","result":{"System.ScreenSaverActive":false}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"id":666,"jsonrpc":"2.0","result":[]}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"id":670,"jsonrpc":"2.0","result":{"version":{"major":16,"minor":0,"revision":"2015-10-11-9272297","tag":"alpha","tagversion":"4"}}}
[HYPERIOND EFFECTENGINE] effect finished
[HYPERIOND Core] Unregister input source named 'EFFECT: /home/paulchen/Schreibtisch/hyperion/effects/rainbow-swirl.py' from priority register
[Thread 0x7fffefe9d700 (LWP 9319) exited]
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":1},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"More Newly Discovered Pokémon Have Arrived for Pokémon Sun and Pokémon Moon!","type":"movie","year":2016},"playlistid":1,"position":0},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Only Jon Stewart Can Make Sense of the Trump Candidacy","type":"movie","year":2016},"playlistid":1,"position":1},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Coming Wednesday: Carpool Karaoke with The First Lady","type":"movie","year":2016},"playlistid":1,"position":2},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Comparing Melania Trump and Michelle Obama's speeches","type":"movie","year":2016},"playlistid":1,"position":3},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Jeffree Star: It's so much easier to do the right thing.","type":"movie","year":2016},"playlistid":1,"position":4},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"SUICIDE SQUAD - Official Final Trailer (2016) DC Superhero Movie HD","type":"movie","year":2016},"playlistid":1,"position":5},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Honest Trailers - Batman v Superman: Dawn of Justice","type":"movie","year":2016},"playlistid":1,"position":6},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Ridiculous Rhett Reactions","type":"movie","year":2016},"playlistid":1,"position":7},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Water Bottle Flip Edition | Dude Perfect","type":"movie","year":2016},"playlistid":1,"position":8},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"The Not- Ready-For-Primetime Party | Full Frontal with Samantha Bee | TBS","type":"movie","year":2016},"playlistid":1,"position":9},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Donald Trump Entrance at GOP Convention (C-SPAN)","type":"movie","year":2016},"playlistid":1,"position":10},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Melania Trump's full speech at the 2016 Republican National Convention","type":"movie","year":2016},"playlistid":1,"position":11},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"WHY TAYLOR SWIFT'S LEAKED EXPOSE VIDEO IS A HUGE DEAL! I know...even I'm surprised.","type":"movie","year":2016},"playlistid":1,"position":12},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Rep. Steve King says white people have contributed more to civilization than other 'sub-groups'","type":"movie","year":2016},"playlistid":1,"position":13},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"ضب" ماتحمل الحر وراح يدور للظل | اللهم ارحمنا","type":"movie","year":2016},"playlistid":1,"position":14},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"This plane could cross the Atlantic in 3.5 hours. Why did it fail?","type":"movie","year":2016},"playlistid":1,"position":15},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Steve King Asks: What Have Minorities Contributed To Civilization?","type":"movie","year":2016},"playlistid":1,"position":16},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Stephen Colbert Hijacks Mic at RNC","type":"movie","year":2016},"playlistid":1,"position":17},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Bailey - Who's Got It Better Than Us?","type":"movie","year":2016},"playlistid":1,"position":18},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"We asked Trump voters about Melania's plagiarism scandal. Here's what they said.","type":"movie","year":2016},"playlistid":1,"position":19},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Sheriff David Clarke Crushes Don Lemon Over Hateful Black Lives Matter","type":"movie","year":2016},"playlistid":1,"position":20},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"UNDERTALE SPIDER DONUTS ft Dan & Phil! - NERDY NUMMIES","type":"movie","year":2016},"playlistid":1,"position":21},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Futurama - The Science of Comedy","type":"movie","year":2016},"playlistid":1,"position":22},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Hitting the Sun is HARD","type":"movie","year":2016},"playlistid":1,"position":23},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Republican National Convention Live Stream Monday [Official]","type":"movie","year":2016},"playlistid":1,"position":24},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"FULL REPLAY: Day 2 of Republican National Convention in Cleveland - July 19, 2016","type":"movie","year":2016},"playlistid":1,"position":25},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Miranda Lambert - Vice (Audio)","type":"movie","year":2016},"playlistid":1,"position":26},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Chris Pine Learned Never to Mix Goldschläger, Beer and Chinese Food","type":"movie","year":2016},"playlistid":1,"position":27},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Who Is Mike Pence? A Closer Look","type":"movie","year":2016},"playlistid":1,"position":28},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Melania Trump Speech - RNC","type":"movie","year":2016},"playlistid":1,"position":29},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"The YouTube Factory feat. Dwayne "The Rock" Johnson, Lilly Singh, and More!","type":"movie","year":2016},"playlistid":1,"position":30},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Kim Kardashian exposes Taylor Swift on Snapchat [Part 1]","type":"movie","year":2016},"playlistid":1,"position":31},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Melania Trump's RNC speech vs. Michelle Obama's 2008 DNC speech","type":"movie","year":2016},"playlistid":1,"position":32},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Johnny B. Goode (Live in NY w/ Michael J. Fox)","type":"movie","year":2016},"playlistid":1,"position":33},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"The Girl on the Train - Official Trailer - In Theaters October 7 (HD)","type":"movie","year":2016},"playlistid":1,"position":34},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Casually Explained: The Spectrum of Intelligence","type":"movie","year":2016},"playlistid":1,"position":35},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"How To Be a YouTube Star (ft. The Rock)","type":"movie","year":2016},"playlistid":1,"position":36},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Last Week Tonight with John Oliver: Endorsements (Web Exclusive)","type":"movie","year":2016},"playlistid":1,"position":37},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"POWERFUL! ♥ FULL SPEECH: Patricia Smith, mother of Benghazi victim - Republican National Convention","type":"movie","year":2016},"playlistid":1,"position":38},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Melania Trump and Michelle Obama speeches side by side","type":"movie","year":2016},"playlistid":1,"position":39},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Karwia - dzik wyszedł z morza i zaatakował ludzi","type":"movie","year":2016},"playlistid":1,"position":40},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Bitmoji on Snapchat!","type":"movie","year":2016},"playlistid":1,"position":41},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"EARTH ANGEL/ JOHNNY B. GOODE -MICHAEL J. FOX & COLDPLAY: HEAD FULL OF DREAMS TOUR 7.17.16 NYC/NJ","type":"movie","year":2016},"playlistid":1,"position":42},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"FAN-O-RAMA - A Futurama Fan Film","type":"movie","year":2016},"playlistid":1,"position":43},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"DIY Hydro Dipping - Pinterest Test - Man Vs Pin #95","type":"movie","year":2016},"playlistid":1,"position":44},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"THE MAGNIFICENT SEVEN - Official Trailer (HD)","type":"movie","year":2016},"playlistid":1,"position":45},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Ivanka Trump On GOP Leaders Not Attending Republican National Convention","type":"movie","year":2016},"playlistid":1,"position":46},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"Confessions of a Republican | Hillary Clinton","type":"movie","year":2016},"playlistid":1,"position":47},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"xXx: Return of Xander Cage - Teaser Trailer (2017) - Paramount Pictures","type":"movie","year":2016},"playlistid":1,"position":48},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Playlist.OnAdd","params":{"data":{"item":{"title":"YouTube Music – Afsa’s Theme","type":"movie","year":2016},"playlistid":1,"position":49},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"jsonrpc":"2.0","method":"Player.OnPlay","params":{"data":{"item":{"title":"Ridiculous Rhett Reactions","type":"movie","year":2016},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"id":666,"jsonrpc":"2.0","result":[{"playerid":1,"type":"video"}]}
[HYPERIOND KODI] switching to VIDEO mode
[HYPERIOND KODI] KODIVideoChecker.cpp:126:receiveReply() message: {"id":667,"jsonrpc":"2.0","result":{"item":{"file":"https://r8---sn-uxax4vopj5qx-cxge.googlevideo.com/videoplayback?ipbits=0&mime=video%2Fmp4&key=yt6&itag=22&lmt=1468995474342434&signature=34EA3987AED2DE4BA30051D7356766EC4600BAE8.88B6DEDC90B92869E21F72F705768E77FF5B5850&expire=1469031687&cnr=14&pcm2cms=yes&pl=23&sver=3&requiressl=yes&upn=Q9yJZfrgrO4&ei=p1CPV6aBHYj_cZf8qLgN&ip=78.53.194.219&initcwndbps=1253750&id=o-AM2jTPCBq55uGpOjHVDNHJbSvKSrE5q6S_5i8GSE7YXm&sparams=cnr%2Cdur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&ratebypass=yes&mm=31&source=youtube&mn=sn-uxax4vopj5qx-cxge&mt=1469009568&mv=m&ms=au&fexp=9416891%2C9422596%2C9428398%2C9431012%2C9432367%2C9433096%2C9433223%2C9433946%2C9435526%2C9435876%2C9437552%2C9438663%2C9439652%2C9440880%2C9442424&dur=90.999","label":"Ridiculous Rhett Reactions","type":"unknown"}}}
*** stack smashing detected ***: /home/paulchen/Schreibtisch/KodiVideoChecker/build/bin/hyperiond terminated
[New Thread 0x7fffeda07700 (LWP 9323)]

Program received signal SIGABRT, Aborted.
0x00007ffff4eee267 in __GI_raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
(gdb)
`

make install always rebuilds the package

I am not sure if this is a bug or an issue/feature of the cmake system in general. If you run make install It does not simply abort (if it was compiled before), it tries to compile again. Its super fast, but still not correct. This is minor though, but maybe the fix is triviial.

Missing enable/disable setting in config

You can disable some part of the config without commenting now which is great.

    "webConfig" :
    {
        "enable" : true,
        "document_root" : "/usr/share/hyperion/webconfig",
        "port" : 8099
    },

However not all settings can be disabled and I want to disable more of them. Since commenting now should not be used anymore, I am not sure if simply adding "enable" would work. But even if so, the default config should has this setting, possibly set to true or false.

startup effect logging needs cleanup

sample output:
[HYPERIOND MAIN] Hyperion started and initialised
INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
BLACKBORDER INFO: threshold set to 0.1 (26)
BLACKBORDER INFO: mode:default
started
[HYPERIOND MAIN] Kodi checker created and started

Suggest just removing the cout statements around src/hyperiond/hyperiond.cpp:143:

<ERROR> V4l2 init failed ('/dev/video0' does not support streaming i/o)

Is there any way to get this to work?

If not should we write an error and then stop re-trying?

lsusb
Bus 001 Device 004: ID 2040:4903 Hauppauge HS PVR

This provides an mpeg4 stream from /dev/video0 so is different from the standard grabbers.

v4l2-ctl -L
User Controls
brightness (int) : min=0 max=255 step=1 default=128 value=128 flags=slider
contrast (int) : min=0 max=255 step=1 default=64 value=64 flags=slider
saturation (int) : min=0 max=255 step=1 default=64 value=64 flags=slider
hue (int) : min=0 max=30 step=1 default=15 value=15 flags=slider
sharpness (int) : min=0 max=255 step=1 default=128 value=128 flags=slider

Codec Controls
stream_type (menu) : min=0 max=1 default=1 value=1 flags=update
1: MPEG-2 Transport Stream
audio_encoding (menu) : min=0 max=4 default=3 value=3 flags=update
3: MPEG-2/4 AAC
4: AC-3
video_encoding (menu) : min=0 max=2 default=2 value=2
2: MPEG-4 AVC
video_bitrate_mode (menu) : min=0 max=1 default=1 value=0 flags=update
0: Variable Bitrate
1: Constant Bitrate
video_bitrate (int) : min=1000000 max=13500000 step=100000 default=6500000 value=13500000
video_peak_bitrate (int) : min=1100000 max=20200000 step=100000 default=9000000 value=20200000
brightness (int) : min=0 max=255 step=1 default=128 value=128 flags=slider
contrast (int) : min=0 max=255 step=1 default=64 value=64 flags=slider
saturation (int) : min=0 max=255 step=1 default=64 value=64 flags=slider
hue (int) : min=0 max=30 step=1 default=15 value=15 flags=slider
sharpness (int) : min=0 max=255 step=1 default=128 value=128 flags=slider

QtHttpServer starts on "random" port numbers with no config

On my ubuntu x86 box:
QtHttpServer started on port 46 "Qt Static HTTP File Server"

on my osmc pi3:
QtHttpServer started on port 25449 "Qt Static HTTP File Server"

If I configure the port in the config file its fine and does as its told

Add "exit_effect"

I need hyperiond to let me specify an effect or colour to set the strip to on exit rather than simply "lights off"

hyperiond and crash status

If we want to move forward to a webinterface and configuration in general we need to ensure that you are able to fix issue with the webinterface as much as possible.

If hyperion leads to a crash the websever is also gone and you just get a blank page (?)
Parts that could lead to this

  • a corrupted .json or a not compatible one
  • wrong configured led device (output f.e.)
  • a enabled component that is not found at the system (v4l2)

we should find ways to prevent here a crash of hyperion that you are able to fix it. (As long that could done) and create better logoutput that describes better what happend now.

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.