Share via


Méthode IMFTransform::SetOutputBounds (mftransform.h)

Définit la plage d’horodatages dont le client a besoin pour la sortie.

Syntaxe

HRESULT SetOutputBounds(
  LONGLONG hnsLowerBound,
  LONGLONG hnsUpperBound
);

Paramètres

hnsLowerBound

Spécifie l’horodatage le plus ancien. La transformation Media Foundation (MFT) accepte l’entrée jusqu’à ce qu’elle puisse produire un exemple de sortie qui commence à ce moment-là ; ou jusqu’à ce qu’il puisse produire un exemple qui se termine à ce moment-là ou ultérieurement. S’il n’existe pas de limite inférieure, utilisez la valeur MFT_OUTPUT_BOUND_LOWER_UNBOUNDED.

hnsUpperBound

Spécifie l’horodatage le plus récent. Le MFT ne produira pas d’exemple de sortie avec des horodatages postérieurs à cette heure. S’il n’existe aucune limite supérieure, utilisez la valeur MFT_OUTPUT_BOUND_UPPER_UNBOUNDED.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_NOTIMPL
Non implémenté.
MF_E_TRANSFORM_TYPE_NOT_SET
Le type de média n’est pas défini sur un ou plusieurs flux.

Notes

Cette méthode peut être utilisée pour optimiser le préroll, en particulier dans les formats qui présentent des intervalles entre les horodatages, ou dans les formats où les données doivent commencer sur un point de synchronisation, comme MPEG-2. L’appel de cette méthode est facultatif, et l’implémentation de cette méthode par un MFT est facultative. Si MFT n’implémente pas la méthode, la valeur de retour est E_NOTIMPL.

Si un MFT implémente cette méthode, il doit limiter ses données de sortie à la plage de temps spécifiée par hnsLowerBound et hnsUpperBound. Le MFT ignore toutes les données d’entrée qui ne sont pas nécessaires pour produire une sortie dans cette plage. Si les limites des exemples ne correspondent pas exactement à la plage, le MFT doit fractionner les exemples de sortie, si possible. Sinon, les exemples de sortie peuvent chevaucher la plage.

Par exemple, supposons que la plage de sortie est comprise entre 100 et 150 millisecondes (ms) et que le format de sortie est vidéo avec chaque image de 33 ms. Un exemple avec un horodatage de 67 ms chevauche la plage (67 + 33 = 100) et est produit en sortie. Un exemple avec un horodatage de 66 ms est ignoré (66 + 33 = 99). De même, un échantillon avec un horodatage de 150 ms est produit en sortie, mais un échantillon avec un horodatage de 151 est ignoré.

Si MFT_UNIQUE_METHOD_NAMES est défini avant d’inclure mftransform.h, cette méthode est renommée MFTSetOutputBounds. Consultez Création d’objets DMO/MFT hybrides.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête mftransform.h
Bibliothèque Mfuuid.lib

Voir aussi

IMFTransform

Transformations de Media Foundation