/** * gupnp_dlna_discoverer_discover_uri: * @discoverer: #GUPnPDLNADiscoverer object to use for discovery * @uri: URI to gather metadata for * * Queues @uri for metadata discovery. When discovery is completed, the * "discovered" signal is emitted on @discoverer. * * Returns: TRUE if @uri was successfully queued, FALSE otherwise. */ gboolean gupnp_dlna_discoverer_discover_uri (GUPnPDLNADiscoverer *discoverer, const gchar *uri) { return gst_discoverer_discover_uri_async (GST_DISCOVERER (discoverer), uri); }
/** * gupnp_dlna_discoverer_discover_uri_sync: * @discoverer: #GUPnPDLNADiscoverer object to use for discovery * @uri: URI to gather metadata for * @err: contains details of the error if discovery fails, else is NULL * * Synchronously gathers metadata for @uri. * * Returns: (transfer full): a #GUPnPDLNAInformation with the metadata for @uri * on success, NULL otherwise */ GUPnPDLNAInformation * gupnp_dlna_discoverer_discover_uri_sync (GUPnPDLNADiscoverer *discoverer, const gchar *uri, GError **err) { GstDiscovererInfo *info; GUPnPDLNADiscovererClass *klass = GUPNP_DLNA_DISCOVERER_GET_CLASS (discoverer); GUPnPDLNADiscovererPrivate *priv = GET_PRIVATE (discoverer); gboolean relaxed = priv->relaxed_mode; gboolean extended = priv->extended_mode; info = gst_discoverer_discover_uri (GST_DISCOVERER (discoverer), uri, err); if (info) return gupnp_dlna_information_new_from_discoverer_info (info, klass->profiles_list [relaxed][extended]); return NULL; }
static void gupnp_dlna_discovered_cb (GUPnPDLNAMetadataExtractor *self, GstDiscovererInfo *info, GError *error, gpointer user_data) { GstDiscoverer *discoverer = GST_DISCOVERER (user_data); GUPnPDLNAInformation *gupnp_info = NULL; if (error) gupnp_info = GUPNP_DLNA_INFORMATION (gupnp_dlna_gst_information_new_empty_with_uri (gst_discoverer_info_get_uri (info))); else gupnp_info = gupnp_dlna_gst_utils_information_from_discoverer_info (info); gupnp_dlna_metadata_extractor_emit_done (self, gupnp_info, error); g_object_unref (gupnp_info); g_idle_add ((GSourceFunc) unref_discoverer_in_idle, discoverer); }