This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HOWTO build the latest gstreamer for TI ARM micros

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.

  • Nick,

    I've successfully set GST_PLUGIN_SCANNER before.  I just dug up some old settings, and I found:

    export GST_PLUGIN_SCANNER=/opt/gstreamer/libexec/gstreamer-0.10/gst-plugin-scanner

     

    I think this was with version 0.10.30.  A couple of things to note:

    1)  Make sure it is exported

    2) Make sure it sets the actual name of the scanner binary, not just the directory it lives in.

    Hope this helps,

    Don

     

  • Nick,

    Great info! I was looking for something like this. Does this require me to rebuild the TI Gstreamer plugins or can I use them as they are already compiled?

    Thanks

    Tim