Успешный предварительный просмотр видео сам по себе не является достаточным доказательством стабильного захвата необработанного изображения в предполагаемом рабочем режиме. Программное обеспечение дисплея может использовать более низкое разрешение, сжатый поток, пропущенные кадры или другую политику буферизации. Записывайте режимы работы и границы измерения и сохраняйте их постоянными, прежде чем обнаруживать проблему в очереди устройства, транспорта, драйвера или приложения.
Определите слой, на котором теряются кадры
| Расположение | Наблюдаемые поля | Отличие, которое нужно сохранить |
|---|---|---|
| Устройство и транспорт | Идентификаторы кадров устройства, статус и ошибки передачи | Не сгенерировано, не получено и недействительно — это разные события. |
| Прием принимающей стороны | Количество полученных сообщений, допустимая длина, формат и ошибки. | Полученный буфер не обязательно является допустимым изображением. |
| Адаптер и очередь | Причины постановки в очередь, удаления из очереди, ожидания, занятости и удаления | Преднамеренный отбор проб и непреднамеренная потеря требуют отдельных счетчиков. |
| Обработка и вывод | Идентификаторы начала, завершения, тайм-аутов и результатов | Отсутствие результата может отражать неудачу или намеренный пропуск. |
Если последовательные номера кадров устройства отсутствуют, также проверьте переподключение, сброс и циклический цикл счетчика (возврат к началу диапазона нумерации). Идентификаторы кадров, сгенерированные хостом, описывают последовательность, полученную хостом; они не могут самостоятельно установить, что устройство не потеряло кадров.
Установите минимальное воспроизведение с помощью необработанных кадров.
Запишите камеру, прошивку, кабель, хост, драйвер, SDK, разрешение, формат и частоту кадров. Начните с программы, которая получает и проверяет необработанные кадры. Добавьте преобразование, вывод, хранение и отображение отдельно, сравнивая ошибки и ресурсы. Записывайте примеры поставщиков отдельно от бизнес-приложений, а не сравнивайте разные режимы напрямую.
Проверка буферов и владения
Определите, когда буферы SDK остаются доступными для чтения, когда они должны быть возвращены и разрешают ли обратные вызовы долгосрочное владение. Запишите длину очереди и время ожидания. Если старые кадры могут быть отброшены, сохраните причины и количество отброшенных кадров. Если необходимо хранить каждый кадр, спроектируйте его с учетом пропускной способности и противодавления. Большая очередь сама по себе не обеспечивает исправления.
Сроки и восстановление
Определите источники синхронизации и различайте время воздействия, приема, постановки в очередь и завершения. Для повторного подключения укажите повторное применение параметров, очистку буфера и перезапуск последовательности. Без синхронизации устройства или независимой ссылки временные метки хоста не обеспечивают синхронизацию воздействия или полный сквозной ответ.
Проверьте нормальную работу и восстановление при согласованных условиях, параллельности и продолжительности. Предоставляйте конфигурацию, определения счетчиков, необработанные журналы и этапы воспроизведения. Сопутствующие услуги: разработка захвата изображений и SDK для устройств машинного зрения.