Frame-Einfügung

Standardmäßig erwirbt ein Anforderer leere Frames von einem Allocator und platziert sie in einer Warteschlange. Der Minidriver füllt dann Frames entweder durch pinzentrierte Verarbeitung oder filterorientierte Verarbeitung aus. Die Frames bewegen sich über einen Transport zum nächsten Objekt im Schaltkreis, beenden schließlich den Schaltkreis und kehren zum Anforderer zurück. AVStream verwendet dann die Frames wieder.

Minidriver können dieses Standardverhalten überschreiben, indem sie den Einfügungsmodus verwenden. Im Einspritzmodus ist der Minidriver für das Platzieren von Frames in den Schaltkreis verantwortlich. Frames verteilen sich auf die Standardeinstellung um den Schaltkreis. Wenn die Frames an das AVStream-Objekt zurückkehren, in dem sie gestartet wurden, ruft AVStream eine minidriver-bereitgestellte AVStrMiniFrameReturn-Routine auf.

In dieser Routine kann der Minidriver z. B. den Frame umstellen, die Arbeit abschließen, die für die Rückgabe des Frames ausstehend ist, oder den Frame erneut ausfüllen und erneut auswerfen.

Zum Festlegen des Einfügemodus ruft der Minidriver KsPinRegisterFrameReturnCallback auf und stellt einen Zeiger auf seine AVStrMiniFrameReturn-Routine bereit.

Rufen Sie KsPinRegisterFrameReturnCallback nicht auf, es sei denn, der Filter befindet sich im Stoppzustand.

Um Frames in den Schaltkreis einzufügen, rufen Sie KsPinSubmitFrame oder KsPinSubmitFrameMdl auf.

Das folgende Diagramm zeigt einen AVStream-Filtersatz, der aus einem Quellfilter, einem Inplace-Transformationsfilter und einem Renderingfilter mit den in die Quelle eingefügten Frames besteht.

Diagramm, das einen Avstream-Filtersatz veranschaulicht.