понедельник, 24 мая 2010 г.

Mozilla vlc plugin для windows

Есть такая класная штука, mozilla-vlc-plugin называется. Но чтобы поставить его под windows нам надо поставить целый vlc, да еще и не забыть отметить плагин в списке устанавливаемых компонентов. Возможность (да и желание тоже) ставить приложение целиком есть не всегда, а вот плагин для firefox был бы в самый раз. Разработчики vlc ничего сами не собирают, поэтому все придется делать самим. Приступим.
Я делал все под Kubuntu 9.10, а работать итоговый продукт должен под windows соответсвенно заранее рекомендую найти подопытную windows машину, хотя и wine может сгодиться.
Для начала качаем свежую версию исходников vlc с сайта производителя. Я качал 1.0.6 вот отсюда (более свежая версия из репозитария git у меня работать отказалась).
Было найдено руководство на wiki VideoLan: http://wiki.videolan.org/Win32Compile, которое очень здорово помогло. Кроме того в листе рассылки vlc-devel был найден необходимый патч, который в дальнейшем необходимо применить к исходникам.
Теперь ставим кросс-компилятор с поддержкой mingw32, в (k)ubuntu все совсем просто:

apt-get install mingw32 mingw32-binutils

Сами исходники скачаны, теперь качаем скомпилированные библиотеки, которые необходимы для сборки vlc: http://people.videolan.org/~jb/Contribs/. Качаем в соответсвии с установленной версией mingw32. Распаковываем в корень командой вида:

tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /

Далее мы будем использовать эти библиотеки для сборки, для удобства экспортируем переменную:

export CONTRIBS=/usr/win32

Далее идем в каталог с исходными кодами vlc и применяем патч скачанный в листе рассылке. Этот патч создает файл install.rdf, который необходим для того, чтобы наш плагим был совместим с 3-й версией firefox. Кроме того этот патч создает цель сборки пакета с плагином и вносит несколько исправлений в vlcplugin.cpp.
Перед применением патча в нем нужно в блоке, который создает install.rdf заменить максимальную версию firefox с 3.5.* на 3.6.* иначе плагин под ФФ 3.6 работать не будет. Либо сделать это уже в созданном install.rdf.in.
Далее действуем согласно инструкции с VideoLan Wiki, идем в каталог и исходниками vlc и выполняем:

./bootstrap && \
export PKG_CONFIG_LIBDIR=$CONTRIBS/lib/pkgconfig PKG_CONFIG_PATH=$CONTRIBS/lib/pkgconfig \
CPPFLAGS="-I$CONTRIBS/include -I$CONTRIBS/include/ebml" CXXCPP=i586-mingw32msvc-cpp \
LDFLAGS=-L$CONTRIBS/lib \
CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++

Далее необходимо запустить скрипт configure с необходимыми параметрами. Для нас обязательными являются параметры --enable-mozilla и --with-mozilla-sdk-path. Соответственно первый параметр говорит, что плагин для mozilla все-таки придется собирать, а второй показывает где лежат необходимые dev компоненты этой самой mozilla. В итоге запускал скрипт вот с таким набором параметров:

./configure --host=i586-mingw32msvc --build=i386-linux \
--disable-gtk \
--enable-nls --enable-sdl --with-sdl-config-path=$CONTRIBS/bin \
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
--with-wx-config-path=$CONTRIBS/bin \
--with-freetype-config-path=$CONTRIBS/bin \
--with-fribidi-config-path=$CONTRIBS/bin \
--with-libgcrypt-prefix=$CONTRIBS \
--enable-live555 --with-live555-tree=$CONTRIBS/live.com \
--enable-caca --with-caca-config-path=$CONTRIBS/bin \
--with-xml2-config-path=$CONTRIBS/bin \
--with-dvdnav-config-path=$CONTRIBS/bin \
--disable-cddax --disable-vcdx --enable-goom \
--enable-twolame --enable-dvdread \
--disable-fluidsynth --disable-qt4 --disable-skins2 \
--enable-mozilla --with-mozilla-sdk-path=/usr/win32/gecko-sdk

После этого можно запускать make all, но система скорее всего ругнется чем-то типа этого:

Makefile:1961: *** пропущен разделитель. Останов.

Открываем Makefile и меняем пробелы в начале указанной строки на честные табуляции и так практически со всем блоком, который вставился из патча.
Все, теперь запускаем make all и идем пить чай, у меня оно собиралось довольно долго.
После этого выполняем make package-win32-xpi и через пару мгновений в каталоге ./vlc-1.0.6/vlc-plugin получаем готовый к использованию vlc-1.0.6.xpi.

6 комментариев:

Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...
Этот комментарий был удален администратором блога.