атрибут MF_TRANSFORM_ASYNC

Указывает, выполняет ли преобразование Media Foundation (MFT) асинхронную обработку.

Тип данных

UINT32

Получение и установка

Чтобы получить этот атрибут, вызовите IMFAttributes::GetUINT32.

Чтобы задать этот атрибут, вызовите IMFAttributes::SetUINT32.

Комментарии

Атрибут является логическим значением:

  • Если атрибут не равен нулю, MFT выполняет асинхронную обработку.
  • Если атрибут равен 0 или не задан, MFT является синхронным.

Чтобы получить этот атрибут, сначала вызовите IMFTransform::GetAttributes , чтобы получить хранилище атрибутов MFT. Если этот метод завершается успешно, вызовите IMFAttributes::GetUINT32 , чтобы получить значение атрибута. Если один из двух методов завершается сбоем, MFT является синхронным.

Для асинхронных MFT этому атрибуту необходимо задать ненулевое значение. Для синхронных MFT этот атрибут является необязательным, но должен иметь значение 0, если он имеется.

Асинхронные MFT несовместимы с более ранними версиями Media Foundation. Чтобы использовать асинхронный MFT, клиент должен задать атрибут MF_TRANSFORM_ASYNC_UNLOCK для MFT. (Конвейер Microsoft Media Foundation выполняет этот шаг автоматически.)

Примеры

Следующий код проверяет, выполняет ли MFT асинхронную обработку.

BOOL IsTransformAsync(IMFTransform *pMFT)
{
    BOOL bAsync = FALSE;
    IMFAttributes *pAttributes = NULL;

    HRESULT hr = pMFT->GetAttributes(&pAttributes);
    if (SUCCEEDED(hr))
    {
        bAsync = MFGetAttributeUINT32(pAttributes, MF_TRANSFORM_ASYNC, FALSE);
        pAttributes->Release();
    }

    return (bAsync != FALSE);
}

Требования

Требование Значение
Минимальная версия клиента
Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера
Windows Server 2008 R2 [классические приложения | Приложения UWP]
Заголовок
Mftransform.h

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

Алфавитный список атрибутов Media Foundation

Асинхронные MFT

Атрибуты преобразования

MF_TRANSFORM_ASYNC_UNLOCK