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


Создание экземпляров 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