DXVA_DeinterlaceContainerDeviceClass::D einterlaceQueryAvailableModes 메서드
샘플 DeinterlaceQueryAvailableModes 함수는 특정 입력 비디오 형식에 대해 사용 가능한 디인터레이싱 또는 프레임 속도 변환 모드를 쿼리합니다.
구문
HRESULT DeinterlaceQueryAvailableModes(
[in] LPDXVA_VideoDesc lpVideoDescription,
[in, out] LPDWORD lpdwNumModesSupported,
[in, out] LPGUID pGuidsDeinterlaceModes
);
매개 변수
lpVideoDescription [in] 수행할 디인터레이싱 또는 프레임 속도 변환에 대한 비디오 스트림에 대한 설명이 포함된 DXVA_VideoDesc 구조체에 대한 포인터를 제공합니다.
lpdwNumModesSupported [in, out] pGuidsDeinterlaceModes의 배열에서 반환되는 deinterlace 또는 프레임 속도 변환 모드 수에 대한 포인터를 받습니다.
pGuidsDeinterlaceModes [in, out] 드라이버에서 지원하는 deinterlace 또는 프레임 속도 변환 모드를 나타내는 GUID 배열에 대한 포인터를 받습니다.
반환 값
성공하면 0(S_OK 또는 DD_OK)을 반환합니다. 그렇지 않으면 오류 코드를 반환합니다. 전체 오류 코드 목록은 ddraw.h 를 참조하세요.
설명
드라이버가 소스 비디오의 해상도와 형식을 지원할 수 있도록 lpVideoDescription 매개 변수가 드라이버에 전달됩니다. 예를 들어 드라이버는 480i 콘텐츠의 3개 필드 적응 디인터레이스(deinterlace)를 수행할 수 있지만 1080i 콘텐츠만 사용할 수 있습니다. 자세한 내용은 Deinterlace 및 Frame-Rate 변환에 대한 비디오 콘텐츠를 참조하세요.
pGuidsDeinterlaceModes 매개 변수에서 반환된 GUID는 내림차순으로 반환되어야 합니다(즉, 최고 품질 모드가 반환된 GUID 배열의 첫 번째 요소를 차지해야 함).
모든 드라이버는 기존 Blt(비트 블록 전송 ) 하드웨어를 사용하여 bob 모드를 지원할 수 있어야 합니다. 모드에 대한 자세한 내용은 Deinterlace 모드 및프레임 속도 변환 모드 항목을 참조하세요.
드라이버는 VMR의 요청에 대한 응답으로 지원하는 GUID(모드)를 반환합니다. 드라이버는 DdMoCompRender 콜백 함수에 대한 호출에 응답합니다. 드라이버는 DdMoCompRender의 lpRenderData 매개 변수가 가리키는 DD_RENDERMOCOMPDATA 구조체의 lpOutputData 멤버를 통해 GUID를 반환합니다. lpOutputData 멤버는 Guids 멤버의 GUID 배열을 포함하는 DXVA_DeinterlaceQueryAvailableModes 구조를 가리킵니다.
RenderMoComp를DeinterlaceQueryAvailableModes에 매핑
샘플 DeinterlaceQueryAvailableModes 함수는 DD_MOTIONCOMPCALLBACKS 구조체의 RenderMoComp 멤버에 대한 호출에 직접 매핑됩니다. RenderMoComp 멤버는 DD_RENDERMOCOMPDATA 구조를 참조하는 드라이버 제공 표시 함수를 가리킵니다.
RenderMoComp 콜백은 디스플레이 드라이버 제공 BeginMoCompFrame 또는 EndMoCompFrame 함수가 먼저 호출되지 않고 호출됩니다.
DD_RENDERMOCOMPDATA 구조체는 다음과 같이 채워집니다.
| 멤버 | 값 |
|---|---|
dwNumBuffers |
단계 없음. |
lpBufferInfo |
NULL |
dwFunction |
DXVA_DeinterlaceQueryAvailableModesFnCode 상수( dxva.h에 정의됨). |
lpInputData |
채워진 DXVA_VideoDesc 구조체에 대한 포인터입니다. |
lpOutputData |
DXVA_DeinterlaceQueryAvailableModes 구조체에 대한 포인터입니다. |
VMR이 특정 비디오 형식에 사용할 수 있는 디인터레이스 또는 프레임 변환 모드를 결정한 후 VMR은 드라이버를 쿼리하여 특정 디인터레이스 모드의 입력 요구 사항 및 해당 모드에서 지원될 수 있는 추가 비디오 처리에 대한 자세한 정보를 얻습니다. 드라이버는 DeinterlaceQueryModeCaps 함수에 대한 호출에서 이 정보를 반환합니다.