| Предыдущий | Следующий |
| NS_E_DEVICECONTROL_UNSTABLE | NS_E_AUDIENCE__LANGUAGE_CONTENTTYPE_MISMATCH |
NS_E_INVALID_PIXEL_ASPECT_RATIO
Граница сбоя в объектной модели Encoder
Практический смысл NS_E_INVALID_PIXEL_ASPECT_RATIO (0xC00D1BE2) не сводится к стандартному сообщению: код указывает на числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder в области «параметры видеопотока и audiences».
Видеопрофиль выбирает codec и режим управления bitrate, затем задаёт bitrate, peak rate, frame rate, размер кадра, интервал key frame, quality, buffer и необязательные параметры interlace и pixel aspect ratio для условия «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder». В сеансе, возвращающем NS_E_INVALID_PIXEL_ASPECT_RATIO, именно здесь проверяется условие «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder».
Данные, отделяющие этот код от ошибки оболочки
Предварительный просмотр source не подтверждает допустимость выходного profile: выбранный encoder codec отдельно проверяет размеры выхода и параметры управления bitrate в сеансе, возвращающем NS_E_INVALID_PIXEL_ASPECT_RATIO. Например, большое несокращённое отношение записывается без нормализации. Сохраните NS_E_INVALID_PIXEL_ASPECT_RATIO до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | значения PixelAspectRatioX/Y, размеры источника и режим неквадратных пикселей |
| Объект, вернувший ошибку | индекс audience, FOURCC/индекс codec, режим VBR, ширину и высоту, frame rate, средний и пиковый bitrate, значения buffer, интервал key frame, quality, режим interlace и pixel aspect ratio |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен NS_E_INVALID_PIXEL_ASPECT_RATIO |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с NS_E_INVALID_PIXEL_ASPECT_RATIO |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder» |
Как интерпретировать следующее измерение
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее этот результат | Решающие данные: значения PixelAspectRatioX/Y, размеры источника и режим неквадратных пикселей. Они подтверждают условие «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT в сценарии «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: задать каждую компоненту отношения в диапазоне от 1 до 255, сохранив требуемое соотношение сторон отображения. После этого исходный вызов должен пройти ту же контрольную точку при проверке «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder». |
Практическое влияние NS_E_INVALID_PIXEL_ASPECT_RATIO ограничено переходом «параметры видеопотока и audiences», которому принадлежит условие «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder». Сам по себе NS_E_INVALID_PIXEL_ASPECT_RATIO не доказывает, что повреждены все входные данные, отсутствуют все codecs или полностью неработоспособна установка Windows Media. В типичном случае, когда большое несокращённое отношение записывается без нормализации, сохраните первый отказавший вызов и идентичность его объекта, чтобы более поздняя оболочка не скрыла исходные данные.
Исправление и проверка
- Зафиксируйте
0xC00D1BE2,NS_E_INVALID_PIXEL_ASPECT_RATIO, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте значения PixelAspectRatioX/Y, размеры источника и режим неквадратных пикселей. - Для
NS_E_INVALID_PIXEL_ASPECT_RATIO, проверяйте предварительное условие «video stream and audience settings», не меняя одновременно source, profile и output sink. - Выполните одно контролируемое сравнение, изменив только это условие: задать каждую компоненту отношения в диапазоне от 1 до 255, сохранив требуемое соотношение сторон отображения.
- После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние invalid pixel aspect ratio.
Осторожно интерпретируйте соседние результаты
| Почему это другая граница | Почему это другая граница |
|---|---|
NS_E_INVALID_INTERLACEMODE | выбранный кодек не поддерживает запрошенный режим сохранения interlace |
NS_E_INVALID_VIDEO_WIDTH_FOR_INTERLACED_ENCODING | при сохранении interlace выходная ширина не кратна четырём |
NS_E_SAME_AS_INPUT_COMBINATION | audiences смешивают размер same-as-input с явно заданными width и height в одном profile |
Исправление и проверка
Непосредственное исправление этого случая — задать каждую компоненту отношения в диапазоне от 1 до 255, сохранив требуемое соотношение сторон отображения. Пересоздайте соответствующий source group, profile или output object, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на контрольной точке invalid pixel aspect ratio.
Не меняйте одновременно источник, codec и размеры кадра; сначала сохраните отклонённые значения профиля и повторите тот же вызов с одним исправлением для условия «числитель или знаменатель pixel aspect ratio находится вне диапазона Encoder». Это позволяет повторно проверить тот же сеанс с NS_E_INVALID_PIXEL_ASPECT_RATIO без потери исходных диагностических данных.
Ссылки для границы NS_E_INVALID_PIXEL_ASPECT_RATIO — граница
- Выбор видеокодека для аудитории.
- IWMEncProfile2.VBRMode.
- IWMEncVideoSource2.Width и размер живого захвата.
- Режим непрямоугольных пикселей в профиле кодировщика.
Нужно найти другой код? Найти другой код состояния или ошибки.