DXVA_DeinterlaceBobDeviceClass::D einterlaceBlt 메서드
샘플 DeinterlaceBlt 함수는 대상 화면에 출력을 작성하여 deinterlace 또는 프레임 속도 변환을 수행합니다.
구문
HRESULT DeinterlaceBlt(
[in] REFERENCE_TIME rtTargetFrame,
[in] LPRECT lprcDstRect,
[in] LPDDSURFACE lpDDSDstSurface,
[in] LPRECT lprcSrcRect,
[in] LPDXVA_VideoSample lpDDSrcSurfaces,
[in] DWORD dwNumSurfaces,
[in] FLOAT fAlpha
);
매개 변수
rtTargetFrame [in] 입력 프레임 시퀀스 내에서 출력 프레임의 위치를 식별합니다. 디인터레이싱만 수행되는 경우 대상 시간은 DXVA_VideoSample 구조에 정의된 참조 샘플의 시작 표시 시간 또는 시작 표시 시간과 종료 표시 시간 사이의 중간점과 일치해야 합니다. 자세한 내용은 DXVA_DeinterlaceBlt 구조를 참조하세요.
프레임 속도 변환을 요청하는 경우 rtTarget 시간은 참조 샘플의 rtStart 시간과 다를 수 있습니다.
lprcDstRect [in] 대상 표면에서 사각형의 왼쪽 위와 오른쪽 아래 점을 설명하는 RECT 구조체에 대한 포인터를 제공합니다. 이러한 점은 비트 블록 전송이 발생하는 영역과 대상 표면의 위치를 정의합니다.
lpDDSDstSurface [in] 대상 화면에 대한 포인터를 제공합니다. 대상 표면은 D3D 렌더링 대상, D3D 텍스처 또는 렌더링 대상인 D3D 텍스처일 수 있습니다. 대상 화면은 항상 로컬 비디오 메모리에 할당됩니다.
대상 표면의 픽셀 형식은 YUV-RGB 색 공간 변환이 디인터레이스 프로시저의 일부로 수행되지 않는 한 DXVA_DeinterlaceCaps 구조에 표시된 형식입니다. 이 경우 대상 표면 형식은 각 색 구성 요소에 대해 정밀도가 8비트 이상인 RGB 형식입니다.
lprcSrcRect [in] 원본 표면에서 사각형의 왼쪽 위와 오른쪽 아래 점을 설명하는 RECT 구조체에 대한 포인터를 제공합니다. 이러한 점은 비트 블록 전송에 대한 원본 데이터의 영역과 원본 표면의 위치를 정의합니다.
lpDDSrcSurfaces [in] 비디오 소스 샘플 배열에 대한 포인터를 제공합니다.
dwNumSurfaces [in] lpDDSrcSurfaces 배열의 표면 수를 나타냅니다.
fAlpha [in] 표면의 알파 값을 나타냅니다. 값 0.0F는 투명한 표면을 나타냅니다. 값 1.0F는 불투명 표면을 나타냅니다.
반환 값
성공하면 0(S_OK 또는 DD_OK)을 반환합니다. 그렇지 않으면 오류 코드를 반환합니다. 오류 코드의 전체 목록은 ddraw.h 를 참조하세요.
설명
DeinterlaceBlt 함수는 DD_MOTIONCOMPCALLBACKS 구조체의 RenderMoComp 멤버에 대한 호출에 직접 매핑됩니다. RenderMoComp 멤버는 DD_RENDERMOCOMPDATA 구조를 참조하는 드라이버 제공 표시 함수를 가리킵니다. DD_RENDERMOCOMPDATA 구조체는 다음과 같이 채워집니다.
| 멤버 | 값 |
|---|---|
dwNumBuffers |
lpBufferInfo가 가리키는 배열의 항목 수를 나타냅니다. |
lpBufferInfo |
DDMOCOMPBUFFERINFO 구조체의 배열을 가리키며, 각 입력 참조 샘플에 대해 하나씩, 대상 샘플에 대해 하나씩 가리킵니다. 대상 샘플은 배열의 첫 번째 요소입니다. |
dwFunction |
dxva.h에 정의된 DXVA_DeinterlaceBltFnCode 상수입니다. |
lpInputData |
채워진 DXVA_DeinterlaceBlt 구조를 가리킵니다. |
lpOutputData |
현재 사용되지 않는 NULL로 설정합니다. |
디인터레이싱에 사용되는 DirectX VA 디바이스의 경우 RenderMoComp 에서 가리키는 드라이버 제공 콜백은 디스플레이 드라이버 제공 BeginMoCompFrame 또는 EndMoCompFrame 함수를 호출하지 않고 호출 됩니다 .