Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ajoute une transformation, telle qu’un effet audio ou vidéo, à un flux.
Syntaxe
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Paramètres
[in] dwStreamIndex
Flux à configurer. La valeur peut être l’une des valeurs suivantes.
| Valeur | Meaning |
|---|---|
|
Index de base zéro d’un flux. |
|
Premier flux vidéo. |
|
Premier flux audio. |
[in] pTransformOrActivate
Pointeur vers l’un des éléments suivants :
- Transformation Media Foundation (MFT) qui expose l’interface IMFTransform .
- Objet d’activation MFT qui expose l’interface IMFActivate .
Valeur retournée
Cette méthode peut retourner l’une de ces valeurs.
| Code de retour | Descriptif |
|---|---|
|
Opération réussie. |
|
La transformation ne prend pas en charge le format de flux actuel et aucune conversion n’a été possible. Voir la section Remarques pour plus d'informations. |
|
Demande non valide. |
|
Le paramètre dwStreamIndex n’est pas valide. |
Remarques
Cette méthode tente d’ajouter la transformation à la fin de la chaîne de traitement actuelle.
Pour utiliser cette méthode, effectuez la séquence d’appels suivante :
- Appelez IMFSourceReader ::SetCurrentMediaType pour définir le type de sortie souhaité pour le flux. Dans cette étape, vous pouvez spécifier un type de média qui contient uniquement les GUID de type principal et de sous-type. Par exemple, pour obtenir une sortie RVB 32 bits, définissez un type principal de MFMediaType_Video et un sous-type de MFVideoFormat_RGB32. (Pour plus d’informations, consultez GUID de type de média.)
- Appelez AddTransformForStream. Si le lecteur source connecte correctement la transformation, il définit le type de sortie sur la transformation.
- Appelez IMFSourceReader ::GetCurrentMediaType pour obtenir le type de sortie à partir de la transformation. Cette méthode retourne un type de média avec une description complète du format.
- Si vous souhaitez modifier le type de sortie, appelez à nouveau IMFSourceReader ::SetCurrentMediaType pour définir un type multimédia complet sur la transformation.
La méthode échoue si le lecteur source a été configuré avec les attributs MF_READWRITE_DISABLE_CONVERTERS ou MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING .
En mode asynchrone, la méthode échoue également si un exemple de requête est en attente. Dans ce cas, attendez que le rappel OnReadSample soit appelé avant d’appeler la méthode. Pour plus d’informations sur l’utilisation du lecteur source en mode asynchrone, consultez IMFSourceReader ::ReadSample.
Vous pouvez ajouter une transformation à tout moment pendant la diffusion en continu. Toutefois, la méthode ne vide pas ou ne vide pas le pipeline avant d’insérer la transformation. Par conséquent, si les données se trouvent déjà dans le pipeline, l’exemple suivant n’est pas garanti que la transformation soit appliquée.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows 8 [applications de bureau | Applications UWP] |
| Serveur minimal pris en charge | Windows Server 2012 [applications de bureau | Applications UWP] |
| plateforme cible | Fenêtres |
| Header | mfreadwrite.h |