Partager via


ImfDeviceTransform::P rocessOutput, méthode (mftransform.h)

La méthode ProcessOutput obtient la sortie traitée des flux de sortie MFT de l’appareil.

Syntaxe

HRESULT ProcessOutput(
  [in] DWORD                  dwFlags,
  [in] DWORD                  cOutputBufferCount,
  [in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
  [in] DWORD                  *pdwStatus
);

Paramètres

[in] dwFlags

OR au niveau du bit de zéro ou plusieurs indicateurs de l’énumération _MFT_PROCESS_OUTPUT_FLAGS .

[in] cOutputBufferCount

Nombre d’éléments dans le tableau pOutputSamples . La valeur doit être au moins 1.

[in] pOutputSample

Pointeur vers un tableau de structures MFT_OUTPUT_DATA_BUFFER , alloué par l’appelant. Le MFT utilise ce tableau pour renvoyer les données de sortie à l’appelant.

[in] pdwStatus

Reçoit un OR au niveau du bit de zéro ou plusieurs indicateurs de l’énumération _MFT_PROCESS_OUTPUT_STATUS .

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.

Code de retour Description
S_OK
La méthode a réussi.
E_INVALIDARG
Argument non valide transmis.
MF_E_INVALIDREQUEST
L’appareil MFT n’a pas pu prendre en charge la demande pour le moment.
MF_E_INVAILIDSTREAMNUMBER
Un ID de flux non valide a été transmis.
MF_E_INVALID_STREAM_STATE
La transition de flux demandée n’est pas possible.
MF_E_TRANSFORM_TYPE_NOT_SET
Le type de média d’entrée n’a pas été défini.

Notes

Dans la plupart des cas, si la méthode réussit, la transformation Media Foundation (MFT) stocke l’exemple et contient un nombre de références sur le pointeur IMFSample . Lorsque le MFT est terminé à l’aide de l’exemple, il doit le libérer pour éviter les fuites de mémoire.

Une fois que le gestionnaire de transformation d’appareil (DTM) a défini des types de médias valides sur tous les flux, le MFT doit toujours être en mesure d’accepter davantage d’entrée et de produire plus de sortie.

Si un MFT rencontre une erreur non irrécupérable dans les données d’entrée, il peut simplement supprimer les données et tenter de les récupérer lorsqu’il obtient plus de données d’entrée. Si le MFT supprime des données, il doit définir l’attribut MFSampleExtension_Discontinuity sur l’exemple de sortie suivant, pour informer l’appelant qu’il existe une lacune dans le flux de données.

Configuration requise

   
Client minimal pris en charge Windows 10 version 1703
Plateforme cible Windows
En-tête mftransform.h

Voir aussi

IMFDeviceTransform