Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
Guten Tag allerseits
Ich möch ein Live-Feed einer Videokamera in OpenGL rendern. Nun gibts dafür nicht gerade viele Möglichkeiten, soviel ich weiss. Benutzen tu ich dafür ein USB Input, der das Videosignal in meinen PC gibt (habe keinen Videoeingang am Laptop). Das Gerät heisst Dazzle DVC 90.
Das Gerät bereitet mir eigentlich keine Probleme, funktioniert einwandfrei. Benutzen tu ich dafür diese Komponente. Die funktioniert einwandfrei, wenn ich ein Bild auf die VCL rendern will. Nun soll das ganze über OpenGL auch funktionieren. Dafür gibts ne schöne Funktion, namens "onFrame". Dabei wird das aktuelle Frame kopiert um damit zu arbeiten.
Wobei pvidHdr.lpData ein Pointer ist auf die Daten.
Ich vermute der Typ GL_UNSIGNED_BYTE stimmt nicht. Habe aber schon einiges ausprobiert, die resultate waren immer unbefriedigend. Auf jeden Fall liegen Daten vor, aber sie werden falsch angezeigt. Ich kann auch teilweise ähnliche Strukturen erkennen, wie im Original-Videobild, aber immer extrem viele total falsche Pixel.
Hat jemand eine Ahnung woran es liegen könnte oder welcher Datentyp "Video for Windows" standartmässig verwendet?
So das ist das resultierende Bild:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Hmm... Ich habe mich mal in der MSDN umgeschaut und da nichts gescheites gefunden.
Hast du mal so dinge GL_UNSIGNED_SHORT bzw INT oder FLOAT ausprobiert? Hast du auch schon ausprobiert, das Format auf GL_RGBA oder GL_BGRA zu setzen?
Aus dem Screenshot werde ich leider nicht ganz schlau... Irgendwie komme ich nicht drauf, was dieses Muster zu bedeuten hat.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Webcam. Bist du sicher, dass du als Format RGB24 Bit bekommst? Denn meistens liefern diese sogar auch YUV als Format. Das musst du dann natürlich erst noch konvertieren. Wenn das Format RGB32 ist dann musst du es auch als RGBA8 hochladen.
Du solltest zum Übertragen im übrigen auch glTexSubImage benutzen. Ein Mal die Textur mit glTexImage erstellen und ansonsten mit SubTexImage. Das ist schneller, da bei glTexImage die Textur immer neu erstellt wird.
und stimmt die auflösung von 256x256? Wäre eigentlich sehr untypisch..
Ansonsten, evtl ist das was du da als daten hinschickst ein Bitmap inkl. Header etc? Da müßtest du dann erstmal die pixel raussortieren..
Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.