| Предыдущий | Следующий |
| 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 с циклом: один выход можно разветвить на несколько следующих ветвей, если ни одна из них не возвращается к предыдущему узлу.
- Если приложению действительно нужна обратная связь между этапами обработки, реализуйте её вне топологии через состояние приложения или подходящее преобразование, а не физическим обратным ребром графа.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
