Es gibt ja diese DirectX VideoOverlays, wie sie z.B. der WindowsMediaPlayer verwenden.. das merkt man immer toll daran, das man nen Screenshot von nem Video machen will und aufeinmal nur nen schwarzes bild hat..
Dazu ein paar fragen:
1) Wieso gibt es das? Hat das irgendeinen vorteil gegenüber der klassischen variante einfach mit texturen?
2) Gibt es das auch unter OpenGL?
3) Wie kann ich das ganze selber machen? Also ein Videooverlay erzeugen..?
Hintergrund ist, ich kämpfe noch immer damit ein Bild auf einem via Videokarte angeschlossenen Bildschirm darzustellen.. (Der monitor ist kein einfacher 3ter Monitor in Windows, sondern kann auch nur von spezieller Software die dafür ausgelegt ist angesteuert werden, die Videokarte nennt sich dpsReality.. dafür gibt es wohl ein SDK, aber da die Firma schon 2-3x übernommen wurde seit dem weiß mittlerweile keiner mehr wo das ist etc.. = es gibt das SDK nichtmehr)
Eine möglichkeit wäre jetzt an das SDK irgendwie ranzukommen, allerdings denke ich dass ich damit nur diese eine spezielle Videokarte unterstützen würde.. daher, es gibt doch sicher irgendeine tolle möglichkeit generell jede Videokarte anzusprechen, oder? (egal ob "dps" oder "deckLink" etc.).
Und ich dachte mir, evlt ja via DirectX Videooverlay, oder zumindest einer sehr eng verbundenen technik..
Falls da irgendwer ne idee hat.. hilfe.. :/
Aya~
PS: Ich hatte das thema schonmal hier gepostet, aber damals kam nichts richtiges bei raus leider
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
1: Das stammt aus der Anfangszeit der Videobeschleunigung. Dabei wird ein bestimmter Bereich des Bildes mit einer Farbe gefüllt und der Grafikkarte ein Bild zugesandt. Diese hat das Bild dann auf einen bestimmten Bereich gestreckt und nur die Teile ersetzt die mit der Farbe gefüllt waren.
2: Theoretisch kann OpenGL Overlay und Underlays. Allerdings dürften das wohl maximal die NV Quadro bzw ATI Fire GL Karten unterstützen. Also die mit dem 4 stelligem Preis. Wenn überhaupt. Ob das allerdings mit den Videooverlays vergleichbar ist weiß ich nicht.
3: Hatte vor ewigen Zeiten mal ein Stück Code angehangen. Da wurde das gemacht. Allerdings weiß ich nicht mehr wie der Beitrag hieß. Aber ich müsste die eigentlich auch zu Hause noch irgendwo haben. Schaue ich heute abend mal.
ABER: Ich weiß nicht ob dir das Video Overlay wirklich viel helfen wird. Denn das passiert in der Grafikkarte, dass eine Farbe mit einem Bild ersetzt wird. Du hast aber eigentlich ein extra Ausgabegerät. Einige Grafikkarten sind aber in der Lage ein Bild auf einem S-Video Ausgang auszugeben. Im Treiber gibt es dann meistens noch die Option, dass die dafür das Overlaybild benutzen sollen. Damit wird dann das Bild auf dem zweitem Ausgang vollbildlich ausgegeben und auf dem richtigen Bildschirm komplett unterdrückt.
Da sich diese Karte aber nicht als Grafikkarte ausgibt denke ich, dass du da um ein SDK nicht herum kommen wirst. Andersrum ist das ja relativ einfach. Dafür gibt es VfW oder WDM. Aber zur Ausgabe ist zu mindest mir keine API bekannt. Bin aber nicht der Held auf dem Gebiet.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Mir ist auf dem Heimweg noch was eingefallen. Es gibt ein Tool namens GraphEdit. Evtl. bieten die Karten ja einen DirectShow Renderfilter. Mit dem Tool kann man Eingabe Filter / Codecs und Ausgabefilter grafisch zusammen bauen. Falls die da was anbieten kannst du damit auch nen Video nehmen und das mal Testweise dahinstreamen. Mit dem DSPack kann man so was dann auch in Code gießen. Glaube ich.
Nur das DSPack mittlerweile tot ist und schon lange nicht mehr weiterentwickelt wird.
Somit die alten bugs noch drin sind und es hat halt die alte Overlay Mixer technik, welche mind. durch VMR-9 ersetzt werden sollte.
Und nein, VMR-9 supported DSPack nicht korrekt, ich habs ausprobiert... basierend auf dem DVDPlay sample umgebastelt auf VMR-9.
Sprich, wenn per DirectShow dann bitte ganz simple via DShow api von hand.
Dazu kann ich dir gern einige sources geben, kannst mich ja mal in icq anlabern.
hab es grad mal mit GraphEdit angeschaut, bei den DirectShow filtern find ich nichts was auch nur ansatzweise dannach klingt als ob es das könnte was ich will
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Was mir gerade einfällt wobei ich aber nicht weiss, wieviel es dir bringt:
SDL ermöglicht es, YUV-Overlays zu machen und VLC verwendet diese auch. Wenn dir das was bringt, könntest du entweder SDL dafür benutzen oder einfach mal in deren Source schauen.
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
Wo mir gerade wieder einfällt, dass ich mal nach einem Sample schauen wollte. :-/ Auf folgender Seite kannst du das Beispiel + Source für DirectX7 finden.
http://www.angelcode.com/dev/overlay/
Mitglieder in diesem Forum: 0 Mitglieder und 16 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.