Поделиться через


функция обратного вызова PDXVAHDSW_ProposeVideoPrivateFormat (dxvahd.h)

Получает частный формат поверхности из программного подключаемого устройства Microsoft DirectX Video Acceleration High Definition (DXVA-HD).

Синтаксис

PDXVAHDSW_ProposeVideoPrivateFormat PdxvahdswProposevideoprivateformat;

HRESULT PdxvahdswProposevideoprivateformat(
  [in]      HANDLE hDevice,
  [in, out] D3DFORMAT *pFormat
)
{...}

Параметры

[in] hDevice

Дескриптор подключаемого устройства DXVA-HD.

[in, out] pFormat

Указатель на значение D3DFORMAT . При входе задает формат поверхности, запрашиваемый приложением. На выходных данных указывает формат частной поверхности, который предлагает подключаемого устройства.

Возвращаемое значение

Если эта функция обратного вызова выполнена успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Эта функция вызывается, когда приложение вызывает IDXVAHD_Device::CreateVideoSurface , если выполняются следующие условия:

  • Тип входной поверхности — DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE.
  • Устройство Direct3D не поддерживает формат surface, запрошенный приложением в собственном коде.
Эта функция позволяет подключаемого устройства предложить альтернативный формат с эквивалентным макетом памяти. Например, если приложение запрашивает AYUV, подключаемое устройство может выделить поверхность типа D3DFMT_A8R8G8B8.

Если функция выполняется успешно, метод CreateVideoSurface пытается создать поверхность с форматом, возвращенным в pFormat.

Примеры

В следующем коде показано, как подключаемое устройство предлагает D3DFMT_A8R8G8B8 в качестве альтернативного формата поверхности для AYUV.

HRESULT CALLBACK ProposeVideoPrivateFormat(
    HANDLE hDevice,
    D3DFORMAT* pFormat 
    )
{
    switch (*pFormat)
    {
        case D3DFMT_AYUV: 
            *pFormat = D3DFMT_A8R8G8B8; 
            return S_OK;

        default: 
            return E_FAIL;
    }
}

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header dxvahd.h

См. также раздел

DXVA-HD

DXVAHDSW_CALLBACKS

IDXVAHD_Device::CreateVideoSurface

Функции Media Foundation