атрибут MF_SA_D3D_AWARE
Указывает, поддерживает ли преобразование Media Foundation (MFT) ускорение видео DirectX (DXVA). Этот атрибут применяется только к MFT видео.
Тип данных
BOOL хранится как UINT32
Комментарии
Чтобы запросить этот атрибут, вызовите IMFTransform::GetAttributes , чтобы получить глобальное хранилище атрибутов MFT. Если getAttributes завершается успешно, вызовите IMFAttributes::GetUINT32.
Этот атрибут сообщает клиенту, может ли MFT использовать видео Direct3D 9:
- Если атрибут не является нулевым, клиент может навести MFT указатель на интерфейс IDirect3DeviceManager9 перед запуском потоковой передачи. Для этого клиент отправляет сообщение MFT_MESSAGE_SET_D3D_MANAGER в MFT. Клиенту не требуется отправлять это сообщение.
- Если этот атрибут равен нулю (FALSE), MFT не поддерживает видео Direct3D 9 и клиент не должен отправлять сообщение MFT_MESSAGE_SET_D3D_MANAGER в MFT.
Значение этого атрибута по умолчанию — FALSE. Рассматривайте этот атрибут как доступный только для чтения. Не изменяйте значение; MFT игнорирует любые изменения значения.
Дополнительные сведения о реализации этого атрибута в пользовательском MFT см. в разделе MFT с поддержкой Direct3D.
Константу GUID для этого атрибута экспортируют из mfuuid.lib.
Примеры
Следующий код проверяет, поддерживает ли MFT DXVA.
// Returns TRUE is an MFT supports DirectX Video Acceleration.
BOOL IsTransformD3DAware(IMFTransform *pMFT)
{
BOOL bD3DAware = FALSE;
IMFAttributes *pAttributes = NULL;
HRESULT hr = pMFT->GetAttributes(&pAttributes);
if (SUCCEEDED(hr))
{
bD3DAware = MFGetAttributeUINT32(pAttributes, MF_SA_D3D_AWARE, FALSE);
pAttributes->Release();
}
return bD3DAware;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера |
Windows Server 2008 [классические приложения | Приложения UWP] |
Заголовок |
|
См. также раздел