Мерцание и сбой потокового видео с помощью uvc-gadget и g_webcam - PullRequest
0 голосов
/ 23 января 2019

Я использую этот коммит uvc-гаджета вместе с g_webcam по состоянию на 4.4.143 для Rockchip.Эта версия uvc-гаджета передает только статическое изображение mjpeg (и гораздо лучше написана, чем более ранние источники uvc-gadget).

Наблюдает интересное поведение на хост-ноутбуке, который получает поток от гаджета с * 1005.*: через некоторое время кадры начинают мигать, как старый телевизор (V4L2_CORE: (jpeg decoder) error while decoding frame), а затем в конечном итоге поток прерывается на хосте: V4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable.Под хостом продолжается опрос ([75290.124695] uvcvideo: uvc_v4l2_poll), нет ошибки ни в dmesg хоста, ни в uvc-gadget на устройстве.Фактически, после повторного открытия потоковая передача guvcview снова работает без перезапуска uvc-gadget, но вскоре происходит сбой таким же образом.

Я использую стандартный кабель USB3.0, который предназначен как для потоковой передачи, так и для питания устройства.,AFAIK, нет источника шума, который может привести к такого рода странным мерцаниям на физическом уровне.

Кроме того, я заметил, что при меньших размерах USB-пакетов, уменьшающихся с 1024 до 256, поток сохраняется дольше (до 50 000 кадров или около того), но все равно окончательно вылетает.

Есть идеи, что здесь происходит?

ОБНОВЛЕНИЕ

После того, как я перешел с MJPEG-сжатый в несжатый поток, больше не мерцает, но все равно всегда теряется контакт через несколько секунд: V4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable

...