
Howto strip gstreamer
---------------------

subsystems that can disabled:

 * load/save (gstxml.h, various other files)
   - no object serialisation to XML
 
 * typefind (gsttypefind.h)
   - typefind element is not compiled in the core

 * autoplugging (gstautoplug.h)
   - autoplugging functions not available

 * parse (gstparse.h)
   - no parsing can be done

 * trace (gsttrace.h)
   - no tracing features

 * registry (gstregistry.h)
   - can't instantiate registry objects
   - registry pool only contains statically
     registered plugins

 * enumtypes (gstenumtypes.h)
   - code not linked into the core

 * index (gstindex.h)
   - index plugin feature not available
 
 * plugin (gstplugin.h, gstregistry.h, gstpluginfeature.h)
   - can't group elementfactories in plugins
   - no pluginfeatures
   - no registrypool
 
 * URI (gsturi.h)
   - no urihandler pluginfeature


