[DirectShow/C++] filters wisselen terwijl graph draait

Pagina: 1
Acties:

  • MisterData
  • Registratie: September 2001
  • Laatst online: 09-04 12:07
Ik ben bezig met een programma waarin onder andere video kan worden afgespeeld aan de hand van een tijdbalk. Nu wil ik ook graag die video's mixen. Geen probleem zou je zeggen, en het werkt ook prima met de 'Video Mixing Renderer' (VMR9) in DirectShow. Het vervelende is alleen dat ik die graph niet mag aanpassen terwijl het zootje aan het afspelen is; en dat zou ik wel graag willen, want de video's op de tijdbalk (meerdere sporen) starten niet allemaal tegelijk....

Enig idee hoe ik zoiets kan oplossen? Ik heb al gegoogeld, maar vind eigenlijk geen oplossingen hiervoor.... een andere video-library heb ik nog niet gevonden (en daarnaast is DShow gewoon het handigst omdat het in feite alles ondersteunt met de juiste codecs)....

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
sommige filters laten geen disconnect too wanneer dat deze draait, sommige wel... staat op MSDN

  • MisterData
  • Registratie: September 2001
  • Laatst online: 09-04 12:07
Is het dan misschien mogelijk om met twee graphs (met de Video Mixing Renderer 9) te renderen naar dezelfde surface (via DirectDraw ofzo) en dan dat het tóch met alpha werkt? Als dat werkt kan ik natuurlijk graphs onafhankelijk van elkaar starten/stoppen en ben ik er ook. Ik kan nu wel leuk twee graphs opzetten en die naar dezelfde plek laten renderen (Windowless renderer), maar dat levert een hoop geknipper op....

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:28

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je kunt video's tuch sowieso renderen naar surfaces? Ik zou het blenden lekker aan de videokaart overlaten :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MisterData
  • Registratie: September 2001
  • Laatst online: 09-04 12:07
.oisyn schreef op dinsdag 31 januari 2006 @ 21:22:
Je kunt video's tuch sowieso renderen naar surfaces? Ik zou het blenden lekker aan de videokaart overlaten :)
Nouja zoveel ervaring met surfaces heb ik verder niet; op dit moment zeg ik gewoon tegen de VMR dat ie mag renderen naar dat en dat vierkantje in een bepaald venster (dat dan weer als 'Clipping Window' ingesteld is) dus een hoop surface-troep (ik geloof dat de VMR intern zelfs Direct3D gebruikt?) gebeurt achter de schermen...

Het lijkt me overigens prima om dat blenden dus gewoon door de videokaart te laten doen, de vraag is dan alleen: hoe?

  • MisterData
  • Registratie: September 2001
  • Laatst online: 09-04 12:07
Het lijkt te kunnen met een zogenaamde 'custom allocator/presenter'... zie ook:
forumdraadje erover
MSDN 'Supplying a custom allocator/presenter'
(SDK-sample wat erbij hoort)

Altijd als je iets leuks wil doen in DirectX wordt het een stúk lastiger... maargoed :) Iemand ervaring met die custom allocator/presenter toevallig?
Pagina: 1