| Предыдущий | Следующий |
| NS_E_INTERLACEMODE_MISMATCH | NS_E_SMPTEMODE_MISMATCH |
NS_E_NONSQUAREPIXELMODE_MISMATCH
Диагностический смысл помимо стандартного текста
Для NS_E_NONSQUAREPIXELMODE_MISMATCH (0xC00D1BAC) диагностически значимое событие — режим non-square pixels различается между audiences, использующими один source index. Сохраняйте границу, вернувшую NS_E_NONSQUAREPIXELMODE_MISMATCH , вместе с исходным callback Encoder или вызовом COM.
Почему сеанс может дойти до этой точки
Профиль Windows Media Encoder объявляет content types и один или несколько audiences в сеансе, который возвращает NS_E_NONSQUAREPIXELMODE_MISMATCH. Каждый audience сопоставляет source indexes с audio, video, script или file streams и должен оставаться структурно согласованным с другими audiences в multiple-bit-rate profile на этой контрольной точке для состояния «режим non-square pixels различается между audiences, использующими один source index».
Отдельные поля могут быть синтаксически допустимыми, тогда как полный профиль остаётся несогласованным между аудиториями или не соответствует группе источников в сеансе, возвращающем NS_E_NONSQUAREPIXELMODE_MISMATCH. Один конкретный способ получить это условие: только в одном audience включён anamorphic output. NS_E_NONSQUAREPIXELMODE_MISMATCH нужно сохранить поколение объекта и числовые параметры, а не только снимок итогового диалогового окна.
Поля трассировки, имеющие диагностическую ценность
| Поле | Что сохранить |
|---|---|
| Решающие значения | флаг non-square pixels и aspect ratio для каждого audience |
| Объект, вернувший ошибку | имя и content type профиля, число audiences и total bitrate, source indexes, типы потоков, language identifiers, выбранные audiences и результат IWMEncProfile2.Validate |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен NS_E_NONSQUAREPIXELMODE_MISMATCH |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с NS_E_NONSQUAREPIXELMODE_MISMATCH |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только параметр, относящийся к границе «режим non-square pixels различается между audiences, использующими один source index» |
Матрица решений
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее этот результат | Решающие данные: флаг non-square pixels и aspect ratio для каждого audience. Они подтверждают условие «режим non-square pixels различается между audiences, использующими один source index» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, driver, COM activation или file operation раньше возвращает другой HRESULT для условия «режим non-square pixels различается между audiences, использующими один source index». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («режим non-square pixels различается между audiences, использующими один source index»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Примените одно изолированное изменение: согласовать режим pixel aspect для этого source index во всех audiences. После этого исходный вызов должен пройти ту же контрольную точку в сценарии «режим non-square pixels различается между audiences, использующими один source index». |
Практическое влияние NS_E_NONSQUAREPIXELMODE_MISMATCH ограничен переходом «profile, audience and stream topology», которому принадлежит условие «режим non-square pixels различается между audiences, использующими один source index». Для NS_E_NONSQUAREPIXELMODE_MISMATCH, сам по себе код не доказывает, что повреждены все входные данные, отсутствуют все codecs или полностью неработоспособна установка Windows Media. Типичный сценарий: только в одном audience включён anamorphic output. Сохраните первый отказавший вызов и идентичность его объекта, чтобы более поздний wrapper не скрыл данные границы «режим non-square pixels различается между audiences, использующими один source index».
Путь принятия решения
- Зафиксируйте
0xC00D1BAC,NS_E_NONSQUAREPIXELMODE_MISMATCH, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте флаг non-square pixels и aspect ratio для каждого audience. - Для
NS_E_NONSQUAREPIXELMODE_MISMATCHпроверьте предварительное условие топологии профиля, аудиторий и потоков, не меняя одновременно источник, профиль и выходной приёмник. - Выполните одно контролируемое сравнение, изменив только это условие: согласовать режим pixel aspect для этого source index во всех audiences.
- После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий graph автоматически отбросил прежнее ошибочное состояние в сценарии «режим non-square pixels различается между audiences, использующими один source index».
Коды с похожими симптомами, но другими владельцами
| Результат | Почему это другая граница |
|---|---|
NS_E_INTERLACEMODE_MISMATCH | один source index имеет разные interlace modes в разных audiences |
NS_E_SMPTEMODE_MISMATCH | режим SMPTE timecode различается между audiences для одного source index |
NS_E_INVALID_INPUT_STREAM | тип или индекс входного stream не указывает на допустимый source stream |
Безопасное восстановление
Устраните условие-источник: согласовать режим pixel aspect для этого source index во всех audiences. Затем перестройте только ту часть graph Encoder, которую затрагивает NS_E_NONSQUAREPIXELMODE_MISMATCH и проверьте исходный вызов.
Не исправляйте profile удалением случайных audiences; сначала экспортируйте .prx и сравните один и тот же source index во всех audiences в сеансе, который возвращает NS_E_NONSQUAREPIXELMODE_MISMATCH.
Исходные материалы для NS_E_NONSQUAREPIXELMODE_MISMATCH
- Добавление аудитории в профиль кодировщика.
- IWMEncAudienceObj.TotalBitrate.
- Получение профиля, назначенного группе источников.
- Определение совместимости профилей.
Нужно найти другой код? Найти другой код состояния или ошибки.
