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 push_thread_default.
All the information is returned in a DiscovererInfo structure.
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).