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


Создание экземпляров MFT кодека

Преобразования Media Foundation (MFT) — это COM-объекты, реализующие интерфейс IMFTransform . MFT — это объект для преобразования мультимедийных данных в рамках конвейера. Конвейер — это направленный ациклический граф, состоящий из источников мультимедиа, преобразований мультимедиа и приемников мультимедиа. Конвейер обрабатывает потоковую передачу мультимедийных данных асинхронно.

Хотя экземпляры MFT можно создавать и использовать независимо от инфраструктуры конвейера Media Foundation, предпочтительнее использовать платформу MediaFoundation, где это возможно.

Вы можете создать кодек MFT, вызвав функцию CoCreateInstance . Необходимо передать идентификатор класса MFT, идентификатор интерфейса IMFTransform и указатель на указатель IMFTransform .

Идентификаторы классов MFT кодека определяются как константы в файле заголовка wmcodecdsp.h.

Константой для идентификатора интерфейса IMFTransform является IID_IMFTransform.

В следующем примере кода показано, как создать экземпляр кодека MFT:

HRESULT CreateVideoEncoderMFT(IMFTransform** ppMFT)
{
    if (ppMFT == NULL)
        return E_POINTER;

    return CoCreateInstance(CLSID_CWMV9EncMediaObject,
                            NULL,
                            CLSCTX_INPROC_SERVER, 
                            IID_IMFTransform, 
                            (void**)ppMFT);
}

Работа с MFT кодека