Giter Club home page Giter Club logo

hyperion.kodi's Introduction

Hyperion Capture for Kodi 20 (Nexus)

Latest-Release Join Translation Forum

Kodi add-on to capture video data and send it to Hyperion.

Note: This plugin does not currently work for Kodi running on Raspberry Pi. There is an outstanding Kodi fix for that.

Information about Hyperion can be found here: https://docs.hyperion-project.org/

Installation

  • Download .zip from release page and use "Install from zip file" dialog at the Kodi addons section.

hyperion.kodi's People

Contributors

brindosch avatar dependabot[bot] avatar illiac4 avatar lord-grey avatar martb avatar nicohood avatar ninovanhooff avatar paulchen-panther avatar poljvd avatar sajidmansoori12 avatar sanzoghenzo avatar stefanrvo avatar tpmodding 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

Watchers

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

hyperion.kodi's Issues

Android and the everlasting HW acceleration issue...

As most of you probably know SPMC has been discontinued ☹️ which worries me about the future. Android is not a niche platform! Most devices use it already and many will follow. The Shield TV is praised left and right to be the best Media Player but isn't supported well... I know this addon isn't android exclusive or anything but I think most of it's user base is using android.

If hardware acceleration is turned off on any kodi build playback just stutters. Are we stuck with SPMC for ever?

Anyone else here who has the same concerns?

btw. I hate that you guys removed the fps option! what is it set to? could you tell me? I still use the previous version which still has this setting and I set it to 60fps.

and after my suggestion you added the delay option, but it's super hard to use. Do you know how cumbersome it is to navigate the whole menu back and forth? playing a file looking if the delay is set right noticing it's not stoping the video going back changing the value again just to notice it's still not right! after many many tries I gave up. It's like there is no difference!

I know you sacrifice your free time and owe me / us nothing and believe me I'm super grateful for this addon! but like I mentioned I'm just worried about the future and would like to know what you have to say.

Settings / Out Of Sync / Update Problems >:(

Hi guys,

I have some pretty annoying problems which are getting on my nerves and ruining my experience.

My Setup:

Client: NVIDIA Shield TV (FW:3.1) running SPMC newest version.
Master: Raspberry Pi 2 with Raspbian

My Settings:

Grabber picture width (pixel) 256
Grabber picture height (pixel) 192
Frame rate (fps) 60

  1. Out Of Sync
    I have the Setting in SPMC Adjust display refresh rate at on (more specific It says Always).
    (Settings>Video>Playback>Adjust display refresh rate)

Most movies playback at 24fps/24Hz our European plays at 25fps/50Hz and then some other content I have playback at 30fps/60Hz! And I wanna keep that setting on because otherwise I see stutters.

With my current settings playing 24fps/24Hz content causes the LED's to be out of sync! If I use the Standard Setting Frame rate (fps) 10 24fps/24Hz is fine but then on other content the LED's are not moving fluid...

How can I achieve that the plugin notices the change in fps/Hz?

Turning Adjust display refresh rate on or off at the Master (RasPi) didn't solve this issue either.

I don't know what to do anymore. Help please.

  1. Settings

I couldn't find a place where the Settings Menu of this Plugin was explained!

I don't know if I did the Settings right or wrong! because they are not explained.

The NVIDIA Shield is extremely powerful as you may know if you are familiar with it. Therefore I can crank up the pixel count and it won't slow down. But what is the right Setting for me? Does (pixel) mean the amount of the LED's I have? Do I have to input the amount of Led's I have in there? What about fps? Can someone please explain it to me? I want the best/precise outcome possible. Can someone tell me their Settings just to compare?

  1. Update Problems

Right now the newest version is 1.0.3 I believe. After updating it says failed... does anyone else experience this?

Debug output not visible

I might be making an obvious mistake, but I cannot see any debug logging. Is there a setting in the addon I need to enable? I only enabled debugging in th system menu and expected to see messages for the capture states eg. log("Entering connected state")

19:38:25 T:1497058728  NOTICE: Log level changed to "LOG_LEVEL_DEBUG_FREEMEM"
19:38:25 T:1497058728  NOTICE: Enabled debug logging due to GUI setting. Level 2.
19:38:25 T:1497058728   DEBUG: ------ Window Init () ------
19:38:27 T:1497058728   DEBUG: Keyboard: scancode: 0x6f, sym: 0x001b, unicode: 0x0000, modifier: 0x0
19:38:27 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): escape (0xf01b) pressed, action is activatewindow(home)
19:38:27 T:1497058728   DEBUG: Activating window ID: 10000
19:38:28 T:1497058728   DEBUG: ------ Window Deinit (SettingsCategory.xml) ------
19:38:28 T:1497058728   DEBUG: ------ Window Init (Home.xml) ------
19:38:29 T:1497058728   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:38:29 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:38:29 T:1497058728   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:38:29 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:38:29 T:1497058728   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:38:29 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:38:29 T:1497058728   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:38:29 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:38:29 T:1497058728   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:38:29 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:38:29 T:1497058728   DEBUG: Keyboard: scancode: 0x15, sym: 0x0114, unicode: 0x0000, modifier: 0x0
19:38:29 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): left (0xf082) pressed, action is Left
19:38:32 T:1497058728   DEBUG: Keyboard: scancode: 0x13, sym: 0x0111, unicode: 0x0000, modifier: 0x0
19:38:32 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): up (0xf080) pressed, action is Up
19:38:33 T:1497058728   DEBUG: Keyboard: scancode: 0x42, sym: 0x000d, unicode: 0x000a, modifier: 0x0
19:38:33 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): return (0xf00d) pressed, action is Select
19:38:33 T:1497058728   DEBUG: CAnnouncementManager - Announcement: OnClear from xbmc
19:38:33 T:1497058728   DEBUG: GOT ANNOUNCEMENT, type: 2, from xbmc, message OnClear
19:38:33 T:1497058728   DEBUG: Loading settings for smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers(smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv)
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: system rules
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: system rules
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtv
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: hdhomerun/myth/mms/udp
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: lastfm/shout
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtmp
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtsp
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: streams
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvd
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvdimage
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: sdp/asf
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: nsv
19:38:33 T:1497058728   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: radio
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: matched 0 rules with players
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: adding videodefaultplayer (1)
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=0
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=1
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: DVDPlayer (1)
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: ubuntuXBMC (4)
19:38:33 T:1497058728   DEBUG: CPlayerCoreFactory::GetPlayers: added 2 players
19:38:33 T:1497058728  NOTICE: DVDPlayer: Opening: smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv
19:38:33 T:1497058728 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
19:38:33 T:1497058728   DEBUG: CRenderManager::UpdateDisplayLatency - Latency set to 0 msec
19:38:33 T:1497058728   DEBUG: LinuxRendererGL: Cleaning up GL resources
19:38:33 T:1878468000  NOTICE: Thread DVDPlayer start, auto delete: false
19:38:33 T:1878468000  NOTICE: Creating InputStream
19:38:33 T:1813709456  NOTICE: script.lazytvservice : 1335.183623 :: 36.699987 :::  - notification!
19:38:34 T:1878468000   DEBUG: CSMBFile::Open - opened volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv, fd=10000
19:38:34 T:1497058728   DEBUG: ------ Window Init (DialogBusy.xml) ------
19:38:34 T:1878468000   DEBUG: static void CUtil::ScanForExternalSubtitles(const string&, std::vector<std::basic_string<char> >&): Searching for subtitles...
19:38:34 T:1878468000   DEBUG: static void CUtil::ScanForExternalSubtitles(const string&, std::vector<std::basic_string<char> >&): END (total time: 596 ms)
19:38:34 T:1878468000  NOTICE: Creating Demuxer
19:38:34 T:1878468000   DEBUG: bool CDVDDemuxFFmpeg::Open(CDVDInputStream*, bool, bool) - probing detected format [matroska,webm]
19:38:34 T:1878468000   DEBUG: bool CDVDDemuxFFmpeg::Open(CDVDInputStream*, bool, bool) - avformat_find_stream_info starting
19:38:35 T:1878468000   DEBUG: bool CDVDDemuxFFmpeg::Open(CDVDInputStream*, bool, bool) - av_find_stream_info finished
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]: Input #0, matroska,webm, from 'smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv':
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]:   Metadata:
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]:     encoder         : libebml v1.3.1 + libmatroska v1.4.2
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]:     creation_time   : 2015-11-07 09:55:23
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]:   Duration: 00:22:00.48, start: 0.000000, bitrate: 8879 kb/s
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]:     Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709), 1918x1080 [SAR 1:1 DAR 959:540], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
19:38:35 T:1878468000    INFO: ffmpeg[6FF725A0]:     Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 384 kb/s (default)
19:38:35 T:1878468000   DEBUG: CDVDDemuxFFmpeg::AddStream(0, ...) -> 0
19:38:35 T:1878468000   DEBUG: CDVDDemuxFFmpeg::AddStream(1, ...) -> 1
19:38:35 T:1878468000  NOTICE: Opening stream: 0 source: 256
19:38:35 T:1878468000  NOTICE: Creating video codec with codec id: 28
19:38:35 T:1878468000   DEBUG: CDVDFactoryCodec: compiled in hardware support: AMCodec:yes MediaCodec:yes OpenMax:no libstagefright:yes RKlibstagefright:yes VDPAU:no VAAPI:no iMXVPU:no
19:38:35 T:1878468000    INFO: MediaCodec Video Decoder...
19:38:35 T:1878468000   DEBUG: FactoryCodec - Video: mediacodec - Opening
19:38:35 T:1878468000    INFO: CBitstreamConverter::Open bitstream to annexb init
19:38:35 T:1878468000   DEBUG: CDVDVideoCodecAndroidMediaCodec::Open m_codecname(OMX.Nvidia.h264.decode), colorFormat(19)
19:38:35 T:1878468000   DEBUG: CDVDVideoCodecAndroidMediaCodec:: width(1918), height(1080), stride(0), slice-height(0), color-format(0)
19:38:35 T:1878468000   DEBUG: CDVDVideoCodecAndroidMediaCodec:: crop-left(0), crop-top(0), crop-right(0), crop-bottom(0)
19:38:35 T:1878468000   DEBUG: CDVDVideoCodecAndroidMediaCodec:: Direct Surface Rendering
19:38:35 T:1878468000    INFO: CDVDVideoCodecAndroidMediaCodec:: Open Android MediaCodec OMX.Nvidia.h264.decode
19:38:35 T:1878468000   DEBUG: FactoryCodec - Video: amc-h264 - Opened
19:38:35 T:1878468000  NOTICE: Creating video thread
19:38:35 T:1921903880  NOTICE: Thread DVDPlayerVideo start, auto delete: false
19:38:35 T:1878468000  NOTICE: Opening stream: 1 source: 256
19:38:35 T:1921903880  NOTICE: running thread: video_thread
19:38:35 T:1878468000  NOTICE: Finding audio codec for: 86019
19:38:35 T:1878468000   DEBUG: FactoryCodec - Audio: passthrough - Opening
19:38:35 T:1878468000   DEBUG: FactoryCodec - Audio: passthrough - Failed
19:38:35 T:1878468000   DEBUG: FactoryCodec - Audio: FFmpeg - Opening
19:38:35 T:1878468000   DEBUG: FactoryCodec - Audio: FFmpeg - Opened
19:38:35 T:1878468000  NOTICE: Creating audio thread
19:38:35 T:1883305696  NOTICE: Thread DVDPlayerAudio start, auto delete: false
19:38:35 T:1921903880   DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
19:38:35 T:1878468000   DEBUG: bool CEdl::ReadEditDecisionLists(const string&, float, int) - Checking for edit decision lists (EDL) on local drive or remote share for: smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv
19:38:35 T:1883305696  NOTICE: running thread: CDVDPlayerAudio::Process()
19:38:35 T:1883305696   DEBUG: CDVDPlayerAudio - CDVDMsg::GENERAL_SYNCHRONIZE
19:38:35 T:1878468000   DEBUG: virtual void CApplication::OnPlayBackStarted(): play state was 1, starting 1
19:38:35 T:1878468000   DEBUG: CDVDPlayer::SetCaching - caching state 3
19:38:35 T:1921903880    INFO: CDVDPlayerVideo - Stillframe left, switching to normal playback
19:38:35 T:1497058728   DEBUG: PlayBackRet CApplication::PlayFile(const CFileItem&, bool): OpenFile succeed, play state 2
19:38:35 T:1497058728   DEBUG: virtual void CApplication::OnPlayBackStarted(): play state was 2, starting 0
19:38:35 T:1921903880   DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_RESYNC(160000.000000, 0)
19:38:35 T:1883305696  NOTICE: Creating audio stream (codec id: 86019, channels: 2, sample rate: 48000, no pass-through)
19:38:35 T:1883305696   DEBUG: CDVDPlayerAudio:: synctype set to 0: clock feedback
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 1336.765447 :: 1.581824 :::  - Playbackstarted
19:38:35 T:1643339176    INFO: CActiveAESink::OpenSink - initialize sink
19:38:35 T:1643339176   DEBUG: CActiveAESink::OpenSink - trying to open device AUDIOTRACK:AudioTrack
19:38:35 T:1643339176   DEBUG: CActiveAESink::OpenSink - AUDIOTRACK Initialized:
19:38:35 T:1643339176   DEBUG:   Output Device : android
19:38:35 T:1643339176   DEBUG:   Sample Rate   : 48000
19:38:35 T:1643339176   DEBUG:   Sample Format : AE_FMT_S16NE
19:38:35 T:1643339176   DEBUG:   Channel Count : 2
19:38:35 T:1643339176   DEBUG:   Channel Layout: FL,FR
19:38:35 T:1643339176   DEBUG:   Frames        : 2048
19:38:35 T:1643339176   DEBUG:   Frame Samples : 4096
19:38:35 T:1643339176   DEBUG:   Frame Size    : 4
19:38:35 T:1643726176   DEBUG: CActiveAE::ClearDiscardedBuffers - buffer pool deleted
19:38:35 T:1878468000   DEBUG: Previous line repeats 1 times.
19:38:35 T:1878468000   DEBUG: CDVDPlayer::HandleMessages - player started 1
19:38:35 T:1813709456   DEBUG: int CVideoDatabase::GetMovieId(const string&) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idMovie from movie where idFile=3100
19:38:35 T:1813709456   DEBUG: int CVideoDatabase::GetEpisodeId(const string&, int, int) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idEpisode from episode where idFile=3100
19:38:35 T:1921903880   DEBUG: CDVDVideoCodecAndroidMediaCodec:: width(1920), height(1088), stride(1920), slice-height(0), color-format(256)
19:38:35 T:1921903880   DEBUG: CDVDVideoCodecAndroidMediaCodec:: crop-left(0), crop-top(0), crop-right(1917), crop-bottom(1079)
19:38:35 T:1921903880   DEBUG: CDVDVideoCodecAndroidMediaCodec:: Direct Surface Rendering
19:38:35 T:1921903880   DEBUG: CDVDVideoCodecAndroidMediaCodec:: BUFFER_FLAG_CODEC_CONFIG
19:38:35 T:1497058728   DEBUG: CGUIInfoManager::SetCurrentMovie(smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv)
19:38:35 T:1921903880  NOTICE:  fps: 25.000000, pwidth: 1920, pheight: 1088, dwidth: 1920, dheight: 1081
19:38:35 T:1921903880   DEBUG: int CDVDPlayerVideo::OutputPicture(const DVDVideoPicture*, double) - change configuration. 1920x1088. framerate: 25.00. format: MEDIACODEC
19:38:35 T:1921903880  NOTICE: Display resolution DESKTOP : 1920x1080 @ 60.00 - Full Screen (16)
19:38:35 T:1921903880   DEBUG: CXBMCRenderManager::Configure - 2
19:38:35 T:1497058728   DEBUG: int CVideoDatabase::GetMovieId(const string&) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idMovie from movie where idFile=3100
19:38:35 T:1497058728   DEBUG: int CVideoDatabase::GetEpisodeId(const string&, int, int) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idEpisode from episode where idFile=3100
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.240887 :: 0.240887 :::  - this is playing = {u'item': {u'tvshowid': 9, u'episode': 15, u'resume': {u'position': 0, u'total': 0}, u'season': 1, u'label': u'Relic', u'playcount': 1, u'type': u'episode', u'id': 271, u'showtitle': u'Thunderbirds Are Go!'}}
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.241594 :: 0.000707 :::  - nextprompt override
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.242225 :: 0.000631 ::: prevcheck - False
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.242667 :: 0.000442 :::  - LazyPlayer supplied showid = 9
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.242969 :: 0.000302 :::  - LazyPlayer supplied epid = 271
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.243191 :: 0.000222 :::  - Playbackstarted_End
19:38:35 T:1497058728   DEBUG: int CVideoDatabase::GetMovieId(const string&) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idMovie from movie where idFile=3100
19:38:35 T:1497058728   DEBUG: int CVideoDatabase::GetEpisodeId(const string&, int, int) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idEpisode from episode where idFile=3100
19:38:35 T:1497058728   DEBUG: CAnnouncementManager - Announcement: OnPlay from xbmc
19:38:35 T:1497058728   DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnPlay
19:38:35 T:1497058728   DEBUG: UPnP: Building didl for object 'smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv'
19:38:35 T:1497058728   DEBUG: Activating window ID: 12005
19:38:35 T:1497058728   DEBUG: ------ Window Deinit (Home.xml) ------
19:38:35 T:1497058728   DEBUG: ------ Window Init (VideoFullScreen.xml) ------
19:38:35 T:1813709456  NOTICE: script.lazytvservice : 0.343749 :: 0.100558 :::  - notification!
19:38:35 T:1497058728  NOTICE: Using GL_TEXTURE_2D
19:38:35 T:1497058728   DEBUG: GL: Requested render method: 0
19:38:35 T:1497058728  NOTICE: GL: Using MediaCodec render method
19:38:35 T:1497058728  NOTICE: GL: NPOT texture support detected
19:38:35 T:1497058728   DEBUG: ------ Window Deinit (DialogBusy.xml) ------
19:38:35 T:1878468000   DEBUG: CDVDPlayer::HandleMessages - player started 2
19:38:35 T:1878468000   DEBUG: CDVDPlayer::SetCaching - caching state 0
19:38:35 T:1883305696   DEBUG: CDVDPlayerAudio - CDVDMsg::GENERAL_RESYNC(32000.000000, 1)
19:38:35 T:1883305696   DEBUG: CDVDClock::Discontinuity - CDVDPlayerAudio::HandleSyncError1 - was:-79720.334853, should be:-79705.334853, error:15.000000
19:38:36 T:1813710176   DEBUG: int CVideoDatabase::GetMovieId(const string&) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idMovie from movie where idFile=3100
19:38:36 T:1813710176   DEBUG: int CVideoDatabase::GetEpisodeId(const string&, int, int) (smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv), query = select idEpisode from episode where idFile=3100
19:38:36 T:1813710176   DEBUG: int CVideoDatabase::RunQuery(const string&) took 11 ms for 15 items query: select * from episodeview  WHERE (episodeview.idShow = 9) AND ((episodeview.c12 = 1 or (episodeview.c12 = 0 and (episodeview.c15 = 0 or episodeview.c15 = 1))))
19:38:36 T:1813710176   DEBUG: DatabaseUtils::GetSortFieldList: unknown field 25
19:38:37 T:1883305696   DEBUG: CDVDClock::Discontinuity - CDVDPlayerAudio::HandleSyncError2 - was:1941431.665147, should be:1916438.798805, error:-24992.866342
19:38:37 T:1813710176   ERROR: /storage/sdcard0/Android/data/com.semperpax.spmc/files/.spmc/addons/script.module.requests/lib/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
                                              InsecurePlatformWarning
19:38:38 T:1497058728   DEBUG: Keyboard: scancode: 0x56, sym: 0x00b2, unicode: 0x0000, modifier: 0x0
19:38:38 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): stop (0xf0bc) pressed, action is Stop
19:38:38 T:1497058728  NOTICE: CDVDPlayer::CloseFile()
19:38:38 T:1497058728  NOTICE: DVDPlayer: waiting for threads to exit
19:38:38 T:1878468000  NOTICE: CDVDPlayer::OnExit()
19:38:38 T:1878468000  NOTICE: Closing stream player 1
19:38:38 T:1878468000  NOTICE: Waiting for audio thread to exit
19:38:38 T:1883305696  NOTICE: thread end: CDVDPlayerAudio::OnExit()
19:38:38 T:1883305696   DEBUG: Thread DVDPlayerAudio 1883305696 terminating
19:38:38 T:1878468000  NOTICE: Closing audio device
19:38:38 T:1643726176   DEBUG: CActiveAE::DiscardStream - audio stream deleted
19:38:38 T:1643726176   DEBUG: CActiveAE::ClearDiscardedBuffers - buffer pool deleted
19:38:38 T:1643339176   DEBUG: Previous line repeats 1 times.
19:38:38 T:1643339176    INFO: CActiveAESink::OpenSink - initialize sink
19:38:38 T:1878468000  NOTICE: Deleting audio codec
19:38:38 T:1878468000  NOTICE: Closing stream player 2
19:38:38 T:1878468000  NOTICE: waiting for video thread to exit
19:38:38 T:1643339176   DEBUG: CActiveAESink::OpenSink - trying to open device AUDIOTRACK:AudioTrack
19:38:38 T:1921903880  NOTICE: thread end: video_thread
19:38:38 T:1921903880   DEBUG: Thread DVDPlayerVideo 1921903880 terminating
19:38:38 T:1878468000  NOTICE: deleting video codec
19:38:38 T:1643339176   DEBUG: CActiveAESink::OpenSink - AUDIOTRACK Initialized:
19:38:38 T:1643339176   DEBUG:   Output Device : android
19:38:38 T:1643339176   DEBUG:   Sample Rate   : 44100
19:38:38 T:1643339176   DEBUG:   Sample Format : AE_FMT_S16NE
19:38:38 T:1643339176   DEBUG:   Channel Count : 2
19:38:38 T:1643339176   DEBUG:   Channel Layout: FL,FR
19:38:38 T:1643339176   DEBUG:   Frames        : 1881
19:38:38 T:1643339176   DEBUG:   Frame Samples : 3762
19:38:38 T:1643339176   DEBUG:   Frame Size    : 4
19:38:38 T:1643726176   DEBUG: CActiveAE::ClearDiscardedBuffers - buffer pool deleted
19:38:39 T:1878468000   DEBUG: CSMBFile::Close closing fd 10000
19:38:39 T:1878468000   DEBUG: virtual void CApplication::OnPlayBackStopped(): play state was 2, starting 0
19:38:39 T:1878468000   DEBUG: CAnnouncementManager - Announcement: OnStop from xbmc
19:38:39 T:1878468000   DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnStop
19:38:39 T:1497058728  NOTICE: DVDPlayer: finished waiting
19:38:39 T:1497058728   DEBUG: LinuxRendererGL: Cleaning up GL resources
19:38:39 T:1497058728   DEBUG: CGUIWindowManager::PreviousWindow: Deactivate
19:38:39 T:1497058728   DEBUG: ------ Window Deinit (VideoFullScreen.xml) ------
19:38:39 T:1878468000   DEBUG: Thread DVDPlayer 1878468000 terminating
19:38:39 T:1497058728   DEBUG: CGUIWindowManager::PreviousWindow: Activate new
19:38:39 T:1497058728   DEBUG: ------ Window Init (Home.xml) ------
19:38:39 T:1497058728  NOTICE: CDVDPlayer::CloseFile()
19:38:39 T:1497058728  NOTICE: DVDPlayer: waiting for threads to exit
19:38:39 T:1497058728  NOTICE: DVDPlayer: finished waiting
19:38:39 T:1497058728   DEBUG: LinuxRendererGL: Cleaning up GL resources
19:38:39 T:1497058728  NOTICE: CDVDPlayer::CloseFile()
19:38:39 T:1497058728  NOTICE: DVDPlayer: waiting for threads to exit
19:38:39 T:1497058728  NOTICE: DVDPlayer: finished waiting
19:38:39 T:1497058728   DEBUG: LinuxRendererGL: Cleaning up GL resources
19:38:39 T:1813709456   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.KeyError'>
                                            Error Contents: ('tvshowid',)
                                            Traceback (most recent call last):
                                              File "/storage/sdcard0/Android/data/com.semperpax.spmc/files/.spmc/addons/script.lazytv/service.py", line 357, in onPlayBackStopped
                                                pre_showid  = Main.nextprompt_info['tvshowid']
                                            KeyError: ('tvshowid',)
                                            -->End of Python script error report<--
19:38:39 T:1813709456  NOTICE: script.lazytvservice : 3.837800 :: 3.494051 :::  - notification!
19:38:39 T:1859367736   DEBUG: virtual bool CSaveFileStateJob::DoWork() - Saving file state for video item smb://192.168.2.1/volume1/complete/TV/Thunderbirds Are Go!/Season 01/Thunderbirds Are Go! - S01E15 - Relic.mkv
19:38:40 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:40 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:40 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:40 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:40 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:40 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:40 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:40 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:40 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:40 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:40 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:40 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:41 T:1497058728   DEBUG: Keyboard: scancode: 0x42, sym: 0x000d, unicode: 0x000a, modifier: 0x0
19:38:41 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): return (0xf00d) pressed, action is Select
19:38:41 T:1497058728   DEBUG: Activating window ID: 10004
19:38:42 T:1497058728   DEBUG: ------ Window Deinit (Home.xml) ------
19:38:42 T:1497058728   DEBUG: ------ Window Init (Settings.xml) ------
19:38:43 T:1497058728   DEBUG: Keyboard: scancode: 0x42, sym: 0x000d, unicode: 0x000a, modifier: 0x0
19:38:43 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): return (0xf00d) pressed, action is Select
19:38:43 T:1497058728   DEBUG: Activating window ID: 10016
19:38:43 T:1497058728   DEBUG: ------ Window Deinit (Settings.xml) ------
19:38:43 T:1497058728   DEBUG: ------ Window Init (SettingsCategory.xml) ------
19:38:45 T:1497058728   DEBUG: ------ Window Init (DialogKaiToast.xml) ------
19:38:45 T:1497058728   DEBUG: SECTION:LoadDLL(libImageLib-arm.so)
19:38:45 T:1497058728   DEBUG: Loading: /data/data/com.semperpax.spmc/lib/libImageLib-arm.so
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:46 T:1497058728   DEBUG: Keyboard: scancode: 0x14, sym: 0x0112, unicode: 0x0000, modifier: 0x0
19:38:46 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): down (0xf081) pressed, action is Down
19:38:47 T:1497058728   DEBUG: Keyboard: scancode: 0x13, sym: 0x0111, unicode: 0x0000, modifier: 0x0
19:38:47 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): up (0xf080) pressed, action is Up
19:38:47 T:1497058728   DEBUG: Keyboard: scancode: 0x16, sym: 0x0113, unicode: 0x0000, modifier: 0x0
19:38:47 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): right (0xf083) pressed, action is Right
19:38:48 T:1497058728   DEBUG: Keyboard: scancode: 0x42, sym: 0x000d, unicode: 0x000a, modifier: 0x0
19:38:48 T:1497058728   DEBUG: bool CApplication::OnKey(const CKey&): return (0xf00d) pressed, action is Select
19:38:48 T:1497058728  NOTICE: Disabled debug logging due to GUI setting. Level 0.
19:38:48 T:1497058728  NOTICE: Log level changed to "LOG_LEVEL_NORMAL"

Not Working

I have checked PROTO server port and it is not a Hyperion output issue as when it boots up, the rainbow animation plays.

Error Type: <type 'exceptions.AttributeError'>

21:59:44 T:140095424284416 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.AttributeError'>
Error Contents: 'xbmc.RenderCapture' object has no attribute 'waitForCaptureStateChangeEvent'
Traceback (most recent call last):
File "/storage/.kodi/addons/script.service.hyperion-master/addon.py", line 48, in
next_state = state.execute()
File "/storage/.kodi/addons/script.service.hyperion-master/resources/lib/state.py", line 103, in execute
self.__capture.waitForCaptureStateChangeEvent(200)
AttributeError: 'xbmc.RenderCapture' object has no attribute 'waitForCaptureStateChangeEvent'
-->End of Python script error report<--

3D SBS (or TAB) and Hyperion for Kodi with Ubuntu ?

Hi,
I'm using Hyperion and it's a very good soft, thanks !
I have a question : does Hyperion for Kodi with Ubuntu manage 3D SBS or TAB ? If yes, how can I do to do that ? If not, does it support it on the future ?
I don't know if it's easily to scan only half of a screen with Hyperion but it could be the solution.
Thanks !

Small laggs with Addon enables

Hi,
im using this addon combined with Hyperion for a long time now. Its working pretty nice, but i always noticed some small laggs and i was wondering if my eyes are crossed or the movie really laggs. So today i found some things out:
I watched the end of Batman Dark Knight, and there you could see the laggs pretty good. (i mean the part with the text, the credits). The movie is in 1080p. I tried using Full Screen mode and this full Screen Windows mode.
The Full Windows mode is actually a stuttering for some time, and then fluent again. (ca 3-5 sek each).
The Full Screen mode is more are little lagg after some time (3-5sek here too). So the credits moved up a little bit more than normal.
I was wondering if my PC is too slow, xbmc or the hdd. My PC is an i5 with an ssd and all that stuff. Shouldnt be the Problem. I also played the Video with VLC Player in Full Screen. No Problem. So the HDD via usb3 should work fine. I tried disabling the addon and voila! Video is fluent. Enabled.. Video is laggy :(((

Is there a tip, a solution you can provide to fix this? Did you ever notic this? You have to look from far away i would say. Im using the newest 12.x XBMC, i think its called Frodo and the newest Hyperion addon (i think there is only 1.0.0) and the newest Raspberry build. Please help :)

Running Addon on Android ?

Hi !

Since there are now XBMC running on Android, will this addon works on these devices ? Does the screen grabbing works without other libraries / dependencies ?

Bye !

subtitles capture - disable

I guess this is part of the requests I've seen here to add grab options like in kodichecker...
currently add-on capture everything on screen (OSD and Subtitles)

is there a workaround way to disable the capture of the subtitles?

Thanks!

addon does crash on start, log mentions protobuf [solved]

If you have the following error

19:27:57.645 T:140713844041472   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.TypeError'>
                                            Error Contents: Couldn't build proto file into descriptor pool!
                                            Invalid proto descriptor for file "message.proto":
                                              proto.ColorRequest.colorRequest: Message extensions cannot have required fields.
                                              proto.ImageRequest.imageRequest: Message extensions cannot have required fields.
                                              proto.ClearRequest.clearRequest: Message extensions cannot have required fields.
 
                                            Traceback (most recent call last):
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/addon.py", line 36, in <module>
                                                from state import DisconnectedState
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/resources/lib/state.py", line 27, in <module>
                                                from hyperion.Hyperion import Hyperion
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/resources/lib/hyperion/Hyperion.py", line 28, in <module>
                                                from message_pb2 import HyperionRequest
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/resources/lib/hyperion/message_pb2.py", line 14, in <module>
                                                serialized_pb='\n\rmessage.proto\x12\x05proto\"\x82\x01\n\x0fHyperionRequest\x12/\n\x07\x63ommand\x18\x01 \x02(\x0e\x32\x1e.proto.HyperionRequest.Command\"8\n\x07\x43ommand\x12\t\n\x05\x43OLOR\x10\x01\x12\t\n\x05IMAGE\x10\x02\x12\t\n\x05\x43LEAR\x10\x03\x12\x0c\n\x08\x43LEARALL\x10\x04*\x04\x08\n\x10\x65\"\x87\x01\n\x0c\x43olorRequest\x12\x10\n\x08priority\x18\x01 \x02(\x05\x12\x10\n\x08rgbColor\x18\x02 \x02(\x05\x12\x10\n\x08\x64uration\x18\x03 \x01(\x05\x32\x41\n\x0c\x63olorRequest\x12\x16.proto.HyperionRequest\x18\n \x02(\x0b\x32\x13.proto.ColorRequest\"\xb1\x01\n\x0cImageRequest\x12\x10\n\x08priority\x18\x01 \x02(\x05\x12\x12\n\nimagewidth\x18\x02 \x02(\x05\x12\x13\n\x0bimageheight\x18\x03 \x02(\x05\x12\x11\n\timagedata\x18\x04 \x02(\x0c\x12\x10\n\x08\x64uration\x18\x05 \x01(\x05\x32\x41\n\x0cimageRequest\x12\x16.proto.HyperionRequest\x18\x0b \x02(\x0b\x32\x13.proto.ImageRequest\"c\n\x0c\x43learRequest\x12\x10\n\x08priority\x18\x01 \x02(\x05\x32\x41\n\x0c\x63learRequest\x12\x16.proto.HyperionRequest\x18\x0c \x02(\x0b\x32\x13.proto.ClearRequest\"/\n\rHyperionReply\x12\x0f\n\x07success\x18\x01 \x02(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t')
                                              File "/home/trampi/.local/lib/python2.7/site-packages/google/protobuf/descriptor.py", line 878, in __new__
                                                return _message.default_pool.AddSerializedFile(serialized_pb)
                                            TypeError: Couldn't build proto file into descriptor pool!
                                            Invalid proto descriptor for file "message.proto":
                                              proto.ColorRequest.colorRequest: Message extensions cannot have required fields.
                                              proto.ImageRequest.imageRequest: Message extensions cannot have required fields.
                                              proto.ClearRequest.clearRequest: Message extensions cannot have required fields.
 
                                            -->End of Python script error report<--
19:28:06.799 T:140715759670464  NOTICE: CWebServer[8080]: Started
19:28:16.724 T:140715759670464  NOTICE: ES: Stopping event server with confirmation
19:28:17.408 T:140713555633920  NOTICE: ES: UDP Event server stopped
19:28:17.408 T:140713555633920  NOTICE: ES: Starting UDP Event server on port 9777
19:28:18.397 T:140715759670464   ERROR: JSONRPC Server: Failed to connect to sdpd
19:28:18.397 T:140713555633920  NOTICE: UDP: Listening on port 9777 (ipv6 : true)
19:29:03.833 T:140713824696064   ERROR: GetDirectory - Error getting
19:29:25.234 T:140712638260992   ERROR: Previous line repeats 9 times.
19:29:25.234 T:140712638260992   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.TypeError'>
                                            Error Contents: A Message class can only inherit from Message
                                            Traceback (most recent call last):
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/addon.py", line 36, in <module>
                                                from state import DisconnectedState
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/resources/lib/state.py", line 27, in <module>
                                                from hyperion.Hyperion import Hyperion
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/resources/lib/hyperion/Hyperion.py", line 28, in <module>
                                                from message_pb2 import HyperionRequest
                                              File "/home/trampi/.kodi/addons/script.service.hyperion/resources/lib/hyperion/message_pb2.py", line 6, in <module>
                                                from google.protobuf import descriptor_pb2
                                              File "/home/trampi/.local/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.py", line 1840, in <module>
                                                __module__ = 'google.protobuf.descriptor_pb2'
                                            TypeError: A Message class can only inherit from Message
                                            -->End of Python script error report<--

then reinstall protobuf via:

pip uninstall protobuf
pip install --no-binary=protobuf protobuf

can solve your problem.
Happened under Kodi 18.2 and 17.x.
A rollback of protobuf solved the problem. Documenting it here in case anyone else googles and doesn't find anything.

unable to send image 32101

Hi.
I'm running Kodi with this script on Ubuntu 14.04.1 LTS - KODIbuntu (GNU/Linux 3.13.0-44-generic x86_64). Hyperion daemon is running on a BananaPi with Debian Wheezy Bananian OS. WS2801 are connected directly on the BPI over GPIO SPI.
Communication over LAN works fine; I can set colors and effects from HTPC over LAN just fine. First test with video files was successful too.
Then on the next day I continued with setting up the system and configured lirc. Once that was done I started a video and got a popup "Unable to send image to server".
I checked the server on the BPi and saw it had stopped. So I started it manually from a ssh and got this response from hyperion when a video is played:

Json connection closed
New json connection
hyperiond: /root/hyperion/dependencies/build/jsoncpp/json_value.cpp:1176: const Json::Value& Json::Value::operator[](const char*) const: Assertion `type_ == nullValue || type_ == objectValue' failed.
[1] 2284 abort (core dumped) hyperiond /etc/hyperion.config.json

Do you have any idea, what might be causing this error and/or what can be done to fix it?

Enable addon (grabbing) setting doesn’t work

Hey
Doesn’t matter whether I enable or disable this option in Hyperion settings in Kodi, the lights are always turned on.
Only workaround is to disable the addon completely, which unfortunately makes Kodi freeze when something is playing back meanwhile.

LEDs go out in dark scenes..

If at Kodi (15.2/16) a video is played in those dark scenes, the LEDs go out. Of course, go everything is black out but if they then hang the video afterwards if it continues. So the LEDs are off about 2-3 seconds. Is there a log where you can see what's going on? Is it in the video Dark, Night Scene, and only a few LEDs dark blue or brown to go from hyperion. It starts as I said a few seconds delay. If one then is startled one day to Scene when the room is bright at once.

in deutsch:
Wenn bei Kodi ein Video abgespielt wird in denen dunklen Szenen sind, gehen die LEDs aus. Natürlich gehen die aus wenn alles Schwarz ist aber sie hängen dann dem Video hinterher wenn es weiter läuft. Also die LEDs sind etwa 2-3 Sekunden aus. Gibt es ein Log wo man schauen kann was los ist? Ist es im Video dunkel, Nacht Szene, und nur einige LEDs zeigen dunkel blau oder braun an geht hyperion aus. Es startet wie gesagt mit einigen sekunden Verzögerung. Hat man dann eine Tag Szene erschrickt man wenn auf einmal das Zimmer hell wird.

Hyperion plugin - blinking screen

Hi!
I am trying to use this plugin but it (or maybe other component of Kodi) has some problems regarding displayed video.

On some channels, with Hyperion plugin enabled I have strange video flicker on screen:

https://www.youtube.com/shorts/noP_MG-Vmnc

This flickering goes away just after I disable this Hyperion plugin.

Part of Kodi log below:

2024-01-23 12:19:04.333 T:5504 info : [Hyperion Ambilight] - Establishing connection to hyperion at 192.168.15.48:19445
2024-01-23 12:19:04.340 T:5491 info : PulseAudio: Opened device Default in pcm mode with Buffersize 150 ms Periodsize 50 ms
2024-01-23 12:19:04.486 T:5555 info : (VDPAU) screenWidth:1920 vidWidth:1920 surfaceWidth:1920
2024-01-23 12:19:04.486 T:5555 info : (VDPAU) screenHeight:1080 vidHeight:1080 surfaceHeight:1088
2024-01-23 12:19:04.555 T:5558 info : COutput::OnStartup: Output Thread created
2024-01-23 12:19:04.556 T:5559 info : CMixer::OnStartup: Output Thread created
2024-01-23 12:19:04.556 T:5559 info : (VDPAU) Creating the video mixer
2024-01-23 12:19:04.560 T:5558 info : VDPAU::COutput::InitBufferPool - Output Surface created
2024-01-23 12:19:04.721 T:5483 info : Skipped 6 duplicate messages..
2024-01-23 12:19:04.721 T:5483 info : CInteropState::Init: vdpau gl interop initialized
2024-01-23 12:19:04.834 T:5483 info : GL: Using VDPAU render method
2024-01-23 12:19:04.834 T:5483 info : GL: Using GL_ARB_pixel_buffer_object
2024-01-23 12:19:04.834 T:5483 info : Using GL_TEXTURE_2D
2024-01-23 12:19:04.871 T:5483 info : Loading skin file: VideoFullScreen.xml, load type: KEEP_IN_MEMORY
2024-01-23 12:19:04.903 T:5555 warning : OutputPicture - timeout waiting for buffer
2024-01-23 12:19:06.521 T:5483 info : Skipped 3 duplicate messages..
2024-01-23 12:19:06.521 T:5483 error : CVdpauTexture::MapRGB error register output surface: 1282
2024-01-23 12:19:06.590 T:5555 info : Skipped 1 duplicate messages..
2024-01-23 12:19:06.590 T:5555 info : CDVDVideoCodecFFmpeg::CDropControl: calculated diff time: 40000
2024-01-23 12:19:06.605 T:5483 error : CVdpauTexture::MapRGB error register output surface: 1282
2024-01-23 12:19:16.621 T:5483 info : Skipped 145 duplicate messages..
2024-01-23 12:19:16.621 T:5483 error : CVdpauTexture::MapRGB error register output surface: 1282
2024-01-23 12:19:16.701 T:5483 info : Skipped 1 duplicate messages..
2024-01-23 12:19:16.701 T:5483 info : Loading skin file: VideoOSD.xml, load type: KEEP_IN_MEMORY
2024-01-23 12:19:16.770 T:5483 error : CVdpauTexture::MapRGB error register output surface: 1282
2024-01-23 12:19:19.051 T:5483 info : Skipped 31 duplicate messages..
2024-01-23 12:19:19.051 T:5483 info : CVideoPlayer::CloseFile()
2024-01-23 12:19:19.110 T:5483 info : VideoPlayer: waiting for threads to exit
2024-01-23 12:19:19.110 T:5504 error : CRenderManager::Capture - unknown capture id: 204
2024-01-23 12:19:19.138 T:5553 info : CVideoPlayer::OnExit()
2024-01-23 12:19:19.138 T:5553 info : Closing stream player 1
2024-01-23 12:19:19.138 T:5553 info : Waiting for audio thread to exit
2024-01-23 12:19:19.161 T:5554 info : thread end: CVideoPlayerAudio::OnExit()
2024-01-23 12:19:19.161 T:5553 info : Closing audio device
2024-01-23 12:19:19.192 T:5553 info : Deleting audio codec
2024-01-23 12:19:19.192 T:5553 info : Closing stream player 2
2024-01-23 12:19:19.192 T:5553 info : waiting for video thread to exit
2024-01-23 12:19:19.192 T:5491 info : CActiveAESink::OpenSink - initialize sink

It happens on Libreelec 11.0.5 Legacy (with Nvidia support)
It happens on Ubuntu installed 10 minutes ago

Any assist regarding that? I

Hyperion not working on Kodi Jarvis

I don't get any light from Kodi 16, Jarvis beta 2 on Android (NVIDIA shield Android TV).
Sure, it's beta but could be nice to have it working when released. :)

Delay when exiting Kodi

I noticed the following error when closing kodi:

ERROR: CPythonInvoker(0, /home/user/.kodi/addons/script.service.hyperion-master/addon.py): script didn't stop in 5 seconds - let's kill it
WARNING: CPythonInvoker(0, /home/user/.kodi/addons/script.service.hyperion-master/addon.py): the python script "/home/user/.kodi/addons/script.service.hyperion-master/addon.py" has left several classes in memory that we couldn't clean up. The classes include: N14PythonBindings31XBMCAddon_xbmc_Monitor_DirectorE,N9XBMCAddon4xbmc6PlayerE

Class cleanup can be solved by using weakref in settings.py:

import weakref
import xbmc
import xbmcaddon

from misc import log

class MyMonitor (xbmc.Monitor):
	'''Class to capture changes in settings and screensaver state
	'''
	
	def __init__(self, settings):
		xbmc.Monitor.__init__(self)
		self.__settings = weakref.ref(settings)
		self.__settings().screensaver = xbmc.getCondVisibility("System.ScreenSaverActive")
		self.__settings().abort = xbmc.abortRequested

	def onAbortRequested(self):
		self.__settings().abort = False
		
	def onSettingsChanged(self):
		self.__settings().readSettings()
	  
	def onScreensaverDeactivated(self):
		self.__settings().screensaver = False
	  
	def onScreensaverActivated(self):    
		self.__settings().screensaver = True

And the delay before closing can be solved by using waitForAbort in settings.py:

class MyMonitor (xbmc.Monitor):
	'''Class to capture changes in settings and screensaver state
	'''
	
	def __init__(self, settings):
		xbmc.Monitor.__init__(self)
		self.__settings = weakref.ref(settings)
		self.__settings().screensaver = xbmc.getCondVisibility("System.ScreenSaverActive")
		self.__settings().abort = xbmc.abortRequested
		self.__settings().waitForAbort = self.waitForAbort

and in addon.py:

import xbmc
import xbmcaddon
import xbmcgui
import os

# Add the library path before loading Hyperion
__addon__      = xbmcaddon.Addon()
__cwd__        = __addon__.getAddonInfo('path')
sys.path.append(xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib')))
		
from settings import Settings
from state import DisconnectedState

if  __name__ == "__main__":
	# read settings
	settings = Settings()

	# initialize the state
	state = DisconnectedState(settings)
	
	# start looping
	while not settings.abort:
		# execute the current state
		next_state = state.execute()
		
		# delete the old state if necessary
		if state != next_state:
			del state
			
		# advance to the next state
		state = next_state
		if settings.waitForAbort(0.001):
			break
		
	# clean up the state closing the connection if present
	del state
	del settings

I only had a very quick look because the delay before closing (>5 seconds) was becoming to be annoying. However I am not sure at all of what I have done, so be careful with this code.

1.0.6 fails to start

1.0.6 fails to start for me.

ModuleNotFoundError: No module named 'PIL'

Running Kodi 20 on NVIDIA shield.

ERROR: EXCEPTION Thrown (PythonToCppException)

Kodi v17 nightly build June 21st, 2016

ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.AttributeError'>
Error Contents: 'xbmc.RenderCapture' object has no attribute 'waitForCaptureStateChangeEvent'
Traceback (most recent call last):

Use hostname instead of ip

I wanted to stream the led data to my pi but I had to use an ip. Since most networks use dhcp (and my setup is very flexible) using hostnames would be the best idea.

I could imagine something like "raspberrypi" or "raspberrypi.local" as hostname.

Edit:
I do not know much python, but I did a quick search and the relevant lines are those:

If you change server to 'raspberrypi' it is still able to connect. Using something invalid makes it not work. So the issue can be solved by fixing the settings menu, which is limited to an ip address input and not a full keyboard.

Kodi error message for hyperion ambilight

Ater installing the add on in Kodi, I get the following error in the Kodi log:
hyperion.kodi version v20.0.1 - Nexus
Kodi version 20.2 and 20.0
Windows 10 ad Windows 11
error <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<-- - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <class 'TypeError'> Error Contents: 'ABCMeta' object is not subscriptable Traceback (most recent call last): File "C:\Users\denni\AppData\Roaming\Kodi\addons\script.service.hyperion\service.py", line 29, in <module> from resources.lib.monitor import HyperionMonitor File "C:\Users\denni\AppData\Roaming\Kodi\addons\script.service.hyperion\resources\lib\monitor.py", line 34, in <module> State = Callable[[], "State"] TypeError: 'ABCMeta' object is not subscriptable -->End of Python script error report<--

Addon only send one image

Hi, I have one issue using the xbmc addon with a remote hyperion server on rpi. When a video starts playing, the leds light on but they remain the same and never change. After that when I stop the play it light off so I'm pretty sure that the addon really communicate with the hyperion server. Another thing is that on some movies which first picture is colored, the leds are colored as well, but remain the same as if the addon captured and send always the same first image to the hyperion server.

This behaviour comes with only one of my device, an Android Tv box CSM8 with Android 4.4 and chipset ARM Amlogic S802. The Kodi is 14.1 and one the latest build for Android by the Kodi creators. But this is not only Android ! Indeed there is roms for this box to replace Android by Openelec so I installed OpenElec 5.0.3 on my box and I tried with it. The result was exactly the same ! Either with Android and Openelec...

Another information is that it is working with another devices :

  • with the rpi itself when I play medias from it (there is memory leaks problem but that's another story)
  • with my Windows 7 64 bits desktop with Kodi 14.1 over the network

Here is a pastebin of Kodi.log when the movie is playing nearly 22h25 http://pastebin.com/cNf3nAcL
and a pastebin of my hyperion conf file http://pastebin.com/LqpqNgYf

192.168.0.23 is the ip address of the client tv box, 192.168.0.19 is the ip address of the rpi with hyperion server, Xbmc Hyperion addon is configured toward this ip adress with default options

Please let me know how I can fix it or find clues of what's going on. If you have not much time I'm a developper and can modify the addon source to get information if you point me where and how I can inspect usefull datas.

Best regards.

exceptions.AttributeError

exceptions.AttributeError

20:00:53 T:1453885744 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--

  • NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
    Error Type:
    Error Contents: 'module' object has no attribute 'declare_namespace'
    Traceback (most recent call last):
    File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/hyperion.kodi-master/addon.py", line 36, in
    from state import DisconnectedState
    File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/hyperion.kodi-master/resources/lib/state.py", line 27, in
    from hyperion.Hyperion import Hyperion
    File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/hyperion.kodi-master/resources/lib/hyperion/Hyperion.py", line 28, in
    from message_pb2 import HyperionRequest
    File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/hyperion.kodi-master/resources/lib/hyperion/message_pb2.py", line 6, in
    from google.protobuf import descriptor as descriptor
    File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.

Very short dropouts in general LED output

Hey there,

I am using this plugin for while and really like it since grabbing efficiency seems to be better than xcb or x11. (Lower CPU load)
But there is a small problem that is bugging me and I do not know how to debug this:
Every few seconds (3-10, not always the same) all LEDs at once get a little bit darker, as if a signal was missing for 200ms.

I already tried hyperion.ng with Adalight on an Arduino Nano and hyperhdr with hyperserialesp8266. The visual performance seem to be very similar with normal smoothing enabled. But the short dropouts exist on both, so I guess this could be a grabber Problem.
If I disable smoothing then the LEDs go dark for 200-500ms.

What is the best way to debug this from the grabber side?

System Requirements

I´ve used your addon on my old Apple TV (Crystalbuntu) for years without problems. Thanks for your efforts!

But the device is old, so I upgraded to a Cubox-i4 (ARM system with a linux-based distro called GeexBox). On this hardware the addon is not working anymore. If I start a movie, the system hangs forever.

Is this addon only working on x86-based systems? Or do I need to install addional software?

Would be cool if somebody could push me in the right direction.

integrate hyperion-dispmanx

on rpi switch to use the hyperion-dispmanx binary. All options in add on configuration are available as commandline options.

if addon is installed on rpi, the kodi-grabber code is disabled and hyperion-dispmanx is downloaded from git (or it is shipped with addon) and used for grabbing

Unable to send image

Been using this for a while on kodi (various versions, latterly 16.1) running on ubuntu with no problems. For various reasons, I've rebuilt that box to libreelec (latest beta, with kodi 17 beta) on it. Just reinstalled this addon, and its not working. when starting playback, I get a quick flash from the LEDs as if its going to work, then nothing. After a little while, I get a popup saying unable to send image to hyperion.

Hyperion is running remotely on a pi, nothing has changed there, not had issues previously

Nothing I can see in the kodi log either

install fails on 18.5

2019-12-28 16:12:13.410 T:140228315215616 ERROR: CAddonInstallJob[script.service.hyperion]: Die Abhängigkeit auf script.module.protobuf in Version 2.5.0 konnte nicht aufgelöst werden.

Might be this addon here isnt maintained anymore. If so, please make a note in readme.md

[OUYA][ANDROID] intermittent flashing of single color

Using this add-on on an Ouya to drive hyperion (ws2801) installed on an rpi on the same LAN:

It works to the extent that there is a clear correlation between the image on screen and the color of the leds. At about 1 second intervals however, some leds flash a single color, for a few milliseconds (about the duration of a blink of the eye).
This is especially noticeable when video is paused, and the led strip is static, apart from the (usually blue) flashes.

When using raspbmc on the same pi as hyperion (not using this add-on but the default dispmanx grabber), this issue does not occur. In my opinion, this rules out wiring, power supply, led malfunction, configuration etc.

Using hyperion-remote to set a constant color or effect (rainbow) also does not display this artifact.

If this is not a known issue I will provide more info.
Are there debug options to view the image that is send so I can inspect whether there are artifacts in the images? I plan on using wireshark or something to capture network traffic, but an easier method would be nice.

I would also like to know if I should report this issue here or in the hyperion issue tracker.

Note: my strip has 64 leds, im using oinly 55.
Note2: I enabled the boblight server because I wanted to try the boblight add-on to drive hyperion. This quickly failed because I don know how to compile thre required binary for ouya

    // Automatically generated configuration file for 'Hyperion daemon'
// Generated by: HyperCon (The Hyperion deamon configuration file builder

{
    /// Device configuration contains the following fields: 
    /// * 'name'       : The user friendly name of the device (only used for display purposes)
    /// * 'type'       : The type of the device or leds (known types for now are 'ws2801', 'ldp8806',
    ///                  'lpd6803', 'sedu', 'adalight', 'lightpack', 'test' and 'none')
    /// * 'output'     : The output specification depends on selected device. This can for example be the
    ///                  device specifier, device serial number, or the output file name
    /// * 'rate'       : The baudrate of the output to the device
    /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.).
    "device" :
    {
        "name"       : "MyPi",
        "type"       : "ws2801",
        "output"     : "/dev/spidev0.0",
        "rate"       : 250000,
        "colorOrder" : "rgb"
    },

    /// Color manipulation configuration used to tune the output colors to specific surroundings. 
    /// The configuration contains a list of color-transforms. Each transform contains the 
    /// following fields:
    ///  * 'id'   : The unique identifier of the color transformation (eg 'device_1')   ///  * 'leds' : The indices (or index ranges) of the leds to which this color transform applies
    ///             (eg '0-5, 9, 11, 12-17'). The indices are zero based.   ///  * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following 
    ///            tuning parameters:
    ///            - 'saturationGain'  The gain adjustement of the saturation
    ///            - 'valueGain'       The gain adjustement of the value
    ///  * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the 
    ///                           following tuning parameters for each channel:
    ///            - 'threshold'       The minimum required input value for the channel to be on 
    ///                                (else zero)
    ///            - 'gamma'           The gamma-curve correction factor
    ///            - 'blacklevel'      The lowest possible value (when the channel is black)
    ///            - 'whitelevel'      The highest possible value (when the channel is white)
    ///
    /// Next to the list with color transforms there is also a smoothing option.
    ///  * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning 
    ///                  parameters:
    ///            - 'type'            The type of smoothing algorithm ('linear' or 'none')
    ///            - 'time_ms'         The time constant for smoothing algorithm in milliseconds
    ///            - 'updateFrequency' The update frequency of the leds in Hz
    "color" :
    {
        "transform" :
        [
            {
                "id"   : "default",
                "leds" : "*",
                "hsv" :
                {
                    "saturationGain" : 1.0000,
                    "valueGain"      : 1.0000
                },
                "red" :
                {
                    "threshold"  : 0.0000,
                    "gamma"      : 1.0000,
                    "blacklevel" : 0.0000,
                    "whitelevel" : 1.0000
                },
                "green" :
                {
                    "threshold"  : 0.0000,
                    "gamma"      : 1.0000,
                    "blacklevel" : 0.0000,
                    "whitelevel" : 0.6000
                },
                "blue" :
                {
                    "threshold"  : 0.0000,
                    "gamma"      : 1.0000,
                    "blacklevel" : 0.0000,
                    "whitelevel" : 0.5700
                }
            }
        ],
        "smoothing" :
        {
            "type"            : "linear",
            "time_ms"         : 200,
            "updateFrequency" : 20.0000
        }
    },

    ///  The configuration for each individual led. This contains the specification of the area 
    ///  averaged of an input image for each led to determine its color. Each item in the list 
    ///  contains the following fields:
    ///  * index: The index of the led. This determines its location in the string of leds; zero 
    ///           being the first led.
    ///  * hscan: The fractional part of the image along the horizontal used for the averaging 
    ///           (minimum and maximum inclusive)
    ///  * vscan: The fractional part of the image along the vertical used for the averaging 
    ///           (minimum and maximum inclusive)
    "leds" : 
    [
        {
            "index" : 0,
            "hscan" : { "minimum" : 0.8571, "maximum" : 0.9048 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 1,
            "hscan" : { "minimum" : 0.9048, "maximum" : 0.9524 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 2,
            "hscan" : { "minimum" : 0.9524, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 3,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 4,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.9167, "maximum" : 1.0000 }
        },
        {
            "index" : 5,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.8333, "maximum" : 0.9167 }
        },
        {
            "index" : 6,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.7500, "maximum" : 0.8333 }
        },
        {
            "index" : 7,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.6667, "maximum" : 0.7500 }
        },
        {
            "index" : 8,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.5833, "maximum" : 0.6667 }
        },
        {
            "index" : 9,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.5000, "maximum" : 0.5833 }
        },
        {
            "index" : 10,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.4167, "maximum" : 0.5000 }
        },
        {
            "index" : 11,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.3333, "maximum" : 0.4167 }
        },
        {
            "index" : 12,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.2500, "maximum" : 0.3333 }
        },
        {
            "index" : 13,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.1667, "maximum" : 0.2500 }
        },
        {
            "index" : 14,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.0833, "maximum" : 0.1667 }
        },
        {
            "index" : 15,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0833 }
        },
        {
            "index" : 16,
            "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 17,
            "hscan" : { "minimum" : 0.9524, "maximum" : 1.0000 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 18,
            "hscan" : { "minimum" : 0.9048, "maximum" : 0.9524 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 19,
            "hscan" : { "minimum" : 0.8571, "maximum" : 0.9048 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 20,
            "hscan" : { "minimum" : 0.8095, "maximum" : 0.8571 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 21,
            "hscan" : { "minimum" : 0.7619, "maximum" : 0.8095 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 22,
            "hscan" : { "minimum" : 0.7143, "maximum" : 0.7619 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 23,
            "hscan" : { "minimum" : 0.6667, "maximum" : 0.7143 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 24,
            "hscan" : { "minimum" : 0.6190, "maximum" : 0.6667 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 25,
            "hscan" : { "minimum" : 0.5714, "maximum" : 0.6190 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 26,
            "hscan" : { "minimum" : 0.5238, "maximum" : 0.5714 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 27,
            "hscan" : { "minimum" : 0.4762, "maximum" : 0.5238 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 28,
            "hscan" : { "minimum" : 0.4286, "maximum" : 0.4762 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 29,
            "hscan" : { "minimum" : 0.3810, "maximum" : 0.4286 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 30,
            "hscan" : { "minimum" : 0.3333, "maximum" : 0.3810 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 31,
            "hscan" : { "minimum" : 0.2857, "maximum" : 0.3333 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 32,
            "hscan" : { "minimum" : 0.2381, "maximum" : 0.2857 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 33,
            "hscan" : { "minimum" : 0.1905, "maximum" : 0.2381 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 34,
            "hscan" : { "minimum" : 0.1429, "maximum" : 0.1905 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 35,
            "hscan" : { "minimum" : 0.0952, "maximum" : 0.1429 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 36,
            "hscan" : { "minimum" : 0.0476, "maximum" : 0.0952 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 37,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0476 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 38,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        },
        {
            "index" : 39,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.0000, "maximum" : 0.0833 }
        },
        {
            "index" : 40,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.0833, "maximum" : 0.1667 }
        },
        {
            "index" : 41,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.1667, "maximum" : 0.2500 }
        },
        {
            "index" : 42,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.2500, "maximum" : 0.3333 }
        },
        {
            "index" : 43,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.3333, "maximum" : 0.4167 }
        },
        {
            "index" : 44,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.4167, "maximum" : 0.5000 }
        },
        {
            "index" : 45,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.5000, "maximum" : 0.5833 }
        },
        {
            "index" : 46,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.5833, "maximum" : 0.6667 }
        },
        {
            "index" : 47,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.6667, "maximum" : 0.7500 }
        },
        {
            "index" : 48,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.7500, "maximum" : 0.8333 }
        },
        {
            "index" : 49,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.8333, "maximum" : 0.9167 }
        },
        {
            "index" : 50,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.9167, "maximum" : 1.0000 }
        },
        {
            "index" : 51,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 52,
            "hscan" : { "minimum" : 0.0000, "maximum" : 0.0476 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 53,
            "hscan" : { "minimum" : 0.0476, "maximum" : 0.0952 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        },
        {
            "index" : 54,
            "hscan" : { "minimum" : 0.0952, "maximum" : 0.1429 },
            "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        }
    ],

    /// The black border configuration, contains the following items: 
    ///  * enable    : true if the detector should be activated
    ///  * threshold : Value below which a pixel is regarded as black (value between 0.0 and 1.0)
    "blackborderdetector" : 
    {
        "enable" : true,
        "threshold" : 0.01
    },

    /// The configuration of the effect engine, contains the following items: 
    ///  * paths        : An array with absolute location(s) of directories with effects 
    ///  * bootsequence : The effect selected as 'boot sequence'
    "effects" : 
    {
        "paths" : 
        [
            "/opt/hyperion/effects"
        ]
    },

    "bootsequence" : 
    {
        "effect" : "Rainbow swirl fast",
        "duration_ms" : 3000
    },

    ///  The configuration for the frame-grabber, contains the following items: 
    ///   * width        : The width of the grabbed frames [pixels]
    ///   * height       : The height of the grabbed frames [pixels]
    ///   * frequency_Hz : The frequency of the frame grab [Hz]
//  "framegrabber" : 
//  {
//      "width" : 64,
//      "height" : 64,
//      "frequency_Hz" : 10.0
//  },

    /// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields: 
    ///  * xbmcAddress       : The IP address of the XBMC-host
    ///  * xbmcTcpPort       : The TCP-port of the XBMC-server
    ///  * grabVideo         : Flag indicating that the frame-grabber is on(true) during video playback
    ///  * grabPictures      : Flag indicating that the frame-grabber is on(true) during picture show
    ///  * grabAudio         : Flag indicating that the frame-grabber is on(true) during audio playback
    ///  * grabMenu          : Flag indicating that the frame-grabber is on(true) in the XBMC menu
    ///  * grabScreensaver   : Flag indicating that the frame-grabber is on(true) when XBMC is on screensaver
    ///  * enable3DDetection : Flag indicating that the frame-grabber should switch to a 3D compatible modus if a 3D video is playing
//  "xbmcVideoChecker" : 
//  {
//      "xbmcAddress" : "192.168.2.5",
//      "xbmcTcpPort" : 9090,
//      "grabVideo" : true,
//      "grabPictures" : true,
//      "grabAudio" : true,
//      "grabMenu" : false,
//      "grabScreensaver" : true,
//      "enable3DDetection" : false
//  },

    /// The configuration of the Json server which enables the json remote interface
    ///  * port : Port at which the json server is started
    "jsonServer" : 
    {
        "port" : 19444
    },

    /// The configuration of the Proto server which enables the protobuffer remote interface
    ///  * port : Port at which the protobuffer server is started
    "protoServer" : 
    {
        "port" : 19445
    },

    /// The configuration of the boblight server which enables the boblight remote interface
    ///  * port : Port at which the boblight server is started
    "boblightServer" : 
    {
        "port" : 19333
    },

    "endOfJson" : "endOfJson"
}

Kodi addon Flickering on Linux (Debian / Ubuntu)

Hi.

I noticed that on Linux some linux distors (POP_OS!, and LMDE), the kodi addon is misbehaving, but on windows it's working fine.

The symptom:
Generally flashing/flickering lights with every refresh. What I've noticed is that during the flashing, it is not not the same colour, it is from the colour palate that was sent. (could try making a video of it)

Trouble shooting

  • I tried using different version of the addon pulled from github, also older from the my local repo.
  • Resetting the addon settings
  • tried different capture properties, and refresh rates
  • pulling the addons directly from my windows install
  • refreshing the hyperion server

Thoughts
Before I installed Pop_OS, i used its live version, Installed kodi, with the addon, there it was working fine. So my assassination is that either kodi's image capture, or the addon has issues with Cinnamon, or the Gnome desktop environment.

I tried to install Hyperion.ng too to get the X11 grabber working, but as the server and the host are not the same, I had difficulty getting it connected.

Software info
Kodi 18.5 on Windows 18.6 on POP_OS and 1.0.2 Plugin, and latest hyperion server via hypercon.

PS
I'll try and get some time to upload a brief video of the symptom, and maybe upload the captured image data sent by the addon both from windows, and linux.

Maybe related
#40

Addon on an android XBMC Player doesn't work

my hyperion systems runs well on a openelec x64 system.
If I install the addon on a xbmc of a android mediaplayer, it sends no data to the hyperion rpi server.
Is it because of the internal grapper?

thanks

Exception error

I'm trying to use this add-on, on a x64 Windows machine. Right after I install the add-on, the XBMC on my PC shows an error about this add-on. I checked the log file, trying to find out, what causes this error. The log shows the following:

ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.ImportError'>
Error Contents: No module named settings
Traceback (most recent call last):
File "C:\Users\USERNAME\AppData\Roaming\Kodi\addons\script.service.hyperion-master\addon.py", line 35, in
from settings import Settings
ImportError: No module named settings
-->End of Python script error report<--

I've searched for the error type on Internet, and somewhere i'va found, that maybe it is beacuse, there is an accented letter in my windows user name. So i created a new user, without any accented characters in it, and voilà, it works perfectly.

I've figured out, that maybe there is a solution for my problem. I tried to set the character encoding in the addon.py file, but unfortunately my Phyton programming skills are not that strong. So the error remained after several attempts.

Can you help me please, set the right character encoding or decoding for this file?

Plugin not working after 20.0.1 update

Hi

Latest version is not working for me.

All settings ok but after update i just get a Ambilight error at Kodi start and info to check log

Tested to rollback to 1.0.6 and then everything works fine.

Using
Windows 10
Kodi 20.2
Hyperion.NG 2.0.15

Log:

2023-11-20 18:15:03.856 T:4372    debug <general>: Thread waiting 4372 terminating
2023-11-20 18:15:03.859 T:5148    debug <general>: Thread BackgroundLoader start, auto delete: false
2023-11-20 18:15:03.860 T:6200    debug <general>: ------ Window Init (DialogNotification.xml) ------
2023-11-20 18:15:03.865 T:5148    debug <general>: Thread BackgroundLoader 5148 terminating
2023-11-20 18:15:04.087 T:9024    error <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'TypeError'>
                                                   Error Contents: 'type' object is not subscriptable
                                                   Traceback (most recent call last):
                                                     File "C:\Users\user\AppData\Roaming\Kodi\addons\script.service.hyperion\service.py", line 29, in <module>
                                                       from resources.lib.monitor import HyperionMonitor
                                                     File "C:\Users\user\AppData\Roaming\Kodi\addons\script.service.hyperion\resources\lib\monitor.py", line 37, in <module>
                                                       class HyperionMonitor(xbmc.Monitor):
                                                     File "C:\Users\user\AppData\Roaming\Kodi\addons\script.service.hyperion\resources\lib\monitor.py", line 117, in HyperionMonitor
                                                       def get_capture_size(self) -> tuple[tuple[int, int], int]:
                                                   TypeError: 'type' object is not subscriptable
                                                   -->End of Python script error report<--
                                                   
2023-11-20 18:15:04.087 T:9024    debug <general>: CPythonInvoker::onExecutionDone(80, C:\Users\user\AppData\Roaming\Kodi\addons\script.service.hyperion\service.py)
2023-11-20 18:15:04.087 T:9024    debug <general>: .
2023-11-20 18:15:04.281 T:9024    debug <general>: Python interpreter stopped
2023-11-20 18:15:04.281 T:9024    debug <general>: Thread LanguageInvoker 9024 terminating

Turn off when video stops

Hi, I have the min light set on Hyperion but when the video stops I would like all of the Leds to goto zero, can you do this via the plugin?

Also can you make this only work on Movies, not Live Tv etc?

Thanks

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.