| Предыдущий | Следующий |
| MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED | MF_E_BYTESTREAM_UNKNOWN_LENGTH |
MF_E_CANNOT_CREATE_SINK
Что означает MF_E_CANNOT_CREATE_SINK
MF_E_CANNOT_CREATE_SINK (0xC00D36FA) — Media Foundation не удалось создать приёмник, связанный с выходным узлом топологии.
Выходной узел представляет конкретный поток приёмника. Он может содержать готовый IMFStreamSink либо объект IMFActivate, который создаст приёмник позже. При работе через Media Session именно она связывает выходной узел с приёмником перед разрешением топологии. Для PMP используется объект активации, потому что сам приёмник должен создаваться внутри защищённого процесса.
Что проверить и как подтвердить исправление
Определите выходной узел, его MF_TOPONODE_STREAMID, тип выхода и объект, переданный через IMFTopologyNode::SetObject. Если используется IMFActivate, сохраните HRESULT непосредственной активации: он обычно точнее объясняет причину, чем последующий MF_E_CANNOT_CREATE_SINK.
Проверьте также, существует ли требуемый поток приёмника и соответствует ли конфигурация создаваемому файлу, аудиовыходу или видеорендереру. Смена декодера не исправляет приёмник, который не может быть создан. Исправление подтверждается успешным связыванием того же выходного узла и последующим разрешением топологии.
Документация для результата 0xC00D36FA: Binding Output Nodes to Media Sinks · Creating Output Nodes · Media Sinks.
Нужно найти другой код? Найти другой код состояния или ошибки.