Метод IMFSourceReaderEx::AddTransformForStream (mfreadwrite.h)
Добавляет преобразование, например звуковой или видеоэффект, в поток.
Синтаксис
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Параметры
[in] dwStreamIndex
Поток для настройки. Это может быть любое из следующих значений.
Значение | Значение |
---|---|
|
Отсчитываемый от нуля индекс потока. |
|
Первый видеопоток. |
|
Первый аудиопоток. |
[in] pTransformOrActivate
Указатель на один из следующих объектов:
- Преобразование Media Foundation (MFT), предоставляющее интерфейс IMFTransform .
- Объект активации MFT, предоставляющий интерфейс IMFActivate .
Возвращаемое значение
Этот метод может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Преобразование не поддерживает текущий формат потока, и преобразование невозможно. Дополнительные сведения см. в разделе "Примечания". |
|
Недопустимый запрос. |
|
Недопустимый параметр dwStreamIndex . |
Комментарии
Этот метод пытается добавить преобразование в конец текущей цепочки обработки.
Чтобы использовать этот метод, выполните следующую последовательность вызовов:
- Вызовите IMFSourceReader::SetCurrentMediaType , чтобы задать тип выходных данных для потока. На этом шаге можно указать тип носителя, содержащий только guid основного типа и подтипа. Например, чтобы получить 32-разрядные выходные данные RGB, задайте основной тип MFMediaType_Video и подтип MFVideoFormat_RGB32. (Дополнительные сведения см. в разделе Идентификаторы GUID типа носителя.)
- Вызовите AddTransformForStream. Если средство чтения исходного кода успешно подключает преобразование, оно задает тип выходных данных для преобразования.
- Вызовите IMFSourceReader::GetCurrentMediaType , чтобы получить тип выходных данных из преобразования. Этот метод возвращает тип мультимедиа с полным описанием формата.
- При необходимости, если вы хотите изменить тип выходных данных, снова вызовите IMFSourceReader::SetCurrentMediaType , чтобы задать полный тип носителя для преобразования.
Метод завершается ошибкой, если средство чтения исходного кода было настроено с помощью атрибутов MF_READWRITE_DISABLE_CONVERTERS или MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING .
В асинхронном режиме метод также завершается ошибкой, если ожидается пример запроса. В этом случае дождитесь вызова обратного вызова OnReadSample перед вызовом метода . Дополнительные сведения об использовании средства чтения источника в асинхронном режиме см. в разделе IMFSourceReader::ReadSample.
Преобразование можно добавить в любое время во время потоковой передачи. Однако метод не очищает или не очищает конвейер перед вставой преобразования. Таким образом, если данные уже находятся в конвейере, к следующему образцу не гарантируется применение преобразования.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | mfreadwrite.h |