Site icon EfmSoft

Что означает код HRESULT 0xC00D5216 (MF_E_TOPO_LOOPS_IN_TOPOLOGY)?

 
Предыдущий Следующий
MF_E_TOPO_INVALID_TIME_ATTRIBUTES MF_E_TOPO_MISSING_PRESENTATION_DESCRIPTOR

MF_E_TOPO_LOOPS_IN_TOPOLOGY

MF_E_TOPO_LOOPS_IN_TOPOLOGY (0xC00D5216) означает, что соединения узлов образуют цикл, который Media Foundation не поддерживает.

Топология описывает направленный поток медиасэмплов от источника через преобразования к одному или нескольким приёмникам. Обратное соединение последующего узла с уже пройденным узлом создаёт цикл: загрузчик больше не может определить конечный порядок обработки и разрешить такой граф как обычный медиаконвейер.

Что проверить

  • Перечислите каждый IMFTopologyNode по постоянному идентификатор узла и запишите пары «выход узла → вход следующего узла».
  • Выполните обход графа с отметкой посещённых узлов и найдите ребро, которое возвращается в уже активную ветвь обхода.
  • Не путайте tee node с циклом: один выход можно разветвить на несколько следующих ветвей, если ни одна из них не возвращается к предыдущему узлу.
  • Если приложению действительно нужна обратная связь между этапами обработки, реализуйте её вне топологии через состояние приложения или подходящее преобразование, а не физическим обратным ребром графа.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version