BuildingGstPluginsUglyInMinGWMsys

Back to contents

Install optional packages

Install liba52

It might not be necessary to build this plugin, because FFmpeg (available via gst-ffmpeg) comes with built-in ac3 codec. However, you WILL need it, if you want to build resindvd from gst-plugins-bad.

Do

cd /c/src/
svn co svn://svn.videolan.org/liba52/trunk liba52
cd liba52
./bootstrap
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --enable-shared --prefix=/mingw

Modify c:/src/liba52/liba52/parse.c and c:/src/liba52/include/a52.h, Change:

a52_state_t * a52_init (void)

to

a52_state_t * a52_init (uint32_t mm_accel)

Modify c:/src/liba52/src/a52dec.c, change:

    state = a52_init ();

to

    state = a52_init (0);

make
make install

Create /mingw/include/a52dec/mm_accel.h with the following contents:

#ifndef MM_ACCEL_H
#define MM_ACCEL_H

/* generic accelerations */
#define MM_ACCEL_DJBFFT         0x00000001

/* x86 accelerations */
#define MM_ACCEL_X86_MMX        0x80000000
#define MM_ACCEL_X86_3DNOW      0x40000000
#define MM_ACCEL_X86_MMXEXT     0x20000000

uint32_t mm_accel (void);

#endif /* MM_ACCEL_H */

amrwb and amrnb

cd /c/src
git clone git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/opencore-amr
cd opencore-amr
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

cdio

Build libgnurx

Go to https://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/

Download latest libgnurx:

mingw-libgnurx-2.5.1-src.tar.gz

Unpack to c:\src\

cd mingw-libgnurx-2.5.1
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

Install libcddb

Go to http://libcddb.sourceforge.net/download.html

Download latest libcddb source package:

libcddb-1.3.2.tar.bz2

Unpack to c:\src

cd /c/src/libcddb-1.3.2
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

Install libcdio

Go to ftp://mirrors.kernel.org/gnu/libcdio/ (or any other GNU mirror)

Download latest libcdio source package:

libcdio-0.82.tar.gz

Unpack to c:\src

cd /c/src
cd libcdio-0.82
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw --disable-cxx

Modify /c/src/libcdio-0.82/config.h and /c/src/libcdio-0.82/include/cdio/cdio_config.h:

Replace

#define HAVE_S_ISLNK 1

with

/* #undef HAVE_S_ISLNK */

Replace

#define HAVE_S_ISSOCK 1

with

/* #undef HAVE_S_ISSOCK */

make
make install

dvdread

Go to http://www1.mplayerhq.hu/MPlayer/releases/dvdnav/

Download latest libdvdread source package:

libdvdread-4.1.3.tar.bz2

Unpack to c:\src

Install dlfcn

Go to http://code.google.com/p/dlfcn-win32/downloads/list

Download latest dlfcn-win32 package:

dlfcn-win32-shared-r19.tar.bz2

dlfcn-win32-static-r19.tar.bz2

Unpack to c:\mingw32

Install libdvdread

cd /c/src/libdvdread-4.1.3
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" LIBS="-ldl" ./autogen.sh --prefix=/mingw
make
make install

Install id3tag

Go to http://sourceforge.net/project/showfiles.php?group_id=12349&package_id=87002

Download latest id3tag source package:

libid3tag-0.15.1b.tar.gz

Unpack to c:\src

cd /c/src/libid3tag-0.15.1b
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

Install libmad

Go to http://sourceforge.net/project/showfiles.php?group_id=12349&package_id=86999

Download latest mad source package:

libmad-0.15.1b.tar.gz

Unpack to c:\src

Modify c:\src\libmad-0.15.1b\configure: Remove line

        optimize="$optimize -fforce-mem"

(-force-mem option is not supported in newer version of gcc you're using)

cd /c/src/libmad-0.15.1b
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-no-undefined" ./configure --prefix=/mingw
make
make install

Install LAME

Go to http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309

Download latest lame source package:

lame-3.98.4.tar.gz

Unpack to c:\src

cd /c/src/lame-3.98.4
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

It will complain about gtk-config, ignore that.

Install twolame

Go to http://sourceforge.net/project/showfiles.php?group_id=136040&package_id=150051

Download latest twolame source package:

twolame-0.3.12.tar.gz

Unpack to c:\src

Modify c:\src\twolame-0.3.12\libtwolame\common.h:

Change

#ifdef _WIN32

to

#ifdef _MSC_VER

Modify c:\src\twolame-0.3.12\libtwolame\twolame.h:

Change

#ifdef WIN32

to

#ifdef _MSC_VER

Change

#else
#define DLL_EXPORT
#endif

to

#else
#ifdef DLL_EXPORT
#undef DLL_EXPORT
#endif
#define DLL_EXPORT 
#endif

cd /c/src/twolame-0.3.12
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-no-undefined" ./configure --prefix=/mingw
make
make install

Install mpeg2dec

Go to http://libmpeg2.sourceforge.net/downloads.html

Download latest libmpeg2 source package:

libmpeg2-0.5.1

Unpack to c:\src

cd /c/src/libmpeg2-0.5.1
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

x264

Install yasm

Go to http://www.tortall.net/projects/yasm/wiki/Download

Download latest yasm source package:

yasm-1.0.0.tar.gz

Unpack to c:\src

cd /c/src/yasm-1.0.0
CFLAGS="-fno-common" CXXFLAGS="-fno-common" LDFLAGS="-Wl,-no-undefined" ./configure --prefix=/mingw
make
make install

Install x264

cd /c/src
git clone git://git.videolan.org/x264.git 
cd x264

Modify ./configure, change

prefix='/usr/local'

to

prefix='/mingw'

./configure --extra-cflags="-fno-common" --extra-ldflags="-Wl,-no-undefined" --enable-shared
make
make install

Build gst-plugins-ugly

cd /c/src
git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-ugly
cd gst-plugins-ugly
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-Ugly. We didn't build: