Как стать автором
Обновить

Комментарии 9

Оффтоп: на видео одно из самых лучших живых выступлений в Мишкольце.
А что Вы будете делать, если захотите сделать плеер кроссплатформенным?
В принципе, вполне неплохо получается, если рисовать фреймы видео в OpenGL.
А что Вы будете делать, если захотите сделать плеер кроссплатформенным?

Переписывать, вестимо.
А пока таких планов нет, но есть необходимость поддерживать существующий код. Разработка началась довольно давно и в первых версиях Qt не использовался.
Тоже не понял зачем DirectShow, уж лучше ffmpeg и opengl. А так у меня хорошо DirectShow работал, если нужно могу найти исходники, только там не Qt, а DX, C++, WinApi.
Не пробовали экспериментировать с атрибутами?
setAttribute(Qt::WA_TranslucentBackground,true);
setAttribute(Qt::WA_NoSystemBackground, true);
К виджету видео, к виджету под ним?
Пробовали Qt::WA_OpaquePaintEvent и Qt::WA_NoSystemBackground, но это ни к чему не привело.
Сейчас попробовал заюзать ещё Qt::WA_TranslucentBackground в сочетании с переопределенной paintEngine(), но баги по прежнему продолжали проявляться. В некоторых случаях видеовиджет все равно закрашивался и некорректно обновлялись некоторые тулбары.
Попытка применить эти атрибуты к родителям также ни к чему не привела.
Qt обладает достаточно сложной графической системой и попытки вставить туда стороннее решение выглядим весьма костыльно. Уж лучше пусть оно будет отделено – легче будет сопровождать.
А почему не остановились на Phonon?
Вроде как из коробки Qt работает.
И по моему опыту таких глюков не было никогда.
Проект изначально использовал DirectShow и позже перешел на Qt. А DirectShow так и остался.
Возможно вот решение проблемы — отключить вообще движок, так как Вы рисуете «сами» то это как раз то что нужно.

protected:
QPaintEngine *paintEngine() const { return 0; }

Когда совмещал D2D с Qt то как раз решал проблему именно так, так как симптомы были аккурат как у Вас, отключил движок отрисовки и все что касалось отрисовки выполнял сам.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории