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


Метод IMFDeviceTransform::P rocessOutput (mftransform.h)

Метод ProcessOutput получает обработанные выходные данные из потоков вывода MFT устройства.

Синтаксис

HRESULT ProcessOutput(
  [in] DWORD                  dwFlags,
  [in] DWORD                  cOutputBufferCount,
  [in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
  [in] DWORD                  *pdwStatus
);

Параметры

[in] dwFlags

Побитовое ИЛИ с нулевым или более флагами из перечисления _MFT_PROCESS_OUTPUT_FLAGS .

[in] cOutputBufferCount

Количество элементов в массиве pOutputSamples . Значение должно быть не менее 1.

[in] pOutputSample

Указатель на массив MFT_OUTPUT_DATA_BUFFER структур, выделенных вызывающим объектом. MFT использует этот массив для возврата выходных данных вызывающей объекту.

[in] pdwStatus

Получает побитовое ИЛИ, равное нулю или более флагам, из перечисления _MFT_PROCESS_OUTPUT_STATUS .

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

Метод возвращает HRESULT. Возможные значения включают, помимо прочего, значения, указанные в следующей таблице.

Код возврата Описание
S_OK
Метод успешно выполнен.
E_INVALIDARG
Передан недопустимый аргумент.
MF_E_INVALIDREQUEST
В настоящее время MFT-устройство не поддерживает запрос.
MF_E_INVAILIDSTREAMNUMBER
Передан недопустимый идентификатор потока.
MF_E_INVALID_STREAM_STATE
Запрошенный переход потока невозможен.
MF_E_TRANSFORM_TYPE_NOT_SET
Тип входного носителя не задан.

Комментарии

В большинстве случаев при успешном выполнении метода преобразование Media Foundation (MFT) сохраняет образец и содержит счетчик ссылок на указатель IMFSample . Когда MFT выполняется с помощью примера, он должен освободить его, чтобы избежать утечек памяти.

После того как диспетчер преобразования устройств (DTM) настроит допустимые типы мультимедиа для всех потоков, MFT всегда должен иметь возможность принимать больше входных данных и создавать дополнительные выходные данные.

Если MFT обнаруживает неустранимую ошибку во входных данных, он может просто удалить данные и попытаться восстановить, когда получит больше входных данных. Если MFT удаляет какие-либо данные, он должен задать атрибут MFSampleExtension_Discontinuity в следующем примере выходных данных, чтобы уведомить вызывающую сторону о наличии пробела в потоке данных.

Требования

   
Минимальная версия клиента Windows 10 версии 1703
Целевая платформа Windows
Header mftransform.h

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

IMFDeviceTransform