Hyperion.NG, Amlogic improvements

Hi there,

I have here a new Hyperion.NG test version with some improvements what are needing to be tested by Hyperion users.

  • Add option to disable the LEDs if no video is playing
    There is a new option to enable/disable the framebuffer grabber if video is stopped:
    Default value: true
    This option can be changed live on the Hyperion.NG webinterface too.
    "framegrabber": {
        "fbGrabber": false,
    },
  • Fixed strange LED behavior when video is paused. Now the LEDs remain on the last state before video got paused.

Please have a try service.hyperion.ng-9.1.101.zip

More detail about the changes:
Amlogic: add option to disable framebuffer grabber when video is stopped
Amlogic: display the same frame on EAGAIN

1 Like

I will test it later.

All fine. But don’t found the fgrabber option in the webinterface.

I think you have to add it manual first in the config file. When it is there you will see it in the Webinterface. I don’t know yet why…

I tested it too, dont see it either.
I do see the explaination part though.
And I added it in the config too, but still no option on the webui.
And it doesnt work either when i set it on false.
All leds still work in kodi ui.

Edit1: I do remember seeing it working on my 905x box and the option there.
When I upgraded to the N2 and fresh install it was gone.

Plet check your config file again. Just add the option to the node and you will see it then after a reboot in the Webinterface.

@Portisch Is this gonna cause any conflicts with the Hyperion.ng Control addon? That works great for me right now. I have LED’s off when no video/live tv is playing and also when I pause the video (this is exactly how I want it).

No, just set it to true and hyperion works like normal.

Great! Thanks!

sometimes on seeking within a live TV record (skipping commercials) LEDs freeze on last state.
I will try your test version for the next few days and will report if its better with this version.

It still happens. It is only happening on SD channels (mpeg2)
It feels like it’s on every second skip. But sometimes it’s on the third or fourth. If it’s frozen Pause / play does not fix it. After a forward or rewind skip it works again.
If you need a sample just ping me

1 Like

Because of this post I don’t think I will apply the led-off patch:

This would need much more coding for the implementation. So best would be to request a port of this option to Hyperion.ng by the developer.

Does it also happen with a record? Or only live TV? Deactivate the addon in the settings and start it on a SSH terminal with parameter “-d” for debug. Maybe we will see some information.

Yes also on recordings. Just skip forward or backward 1-4 times and you should see LEDs stop to work. Here is a sample file: https://ufile.io/e4qrlh47
I was not able to start hyperion from command line. Could you help me with that?
I did:
hyperiond -d *path to config file which cant rembember*
but it fails

hyperiond --rootPath /storage/.kodi/userdata/addon_data/service.hyperion.ng hyperion.config.json -d
1 Like
CoreN2:~ # hyperiond --rootPath /storage/.kodi/userdata/addon_data/service.hyperion.ng hyperion.config.json -d
[hyperiond DAEMON] <DEBUG> <PythonInit.cpp:20:PythonInit()> Initializing Python interpreter
[hyperiond SettingsManager] <INFO> Selected configuration file: /storage/.kodi/userdata/addon_data/service.hyperion.ng/config/hyperion.config.json
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:129:SettingsManager()> Settings database initialized
[hyperiond EFFECTFILES] <INFO> 36 effects loaded from directory :/effects/
[hyperiond EFFECTFILES] <INFO> 19 effect schemas loaded from directory :/effects/schema/
[hyperiond EFFECTFILES] <INFO> 0 effects loaded from directory /storage/.kodi/userdata/addon_data/service.hyperion.ng/custom-effects
[hyperiond SettingsManager] <INFO> Selected configuration file: /storage/.kodi/userdata/addon_data/service.hyperion.ng/config/hyperion.config.json
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:73:SettingsManager()> Settings database initialized
[hyperiond BLACKBORDER] <DEBUG> <BlackBorderProcessor.cpp:65:handleSettingsUpdate()> Set mode to: default
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Blackborder detector: enabled
[hyperiond FLATBUFCONNECTION] <INFO> Connecting to Hyperion: 127.0.0.1:19401
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> LED device: enabled
[hyperiond LEDDEVICE] <DEBUG> <LedDeviceAdalight.cpp:53:init()> Adalight header for 188 leds: Ada 0x00 0xbb 0xee
[hyperiond LEDDEVICE] <INFO> LedDevice 'adalight' configured.
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Smoothing: enabled
[hyperiond LEDDEVICE] <INFO> Opening UART: /dev/ttyACM0
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register new input 'System/GRABBER' with priority 250 as inactive
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Framegrabber: enabled
[hyperiond BOBLIGHT] <DEBUG> <BoblightServer.cpp:24:BoblightServer()> Instance created
[hyperiond DAEMON] <INFO> Hyperion initialized
[hyperiond DAEMON] <INFO> set screen capture device to 'amlogic'
[hyperiond AMLOGICGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
[hyperiond FRAMEBUFFERGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
[hyperiond FRAMEBUFFERGRABBER] <INFO> Display opened with resolution: 1920x1080@32bit
[hyperiond AMLOGICGRABBER] <DEBUG> <AmlogicGrabber.cpp:32:AmlogicGrabber()> constructed(160 x 160), grabber device: /dev/amvideocap0
[hyperiond AMLOGICGRABBER] <INFO> Cropping image: width=160 height=160; crop: left=0 right=0 top=2 bottom=0
[hyperiond DAEMON] <INFO> AMLOGIC grabber created
[hyperiond LEDDEVICE] <DEBUG> <ProviderRs232.cpp:182:tryOpen()> Setting baud rate to 500000
[hyperiond LEDDEVICE] <DEBUG> <ProviderRs232.cpp:198:tryOpen()> Device blocked for 1500 ms
[hyperiond JSONSERVER] <DEBUG> <JsonServer.cpp:23:JsonServer()> Created instance
[hyperiond JSONSERVER] <INFO> Started on port 19444
[hyperiond AMLOGICGRABBER] <INFO> VPU mode
[hyperiond AMLOGICGRABBER] <ERROR> Read of device failed: 61 - No data available
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:231:setInputImage()> Priority 250 is now active
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:330:setCurrentTime()> Set visible priority to 250
[hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:96:handleSettingsUpdate()> Set document root to: :/webconfig
[hyperiond WEBSERVER] <INFO> Started on port 8090 name 'Hyperion Webserver'
[hyperiond LEDDEVICE] <DEBUG> <LedDeviceAdalight.cpp:80:receivedData()> >>received 4 bytes data
[hyperiond LEDDEVICE] <DEBUG> <ProviderRs232.cpp:216:writeBytes()> 34 frames dropped

Here is the hyperion output. But all this output is generated on starting hyperion while mpeg2 record is running. when skipping and LED´s freeze there is no output generated.

DMAX SD? Geht hier bei meiner H96Pro+ mit 3.14 ohne Probleme. Schau normal die HD Version. Werde es noch mit dem N2 demnächst probieren.

Did you found a solution for that? I’ve the same problem with recorded files but on the N2 and with HD material…

@Portisch, I’ve been trying to use the Hyperion.NG addon and am running into some problems.

  • The live video functionality doesn’t work. Nothing is shown. Leds do light up however (on live preview), but it’s hard to see if I’m cropping too much/little
  • Color calibration isn’t working, doesn’t connect to kodi, however I can calibrate manually so no big problem
  • RED / BLUE is swapped on the grabber (found when doing manual color calibration and looking at the LEDS on the live preview. It looks like someone already fixed this before, but is broken again with the newest release of coreelec. This is a link to the fix back then: https://hyperion-project.org/threads/coreelec-hyperion-ng.3286/#post-13727

Is there a guide somewhere I can follow to try and compile my own Kodi addon so I can try and contribute? I would like to help out, but didn’t manage to find a guide for CoreElec specifically. I did find some LibreElec guides (which I guess are similar) and have a feeling I have to edit https://github.com/CoreELEC/CoreELEC/blob/coreelec-9.2/packages/addons/service/hyperion.ng/package.mk with a later github commit, but from there on I’m a bit lost :stuck_out_tongue:

Thanks for your contributions, it’s a very cool project!

Forgot to mention, I’m running CoreElec 9.2.1 on an amlogic S912 box using the internal amlogic grabber and forwarding to my ESPixelStick (ESP8266)

Currently I doing a update of Hyperion.NG. There is a pull request pending what I wait for getting merged. If this is done it will be a big jump from now as a lot of changes will be included. Like the json config file isn’t used anymore, it’s now a hyperion.db database file.

To compile it by yourself: clone CoreELEC repo and run:
PROJECT=Amlogic-ng ARCH=arm ./scripts/create_addon hyperion.ng

To start it in debug mode:
disable the installed addon in Kodi and enter this in SSH connection:
hyperiond --rootPath /storage/.kodi/userdata/addon_data/service.hyperion.ng hyperion.config.json -d

For the future when the config file got changed to database it will be:
hyperiond --userdata /storage/.kodi/userdata/addon_data/service.hyperion.ng -d

1 Like