[rygel-gst-0-10-plugins] Perform basic extraction on discoverer creation failure.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel-gst-0-10-plugins] Perform basic extraction on discoverer creation failure.
- Date: Mon, 18 Feb 2013 11:54:48 +0000 (UTC)
commit 2eb1af65785b50e2e1e18f627075af9c2314abae
Author: Krzesimir Nowak <krnowak openismus com>
Date: Mon Feb 18 12:54:17 2013 +0100
Perform basic extraction on discoverer creation failure.
.../rygel-media-export-metadata-extractor.c | 99 ++++++++++----------
1 files changed, 49 insertions(+), 50 deletions(-)
---
diff --git a/src/media-export/rygel-media-export-metadata-extractor.c
b/src/media-export/rygel-media-export-metadata-extractor.c
index b747c14..162d34b 100644
--- a/src/media-export/rygel-media-export-metadata-extractor.c
+++ b/src/media-export/rygel-media-export-metadata-extractor.c
@@ -144,58 +144,53 @@ rygel_media_export_metadata_extractor_on_done (RygelMediaExportMetadataExtractor
g_return_if_fail (GST_IS_DISCOVERER_INFO (gst_info));
priv = self->priv;
- if (priv->discoverer) {
- signal_id = 0;
- g_signal_parse_name ("discovered", GST_TYPE_DISCOVERER, &signal_id, NULL, FALSE);
- g_signal_handlers_disconnect_matched (priv->discoverer,
- G_SIGNAL_MATCH_ID |
- G_SIGNAL_MATCH_FUNC |
- G_SIGNAL_MATCH_DATA, signal_id,
- 0,
- NULL,
- G_CALLBACK
(rygel_media_export_metadata_extractor_on_done_gst_discoverer_discovered),
- self);
-
- g_object_unref (priv->discoverer);
- priv->discoverer = NULL;
+ signal_id = 0;
+ g_signal_parse_name ("discovered", GST_TYPE_DISCOVERER, &signal_id, NULL, FALSE);
+ g_signal_handlers_disconnect_matched (priv->discoverer,
+ G_SIGNAL_MATCH_ID |
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA, signal_id,
+ 0,
+ NULL,
+ G_CALLBACK
(rygel_media_export_metadata_extractor_on_done_gst_discoverer_discovered),
+ self);
+
+ g_object_unref (priv->discoverer);
+ priv->discoverer = NULL;
+
+ uri = gst_discoverer_info_get_uri (gst_info);
+ abstract_file_hash = GEE_ABSTRACT_MAP (priv->file_hash);
+ file = G_FILE (gee_abstract_map_get (abstract_file_hash, uri));
+ if (!file) {
+ g_warning ("File %s already handled, ignoring event", uri);
+ return;
}
- if (gst_info) {
- uri = gst_discoverer_info_get_uri (gst_info);
- abstract_file_hash = GEE_ABSTRACT_MAP (priv->file_hash);
- file = G_FILE (gee_abstract_map_get (abstract_file_hash, uri));
- if (!file) {
- g_warning ("File %s already handled, ignoring event", uri);
- return;
- }
- gee_abstract_map_unset (abstract_file_hash, uri, NULL);
- result = gst_discoverer_info_get_result (gst_info);
-
- if ((result & GST_DISCOVERER_ERROR) == GST_DISCOVERER_ERROR) {
- g_signal_emit (self, signals[ERROR], 0, file, err);
- } else {
- GUPnPDLNAProfile *dlna_profile;
+ gee_abstract_map_unset (abstract_file_hash, uri, NULL);
+ result = gst_discoverer_info_get_result (gst_info);
- if ((result & GST_DISCOVERER_TIMEOUT) == GST_DISCOVERER_TIMEOUT) {
- gchar* file_uri = g_file_get_uri (file);
+ if ((result & GST_DISCOVERER_ERROR) == GST_DISCOVERER_ERROR) {
+ g_signal_emit (self, signals[ERROR], 0, file, err);
+ } else {
+ GUPnPDLNAProfile *dlna_profile;
- g_debug ("Extraction timed out on %s", file_uri);
- g_free (file_uri);
- dlna_profile = NULL;
- } else {
- GUPnPDLNAInformation *dlna_info = gupnp_dlna_gst_utils_information_from_discoverer_info (gst_info);
+ if ((result & GST_DISCOVERER_TIMEOUT) == GST_DISCOVERER_TIMEOUT) {
+ gchar* file_uri = g_file_get_uri (file);
- dlna_profile = gupnp_dlna_profile_guesser_guess_profile_from_info (priv->guesser,
- dlna_info);
- g_object_unref (dlna_info);
- }
+ g_debug ("Extraction timed out on %s", file_uri);
+ g_free (file_uri);
+ dlna_profile = NULL;
+ } else {
+ GUPnPDLNAInformation *dlna_info = gupnp_dlna_gst_utils_information_from_discoverer_info (gst_info);
- rygel_media_export_metadata_extractor_extract_basic_information (self,
- file,
- gst_info,
- dlna_profile);
+ dlna_profile = gupnp_dlna_profile_guesser_guess_profile_from_info (priv->guesser,
+ dlna_info);
+ g_object_unref (dlna_info);
}
- } else {
- g_signal_emit (self, signals[ERROR], 0, NULL, err);
+
+ rygel_media_export_metadata_extractor_extract_basic_information (self,
+ file,
+ gst_info,
+ dlna_profile);
}
g_object_unref (file);
@@ -203,9 +198,9 @@ rygel_media_export_metadata_extractor_on_done (RygelMediaExportMetadataExtractor
static void
rygel_media_export_metadata_extractor_on_done_gst_discoverer_discovered (GstDiscoverer *sender
G_GNUC_UNUSED,
- GstDiscovererInfo *info,
- GError *err,
- gpointer self) {
+ GstDiscovererInfo *info,
+ GError *err,
+ gpointer self) {
rygel_media_export_metadata_extractor_on_done (self, info, err);
}
@@ -229,8 +224,12 @@ rygel_media_export_metadata_extractor_extract (RygelMediaExportMetadataExtractor
gst_timeout = (GstClockTime) (EXTRACTOR_TIMEOUT * GST_SECOND);
discoverer = gst_discoverer_new (gst_timeout, &error);
if (error) {
- g_signal_emit (self, signals[ERROR], 0, file, error);
g_error_free (error);
+ g_debug ("Failed to create a discoverer. Doing basic extraction.");
+ rygel_media_export_metadata_extractor_extract_basic_information (self,
+ file,
+ NULL,
+ NULL);
return;
}
if (priv->discoverer) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]