| Предыдущий | Следующий |
| NS_E_NOMATCHING_ELEMENT | NS_E_CANNOT_DELETE_ACTIVE_SOURCEGROUP |
NS_E_MISMATCHED_MEDIACONTENT
Диагностический смысл помимо стандартного текста
Для NS_E_MISMATCHED_MEDIACONTENT (0xC00D1B5F) диагностически значимое событие — сопоставление media content группы источников с назначенным ContentType профиля. Сохраняйте границу, вернувшую NS_E_MISMATCHED_MEDIACONTENT, вместе с исходным callback Encoder или вызовом COM.
Почему сеанс может дойти до этой точки
Объектная модель Encoder объединяет audio, video и script inputs в IWMEncSourceGroup, связывает с группой один профиль и запрашивает у source plug-in media format для выбранных выходных потоков. В сеансе, возвращающем NS_E_MISMATCHED_MEDIACONTENT, именно здесь проверяется условие «сопоставление media content группы источников с назначенным ContentType профиля».
Успешное создание COM objects не доказывает полноту source group; назначение profile, обнаружение source и согласование format — более поздние контрольные точки в сеансе, возвращающем NS_E_MISMATCHED_MEDIACONTENT. Один конкретный способ получить это условие: группа источников только с audio назначена preset профиля только с video. NS_E_MISMATCHED_MEDIACONTENT нужно сохранить поколение объекта и числовые параметры, а не только снимок итогового диалогового окна.
Поля трассировки, имеющие диагностическую ценность
| Поле | Что сохранить |
|---|---|
| Решающие значения | число источников типов audio, video и script и биты ContentType профиля в момент назначения |
| Объект, вернувший ошибку | индекс и имя коллекции source groups, состояние active/prepared, тип потока, input scheme и имя потока, CLSID source plug-in, согласованный media type и назначенный профиль |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен NS_E_MISMATCHED_MEDIACONTENT |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с NS_E_MISMATCHED_MEDIACONTENT |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «сопоставление media content группы источников с назначенным ContentType профиля» |
Матрица решений
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее этот результат | Решающие данные: число источников типов audio, video и script и биты ContentType профиля в момент назначения. Они подтверждают условие «сопоставление media content группы источников с назначенным ContentType профиля» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT для состояния «сопоставление media content группы источников с назначенным ContentType профиля». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («сопоставление media content группы источников с назначенным ContentType профиля»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: назначить профиль, объявляющий именно те типы потоков, которые присутствуют в группе источников. После этого исходный вызов должен пройти ту же контрольную точку в сценарии «сопоставление media content группы источников с назначенным ContentType профиля». |
Практическое влияние NS_E_MISMATCHED_MEDIACONTENT ограничен переходом «source groups, streams and plug-ins», которому принадлежит условие «сопоставление media content группы источников с назначенным ContentType профиля». Для NS_E_MISMATCHED_MEDIACONTENT, сам по себе этот результат не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда группа источников только с audio назначена preset профиля только с video, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе mismatched mediacontent.
Путь принятия решения
- Зафиксируйте
0xC00D1B5F,NS_E_MISMATCHED_MEDIACONTENT, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте число источников типов audio, video и script и биты ContentType профиля в момент назначения. - Для
NS_E_MISMATCHED_MEDIACONTENT, проверяйте предварительное условие source groups, streams и plug-ins, не меняя одновременно source, profile и output sink. - Выполните одно контролируемое сравнение, изменив только это условие: назначить профиль, объявляющий именно те типы потоков, которые присутствуют в группе источников.
- После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние mismatched mediacontent.
Коды с похожими симптомами, но другими владельцами
| Результат | Почему это другая граница |
|---|---|
NS_E_NOMATCHING_ELEMENT | Внесите одно изолированное изменение: назначить профиль, объявляющий именно те типы потоков, которые присутствуют в группе источников. После этого исходный вызов должен пройти ту же контрольную точку в сценарии «сопоставление media content группы источников с назначенным ContentType профиля». |
NS_E_NO_PROFILE_IN_SOURCEGROUP | подготовка source group без назначенного IWMEncProfile |
NS_E_TOO_MANY_VIDEO | проверка ограничения source group для video inputs |
Безопасное восстановление
Устраните условие-источник: назначить профиль, объявляющий именно те типы потоков, которые присутствуют в группе источников. Затем перестройте только ту часть graph Encoder, которую затрагивает NS_E_MISMATCHED_MEDIACONTENT и повторите исходный вызов.
Не удаляйте и не создавайте заново все source groups до экспорта для состояния «сопоставление media content группы источников с назначенным ContentType профиля».wme и сохранения активной группы: иначе потеряется состояние, вызвавшее ошибку. Это позволяет повторно проверить тот же сеанс с NS_E_MISMATCHED_MEDIACONTENT без потери исходных диагностических данных.
Исходные материалы для NS_E_MISMATCHED_MEDIACONTENT
- Подготовка группы источников к кодированию.
- Получение профиля, назначенного группе источников.
- Получение настроенного входа кодировщика.
- Сохранение конфигурации Windows Media Encoder.
Нужно найти другой код? Найти другой код состояния или ошибки.