Compartilhar via


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

Dado o tempo de busca desejado, obtém o deslocamento do qual o cliente deve começar a ler dados.

Sintaxe

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

Parâmetros

[in] pvarValue

O valor da entrada de índice para a qual obter a posição. O formato desse valor varia dependendo do tipo de índice, que é especificado no identificador de índice. Para indexação baseada em tempo, o tipo variante é VT_I8 e o valor é o tempo de busca desejado, em unidades de 100 nanossegundos.

[in] pIndexIdentifier

Ponteiro para uma estrutura ASF_INDEX_IDENTIFIER que identifica o número de fluxo e o tipo de índice.

[out] pcbOffsetWithinData

Recebe o deslocamento dentro do segmento de dados do objeto de dados ASF. O deslocamento está em bytes e é relativo ao início do pacote 0. O deslocamento fornece o local inicial do qual o cliente deve começar a ler do fluxo. Esse local pode não corresponder exatamente ao tempo de busca solicitado.

Para reprodução inversa, se nenhum quadro chave existir após a posição de busca desejada, esse parâmetro receberá o valor MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT. Nesse caso, a posição de busca deve ser de 1 byte no final do segmento de dados.

[out] phnsApproxTime

Recebe o carimbo de data/hora aproximado dos dados localizados no deslocamento retornado no parâmetro pcbOffsetWithinData . A precisão desse valor é igual ao intervalo de indexação do índice ASF, normalmente cerca de 1 segundo.

  • Se o tipo de índice especificado em pIndexIdentifier for GUID_NULL (indexação de tempo), esse parâmetro poderá ser NULL.
  • Para todos os outros tipos de índice, esse parâmetro deve ser NULL.
Se o carimbo de data/hora aproximado não puder ser determinado, esse parâmetro receberá o valor MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN.

[out] pdwPayloadNumberOfStreamWithinPacket

Recebe o número de carga do conteúdo que contém as informações do fluxo especificado. Os pacotes podem conter várias cargas, cada uma contendo dados para um fluxo diferente. Este parâmetro pode ser NULL.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
MF_E_ASF_OUTOFRANGE
O tempo de busca solicitado está fora do intervalo.
MF_E_NO_INDEX
Não existe nenhum índice do tipo especificado para o fluxo especificado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wmcontainer.h
Biblioteca Mfuuid.lib

Confira também

Objeto Index do ASF

IMFASFIndexer

MFTIME