I've spent the better part of 2 weeks trying to build the latest version of gstreamer for a DM355. I needed some features in the latest gstreamer that wasn't present in the TI gstreamer port. Also I had trouble building the TI gstreamer port to begin with.
Here are the command options I used. Note that all I needed as the following plugins: app, coreelements, isomp4, wavenv, and waveparse, so my command line options are very restrictive:
Get the glib-2.22.2 source
Build
the glib source:
./configure
--build=i686-linux --host=arm-none-linux-gnueabi --prefix=/home/user/product1/dependencies
NM=nm RANLIB=ranlib CPPFLAGS="-DPlatform_dm355 -I/home/user/temp/opt/gstreamer/include
-I/include" CFLAGS="-O2 -march=armv5te -mtune=arm926ej-s"
LDFLAGS="-L/home/user/temp/opt/gstreamer/lib -L/lib"
glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes
ac_cv_func_posix_getgrgid_r=yes
CC=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc
Configure
and build gstreamer-0.10.35
export
PKG_CONFIG_PATH=/home/user/product1/dependencies/lib/pkgconfig
Note
the “ don’t paste well, copy this and paste it into notepad, then copy and
paste it into a terminal
./configure
CC=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc --build=i686-linux
--host=arm-none-linux-gnueabi --prefix=/home/user/product1/dependencies
CFLAGS=-I/home/user/product1/dependencies/include/ LDFLAGS=-L/home/nlbuts/product1/dependencies/lib/
--disable-loadsave GLIB_CFLAGS="-I/home/user/product1/dependencies/include
-I/home/user/product1/dependencies/include/glib-2.0 -I/home/user/product1/dependencies/include/glib-2.0/glib
-I/home/user/product1/dependencies/lib/glib-2.0/include"
Configure
and build gst-plugins-base-0.10.34 (0.10.34 doesn’t build something with a
unittest)
./configure
CC=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc
--build=i686-linux --host=arm-none-linux-gnueabi --prefix=/home/user/product1/dependencies
CFLAGS=-I/home/user/product1/dependencies/include/ LDFLAGS=-L/home/nlbuts/product1/dependencies/lib/
GLIB_CFLAGS="-I/home/user/product1/dependencies/include -I/home/user/product1/dependencies/include/glib-2.0
-I/home/user/product1/dependencies/include/glib-2.0/glib -I/home/user/product1/dependencies/lib/glib-2.0/include"
\
--disable-examples
\
--disable-external
\
--disable-adder
\
--disable-audioconvert
\
--disable-audiorate
\
--disable-audiotestsrc
\
--disable-encoding
\
--disable-ffmpegcolorspace
\
--disable-gdp
\
--disable-playback
\
--disable-audioresample
\
--disable-subparse
\
--disable-tcp
\
--disable-typefind
\
--disable-videotestsrc
\
--disable-videorate
\
--disable-videoscale
\
--disable-volume
\
--disable-x
\
--disable-xvideo
\
--disable-xshm
\
--disable-gst_v4l
\
--disable-alsa
\
--disable-cdparanoia
\
--disable-gnome_vfs
\
--disable-ivorbis
\
--disable-gio
\
--disable-libvisual
\
--disable-ogg
\
--disable-oggtest
\
--disable-pango
\
--disable-theora
\
--disable-vorbis
\
--disable-vorbistest
\
--disable-freetypetest
Configure
and build gst-plugins-good-0.10.30
./configure
CC=/opt/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc
--build=i686-linux --host=arm-none-linux-gnueabi --prefix=/home/user/product1/dependencies
CFLAGS=-I/home/user/product1/dependencies/include/ LDFLAGS=-L/home/nlbuts/product1/dependencies/lib/
GLIB_CFLAGS="-I/home/user/product1/dependencies/include -I/home/user/product1/dependencies/include/glib-2.0
-I/home/user/product1/dependencies/include/glib-2.0/glib -I/home/user/product1/dependencies/lib/glib-2.0/include"
\
--disable-examples
\
--disable-external
\
--disable-gconftool
\
--disable-videofilter
\
--disable-alpha
\
--disable-apetag
\
--disable-audiofx
\
--disable-audioparsers
\
--disable-auparse
\
--disable-autodetect
\
--disable-avi
\
--disable-cutter
\
--disable-debugutils
\
--disable-deinterlace
\
--disable-effectv
\
--disable-equalizer
\
--disable-flv
\
--disable-id3demux
\
--disable-icydemux
\
--disable-interleave
\
--disable-flx
\
--disable-goom
\
--disable-goom2k1
\
--disable-imagefreeze
\
--disable-law
\
--disable-level
\
--disable-matroska
\
--disable-monoscope
\
--disable-multifile
\
--disable-multipart
\
--disable-replaygain
\
--disable-rtp
\
--disable-rtpmanager
\
--disable-rtsp
\
--disable-shapewipe
\
--disable-smpte
\
--disable-spectrum
\
--disable-udp
\
--disable-videobox
\
--disable-videocrop
\
--disable-videomixer
\
--disable-y4m
\
--disable-directsound
\
--disable-oss
\
--disable-oss4
\
--disable-sunaudio
\
--disable-osx_audio
\
--disable-osx_video
\
--disable-gst_v4l2
\
--disable-x
\
--disable-xshm
\
--disable-xvideo
\
--disable-aalib
\
--disable-aalibtest
\
--disable-annodex
\
--disable-cairo
\
--disable-cairo_gobject
\
--disable-esd
\
--disable-esdtest
\
--disable-flac
\
--disable-gconf
\
--disable-gdk_pixbuf
\
--disable-hal
\
--disable-jack
\
--disable-jpeg
\
--disable-libcaca
\
--disable-libdv
\
--disable-libpng
\
--disable-pulse
\
--disable-dv1394
\
--disable-shout2
\
--disable-shout2test
\
--disable-soup
\
--disable-speex
\
--disable-taglib
\
--disable-bz2
Then you can modify the helloworld app to use this subset for testing. Another way to test is to run gst-inspect to verify the plugins are present. You will need to define the GST_PLUGIN_PATH to the location to the gstreamer plug-ins. Also, the tool, gst-plugin-scanner, needs to be at the harded code defined by PREFIX. I can't figure out a way to redirect this. So I had to create a path on my target called:
/home/user/produce1/dependencies/libexec/gstreamer-0.10
and put the gst-plugin-scanner in this directory. According to the docs, you should be able to override this with GST_PLUGIN_SCANNER environment variable, but that doesn't appear to work. If you know a way to build this and redefine the location of this loader, let me know.
Hopefully this helps other people out.