CPullPin, classe

La CPullPin classe fournit la prise en charge des codes confidentiels d’entrée qui extraient les données via l’interface IAsyncReader . Utilisez cette classe si vous implémentez un filtre qui utilise le modèle d’extraction pour demander des données à partir du filtre en amont. pour plus d’informations, consultez Flow de données dans le filtre Graph et le modèle d’extraction.
Cette classe ne dérive pas de CBasePin ou implémente l’interface IPIN , et certains noms de méthode sont en conflit avec IPIN. il est donc préférable de l’utiliser en tant qu’objet d’assistance dans votre code confidentiel. Pour utiliser cette classe, procédez comme suit :
- Dérivez une classe d’assistance de
CPullPinet dérivez une classe de code confidentiel d’entrée à partir de CBasePin. Déclarez une instance de l'CPullPinobjet en tant que variable membre de la classe pin. - Substituez la méthode CBasePin :: CheckConnect pour appeler CPullPin :: connecter. Cette méthode interroge l’autre code confidentiel pour IAsyncReader.
- Substituez la méthode CBasePin :: BreakConnect pour appeler CPullPin ::D éconnecter.
- Substituez la méthode CBasePin :: active pour appeler CPullPin :: active. Cette méthode démarre un thread de travail qui extrait des exemples du filtre en amont. Lorsque les codes confidentiels se connectent, vous pouvez spécifier si vous souhaitez que le thread de travail effectue des requêtes de lecture asynchrones ou synchrones.
- Substituez la méthode CBasePin :: inactive pour appeler CPullPin :: inactive. Cette méthode arrête le thread de travail.
- Implémentez la méthode CPullPin :: Receive virtuelle pure pour traiter les échantillons entrants et les remettre en aval.
- Pour définir les positions arrêter et démarrer, ou pour rechercher le flux, appelez la méthode CPullPin :: Seek . Cette méthode suspend le thread de travail et vide le graphique de filtre.
- Implémentez les méthodes Virtual CPullPin :: EndOfStream, CPullPin :: BeginFlushet CPullPin :: EndFlush pures, comme décrit dans les notes pour ces méthodes.
- Implémentez la méthode pure virtual CPullPin :: OnError pour gérer les erreurs de diffusion en continu.
| Variables membres publiques | Description |
|---|---|
| m _ pAlloc | Pointeur vers l’interface IMemAllocator de l’allocateur de mémoire. |
| Méthodes publiques | Description |
| Actif | Crée un thread de travail qui extrait des données de la broche de sortie. |
| AlignDown | Tronque une valeur à une limite d’alignement spécifiée. |
| AlignUp | Arrondit une valeur à une limite d’alignement spécifiée. |
| Se connecter | Termine une connexion à la broche de sortie. |
| CPullPin | Méthode de constructeur. |
| ~ CPullPin | Méthode de destructeur. Virtuels. |
| DecideAllocator | Négocie un allocateur avec la broche de sortie. Virtuels. |
| Connect | Présente la connexion avec la broche de sortie. |
| Durée | Récupère la durée du flux. |
| GetReader | Retourne un pointeur vers l’interface IAsyncReader de la broche de sortie. |
| Inactif | Arrête le thread de travail qui extrait les données de la broche de sortie. |
| Seek | Définit les positions de début et de fin du flux. |
| Méthodes virtuelles pures | Description |
| BeginFlush | Informe le filtre propriétaire de la vidange des filtres en aval. |
| EndFlush | Informe le filtre propriétaire pour terminer une opération de vidage. |
| EndOfStream | Appelé après que l’objet a effectué le dernier échantillon. |
| OnError | Appelée si une erreur se produit pendant la diffusion en continu. |
| Recevoir | Appelé lorsque l’objet reçoit un échantillon de média à partir de la broche de sortie. |
Configuration requise
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|