Méthode CSourceStream. DoBufferProcessingLoop

La DoBufferProcessingLoop méthode génère des données multimédias et les remet à la broche d’entrée en aval.

Syntaxe

virtual HRESULT DoBufferProcessingLoop();

Paramètres

Cette méthode n’a aucun paramètre.

Valeur de retour

Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes :

Code de retour Description
S _ false
Le thread a reçu une demande d’arrêt.
_OK
Le flux est terminé, ou le filtre en aval n’accepte pas les exemples.

Notes

Cette méthode implémente la boucle principale qui traite les données et les remet en aval. Chaque fois que vous parcourez la boucle, la méthode récupère un échantillon de média vide à partir de l’allocateur. Il passe l’exemple à la méthode CSourceStream :: FillBuffer . La méthode FillBuffer , que la classe dérivée doit implémenter, génère des données multimédias et les place dans l’exemple de mémoire tampon.

La boucle se termine lorsque l’un des éléments suivants se produit :

  • La méthode IMemInputPin :: Receive de la broche d’entrée rejette un exemple.
  • La méthode FillBuffer retourne S _ false, indiquant la fin du flux, ou retourne un code d’erreur.
  • Le thread reçoit une demande CSourceStream :: Stop .

La DoBufferProcessingLoop méthode gère la notification de fin de flux. Si une erreur se produit, elle envoie un événement EC _ ERRORABORT au gestionnaire de graphique de filtre.

Spécifications

Condition requise Valeur
En-tête
Source. h (inclure Flux. h)
Bibliothèque
Strmbase. lib (versions commerciales);
Strmbasd. lib (versions Debug)

Voir aussi

CSourceStream, classe