Share via


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

Dado un tiempo de búsqueda deseado, obtiene el desplazamiento desde el que el cliente debe empezar a leer los datos.

Sintaxis

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

Parámetros

[in] pvarValue

Valor de la entrada de índice para la que se va a obtener la posición. El formato de este valor varía en función del tipo de índice, que se especifica en el identificador de índice. Para la indexación basada en el tiempo, el tipo de variante se VT_I8 y el valor es el tiempo de búsqueda deseado, en unidades de 100 nanosegundos.

[in] pIndexIdentifier

Puntero a una estructura de ASF_INDEX_IDENTIFIER que identifica el número de secuencia y el tipo de índice.

[out] pcbOffsetWithinData

Recibe el desplazamiento dentro del segmento de datos del objeto de datos ASF. El desplazamiento está en bytes y es relativo al inicio del paquete 0. El desplazamiento proporciona la ubicación inicial desde la que el cliente debe empezar a leer desde la secuencia. Es posible que esta ubicación no se corresponda exactamente con el tiempo de búsqueda solicitado.

Para la reproducción inversa, si no existe ningún fotograma clave después de la posición de búsqueda deseada, este parámetro recibe el valor MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT. En ese caso, la posición de búsqueda debe ser de 1 byte pasando el final del segmento de datos.

[out] phnsApproxTime

Recibe la marca de tiempo aproximada de los datos que se encuentran en el desplazamiento devuelto en el parámetro pcbOffsetWithinData . La precisión de este valor es igual al intervalo de indexación del índice ASF, normalmente aproximadamente 1 segundo.

  • Si el tipo de índice especificado en pIndexIdentifier es GUID_NULL (indexación de tiempo), este parámetro puede ser NULL.
  • Para todos los demás tipos de índice, este parámetro debe ser NULL.
Si no se puede determinar la marca de tiempo aproximada, este parámetro recibe el valor MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN.

[out] pdwPayloadNumberOfStreamWithinPacket

Recibe el número de carga de la carga que contiene la información de la secuencia especificada. Los paquetes pueden contener varias cargas, cada una que contiene datos para una secuencia diferente. Este parámetro puede ser NULL.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
MF_E_ASF_OUTOFRANGE
El tiempo de búsqueda solicitado está fuera del intervalo.
MF_E_NO_INDEX
No existe ningún índice del tipo especificado para la secuencia especificada.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wmcontainer.h
Library Mfuuid.lib

Consulte también

Objeto de índice de ASF

IMFASFIndexer

MFTIME