Hallo zusammen,
ich bin gerade dabei etwas in Richtung "Lichtsteuerung" ins Wohnzimmer zu bringen. Dabei denke ich z. B. an die Anpassung der Lichtstimmung (z. B. eines LED RGB-Controllers) abhängig vom Bild auf dem TV.
Meine Anforderungen an das Addon wären:
- Addon läuft als Service ständig im Hintergrund und holt mit ca. 1 Hz Aktualisierungsrate den Farbmittelwert des aktuell im Framebuffer liegenden Bildes und stellt diesen Wert (wie auch immer) anderen Addons bereit
- Addon benutzt dazu keine Schreib-/Leseoperationen auf einen Massendatenträger - alles passiert nur im RAM
- Addon benötigt wenn möglich keine zusätzlichen Bibliotheken (wie z. B. PIL), außer denen, die bei Kodi schon mitgeliefert werden
- Das zu steuernde Endgerät muss nicht zwingend direkt am HTPC angeschlossen sein, sondern kann z. B. auch ein Wifi LED RGB-Controller sein, der über FHEM angesteuert wird
- Am besten wäre das Ganze plattformunabhängig
Als Algorithmus hatte ich mir etwas wie folgt vorgestellt:
- Prüfe zyklisch die aktuelle Auflösung und Farbtiefe (resX, resY, depth) - das könnte man mit Kodi Bordmitteln denke ich schon abgefrühstückt bekommen
- Erzeuge im RAM eine Bitmap aus den 3 Werten
- Capture das aktuell angezeigte Bild in die Bitmap
- Resize die Bitmap auf 1x1 Pixel - z. B. mittels einfachem "Nearest Neighbour" Algorithmus (oder etwas performanterem, wenn möglich)
- Hole die nötigen Farbinformationen aus dem 1x1 Bitmap: r, g, b
- Stelle die Informationen wie auch immer nach außen zur Verfügung (JSON/XML oder etwas kompakteres?)
Fertig - so weit, so gut
Habe mir mal Hyperion angeschaut, die machen das auch mittels Framegrabber - aber alles in C und mit extra Bibliotheken, soweit ich das gesehen habe.
Hat schon mal jemand etwas in die Richtung Framegrabbing oder Zugriff auf den Bildspeicher unter Python gemacht und hat Lust/Zeit mich etwas zu unterstützen bzw. mir Starthilfe zu geben?
Besten Dank euch schon mal!