다음을 통해 공유


IMFASFIndexer::GetSeekPositionForValue 메서드(wmcontainer.h)

원하는 검색 시간이 지정된 경우 클라이언트가 데이터 읽기를 시작해야 하는 오프셋을 가져옵니다.

구문

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

매개 변수

[in] pvarValue

위치를 가져올 인덱스 항목의 값입니다. 이 값의 형식은 인덱스 식별자에 지정된 인덱스 유형에 따라 달라집니다. 시간 기반 인덱싱의 경우 변형 형식은 VT_I8 값은 원하는 검색 시간(100나노초 단위)입니다.

[in] pIndexIdentifier

스트림 번호 및 인덱스 형식을 식별하는 ASF_INDEX_IDENTIFIER 구조체에 대한 포인터입니다.

[out] pcbOffsetWithinData

ASF 데이터 개체의 데이터 세그먼트 내에서 오프셋을 받습니다. 오프셋은 바이트 단위이며 패킷 0의 시작을 기준으로 합니다. 오프셋은 클라이언트가 스트림에서 읽기 시작해야 하는 시작 위치를 제공합니다. 이 위치는 요청된 검색 시간과 정확히 일치하지 않을 수 있습니다.

역방향 재생의 경우 원하는 검색 위치 다음에 키 프레임이 없으면 이 매개 변수는 MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 값을 받습니다. 이 경우 검색 위치는 데이터 세그먼트의 끝을 1 바이트 통과해야 합니다.

[out] phnsApproxTime

pcbOffsetWithinData 매개 변수에 반환된 오프셋에 있는 데이터의 대략적 타임스탬프를 받습니다. 이 값의 정확도는 ASF 인덱스의 인덱싱 간격(일반적으로 약 1초)과 같습니다.

  • pIndexIdentifier에 지정된 인덱스 형식이 GUID_NULL(시간 인덱싱)인 경우 이 매개 변수는 NULL일 수 있습니다.
  • 다른 모든 인덱스 형식의 경우 이 매개 변수는 NULL이어야 합니다.
대략적 타임스탬프를 확인할 수 없는 경우 이 매개 변수는 MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 값을 받습니다.

[out] pdwPayloadNumberOfStreamWithinPacket

지정된 스트림에 대한 정보를 포함하는 페이로드의 페이로드 번호를 받습니다. 패킷에는 각각 다른 스트림에 대한 데이터가 포함된 여러 페이로드가 포함될 수 있습니다. 이 매개 변수는 NULL일 수 있습니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
MF_E_ASF_OUTOFRANGE
요청된 검색 시간이 범위를 벗어났습니다.
MF_E_NO_INDEX
지정된 스트림에 대해 지정된 형식의 인덱스가 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wmcontainer.h
라이브러리 Mfuuid.lib

추가 정보

ASF 인덱스 개체

IMFASFIndexer

MFTIME