Partager via


Méthode CDynamicOutputPin.ChangeOutputFormat

[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 ChangeOutputFormat méthode modifie dynamiquement le type de média pour la connexion et fournit de nouvelles informations de segment. La modification peut se produire pendant l’exécution du graphique de filtre. Une fois cette méthode appelée, les exemples avec l’ancien type de média ne peuvent pas être remis. L’appelant doit s’assurer qu’aucun ancien échantillon n’est en attente.

Syntaxe

HRESULT ChangeOutputFormat(
   const AM_MEDIA_TYPE  *pmt,
         REFERENCE_TIME tSegmentStart,
         REFERENCE_TIME tSegmentStop,
         double         dSegmentRate
);

Paramètres

Pmt

Pointeur vers une structure AM_MEDIA_TYPE qui spécifie le type de média.

tSegmentStart

Heure de début du segment.

tSegmentStop

Heure d’arrêt du segment.

dSegmentRate

Taux de segment.

Valeur renvoyé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_FAIL
Échec. Le filtre propriétaire n’a peut-être pas appelé CDynamicOutputPin::SetConfigInfo.
VFW_E_NOT_CONNECTED
La broche n’est pas connectée.

Notes

Cette méthode modifie le type de format pendant l’exécution du filtre. Si l’épingle en aval accepte le nouveau format, aucune reconnexion n’est nécessaire. Sinon, la méthode tente de reconnecter l’épingle. Si la méthode modifie correctement le format, elle fournit les nouvelles informations de segment. Cette méthode appelle la méthode CDynamicOutputPin::ChangeMediaType pour effectuer le changement de format.

Vous devez appeler la méthode CDynamicOutputPin::StartUsingOutputPin avant d’appeler cette méthode.

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