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


перечисление MF_TRANSCODE_ADJUST_PROFILE_FLAGS (mfidl.h)

Определяет флаги профиля, заданные в атрибуте MF_TRANSCODE_ADJUST_PROFILE .

Эти флаги проверяются MFCreateTranscodeTopology во время построения топологии. На основе этих флагов MFCreateTranscodeTopology настраивает профиль перекодировки, изменяя параметры конфигурации для потоков в соответствии с требованиями к входным данным кодировщика, используемого в топологии.

Дополнительные сведения о параметрах потока, которые может указать приложение, см. в статье Использование API перекодировки.

Синтаксис

typedef enum _MF_TRANSCODE_ADJUST_PROFILE_FLAGS {
  MF_TRANSCODE_ADJUST_PROFILE_DEFAULT = 0,
  MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES = 1
} MF_TRANSCODE_ADJUST_PROFILE_FLAGS;

Константы

 
MF_TRANSCODE_ADJUST_PROFILE_DEFAULT
Значение: 0
Media Foundation использует параметры, заданные приложением, для аудио- и видеопотоков. Если приложение не предоставляет необходимые параметры, топология создается, но сеанс кодирования завершается ошибкой. Для видеопотока изменяются параметры частоты кадров и режима чередовки. Дополнительные сведения см. в подразделе "Примечания".
MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES
Значение: 1
Для аудио- и видеопотоков отсутствующие параметры потока заполняются путем копирования входных атрибутов источника. Этот флаг гарантирует, что перекодированный выходной файл будет ближе всего к входному файлу.

Комментарии

Если указан флаг MF_TRANSCODE_ADJUST_PROFILE_DEFAULT , в видеопоток вносятся следующие изменения:

  • Если частота кадров источника мультимедиа, указанного в параметре pSrcMFCreateTranscodeTopology , и частота кадров, указанная приложением в атрибуте MF_MT_FRAME_RATE , отличаются менее 1/1000, профиль использует частоту кадров источника мультимедиа. Это связано с тем, что конвейер считает разницу незначительной.
  • Если приложение не задает режим чередование, задав атрибут MF_MT_INTERLACE_MODE , профиль изменяется на использование прогрессивных кадров.
Флаг MF_TRANSCODE_ADJUST_PROFILE_DEFAULT должен сопровождаться необходимыми атрибутами аудио- и видеопотока, предоставляемыми приложением. Для аудиопотока обязательные атрибуты: Для видеопотока обязательные атрибуты: Если эти атрибуты не заданы, MFCreateTranscodeTopology создает топологию, но сеансу мультимедиа не удается создать закодированный файл. Код сбоя зависит от узла MFT в топологии. Например, если приложение не задает размер кадра, кодировщику WMV не удается закодировать содержимое и приложение получает код ошибки MF_E_INVALIDMEDIATYPE через сеанс мультимедиа.

Используйте флаг MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES , если вы хотите перекодировать файл с помощью атрибутов входного потока. Атрибуты входного исходного потока копируются в тип выходного носителя до вставки узла MFT в топологию. Если заданы дополнительные атрибуты потока, этот флаг не перезаписывает заданные значения. Значения атрибутов источника входных данных заполняются только отсутствующими атрибутами. Этот флаг полезен в сценарии remux, где требуется создать выходной файл в том же формате, что и источник входных данных. Если вы хотите выполнить преобразование формата, убедитесь, что задан атрибут MF_MT_SUBTYPE для потока, чтобы указать кодировщик, который должен использовать построитель топологий. Узел преобразования добавляется в топологию, если не задано MF_TRANSCODE_DONOT_INSERT_ENCODER . В этом случае и содержимое не закодировано. Вместо этого, если это разрешено контейнером, содержимое внедряется в указанный контейнер.

Например, предположим, что источником входных данных является MP3-файл. Контейнер должен быть MFTranscodeContainerType_ASF, атрибуты потока не задаются и флаг MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES . В этом случае созданный выходной файл представляет собой ASF-файл (WMA), содержащий данные мультимедиа MP3. Обратите внимание, что при использовании этого флага некоторые атрибуты входного потока и тип контейнера могут быть несовместимы.

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть mfidl.h

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

Перечисления Media Foundation

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