다음을 통해 공유


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

추가 정보

DXVA-HD

DXVAHD_STREAM_STATE

Direct3D 비디오 구조

IDXVAHD_VideoProcessor::SetVideoProcessStreamState

미디어 파운데이션 구조