[rhythmbox] metadata: map errors from GstDiscoverer to RBMetaDataError codes
- From: Jonathan Matthew <jmatthew src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rhythmbox] metadata: map errors from GstDiscoverer to RBMetaDataError codes
- Date: Mon, 29 Jun 2015 11:42:30 +0000 (UTC)
commit 2447525c51bbb5d95d15f27ea019009e525bdc4f
Author: Jonathan Matthew <jonathan d14n org>
Date: Mon Jun 29 21:34:16 2015 +1000
metadata: map errors from GstDiscoverer to RBMetaDataError codes
Without this, the check in rhythmdb for ignoring small unidentifiable files
doesn't work.
https://bugzilla.gnome.org/show_bug.cgi?id=751265
metadata/rb-metadata-gst.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/metadata/rb-metadata-gst.c b/metadata/rb-metadata-gst.c
index 4ae5d94..123f0a8 100644
--- a/metadata/rb-metadata-gst.c
+++ b/metadata/rb-metadata-gst.c
@@ -168,6 +168,7 @@ rb_metadata_load (RBMetaData *md, const char *uri, GError **error)
GList *l;
GstDiscoverer *discoverer;
GstCaps *caps;
+ GError *gsterror = NULL;
rb_metadata_reset (md);
@@ -175,7 +176,7 @@ rb_metadata_load (RBMetaData *md, const char *uri, GError **error)
if (*error != NULL)
return;
- md->priv->info = gst_discoverer_discover_uri (discoverer, g_strdup (uri), error);
+ md->priv->info = gst_discoverer_discover_uri (discoverer, g_strdup (uri), &gsterror);
g_object_unref (discoverer);
/* figure out if we've got audio, non-audio, or video streams */
@@ -253,6 +254,15 @@ rb_metadata_load (RBMetaData *md, const char *uri, GError **error)
default:
g_assert_not_reached ();
}
+
+ if (gsterror != NULL) {
+ int code = RB_METADATA_ERROR_GENERAL;
+ if (g_error_matches (gsterror, GST_STREAM_ERROR, GST_STREAM_ERROR_TYPE_NOT_FOUND)) {
+ code = RB_METADATA_ERROR_UNRECOGNIZED;
+ }
+ *error = g_error_new_literal (RB_METADATA_ERROR, code, gsterror->message);
+ g_clear_error (&gsterror);
+ }
}
gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]