Injection d’images

Par défaut, dans AVStream, un demandeur acquiert des images vides à partir d’un allocateur et les place dans une file d’attente. Le minidriver remplit ensuite les images par traitement centré sur les broches ou le traitement centré sur les filtres. Les images se déplacent sur un transport vers l’objet suivant dans le circuit, finissent par terminer le circuit et retournent au demandeur. AVStream réutilise ensuite les images.

Les minidrivers peuvent remplacer ce comportement par défaut à l’aide du mode d’injection. En mode injection, le minidriver est chargé de placer des images dans le circuit. Les images se propagent autour du circuit de la manière par défaut. Lorsque les images retournent à l’objet AVStream où elles ont démarré, AVStream appelle une routine AVStrMiniFrameReturn fournie par le minidriver.

Dans cette routine, le minidriver peut par exemple libérer la trame, terminer un travail en attente sur le retour de la trame, ou recharger et réinjecter la trame.

Pour définir le mode d’injection, le minidriver appelle KsPinRegisterFrameReturnCallback et fournit un pointeur vers sa routine AVStrMiniFrameReturn .

N’appelez pasKsPinRegisterFrameReturnCallback, sauf si le filtre est dans l’état d’arrêt.

Pour injecter des images dans le circuit, appelez KsPinSubmitFrame ou KsPinSubmitFrameMdl.

Le diagramme ci-dessous montre un jeu de filtres AVStream composé d’un filtre source, d’un filtre de transformation inplace et d’un filtre de rendu avec les images injectées source.

diagramme illustrant un jeu de filtres avstream.