DXVAHD_STREAM_STATE_LUMA_KEY_DATA 구조체(dxvahd.h)
Microsoft DirectX 비디오 가속 고화질(DXVA-HD)을 사용하는 경우 입력 스트림에 대한 루마 키를 지정합니다.
구문
typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
BOOL Enable;
FLOAT Lower;
FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
멤버
Enable
TRUE이면 루마 키 지정이 사용됩니다. 그렇지 않으면 루마 키 지정이 사용하지 않도록 설정됩니다. 기본값은 FALSE입니다.
Lower
루마 키의 하한입니다. 범위는 [0... 1]. 기본 상태 값은 0.0입니다.
Upper
루마 키의 상한입니다. 범위는 [0... 1]. 기본 상태 값은 0.0입니다.
설명
이 상태를 사용하려면 디바이스가 DXVAHD_FEATURE_CAPS_LUMA_KEY 기능 플래그로 표시된 루마 키 지정을 지원해야 합니다. 이 기능을 쿼리하려면 IDXVAHD_Device::GetVideoProcessorDeviceCaps를 호출합니다. 디바이스가 루마 키 지정을 지원하는 경우 DXVAHD_VPDEVCAPS 구조체의 FeatureCaps 멤버에서 DXVAHD_FEATURE_CAPS_LUMA_KEY 플래그를 설정합니다.
디바이스에서 루마 키 지정을 지원하지 않으면 이 상태에 대해 IDXVAHD_VideoProcessor::SetVideoProcessStreamState 메서드가 실패합니다.
입력 형식이 RGB인 경우 디바이스는 DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY 기능도 지원해야 합니다. 이 기능 플래그는 DXVAHD_VPDEVCAPS 구조체의 InputFormatCaps 멤버에 설정됩니다. 플래그가 없으면 디바이스는 RGB 입력에 대한 루마 키 값을 무시합니다.
아래쪽 및 상한값은 명목 범위 [0...1]을 사용하여 루마 키의 하한과 상한을 제공합니다. 채널당 n 비트 형식이 지정된 경우 이러한 값은 다음과 같이 루마 값으로 변환됩니다.
val = f * ((1 << n)-1)
루마 값이 상한 및 하한(포함) 내에 속하는 모든 픽셀은 투명으로 처리됩니다.
예를 들어 픽셀 형식이 8비트 루마를 사용하는 경우 상한은 다음과 같이 계산됩니다.
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
값은 255를 곱하기 전에 [0...1] 범위로 고정됩니다.
예제
HRESULT DXVAHD_SetLumaKey(
IDXVAHD_VideoProcessor *pVP,
UINT stream,
BOOL bEnable,
float fLower, // Lower bound for the luma key.
float fUpper // Upper bound for the luma key.
)
{
DXVAHD_STREAM_STATE_LUMA_KEY_DATA luma = { bEnable, fLower, fUpper };
HRESULT hr = pVP->SetVideoProcessStreamState(
stream,
DXVAHD_STREAM_STATE_LUMA_KEY,
sizeof(luma),
&luma
);
return hr;
}
요구 사항
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
머리글 | dxvahd.h |