Функция MFCreateTranscodeTopology (mfidl.h)

Создает топологию частичного перекода.

Базовый построитель топологий создает частичную топологию, подключая необходимые объекты конвейера: источник, кодировщик и приемник. Кодировщик и приемник настраиваются в соответствии с параметрами, заданными вызывающим объектом в профиле перекодирования.

Чтобы создать объект профиля перекодирования, вызовите функцию MFCreateTranscodeProfile и задайте необходимые атрибуты, вызвав соответствующие методы IMFTranscodeProfile .

Настроенный профиль перекодирования передается в функцию MFCreateTranscodeTopology , которая создает топологию перекодировки с соответствующими параметрами. Затем вызывающий объект может задать эту топологию в сеансе мультимедиа и запустить сеанс, чтобы начать процесс кодирования. После завершения сеанса мультимедиа создается перекодированный файл.

Синтаксис

HRESULT MFCreateTranscodeTopology(
  [in]  IMFMediaSource      *pSrc,
  [in]  LPCWSTR             pwszOutputFilePath,
  [in]  IMFTranscodeProfile *pProfile,
  [out] IMFTopology         **ppTranscodeTopo
);

Параметры

[in] pSrc

Указатель на источник мультимедиа, который инкапсулирует исходный файл для перекодировки. Объект источника мультимедиа предоставляет интерфейс IMFMediaSource и может быть создан с помощью сопоставителя источника. Дополнительные сведения см. в разделе Использование сопоставителя источника.

[in] pwszOutputFilePath

Указатель на строку, завершающуюся null, которая содержит имя и путь к создаваемому выходному файлу.

[in] pProfile

Указатель на профиль перекодирования, содержащий параметры конфигурации аудиопотока, видеопотока и контейнера, в который записывается файл. Объект профиля транскода предоставляет интерфейс IMFTranscodeProfile и должен быть создан путем вызова функции MFCreateTranscodeProfile . После создания объекта вызывающий объект должен предоставить параметры конфигурации, вызвав соответствующие методы IMFTranscodeProfile .

[out] ppTranscodeTopo

Получает указатель на интерфейс IMFTopology объекта топологии перекодировки. Вызывающий объект должен освободить интерфейс .

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

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

Код возврата Описание
S_OK
Вызов функции выполнен успешно, и ppTranscodeTopo получает указатель на топологию перекодировки.
E_INVALIDARG
pwszOutputFilePath содержит недопустимые символы.
MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED
Потоки не выбраны в источнике мультимедиа.
MF_E_TRANSCODE_NO_CONTAINERTYPE
Профиль не содержит атрибут MF_TRANSCODE_CONTAINERTYPE .
MF_E_TRANSCODE_NO_MATCHING_ENCODER
Для одного или нескольких потоков не удается найти кодировщик, который принимает тип мультимедиа, указанный в профиле.
MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS
Профиль не указывает тип носителя для любого из выбранных потоков в источнике мультимедиа.

Комментарии

Пример кода, использующего эту функцию, см. в следующих разделах:

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header mfidl.h
Библиотека Mf.lib
DLL Mf.dll

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

IMFTopology

Функции Media Foundation

Топологии

API перекодировки