Condividi tramite


Metodo IMFASFIndexer::GetSeekPositionForValue (wmcontainer.h)

Dato un tempo di ricerca desiderato, ottiene l'offset da cui il client deve iniziare a leggere i dati.

Sintassi

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

Parametri

[in] pvarValue

Valore della voce di indice per cui ottenere la posizione. Il formato di questo valore varia a seconda del tipo di indice, specificato nell'identificatore di indice. Per l'indicizzazione basata sul tempo, il tipo variant è VT_I8 e il valore è il tempo di ricerca desiderato, in 100-nanosecondi unità.

[in] pIndexIdentifier

Puntatore a una struttura ASF_INDEX_IDENTIFIER che identifica il numero di flusso e il tipo di indice.

[out] pcbOffsetWithinData

Riceve l'offset all'interno del segmento di dati dell'oggetto dati ASF. L'offset è in byte ed è relativo all'inizio del pacchetto 0. L'offset fornisce la posizione iniziale da cui il client deve iniziare a leggere dal flusso. Questa posizione potrebbe non corrispondere esattamente al tempo di ricerca richiesto.

Per la riproduzione inversa, se non esiste alcun fotogramma chiave dopo la posizione di ricerca desiderata, questo parametro riceve il valore MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT. In tal caso, la posizione di ricerca deve essere 1 byte passare la fine del segmento di dati.

[out] phnsApproxTime

Riceve il timestamp approssimativo dei dati che si trovano nell'offset restituito nel parametro pcbOffsetWithinData . L'accuratezza di questo valore è uguale all'intervallo di indicizzazione dell'indice ASF, in genere circa 1 secondo.

  • Se il tipo di indice specificato in pIndexIdentifierè GUID_NULL (indicizzazione temporale), questo parametro può essere NULL.
  • Per tutti gli altri tipi di indice, questo parametro deve essere NULL.
Se non è possibile determinare il timestamp approssimativo, questo parametro riceve il valore MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN.

[out] pdwPayloadNumberOfStreamWithinPacket

Riceve il numero di payload del payload che contiene le informazioni per il flusso specificato. I pacchetti possono contenere più payload, ognuno dei quali contiene dati per un flusso diverso. Questo parametro può essere NULL.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
MF_E_ASF_OUTOFRANGE
Il tempo di ricerca richiesto non è compreso nell'intervallo.
MF_E_NO_INDEX
Nessun indice esiste del tipo specificato per il flusso specificato.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wmcontainer.h
Libreria Mfuuid.lib

Vedi anche

Oggetto ASF Index

IMFASFIndexer

MFTIME