Einzelnen Beitrag anzeigen

Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#1

DirectX Multi-in Streams mit VMR9 und GMFBridge, DSPack

  Alt 17. Jan 2018, 11:44
Moin zusammen !
Hab ein Projekt von vor x-Jahren wieder ausgebuddelt und komme leider auch heute einfach nicht weiter.
Was soll's werden:

Ich möchte gerne div. A/V-Quellen (z.B. DVB-Empf., DVD/BR, Files in div. Typen, Streams aus dem Netz, IP-Kameras [Überwachung], die WEB-Cam u.v.m)nicht nur einzeln, sonder auch zusammen gemischt wiedergeben.
Das funktioniert auch so weit so gut, aber ...

... den 'Mix' hätte ich gerne in einem (1) Video-Window/in einem VMR9 (max. 16 Inputs) gerendert, wo ich ich dann Farbe/Helligkeit/Blende usw., Größe und Position jedes Streams definieren kann. Z. B. ein Mosaic machen und jeweils aktiven Stream (mit Ton) selektieren, ein- und ausblenden kann.

Das funktioniert prinzipiell auch - wenn man alles in einen Graphen knallt.
Hat dann aber das elementare Prob, dass IMediaSeeking nicht funzt und vor allem man nicht einzelne Streams pausieren/stoppen/löschen oder neu erzeugen kann, ohne dass der Graph hängt, blockiert oder absehbar ein Timing-Prob bekommt.

Ich habe mir vor Jahren mal die GMFBridge von Geraint Davies ausgeguckt und dazu die Demo GMFPlay (übersetzung Sebastion Zierer) modifiziert.
Dieses Tool soll es ermöglichen, Streams aus verschiedenen, einzelnen Source-Graphen zum Render-Graph hin zu entkoppeln, so dass eben o.g. Effekte nicht auftreten.

Ich hab das hier alles so weit zusammen, das ich z.B. div. Videos laden und steuern kann.
Alle Source-Graphen und der Renderer-Graph sind korrekt gebaut und befinden sich im Status "Run".
Auch die jeweiligen GMF-Sink-Filter (in Source-Graphen), bzw. GMF-Source-Filter im Render-Graph sind verbunden.

Leider sehe ich immer nur das zuerst geladene Video - egal wie ich Alpha, ZOrder und/oder OutRect der jeweiligen VMR9-Inputs einstelle.

Hat jemand da eine Idee, was ich ggf. noch falsch mache ?
Oder wie es vielleicht anders zu bewerkstelligen wäre ?
  Mit Zitat antworten Zitat