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이어야 합니다.
[out] pdwPayloadNumberOfStreamWithinPacket
지정된 스트림에 대한 정보를 포함하는 페이로드의 페이로드 번호를 받습니다. 패킷에는 각각 다른 스트림에 대한 데이터가 포함된 여러 페이로드가 포함될 수 있습니다. 이 매개 변수는 NULL일 수 있습니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
요청된 검색 시간이 범위를 벗어났습니다. |
|
지정된 스트림에 대해 지정된 형식의 인덱스가 없습니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wmcontainer.h |
라이브러리 | Mfuuid.lib |