Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51 IMX6 Видео - Embedded Linux - Форум - starterkit.ru
Есть такая проблема с драйвером adv7180. При работе с VGA режимом, при запуске gst долго проходит вертикальная синхронизация (несколько секунд - видимо зависит от момента включения относительно импульса VS). При этом изображение медленно ползет по экрану, пока не упрется в край. Дальше все работает нормально. Я что-то подобное на форуме imx нашел, https://community.nxp.com/thread/260836#comment-288505, там есть совет - сбросить idmac. Возможно в драйвере инициализация некорректно прописана. Или надо некие задержки делать в процессе инициализации. Нет возможности глянуть ?
adv7180 инициализируется на общий случай - автоматическое определение стандарта, можно поменять инициализацию для быстрой синхронизации, посмотрите эту тему
там я использовал рекомендованные ADI настройки и правил драйвер CSI, прерывания от ADV7180 не использовал - при переключении каналов опрашивал регистр состояния по i2c. В принципе даже без отлова потери синхронизации такие настройки дают в разы меньше скролинга, но надо сразу программировать какой стандарт видео на входе.
Тут речь немного о другом. Сам ADV тут не причем. режим стоит жестко. Источник не переключается, т.е. на выходе ADV установившийся поток данных . I2C для чистоты эксперимента после первичной инициализации отключен. Между тем при перезапуске конвейра gst каждый раз вертикальная синхронизация происходит, как правило, не сразу а через несколько секунд (до десятков) т.е. кадр медленно доползает до нижнего края. Я просто думаю может дело в последовательности инициализации CSI, DMA и т.д. Т.е. первично принятый неполный кадр портит картину.
речь как раз об этом - рассинхронизация, прочитайте пост на который вы ссылались на imxcommunity. По ссылке которую я давал на стартеркит - у меня получалось переклчать 4 или 6 раз в секунду без скролинга. Алгоритм такой - CSI отключался со сбросом FIFO CSI, переключался канал adv7180, после чего ожидалось когда декодер залочит входящий сигнал через чтение регистра состояния adv7180 и только после того как залочился, CSI заново включался. На комюнити то же только вид сбоку. Можно ловить прерывания от adv7180 - его можно сконфигурировать что при потере сигнала он генерирует преывания. Рассинхронизация при включении - частный случай, она может произойти и при кратковременном пропадании сигнала - например штекер дернули. Если вас волнует только при включении - можно сделать по аналогии как у меня но опрашивать состояние при старте захвата и включать CSI после того как adv7180 залочился. Если только запрограммировать adv7180 на быструю синхронизацию - это тоже частично решит проблему.
patch скачать с myfolder не могу - Сайт временно недоступен в связи с проведением технических работ
Все таки еще раз повторюсь :
На вход CSI гарантированно уже до включения программного ввода поступает синхронный поток данных. Проверять залочен АЦП или нет не надо. Пропадание видеосигнала не рассматриваем. Драйвер ADV я использую в данном случае только как прокладку для задания режима ввода RGB 1024х768 вместо одного из его штатных. Меня интересует только что происходит при запуске процесса ввода посредством
gst-launch-1.0 -e imxv4l2videosrc ...
и как можно ускорить процесс синхронизации по кадру.
Я не программист и в тонкостях драйвера мне не разобраться. Все что я сделал - только поменял в нем разрешение вводимого сигнала, и параметры ввода в mxc_v4l2_capture.c
Если есть возможность помочь , а еще лучше переписать/доработать драйвера под наши нужды - буду рад обсудить условия.
вы бы сразу пояснили что декодер не adv7180 - мне неизвестно что у вас там прописано в инициализации и какой всё таки декодер вы используете ? В каком виде синхронизация - bt.656 (там еще могут отличаться коды SAV/EAV хотя это врядли если в конце концов синхронизируется) или hsync/vsync ?
Драйверы tw6869 и adv7180 скомпилированы модулями. Иногда при загрузке видимо первым инициализируется adv7180, при этом съезжает нумерация /dev/video*. Т.е. tw6869 занимает /dev/video1..8 вместо /dev/video0..7. Можно как то жестко присвоить номер конкретных устройств для драйвера ?
Доброго времени суток.
При вводе видео с tw6869 изредка возникает ситуация, когда четное и нечетное поля кадра меняются местами. В связи с этим вопрос - драйвер как-то различает поля ?