Partager via


Méthode IMFASFIndexer ::GetSeekPositionForValue (wmcontainer.h)

En fonction de l’heure de recherche souhaitée, obtient le décalage à partir duquel le client doit commencer à lire les données.

Syntaxe

HRESULT GetSeekPositionForValue(
  [in]  const PROPVARIANT    *pvarValue,
  [in]  ASF_INDEX_IDENTIFIER *pIndexIdentifier,
  [out] QWORD                *pcbOffsetWithinData,
  [out] MFTIME               *phnsApproxTime,
  [out] DWORD                *pdwPayloadNumberOfStreamWithinPacket
);

Paramètres

[in] pvarValue

Valeur de l’entrée d’index pour laquelle obtenir la position. Le format de cette valeur varie en fonction du type d’index, qui est spécifié dans l’identificateur d’index. Pour l’indexation basée sur le temps, le type de variante est VT_I8 et la valeur est l’heure de recherche souhaitée, en unités de 100 nanosecondes.

[in] pIndexIdentifier

Pointeur vers une structure ASF_INDEX_IDENTIFIER qui identifie le nombre de flux et le type d’index.

[out] pcbOffsetWithinData

Reçoit le décalage dans le segment de données de l’objet de données ASF. Le décalage est en octets et est relatif au début du paquet 0. Le décalage indique l’emplacement de départ à partir duquel le client doit commencer à lire à partir du flux. Cet emplacement peut ne pas correspondre exactement à l’heure de recherche demandée.

Pour la lecture inversée, si aucune image clé n’existe après la position de recherche souhaitée, ce paramètre reçoit la valeur MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT. Dans ce cas, la position de recherche doit être de 1 octet à la fin du segment de données.

[out] phnsApproxTime

Reçoit l’horodatage approximatif des données situées au niveau du décalage retourné dans le paramètre pcbOffsetWithinData . La précision de cette valeur est égale à l’intervalle d’indexation de l’index ASF, généralement environ 1 seconde.

  • Si le type d’index spécifié dans pIndexIdentifier est GUID_NULL (indexation temporelle), ce paramètre peut être NULL.
  • Pour tous les autres types d’index, ce paramètre doit avoir la valeur NULL.
Si l’horodatage approximatif ne peut pas être déterminé, ce paramètre reçoit la valeur MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN.

[out] pdwPayloadNumberOfStreamWithinPacket

Reçoit le numéro de charge utile de la charge utile qui contient les informations du flux spécifié. Les paquets peuvent contenir plusieurs charges utiles, chacune contenant des données pour un flux différent. Ce paramètre peut être NULL.

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
MF_E_ASF_OUTOFRANGE
Le temps de recherche demandé est hors de portée.
MF_E_NO_INDEX
Il n’existe aucun index du type spécifié pour le flux spécifié.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wmcontainer.h
Bibliothèque Mfuuid.lib

Voir aussi

Objet d’index ASF

IMFASFIndexer

MFTIME