Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyperion! #39

Merged
merged 3 commits into from Apr 4, 2016
Merged

Hyperion! #39

merged 3 commits into from Apr 4, 2016

Conversation

@lrusak
Copy link
Member

lrusak commented Mar 19, 2016

Thanks @stefansaraev

I would like to squash and rename these commits, so let me know if you would like me to reset the author to myself.

Also, I don't think you would want to be listed as the package maintainer, in which case I can take this over.

@lrusak lrusak added the Keep Open label Mar 19, 2016
@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 19, 2016

to be clear: this will only work on wetek hardware. needs some work for rpi/imx6/generic.

also, you need to adjust 4d6d5cc for wetek play. too

Also, I don't think you would want to be listed as the package maintainer, in which case I can take this over

please do ;)

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 19, 2016

and, I think this belongs to your unofficial repo ;)

@lrusak lrusak force-pushed the lrusak:hyperion branch from e866067 to ed5290a Mar 19, 2016
@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Mar 19, 2016

Updated commit's and squashed. @CvH please test 👍

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 19, 2016

some hints:

rpi users will want: -DDENABLE_DISPMANX=1
-DENABLE_WS2812BPWM=1 and -DDENABLE_WS281XPWM dont hurt, some people may want to use ws28xx leds via spidev. (-DDENABLE_SPIDEV=1)

for hyperion-v4l support (analog grabbers) - you need protobuf. x11 for generic users.

EDIT: and protobuf is a bitch, I would not bother..

@lrusak lrusak force-pushed the lrusak:hyperion branch from ed5290a to e1f2cee Mar 19, 2016
@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Mar 19, 2016

Added a commit to allow for building on different platforms. not sure if this is the best way.

still need to do x11

@CvH CvH added the ADDONS label Mar 20, 2016
@HiassofT

This comment has been minimized.

Copy link
Member

HiassofT commented Mar 20, 2016

Thanks a lot, having a hyperion addon is highly appreciated!

Did a RPi2 build and noticed some issues:

  • patches/01_std-isnan.patch isn't picked up, it needs to be renamed to patches/hyperion-01_std-isnan.patch
  • had to remove -DENABLE_WS281XPWM=1, the source tarball contains an empty external folder (external/rpi_ws281x/mailbox.c is missing and cmake fails)
  • I had qmake-qt4 installed on the buildhost and that was picked up instead of the locally built qmake (FindQt4 searches for qmake-qt4 first, then qmake...). But that can easily be fixed by adding the -DQT_QMAKE_EXECUTABLE=$SYSROOT_PREFIX/bin/qmake cmake option

With these fixes the addon installed and worked fine on my RPi3, using the USB adalight driver.

Only a minor issue: it would be nice if .kodi/userdata/addon_data/service.hyperion could be created automatically and the hyperion.config.json.sample file copied over there.

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 20, 2016

thanks for the feedback @HiassofT

indeed, kodi/userdata/addon_data/service.hyperion is automaticaly created on first addon start, but it is not started because of a missing configfile. that was done by intention as I've got segfaults with shipped config. here a quick fix

http://sprunge.us/FJQC http://sprunge.us/ZDAJ

EDIT: and qmake is in $ROOT/$TOOLCHAIN/bin ;)

@HiassofT

This comment has been minimized.

Copy link
Member

HiassofT commented Mar 20, 2016

Running hyperion with the sample config file might be risky - it uses /dev/spidev0.0 and if an RPi user has SPI enabled and connected something else then ouch.

I found the .sample and ConditionPathExists approach cleaner, so if there's no easy solution better keep this as is.

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 20, 2016

one could sed out the spidev part (to /dev/null, /me runs). as we do for effects dir.

@lrusak lrusak force-pushed the lrusak:hyperion branch from 9f05dba to 1999e7a Mar 21, 2016
@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Mar 21, 2016

Thanks, I updated with the suggested changes

@HiassofT

This comment has been minimized.

Copy link
Member

HiassofT commented Mar 21, 2016

@lrusak we currently also need -DENABLE_WS281XPWM=0. Looks like the external dependencies (protobuf and rpi_ws281x) are also missing in the V1.00.0 release tarball.

@stefansaraev As for the config file/dir, how about something like this?
https://gist.github.com/HiassofT/b5ada3a42b4756effce1

After installation the addon_data directory is created and a .sample file put there, hyperiond won't start but log a message so users can find out why and what to do.

People will usually create hyperion.config.json from scratch using HyperCon, so we might as well drop the .sample file. Telling them to adjust the path to the effects directory would be enough IMHO.

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 22, 2016

you need stefansaraev/TB@57d4835 for next version bump

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Mar 22, 2016

and. btw, for WS281XPWM. you have to package it yourself and do:

git submodule init
git submodule update

before creating source archive.

@lrusak lrusak force-pushed the lrusak:hyperion branch from 1999e7a to 978be2b Mar 28, 2016
@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Mar 28, 2016

updated

@CvH

This comment has been minimized.

Copy link
Member

CvH commented Mar 30, 2016

fyi @brindosch has updated HyperCon (V1.01.2) and add support for LE - needs to be tested if this work.

@lrusak lrusak force-pushed the lrusak:hyperion branch from 978be2b to 979df53 Apr 1, 2016
@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Apr 1, 2016

I made a mkpkg script to recursively get the sources.

I now get an error when using -DENABLE_WS2812BPWM=1
Perhaps someone else can take a look at this? for now I will leave it disabled so hyperion builds

@InuSasha

This comment has been minimized.

Copy link
Member

InuSasha commented Apr 4, 2016

Hyperion needs the OpenGL driver as dependency (on RPi for example bcm2835-driver)

@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Apr 4, 2016

I've already added it. I'm just testing if it builds on all platforms before pushing

@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Apr 4, 2016

This should be good to go now other than the -DENABLE_WS2812BPWM=1 problem

@lrusak lrusak force-pushed the lrusak:hyperion branch from b065844 to 20b8c49 Apr 4, 2016
@lrusak lrusak removed the Keep Open label Apr 4, 2016
@HiassofT

This comment has been minimized.

Copy link
Member

HiassofT commented Apr 4, 2016

I think it's fine to leave the ws2812b driver disabled and only compile the ws281x driver. According to the Hyperion wiki it seems ws2812b was only for RPi1 and the newer ws281x works on RPi1-3
https://github.com/tvdzwan/hyperion/wiki/WS2812b-PWM-led-devices

I have to add that I have no ws2812 device and haven't used any of these drivers myself though

@lrusak

This comment has been minimized.

Copy link
Member Author

lrusak commented Apr 4, 2016

Then we should be good to merge 👍

@lrusak lrusak force-pushed the lrusak:hyperion branch from 20b8c49 to b6de973 Apr 4, 2016
@brindosch

This comment has been minimized.

Copy link

brindosch commented Apr 4, 2016

There is a little issue that is not mentioned
WS2812B driver works just for RPi1 yes, but the WS281X driver works not for RPi1 if you use WS2812B leds. (WS2811 is also another type...) Not that easy ;)

But well, it is just RPi1...

@InuSasha

This comment has been minimized.

Copy link
Member

InuSasha commented Apr 4, 2016

Tested with OE6.0.3 on RPi2: works fine, too

@chewitt

This comment has been minimized.

Copy link
Member

chewitt commented Apr 4, 2016

our RPi1 userbase is 10% the size of RPi2 so we'll take a gamble :)

@lrusak lrusak force-pushed the lrusak:hyperion branch 2 times, most recently from b725345 to 65d9faa Apr 4, 2016
lrusak added 3 commits Mar 18, 2016
right after boot, if a hardware decoded video is not yet played, asking
/dev/amvideocap0 for a frame results in -EAGAIN after a short delay.

hyperion is doing AMSTREAM_IOC_GET_VIDEO_DISABLE ioctl on /dev/amvideo
to check if video is playing. if initial state is not set, hyperion gets
confused, resulting in leds lagging until a hw decoded video is started.

this allows hyperion's regular framegrabber and amlgrabber to co-exist nicely
@lrusak lrusak force-pushed the lrusak:hyperion branch from 65d9faa to ce7e57e Apr 4, 2016
@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Apr 4, 2016

just push it and create/upload an addon so more people can test it ;)

@chewitt chewitt merged commit 0491f74 into LibreELEC:master Apr 4, 2016
@lrusak lrusak deleted the lrusak:hyperion branch Apr 5, 2016
@brindosch

This comment has been minimized.

Copy link

brindosch commented Apr 7, 2016

sorry for a little OT here: i saw a preview of the addon
http://addons.libreelec.tv/7.0/Generic/x86_64/service.hyperion/service.hyperion-7.0.0.zip
Is there a reason why you bundle no hyperion-v4l2 which is needed for screenshots if you use a usb grabber too?

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Apr 7, 2016

when I started initial packaging, it turned out that protobuf was a bitch to cross compile, and I didnt have any hardware to test it, anyway :)

I may re-try next few days if I find some time.

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Apr 7, 2016

nope. hyperion wont compile with external protobuf, too much trouble :)

@Kwiboo

This comment has been minimized.

Copy link
Member

Kwiboo commented Apr 7, 2016

@stefansaraev I use external protobuf with hyperion together with a patch to use a simple find_package to find protobuf, works for me on RPi and Generic, hope it can be of any use.

protobuf: RasPlex/OpenPHT-Embedded@9f35d28
hyperion-patch: RasPlex/OpenPHT-Embedded@62e065d#diff-97772625ba924905d80ee5787c2d186a

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Apr 7, 2016

great. thank you @Kwiboo. my initial protobuf OE package is at stefansaraev/TB@f66dc80
(needs minor adjustments for OE buildsystem)

will test your hyperion patch later tonight.

@stefansaraev

This comment has been minimized.

Copy link
Contributor

stefansaraev commented Apr 7, 2016

yep. at least compiles fine. I cant runtime test. updated my protobuf branch. /cc @lrusak last 3 commits

@stefansaraev stefansaraev mentioned this pull request Jun 12, 2016
droidbox pushed a commit to droidbox/LibreELEC.tv that referenced this pull request Jan 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
8 participants
You can’t perform that action at this time.