Название: Проблемы с отрисовкой видео Отправлено: Arlekin от Март 25, 2015, 13:09 Добрый день.
Я новичок в Qt и столкнулся со следующей проблемой. Пытаюсь я написать проигрыватель видео файлов. Приложение содержит главное окно (наследник QWidget), в котором создан QGridLayout с несколькими GLWidget. При наличии только одного GLWidget все работает отлично, проигрывание видео плавное. Но если добавить еще хотя бы один, то начинаются рывки в видео. Выглядит это так, как будто видео фреймы переставляются местами. Код довольно простой. Есть некий код обработки видео, который при наличии видео кадра дергает метод у GLWidget: Код: void GLWidget::setImage(AVFrame* frame) И довольно простой код отрисовки (код инициализации openGL опущен): Код: void GLWidget::paintGL() Подскажите пожалуйста, что может быть причиной рывков? Название: Re: Проблемы с отрисовкой видео Отправлено: Fregloin от Март 25, 2015, 22:37 Первое что приходит на ум это может где то лочатся мутексы, второе - лочатся буферы. Я конечно дилетант в этой области, но мало ли...
Название: Re: Проблемы с отрисовкой видео Отправлено: Igors от Март 26, 2015, 07:04 А Вы не один и тот же файл читаете? В смысле - не приходится ли перезагружать кадр который Вы "забрали"? И еще: по меньшей мере QOpenGLWidget в 5.4 перерисовывается по очень многим причинам, не надейтесь что каждая перерисовка это "новый кадр". Пример: создайте QOpenGLWidget и QLineEdit в окне так чтобы эти 2 виджета не пересекались. Всякий раз когда каретка мигает - GL перерисовывается. Зачем - хз
|