Build Gstreamer and Gstreamer based codecs with ICC on Moblin OS

Submit New Article

June 29, 2009 1:00 AM PDT


Author: Wang Yang - Intel Compiler Team

How to play mp3, mpeg, flv, mov, h264 etc media files on Mobin? Totem plus Gstreamer may be one of the best choice.

GStreamer is a library for constructing graphs of media-handling components. You can get more information from http://gstreamer.freedesktop.org/

GStreamer is released under the LGPL. The 0.10 series is API and ABI stable. You can download the source from Gstreamer website. For example, get the Gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly and gst-ffmpeg sources from http://gstreamer.freedesktop.org/src .

1. Build the Gstreamer and Gstreamer codecs with gcc
a: extract the tar.gz file
$tar xvf xxx.tar.gz
b: build configuration
$ ./configure –prefix=/usr
c: make the build
$ make
d: su into root and make the install
$ sudo make install

The Gstreamer plugins are installed in /usr/lib/gstreamer-0.10 by default.
If you installed Totem, invoke totem and now you should be able to play lots of media files.

To clean the build, just use "make clean" to clean the environment for repeat builds.

2. Build the Gstreamer and Gstreamer codecs with icc
a: set up the icc build environment
$ source /opt/intel/Compiler/11.1/XXX/bin/ia32/iccvars_ia32.sh
b: build configuration
$ ./configure –prefix=/usr CC=icc
c: make the build
$ make
d: su to root and set the icc build environment
$ sudo –s
$ source /opt/intel/Compiler/11.1/XXX/bin/ia32/iccvars_ia32.sh
e: make the install
$ make install

3 Notes for building gst-ffmpeg plugin with icc
You may need to change the configuration file before step 2.b. For example, for gst-ffmpeg-0.10.7, edit the configure file, around line 17800, add new option “-cc=icc” so that icc is used to build the codec libraries. You may also remove options --disable-ffplay and --disable-protocols so that the binaries, ffplay and ffmpeg, are built for video file playing and converting.

4. If you run the build on an Intel Atom processor based platform, you may add the option “-xSSE3_ATOM” to the CFLAGS environment variable for better performance.
Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804



Do you need more help?


This article applies to: Intel® C++ Compiler for Linux* Knowledge Base