Hallo,
gestern wurde ja nachdem Andreas angekündigt hatte, Softhddevice auch OpenGL/ES-fähig zu machen darüber diskutiert, daß es doch eher Sinn machen würde, das komplette OpenGL-Osd in ein separates Plugin auszulagern, welches mit den jeweiligen Ausgabeplugins zusammenarbeiten soll, welche in einer OpenGL/ES-fähigen Umgebung laufen (softhddevice, rpihddevice und später auch amlhddevice).
Ich habe schonmal mit dem Herausschälen des OpenGLOsd aus Louis' Fork an Softhddevice begonnen, und bin nun auf die Problematik gestossen, auf die auch Andreas hingewiesen hat, daß zumindest in aktueller Form der OsdProvider doch etwas mit Softhddevice "verzahnt" ist, und für eine sinnvolle Lösung würde ich gerne vorher mit den Kennern der VDR-Architektur samt seinen Plugins die Konzepte besprechen, bevor ich da fortfahre.
Mir fällt momentan nur ein, daß man mittels Service-Interface zwischen OglOsd und dem aktiven Ausgabeplugin die notwendige Interaktion zwischen ihnen bewerkstelligen könnte. Es stellt sich natürlich auch die Frage, wie man das organisiert, in welche Richtung am Besten. Vielleich irre ich mich, aber bisher habe ich dafür folgende möglich Kandidaten gefunden, die so etwas bräuchten:
- in video.c VideoEventCallback welches im OglOsd OsdSizeChanged aufrufen soll
- im OglOsd werden ActivateOsd, GetVDPAUDevice, GetVDPAUProcAdress, GetVDPAUOutputSurface und in Andreas' GLES-Fork noch zusätzlich GetVDPAUProc aus video.c aufgerufen;
Wie gehen wir damit nun um, auch in Hinsicht darauf, daß OglOsd nicht nur mit Softhddevice, sondern auch RpiHdDevice und AmlHdDevice laufen soll?
Gruß,
Lucian