| Предыдущий | Следующий |
| NS_E_NO_ACTIVE_SOURCEGROUP | NS_E_INVALIDCALL_WHILE_ARCHIVAL_RUNNING |
NS_E_NO_SCRIPT_STREAM
Граница сбоя в объектной модели Encoder
Практически полезная интерпретация NS_E_NO_SCRIPT_STREAM (0xC00D1B73) — это не просто стандартное сообщение, приведённое выше. Оно указывает на script data передаются при отсутствии script source в текущей source group внутри source groups, streams и plug-ins.
Объектная модель Encoder объединяет audio, video и script inputs в IWMEncSourceGroup, назначает этой group один profile и запрашивает у source plug-in media format, пригодный для выбранных output streams, в сеансе, который возвращает этот результат.
Данные, отличающие этот код от ошибки оболочки
Успешное создание COM objects не доказывает полноту source group; назначение profile, обнаружение source и согласование format — более поздние контрольные точки в сеансе, возвращающем этот результат. Например, приложение повторно использует script callback после переключения на group только с audio/video. Сохраните он различие до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | идентификатор активной source group, число script sources и момент вызова SendScript |
| Объект, вернувший ошибку | индекс и имя source-group collection, состояние active/prepared, тип stream, input scheme и stream name, CLSID source plug-in, согласованный media type и назначенный profile |
| Связь с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к этому результату |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с этим результатом |
| Контролируемое сравнение | заведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT |
Интерпретация следующего измерения
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее он | Решающие данные: идентификатор активной source group, число script sources и момент вызова SendScript. Они подтверждают, что script data передаются при отсутствии script source в текущей source group в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют условию этого HRESULT, однако source, драйвер, COM activation или file operation раньше возвращает другой HRESULT. |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу (script data передаются при отсутствии script source в текущей source group), но затем на следующем этапе происходит сбой codec, archive или broadcast sink. |
| Проверка после исправления | Примените одно изолированное изменение: добавить и настроить script stream в соответствующем profile/source group либо прекратить отправку script commands. После этого исходный вызов должен пройти ту же контрольную точку. |
Практическое влияние он ограничен переходом «source groups, streams and plug-ins», которому принадлежит условие «script data передаются при отсутствии script source в текущей source group». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда приложение повторно использует script callback после переключения на group только с audio/video, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no script stream.
Проверка условия без перестройки сеанса
- Зафиксируйте
0xC00D1B73, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте идентификатор активной source group, число script sources и момент вызова SendScript. - проверяйте предварительное условие source groups, streams и plug-ins, не меняя одновременно source, profile и output sink.
- Проведите одно контролируемое сравнение, изменяя только это условие: добавить и настроить script stream в соответствующем profile/source group либо прекратить отправку script commands.
- После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние.
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_NO_VALID_OUTPUT_STREAM | сопоставление source media как минимум с одним output stream, объявленным в profile |
NS_E_NOSOURCEGROUPS | запуск сеанса Encoder с пустой коллекцией source group |
NS_E_NO_MEDIAFORMAT_IN_SOURCE | подготовка source, plug-in которого не предоставил media format |
Устранение и проверка
Непосредственное исправление этого случая — добавить и настроить script stream в соответствующем profile/source group либо прекратить отправку script commands. Пересоздайте соответствующий source group, profile или output object, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на контрольной точке no script stream.
Не удаляйте и не создавайте заново все source groups до экспорта конфигурации.wme и фиксации active group; иначе связь объектов, на которой возник сбой, будет потеряна в сеансе, который возвращает он.
Ссылки для него — диагностическая граница
- Подготовка source group к кодированию.
- Получение профиля, назначенного source group.
- Получение настроенного входа кодировщика.
- Сохранение конфигурации Windows Media Encoder.
Нужно найти другой код? Найти другой код состояния или ошибки.
