Registry Change Hooks
----------------------

This document proposes a mechanism to register on registry updates.

Last edited: 2009-11-09 Stefan Kost


Current Behaviour
-----------------

When new plugins are installed or some are removed, the next application that
runs rebuiilds the registry. Any application that runs later on won't know about
it.


Problem
-------

Some usecases need to cache gstreamer capabilities. They need to know when the 
cache needs to be rebuilt. We could either export the registry mtime as api or
do the following.

This gets more useful once we can have more plugin/element metadata in the
registry (e.g. mime-types for demuxers and codecs, see
http://www.rfc-editor.org/rfc/rfc4281.txt).

Proposal
--------
We add a ~/.gstreamer-0.10/registry-hooks directory. Applications can install
scripts there. When the registry is rebuild, those scripts are run async in no
specific order. There is no feedback channel (return values, stdout/err).


Examples
---------

gst-inspector
-------------
it would install a script that simply deletes its cachefile.

gupnp
-----
it would install a script that runs gst-inspect-0.10 --print-plugin-auto-install-info
and post process it.

totem,banshee,rythmbox
-----------------------
they could tune the "MimeType=" lists in their desktop files


Open Items
----------
Should we have a gst-registry-hook script with --install/--remove/--list actions
to manage hooks?

