Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt den Lumaschlüssel für einen Eingabestream an, wenn Microsoft DirectX Video Acceleration High Definition (DXVA-HD) verwendet wird.
Syntax
typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
BOOL Enable;
FLOAT Lower;
FLOAT Upper;
} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
Member
Enable
Bei TRUE ist die Luma-Schlüsselerstellung aktiviert. Andernfalls ist die Luma-Schlüsselerstellung deaktiviert. Der Standardwert ist FALSE.
Lower
Die Untergrenze für den Lumaschlüssel. Der Bereich ist [0... 1]. Der Standardwert ist 0,0.
Upper
Die Obergrenze für den Lumaschlüssel. Der Bereich ist [0... 1]. Der Standardwert ist 0,0.
Hinweise
Um diesen Zustand zu verwenden, muss das Gerät luma-Keying unterstützen, die durch das DXVAHD_FEATURE_CAPS_LUMA_KEY-Funktionsflag angegeben wird. Um diese Funktion abzufragen, rufen Sie IDXVAHD_Device::GetVideoProcessorDeviceCaps auf. Wenn das Gerät luma-Keying unterstützt, wird das DXVAHD_FEATURE_CAPS_LUMA_KEY-Flag im FeatureCaps-Element der DXVAHD_VPDEVCAPS-Struktur festgelegt.
Wenn das Gerät die Lumaschlüsselung nicht unterstützt, schlägt die IDXVAHD_VideoProcessor::SetVideoProcessStreamState-Methode für diesen Zustand fehl.
Wenn das Eingabeformat RGB ist, muss das Gerät auch die DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY-Funktion unterstützen. Dieses Funktionsflag wird im InputFormatCaps-Element der DXVAHD_VPDEVCAPS-Struktur festgelegt. Wenn das Flag nicht vorhanden ist, ignoriert das Gerät den luma-Schlüsselwert für die RGB-Eingabe.
Die Werte von Lower und Upper geben die Unter- und Obergrenze des Lumaschlüssels an, wobei ein Nominalbereich von [0...1] verwendet wird. Bei einem Format mit n Bits pro Kanal werden diese Werte wie folgt in Lumawerte konvertiert:
val = f * ((1 << n)-1)
Jedes Pixel, dessen Lumawert innerhalb der Oberen und Unteren Grenze (einschließlich) liegt, wird als transparent behandelt.
Wenn das Pixelformat beispielsweise 8-Bit-Luma verwendet, wird die Obergrenze wie folgt berechnet:
BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)
Beachten Sie, dass der Wert an den Bereich [0...1] geklemmt wird, bevor er mit 255 multipliziert wird.
Beispiele
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;
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Kopfzeile | dxvahd.h |