Всё началось с того, что я написал плагин к FAR’у для редактирования субтитров в формате SSA, и заюзал в нём для предпросмотра оный плеер. Выложил на сайте, написал в форум.
Потом вышла Windows Vista. В форуме пошло обсуждение, что в ней отвалилось, и в том числе всплыл мой плагин.
Хорошо. То есть плохо. Берём VMWare, ставим в него эту вашу Висту, FAR, Media Player Classic, плагин, и начинаем ковырять.
Путём нехитрых манипуляций выясняется, что тот объект, который MPC регистрирует в COM’овской Running Objects Table, перестал выдавать интерфейс IMediaSeeking. Без которого не представляется возможным следить за тем, какая фраза сейчас произносится, и соответственно двигать курсор в редакторе, а также перематывать плеер по запросу пользователя.
То, что косяк не в Vist’е, а в MPC — я практически уверен. Требовать от разработчиков, чтобы сами разобрались и пофиксили — не позволяют моральные соображения, в конце концов, (а) проект открытый, (б) нормальной работе самого плеера не мешает.
Значит, качаем исходники… — фигушки, tarball исходников не обновлялся уже c 2003-08-19, добро пожаловать в CVS Subversion repository. Идём на работу, качаем Subversion (однако, 3.5M), качаем дерево исходников (ещё 69M), несём домой.
Дома выясняется, что ему надо DirectX 9 SDK (это у меня есть) и Windows Media Format SDK (ещё 7.5M).
Хм. Ладно. Начинаем собирать. Возникает подозрение, что у девелоперов какая-то другая версия MFC. Моя хочет, чтобы OnNcHitTest возвращала UINT, а их — LRESULT. По идее, конечно, LRESULT правильнее.
Хм. У них DirectX SDK новее, в моём не хватает некоторых констант. Ладно. Гугл в помощь, находим константы, патчим свой DXSDK.
Блин, какой неряшливый проект, однако. Warning’и так и сыплются.
А ещё у них в каждом подпроекте есть solution для Visual Studio 2003 и для 2005. И тот, что 2005, в моей Студии не открывается, а 2003 открывается, но не собирается, потому что список файлов неактуальный. Приводим в порядок.
А вот кусок кода использует какой-то ATL’ный контейнер, у них он, видимо, компилируется, а у меня нет. И, главное, я не представляю, как он может компилироваться, глядя на мою версию ATL.
Видимо, придётся таки брать Visual Studio 2005, тащить её в виртуальную машину и собирать там.
Общее впечатление. Разработчики ушли на Visual Studio 2005 и вовсю используют новые фичи, а на то, чтобы проект компилировался VS2003, им положить. Может, оно и правильно…
no subject
Date: 2006-11-29 10:52 (UTC)