потоке, в котором инициализируется, настраивается работа с gstreamer. Необходимо видео с камеры вытянуть на виджет. В одном потоке,юзая gst_video_overlay_set_window_handle все работает нормально, а если камера в другом потоке, не даёт работать, как я понял, эта функция устанавливает qwidget родителем (или потомком) для gstelement'а.
Как можно это обойти? Может я вообще с архитектурной стороны не правильно подошёл и работу с gstream надо делать в одном потоке с гуишным?
P. S. К сожалению на данный момент под рукой ничего нет, чтоб накидать примерный код, а по памяти не помню как все точно реализовано, могу ошибиться
Как видео обновляется? По событию готов кадр или по таймеру? Скорее всего дело в том, что потоки имеют свои очереди обработки сообщений, самый, наверное, простой подход будет делать всю работу в основном потоке где гуи. В другом случае придется подробнее изучить как синхронизировать потоки в Qt.
По хорошему вы должны готовить видео-кадр в отдельном потоке и атомарно его подсовывать на рендеринг в UI- поток
Обсуждают сегодня