Partager via


Méthode CDynamicOutputPin.StartUsingOutputPin

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La StartUsingOutputPin méthode obtient l’accès à l’épingle pour une opération de diffusion en continu.

Syntaxe

virtual HRESULT StartUsingOutputPin();

Paramètres

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

Valeur retournée

Retourne une valeur HRESULT . Les valeurs possibles incluent celles indiquées dans le tableau suivant.

Code de retour Description
S_OK
Opération réussie.
E_UNEXPECTED
Erreur inattendue.
VFW_E_STATE_CHANGED
Le filtre a été arrêté ou le vidage de la broche a commencé.

Notes

Appelez cette méthode avant d’appeler les méthodes qui fournissent des données à la broche d’entrée connectée ou qui modifient le type de média de la connexion. Par exemple, cette règle s’applique aux méthodes suivantes :

Ensuite, appelez la méthode CDynamicOutputPin::StopUsingOutputPin pour libérer l’accès à l’épingle.

Si l’épingle est bloquée, StartUsingOutputPin attend que l’épingle soit débloquée. Si le filtre s’arrête pendant que la méthode est en attente, la méthode retourne immédiatement VFW_E_STATE_CHANGED. L’épingle conserve le nombre de fois StartUsingOutputPin que l’appel a été effectué sans appel correspondant à StopUsingOutputPin. Si un autre thread tente de bloquer la broche alors que ce nombre n’est pas égal à zéro, la broche définit son status de blocage sur « en attente ». L’épingle est bloquée une fois que toutes les opérations de diffusion en continu sont terminées, lors de l’appel final à StopUsingOutputPin.

Ne tenez pas la section critique CDynamicOutputPin::m_BlockStateLock lorsque vous appelez cette méthode. Sinon, si l’épingle est bloquée, elle ne peut jamais être débloquée, ce qui provoque un blocage.

Configuration requise

Condition requise Valeur
En-tête
Amfilter.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)

Voir aussi

CDynamicOutputPin, classe