Wie Directshow Filter zu C ++ \ C # konvertieren?

stimmen
0

Wir haben einige Filter für DS. Es funktioniert - nutzt Standard-Win-DLL.

Wir wollen, dass die Filter auf irgendeine Art von Programm konvertieren, die nicht zur Verwendung von DS angewiesen ist. Wir wollen es dlls in der richtigen Reihenfolge nennen, tun alles, was DS tut, aber nicht zuverlässig auf DS in irgendeiner Weise - nur auf Filter DLL.

So ..., wie Directshow Filter zu C ++ \ C # konvertieren?

Veröffentlicht am 30/12/2009 um 00:14
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Es ist möglich, Directshow-Filter zu verwenden, ohne Directshow zu verwenden, aber Sie müssen Ihre eigene Graph Implementierung schreiben.

Das bedeutet , dass Sie das Gerät müssen IFilterGraph, IMemInputPinund IMemOutputPinSchnittstellen die Directshow- Filter zu machen denken , es läuft in es natürliche Umgebung ist.

Um Puffer durch die Filter zu passieren, müssen Sie möglicherweise implementieren IMemAllocatorundIMediaSample

Der Pufferübergang, insbesondere nicht in verwaltetem Code erfolgen. Sie könnten in der Lage sein, es mit Interop zu tun, aber ich denke, das wäre einfacher in C ++ zu tun als in C #. Ich tat dies einmal vor vielen Jahren. Es dauerte etwa 3 Monate.

Beantwortet am 30/12/2009 um 00:42
quelle vom benutzer

stimmen
1

Eine bessere Lösung ist es, die Filter in einem Einzweck-Diagramm zu verwenden, in dem Sie eine benutzerdefinierte Quelle haben die Filter aus dem app Einspeisen und einer benutzerdefinierten sink die Ausgabe empfängt und es an die App liefern. Es ist ein Beispiel dafür auf www.gdcl.co.uk. Ich weiß, das ist nicht ganz das, was Sie fordern, aber Ihre Abhängigkeiten von dshow sind sehr begrenzt, und es ist schwer, eine Umgebung, in der die Filter binären funktioniert, aber dshow Grundlagen nicht zur Verfügung steht, um zu sehen.

G

Beantwortet am 30/12/2009 um 11:21
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more