Cross compiling GStreamer

Sergei Vorobyov sergei.vorobyov at facilitylabs.com
Sun Feb 10 11:37:09 PST 2013


Greetings!

I tried to follow instructions on

http://gstreamer.freedesktop.org/wiki/Win32_Cross_Compiling_With_Mingw

to cross compile GStreamer for Windows.

The scripts suggested in the very end of the web page above:

3. Latest version of build scripts:
cross-env.sh allows adjusting settings to particular situation
build_win32_sdk.sh

FAIL on several accounts:

1. In build_win_sdk.sh the line

wget http://www7.mplayerhq.hu/MPlayer/releases/dvdnav/libdvdnav-4.1.2.tar.gz

should read (web directory has changed)

wget
http://www7.mplayerhq.hu/MPlayer/releases/dvdnav-old/libdvdnav-4.1.2.tar.gz

2. In build_win_sdk.sh the line

modules=${modules/deps/core base good ugly bad}

should read

modules=${modules/gst/core base good ugly bad ffmpeg}

Recall that the script is called as

./build_win_sdk.sh preqs deps gst

where gst (rather than deps) is intended to build gstreamer.

4.  Most importantly. building ffmpeg with the last part of the script:

########################## ffmpeg #######################

if [[ $modules == *ffmpeg* ]] ; then

test -f gst-ffmpeg-${ffmpeg_version}.tar.bz2 ||
  wget http://gstreamer.freedesktop.org/src/gst-ffmpeg/$(checkpre${ffmpeg_version})gst-ffmpeg-${ffmpeg_version}.tar.bz2
tar -xjvf gst-ffmpeg-${ffmpeg_version}.tar.bz2
cd gst-ffmpeg-${ffmpeg_version}
# NOCONFIGURE=1 ./autogen.sh
export_plugin_desc
lt_cv_deplibs_check_method=pass_all \
./configure \
  --host=${host} \
  --build=${build} \
  --prefix=$prefix
make
make install
cd ..

fi
##################

is plagued with warnings and errors (and no help is available on the web):

configure: WARNING: using cross tools not prefixed with host triplet
configure: WARNING: libbz2 not found, matroska demuxer will not be able to
read bz2 tracks
libavdevice/alldevices.c:1: warning: -fPIC ignored for target (all code is
position independent)
In file included from ./libavformat/avformat.h:55,
                 from libavdevice/alldevices.c:22:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/stdio.h:372:
error: no previous prototype for ‘getc’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/stdio.h:379:
error: no previous prototype for ‘putc’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/stdio.h:386:
error: no previous prototype for ‘getchar’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/stdio.h:393:
error: no previous prototype for ‘putchar’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/stdio.h:606:
error: no previous prototype for ‘vsnwprintf’
In file included from ./libavutil/common.h:31,
                 from ./libavutil/avutil.h:81,
                 from ./libavcodec/avcodec.h:30,
                 from ./libavformat/avformat.h:56,
                 from libavdevice/alldevices.c:22:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/inttypes.h:259:
error: no previous prototype for ‘imaxabs’
In file included from ./libavutil/common.h:33,
                 from ./libavutil/avutil.h:81,
                 from ./libavcodec/avcodec.h:30,
                 from ./libavformat/avformat.h:56,
                 from libavdevice/alldevices.c:22:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:357:
error: no previous prototype for ‘__fpclassifyl’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:378:
error: no previous prototype for ‘__isnan’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:387:
error: no previous prototype for ‘__isnanf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:396:
error: no previous prototype for ‘__isnanl’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:413:
error: no previous prototype for ‘__signbit’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:419:
error: no previous prototype for ‘__signbitf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:425:
error: no previous prototype for ‘__signbitl’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:459:
error: no previous prototype for ‘sinhf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:463:
error: no previous prototype for ‘coshf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:467:
error: no previous prototype for ‘tanhf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:489:
error: no previous prototype for ‘expf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:505:
error: no previous prototype for ‘frexpf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:517:
error: no previous prototype for ‘ldexpf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:597:
error: no previous prototype for ‘hypotf’
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/include/math.h:602:
error: no previous prototype for ‘powf’
make[5]: *** [libavdevice/alldevices.o] Error 1
make[4]: *** [all-local] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Could please someone help to fix this script or give some pointers how to
do it?

The alternative scripts on the page either do not build ffmpeg, or download
code from

http:///home/tshalif

which obviously does not make sense.

Many thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130210/e48e8f72/attachment-0001.html>


More information about the gstreamer-devel mailing list