[gst-devel] GStreamer performance On the embedded platform
ds at schleef.org
Tue Jan 31 23:12:00 CET 2006
On Wed, Feb 01, 2006 at 01:33:11PM +0800, ye nan wrote:
> The application uses a video sink "xiamgesink" to dispaly only the video
> stream in a mpeg2 stream with the libmpeg2 decoder plugin in
> gst-plugin-ugly package. But I think its performance is not good as I
> thought. It is slower than the applications which use the libmpeg directly,
> such as mpeg2dec or mplayer.
> The nokida 770 used the Gstreamer, and it's basic configuration is OMAP
> 192HMz cpu with 64M memory. Our demo platform is 200MHz cpu with 64M
> memory. The run-time performance of GStreamer on our platform can not make
> our satisfied.So we want to know is that the limition of GStreamer itself
> or just the limitaton of codec plugins?
> Our test is basing on the Gstreamer 0.10.0 and corresponding plugins
> packages. We test the performance both our own application and the
> gst-launch command line:
> gst-launch filesrc location=<test.mpg> ! mpegdemux name=demuxer
> demuxer.video_00 ! mpeg2dec ! ffmpegcolorspace ! ximagesink
The very first thing you want to do when examining the performace or
size of GStreamer for an embedded system is turn off the internal
debugging code using ./configure --disable-gst-debug. There's other
stuff you might want to turn off, but they're less important.
The overhead of GStreamer is going to be very minor compared to the
CPU requirements of decoding a video stream in software. A few
percent for a lightweight stream (mp3 decoding, for example), and
less for anything heavier like decoding video. If you notice anything
significantly larger, it's probably a bug.
Two notable problems that relate to embedded systems currently:
- GStreamer often exposes a bug in glibc's memory allocator that
can cause repeated mmap()/munmap()s of large chunks of memory,
causing lots of unnecessary page faults and page clearing in
- For unknown reasons, flex generates a 2 MB source file to parse
GStreamer launch lines, which compiles into a ~650 kB .o file
on i386. This is insane.
Big Kitten LLC (http://www.bigkitten.com/) -- data acquisition on Linux
More information about the gstreamer-devel