gstreamer with smaller footprint for low memory devices

Edward Hervey edward at centricular.com
Tue Nov 19 09:34:35 UTC 2019


Hi,

On Tue, 2019-11-19 at 05:59 +0000, Muralidhar S R wrote:
> Hello,
> 
>  
> 
> I was looking for a tiny gstreamer core, but found that around 2.7+
> MB is consumed by Glib only.

  It depends under what circumstances. Also some parts can be compiled
out if needed.

> 
> And looks like gstreamer is tightly coupled with glib.
> 
>  
> 
> Is there any in-progress task/bug for decoupling the glib with
> gstreamer ?
> 
>  
> 
> Also, will it a better idea to decouple glib and then integrate with
> musl instead of glibc to reduce memory footprint.

> 
> Appreciate any suggestions or advice on this ?

  glib and glibc are not the same thing. For example The Alpine
distribution uses musl instead of glibc and gstreamer works fine on
there.

  GStreamer use *glib* for 3 things:
  * libglib: platform abstraction (such as threading primitives) and
basic types (linked list, hash tables, ...).
  * libgobject: Dynamic object-based instropectable system. This allows
us to do "object-based" programming in C with types loaded at runtime.
  * libgio: i/o abstraction so that we don't have to care about
accessing socket/files/... on any platform. This is mostly used for
some networking-related components, for which we also have alternative
implementations (curl) or for which we could look at implementing
native plugins.

  Everything else in glib is not used that much. You could build a glib
with all optional parts stripped out and would gain a lot. Note that a
good part of the memory usage of glib is due to unicode/iconv support.
If you're targetting an "international" system you will need support
for that one way or another.

  Converting GStreamer to *not* use glib/gobject would take too much
effort for very little gain (glib/gobject has been optimized a lot over
the years). If your goal is reducing the memory footprint it would be
more beneficial to look at stripping down glib to your requirements.

  In the end, it all depends on your requirements. 

  Best Regards,

    Edward

> 
> Regards
> Murali
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list