Комментарии 9
Оффтоп: на видео одно из самых лучших живых выступлений в Мишкольце.
-2
А что Вы будете делать, если захотите сделать плеер кроссплатформенным?
В принципе, вполне неплохо получается, если рисовать фреймы видео в OpenGL.
В принципе, вполне неплохо получается, если рисовать фреймы видео в OpenGL.
+1
Тоже не понял зачем DirectShow, уж лучше ffmpeg и opengl. А так у меня хорошо DirectShow работал, если нужно могу найти исходники, только там не Qt, а DX, C++, WinApi.
+1
Не пробовали экспериментировать с атрибутами?
setAttribute(Qt::WA_TranslucentBackground,true);
setAttribute(Qt::WA_NoSystemBackground, true);
К виджету видео, к виджету под ним?+2
Пробовали Qt::WA_OpaquePaintEvent и Qt::WA_NoSystemBackground, но это ни к чему не привело.
Сейчас попробовал заюзать ещё Qt::WA_TranslucentBackground в сочетании с переопределенной paintEngine(), но баги по прежнему продолжали проявляться. В некоторых случаях видеовиджет все равно закрашивался и некорректно обновлялись некоторые тулбары.
Попытка применить эти атрибуты к родителям также ни к чему не привела.
Qt обладает достаточно сложной графической системой и попытки вставить туда стороннее решение выглядим весьма костыльно. Уж лучше пусть оно будет отделено – легче будет сопровождать.
Сейчас попробовал заюзать ещё Qt::WA_TranslucentBackground в сочетании с переопределенной paintEngine(), но баги по прежнему продолжали проявляться. В некоторых случаях видеовиджет все равно закрашивался и некорректно обновлялись некоторые тулбары.
Попытка применить эти атрибуты к родителям также ни к чему не привела.
Qt обладает достаточно сложной графической системой и попытки вставить туда стороннее решение выглядим весьма костыльно. Уж лучше пусть оно будет отделено – легче будет сопровождать.
0
Возможно вот решение проблемы — отключить вообще движок, так как Вы рисуете «сами» то это как раз то что нужно.
protected:
QPaintEngine *paintEngine() const { return 0; }
Когда совмещал D2D с Qt то как раз решал проблему именно так, так как симптомы были аккурат как у Вас, отключил движок отрисовки и все что касалось отрисовки выполнял сам.
protected:
QPaintEngine *paintEngine() const { return 0; }
Когда совмещал D2D с Qt то как раз решал проблему именно так, так как симптомы были аккурат как у Вас, отключил движок отрисовки и все что касалось отрисовки выполнял сам.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Мерцание видео при использовании Qt widget и Directshow