Hallo zusammen
Im Zusammenhang mit der Implementation der GrabImage()-Methode beim RpiHdDevice-Plugin habe ich eine Frage zum korrekten Verhalten wenn die vorgegebene Grösse nicht passt. Unpassend bedeutet in dem Fall eine Dimension, die kein Vielfaches von 16 ist, bzw. ungleich der aktuellen Displaygrösse. Die Snapshot-Funktion von dispmanx verhält sich folgendermassen:
- Keine Skalierung -> Snapshot wird gemacht, die Ausgabe läuft normal weiter
- Skalierung auf ein Vielfaches von 16 -> Snapshot wird gemacht, aber das Display flackert kurz
- Beliebige Grösse -> Snapshot wird gemacht, Display flackert, beim Auslesen kommt es zu Verschiebungen, weil wohl der Zeilenoffset nicht stimmt.
Konkret sehe ich nun folgende Möglichkeiten fürs Rpi-Plugin:
1) Ich liefere immer ein unskaliertes Bild und ignoriere die Parameter SizeX/SizeY (analog dvbhddevice)
2) Ich gebe bei unpassenden Dimensionen NULL zurück
3) Ich runde die Dimensionen auf ein Vielfaches von 16 und nehme ein Flackern in Kauf
4) Ich skaliere den Snapshot innerhalb des Plugins, entweder von "Hand" oder mittels externer Library (Imagemagick, oder was nimmt man da?)
Leider finde ich im VDR-API keinen Hinweis auf das erwartete Verhalten und wäre froh um sachdienliche Hinweise - vielen Dank im Voraus!
Grüsse aus Bern
Thomas