Тяжела и не казисть,
жизнь простого программиста(с)
Чего только не приходится делать на работе. Первое нехорошее предчувствие подленько кольнуло меня когда я узнал что придется активно работать с видео, в принципе ничего особенного просто показывать его, но уже тогда я догадывался что хорошего будет мало. Дальше я узнал что еще надо будет писать movie maker (хотя тут основную часть писал не я) и Webcam manager.
- И понеслось сначало надо было написать грид видео плееров, один из которых настоящий, остальные рисованные все это на wxScrolledWindow – cо скроллингом, переключением етс.
- Потом оказалось что один и тот-же wxMediaCtrl необходимо шарить между несколькими окнами, поддерживать 3 режима Fit to window, One to One и FullScreen – куча работы по написанию, и главное внедрению всего этого в чужую запутанную архитектуру и тестингу.
- wxMediaCtrl использует АктивХ под винду, а у этого АтивХ есть свое собственное поведение которое зависит от бекенда (под винду два родных) и не доступно для регулирования с наружи, что разумеется не устраивало – пришлось грязным хаком подменять оконную процедуру плеера и вмешиватся в обработку событий.
- Под маком все было еще веселее – там с wxMediaCtrl вообще печально. Во-первых он принципиально не может отрисовывать под другими контролами – то есть если видео играет на wxScrolledWindow и мы скроллим его – то видео отрисовывается поверх всего что есть в нашей программе. Во-вторых, Quike Time самостоятельно реагирует на нажатия мыши – останавливается, запускается не уведомляя об этом нас, в результате наши контролы управления получаются в рассогласованном состоянии. Короче под маком пришлось писать свой video backend.
- А в планах еще портирование всего этого под линукс, написание movie maker’a под макос, кроссплатформенная работа с веб-камерами… и может быть даже это все буду делать я…
Эх пойти бы сейчас в пастухи…