Install optional packages
Install libcaca
Go to http://caca.zoy.org/wiki/libcaca
Download latest libcaca package:
libcaca-0.99.beta17.tar.gz
Unpack to c:\src
Modify c:\src\libcaca-0.99.beta17\caca\caca.h , c:\src\libcaca-0.99.beta17\caca\caca0.h and c:\src\libcaca-0.99.beta17\cxx\caca++.h:
Replace (case-sensitive) “ _WIN32 " with “ _MSC_VER ” and "(_WIN32)" with "(_MSC_VER)". This will prevent declspecs from being added to the function prototypes, since they are unnecessary when using the GNU toolchain (and the linker will complain about exporting non-existent functions).
Now do:
cd /c/src/libcaca-0.99.beta17 libtoolize -cif && ./bootstrap && CXXFLAGS="-fno-common" CFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw make make install
Install FLAC
cd /c/src cvs -d:pserver:anonymous@flac.cvs.sourceforge.net:/cvsroot/flac login (press enter when asked for password) cvs -z3 -d:pserver:anonymous@flac.cvs.sourceforge.net:/cvsroot/flac co -P flac
Edit c:/src/flac/Makefile.am:
change
AUTOMAKE_OPTIONS = foreign 1.7
to
AUTOMAKE_OPTIONS = foreign 1.11
Do:
cd flac dos2unix configure.in touch config.rpath CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./autogen.sh --disable-doxygen-docs --prefix=/mingw mkdir -p ./doc/html/api touch ./doc/html/api/empty make make install
Install JPEG
Get jpegsrc.v8c.tar.gz from http://www.ijg.org/
Unpack to c:\src
cd /c/src/jpeg-8c/ CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw make make install
Install Speex
Get speex-1.2rc1 from http://www.speex.org/downloads/ Unpack to c:\src
cd /c/src/speex-1.2rc1 CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw make make install
Install Shout
Get libshout-2.2.2.tar.gz from http://www.icecast.org/download.php unpack to c:\src
Modify src/Makefile.am:
Change
httpp/libicehttpp.la $(MAYBE_THREAD_LIB) $(THEORA_LIBS) $(VORBIS_LIBS)
to
httpp/libicehttpp.la $(MAYBE_THREAD_LIB) $(THEORA_LIBS) $(VORBIS_LIBS) $(SPEEX_LIBS)
Modify include/shout/shout.h.in:
Change:
#ifdef WIN32
to
#ifdef _MSC_VER
Modify examples/nonblocking.c:
Change:
sleep(1);
to
_sleep(1);
Do:
cd /c/src/libshout-2.2.2 libtoolize --copy --force aclocal -I ./m4 autoconf CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw automake --add-missing --copy make make install
libsoup
Install GnuTLS
Go to http://josefsson.org/gnutls4win/?M=A
Download latest gnutls binary package:
gnutls-2.9.12.zip
Unpack it to c:\mingw
Now do:
cd mingw/lib for file in `grep -l "/usr/i586-mingw32msvc/lib" ./*.la`; do sed 's/\/usr\/i586-mingw32msvc/\/mingw/g' $file >/tmp/$$ && mv /tmp/$$ $file ; done sed 's/\/usr\/i586-mingw32msvc/\/mingw/g' /mingw/bin/libgcrypt-config >/tmp/$$ && mv /tmp/$$ /mingw/bin/libgcrypt-config
Install libsoup
Go to ftp://ftp.gnome.org/pub/gnome/sources/libsoup
Download latest libsoup source package:
libsoup-2.32.2.tar.bz2 (anything newer will require glib 2.27, which might not be available in pre-compiled binary form just yet)
Unpack to c:\src
cd /c/src/libsoup-2.32.2 CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --without-gnome --prefix=/mingw make make install
Install taglib
Go to http://developer.kde.org/~wheeler/taglib.html
Download latest taglib package:
taglib-1.6.3.tar.gz
Unpack to c:\src\taglib-1.6.3
cd /c/src/taglib-1.6.3 CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw make make install
Install WAVPack
Go to http://www.wavpack.com/downloads.html#sources
Download latest wavpack source package for *nix:
wavpack-4.60.1.tar.bz2
Unpack to c:\src
cd /c/src/wavpack-4.60.1 CPPFLAGS="-D__MSVCRT_VERSION__=0x0601" CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw make make install
Get DirectX SDK for directsoundsink
Do:
svn checkout --trust-server-cert --non-interactive --no-auth-cache https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/trunk/mingw-w64-headers/direct-x/include /mingw/include/direct-x svn export --trust-server-cert --non-interactive --no-auth-cache https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/trunk/mingw-w64-headers/crt/_mingw_unicode.h /mingw/include/direct-x/_mingw_unicode.h
Build gst-plugins-good
cd /c/src git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-good cd gst-plugins-good DIRECTSOUND_CFLAGS="-I/mingw/include/direct-x" CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./autogen.sh --enable-experimental --disable-gtk-doc --with-libintl-prefix=/mingw --prefix=/mingw make make install
That's all for Gst-Plugins-Good. Other plugins cannot be built:
- 1394 is Linux-only
- aasink is not worth the trouble (we have cacasink, which is similar but newer)
- dv has assembler code, seems to be unportable
- esdsink - Linux-only
- gconfelements – requires Gnome
- halelements – Linux-only
- ossaudio - Linux-only
- osxaudio – OSX-only
- osxvideosink OSX-only
- pulseaudio – can't build on Windows (if you can do that – contact me!)
- sunaudio – Solaris-only?
- v4l2src – Same as video4linux
- ximagesrc – requires X libraries

