| Предыдущий | Следующий |
| NS_E_MULTIPLE_AUDIO_FORMATS | NS_E_INVALID_AUDIO_PEAKRATE |
NS_E_AUDIO_BITRATE_STEPDOWN
Сбойная граница в объектной модели Encoder
Практический смысл NS_E_AUDIO_BITRATE_STEPDOWN (0xC00D1BB9) не ограничивается стандартным сообщением выше. Код указывает, что в настройках аудиопотока и аудиторий порядок аудиобитрейтов не соответствует возрастанию общего битрейта аудиторий.
В сеансе, возвращающем NS_E_AUDIO_BITRATE_STEPDOWN, аудиочасть профиля кодировщика объединяет исходный формат, кодек, режим битрейта, среднюю и пиковую скорость, ограничения буфера и расположение каналов. В контрольной точке снижение битрейта аудио несколько аудиторий добавляют правила согласованности между аудиториями к диапазонам отдельных полей.
Данные, отделяющие этот код от ошибки оболочки
Кодек может быть установлен и всё же отклонять выбранное сочетание формата и битрейта; наличие кодека и допустимость профиля — разные проверки в сеансе, возвращающем NS_E_AUDIO_BITRATE_STEPDOWN. Например, аудитория с более высоким общим битрейтом может по ошибке получить самый низкий аудиоформат. Сохраните различие NS_E_AUDIO_BITRATE_STEPDOWN до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | отсортированные общие битрейты аудиторий и соответствующие им аудиобитрейты |
| Объект, вернувший ошибку | исходная структура WAVEFORMATEX, индекс аудитории, индексы аудиокодека и формата, режим VBR, средний и пиковый битрейт, размер буфера, число каналов, язык и целевая совместимость |
| Связь с сеансом | то же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, которые привели к NS_E_AUDIO_BITRATE_STEPDOWN |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, полученный до того, как Encoder сопоставил условие с NS_E_AUDIO_BITRATE_STEPDOWN |
| Контролируемое сравнение | заведомо рабочий сеанс, в котором изменён только параметр, указанный границей снижение битрейта аудио |
Интерпретация следующего измерения
| Наблюдение | Как его интерпретировать |
|---|---|
| Наблюдение подтверждает этот результат | Решающими данными являются отсортированные общие битрейты аудиторий и соответствующие им аудиобитрейты. Они подтверждают, что порядок аудиобитрейтов не соответствует возрастанию общего битрейта аудиторий в том же поколении объекта. |
| Наблюдение указывает на более ранний сбой | Зафиксированные значения удовлетворяют правилу снижение битрейта аудио, но источник, драйвер, активация COM или файловая операция раньше возвращает другой HRESULT. |
| Наблюдение указывает на более поздний сбой | Encoder проходит эту границу — порядок аудиобитрейтов не соответствует возрастанию общего битрейта аудиторий, — но затем на следующей стадии происходит сбой кодека, архива или приёмника трансляции. |
| Проверка после исправления | Внесите одно изолированное изменение: аудиобитрейт не должен уменьшаться при увеличении общего битрейта аудитории. После этого исходный вызов снижение битрейта аудио должен пройти ту же контрольную точку. |
Практическое влияние NS_E_AUDIO_BITRATE_STEPDOWN ограничено переходом настроек аудиопотока и аудиторий, которому принадлежит несоответствие порядка аудиобитрейтов возрастанию общего битрейта аудиторий. Само по себе NS_E_AUDIO_BITRATE_STEPDOWN не доказывает, что повреждены все входные данные, отсутствуют все кодеки или полностью неработоспособна установка Windows Media. В типичном случае, когда аудитория с более высоким общим битрейтом по ошибке получает самый низкий аудиоформат, сохраните первый сбойный вызов и идентификатор его объекта, чтобы последующая оболочка не заменила данные снижение битрейта аудио.
Проверка условия без перестройки всего сеанса
- Зафиксируйте
0xC00D1BB9,NS_E_AUDIO_BITRATE_STEPDOWN, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prx, затем сохраните отсортированные общие битрейты аудиторий и соответствующие им аудиобитрейты. - Для
NS_E_AUDIO_BITRATE_STEPDOWNпроверьте предварительное условие настроек аудиопотока и аудиторий, не меняя одновременно источник, профиль и выходной приёмник. - Выполните одно контролируемое сравнение, изменив только это условие: аудиобитрейт не должен уменьшаться при увеличении общего битрейта аудитории.
- После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий граф отбросил прежнее состояние снижение битрейта аудио.
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_INVALID_VBR_WITH_UNCOMP | режим VBR сочетается с несжатым аудио- или видеопотоком |
NS_E_INVALID_AUDIO_PEAKRATE | пиковый аудиобитрейт находится вне допустимого диапазона кодека или режима |
NS_E_INPUT_WAVFORMAT_MISMATCH | несколько совместно используемых входных WAV имеют разные структуры WAVEFORMATEX |
Устранение и проверка
Прямое исправление для этого случая — сделать аудиобитрейт неубывающим при увеличении общего битрейта аудитории. Пересоздайте затронутую группу источников, профиль или выходной объект, повторите ту же операцию и убедитесь, что первый сбойный HRESULT больше не поступает из контрольной точки снижение битрейта аудио.
Не подставляйте другой кодек до сохранения точных значений профиля, отклонённых проверкой; иначе несовместимое сочетание невозможно будет определить в сеансе, возвращающем NS_E_AUDIO_BITRATE_STEPDOWN.
Ссылки для NS_E_AUDIO_BITRATE_STEPDOWN — диагностической границы
- Структура WAVEFORMATEX.
- IWMEncProfile2.VBRMode.
- Добавление аудитории в профиль кодировщика.
- Выбор метода кодирования.
Нужно найти другой код? Найти другой код состояния или ошибки.