Есть приложение, выводящее несколько видео на одном экарне, по сути используется фононовский плеер, в несколько фреймов(ну несколько в ряд, скажем). Каждый фрейм - отдельный объект фононоского плеера. Видео принимается по сети в rtmp, и по этому случаются подвисания при переключении видео источника(ну ссылка там меняется когда например). Всё это дело крутится в одном главном потоке с GUI. Логично было бы убрать их в отдельные потоки, но тут сразу ограниение Qt, все виджеты должны быть в главном потоке.
Посмотрел поподробнее Phonon, а точнее на Phonon::MediaObject и Phonon::VideoWidget, подумал что неплохо бы вынести Phonon::MediaObject в поток, вынес. Видео виджет тем временем живет в основном потоке. Далее связываем видеовиджет с медиаобджек с помощью Phonon::createPath. Всё компилится, но при запуске в логи сыпятся ошибки данного содержания :
QObject: Cannot create children for a parent that is in a different thread.
(Parent is Phonon::MediaObject(0xab5004c8), parent's thread is QThread(0x9c505f0), current thread is QThread(0x921d250)
и вместо видео на виджет выводится белая картинка, хоть и с нужными размерами. Вопрос: кто-то занимался подобным, пробовал вынести объект источника в отдельный поток? Может есть другие варианты?