| Предыдущий | Следующий |
| NS_E_NONSQUAREPIXELMODE_MISMATCH | NS_E_END_OF_TAPE |
NS_E_SMPTEMODE_MISMATCH
Как интерпретировать код в реальном сеансе кодирования
0xC00D1BAD соответствует NS_E_SMPTEMODE_MISMATCH. Практическая область этого результата — режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника; она относится к «топология профиля, аудитории и потоков», а не ко всем компонентам Windows Media или Windows.
Механизм и точка сбоя
Профиль Windows Media Encoder объявляет содержимое типы и одну или несколько аудиторий в сеансе, который возвращает этот результат. каждая аудитория сопоставляет индексы источников с аудио-, видео-, сценарными или файловыми потоками и должна оставаться структурно согласованной с другими аудиториями в многобитрейтном профиле на этой контрольной точке.
Отдельные поля могут быть синтаксически допустимыми, тогда как полный профиль остаётся несогласованным между аудиториями или не соответствует группе источников в сеансе, возвращающем этот результат. Типичный сценарий воспроизведения: одна аудитория использует режим 30 drop-frame, а другая — 30 non-drop-frame для того же потока. Поэтому первый результат Encoder информативнее более позднего общего сообщения.
Матрица воспроизведения
| Поле | Что сохранить |
|---|---|
| Решающие значения | режим тайм-кода, базовую частоту кадров и индекс источника для каждой аудитории |
| Объект, вернувший ошибку | имя и тип содержимого профиля, число аудиторий и суммарный битрейт, индексы источников, типы потоков, идентификаторы языков, выбранные аудитории и результат IWMEncProfile2.Validate |
| Сопоставление с сеансом | то же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, в которой был получен этот результат |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, зарегистрированный до того, как Encoder сопоставил условие с ним |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только параметр, относящийся |
Матрица диагностических данных
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее он | Решающие данные: режим тайм-кода, базовую частоту кадров и индекс источника для каждой аудитории. Они подтверждают условие «режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но источник, драйвер, активация COM или операция с файлом раньше возвращает другой HRESULT для состояния «режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника»), но затем кодек, архива или приёмника широковещательной передачи завершается ошибкой на следующем этапе. |
| Проверка после исправления | Примените одно изолированное изменение: выберите один общий режим тайм-кода для всех аудиторий. После этого исходный вызов должен пройти ту же контрольную точку. |
Практическое влияние он ограничено этапом «топологией профиля, аудиторий и потоков», которому принадлежит условие «режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника». Сам по себе код не доказывает, что повреждены все входные данные, отсутствуют все кодеки или полностью неработоспособна установка Windows Media. Типичный сценарий: одна аудитория использует режим 30 drop-frame, а другая — 30 non-drop-frame для того же потока. Сохраните первый вызов, завершившийся ошибкой, и идентификатор соответствующего объекта, чтобы последующая ошибка интерфейса не скрыла данные о границе «режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника».
Минимальный эксперимент
- Зафиксируйте
0xC00D1BAD, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он. - Экспортируйте текущую конфигурацию
.wmeили.prx, затем зафиксируйте режим тайм-кода, базовую частоту кадров и индекс источника для каждой аудитории. - Проверьте предварительное условие топологии профиля, аудиторий и потоков, не меняя одновременно источник, профиль и выходной приёмник.
- Выполните одно контролируемое сравнение, изменив только это условие: выберите один общий режим тайм-кода для всех аудиторий.
- После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий граф автоматически отбросил прежнее ошибочное состояние.
Не объединяйте следующие результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_NONSQUAREPIXELMODE_MISMATCH | режим неквадратных пикселей различается между аудиториями с общим индекс источника |
NS_E_NO_MEDIA_IN_AUDIENCE | аудитория не содержит ни аудио, ни видео медиа входы |
NS_E_INTERLACEMODE_MISMATCH | для одного индекса источника используются разные режимы чересстрочной развёртки в разных аудиториях |
Что изменить, а что оставить без изменений
Измените минимальное ответственное предварительное условие: выберите один общий режим тайм-кода для всех аудиторий. При повторной проверке он сохраняйте неизменными все не связанные параметры источника, аудитории и выхода до повторения того же вызова.
Не исправляйте профиль удалением произвольных аудиторий; сначала экспортируйте.prx и сравните один и тот же индекс источника во всех аудиториях в сеансе, который возвращает он.
Авторитетная документация
- Добавление аудитории в профиль кодировщика.
- IWMEncAudienceObj.TotalBitrate.
- Получение профиля, назначенного группе источников.
- Определение совместимости профилей.
Нужно найти другой код? Найти другой код состояния или ошибки.