The Discoverer is a utility object which allows to get as much information as possible from one or many URIs.
It provides two APIs, allowing usage in blocking or non-blocking mode.
The blocking mode just requires calling discover_uri
with the URI one wishes to discover.
The non-blocking mode requires a running MainLoop iterating a
MainContext, where one connects to the various signals, appends the URIs to be
processed (through discover_uri_async) and
then asks for the discovery to begin (through start). By
default this will use the GLib default main context unless you have set a custom context using
This signal is emitted after the source element has been created for, so the
URI being discovered, so it can be configured by setting additional properties (e.g. set a proxy server for an http source, or set the
device and read speed for an audio cd source).