[tracker/miner-web: 65/77] tracker-extract: Fixes for the GStreamer extractor
- From: Adrien Bustany <abustany src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/miner-web: 65/77] tracker-extract: Fixes for the GStreamer extractor
- Date: Wed, 3 Mar 2010 12:54:10 +0000 (UTC)
commit 4123d709ccbc01aba9638d8cdc5aabc1c018b029
Author: Philip Van Hoof <philip codeminded be>
Date: Fri Feb 26 12:09:40 2010 +0100
tracker-extract: Fixes for the GStreamer extractor
This patch avoids a critical in case of a bug in tagreadbin
NB #158636. I also added the rdf:type in case there's no tag cache.
src/tracker-extract/tracker-extract-gstreamer.c | 27 +++++++++++++++++++---
1 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index e9c25dc..682b3fd 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -266,12 +266,15 @@ add_fraction_gst_tag (TrackerSparqlBuilder *metadata,
ret = gst_tag_list_copy_value (&n, tag_list, tag);
- f = (gfloat)gst_value_get_fraction_numerator (&n)/
+ /* Hack to avoid criticals, remove when NB# 158636 is fixed */
+ if (GST_VALUE_HOLDS_FRACTION (&n)) {
+ f = (gfloat)gst_value_get_fraction_numerator (&n)/
gst_value_get_fraction_denominator (&n);
- if (ret) {
- tracker_sparql_builder_predicate (metadata, key);
- tracker_sparql_builder_object_double (metadata, (gdouble) f);
+ if (ret) {
+ tracker_sparql_builder_predicate (metadata, key);
+ tracker_sparql_builder_object_double (metadata, (gdouble) f);
+ }
}
}
@@ -748,6 +751,22 @@ extract_metadata (MetadataExtractor *extractor,
g_free (album_uri);
add_string_gst_tag (metadata, uri, "nfo:codec", extractor->tagcache, GST_TAG_AUDIO_CODEC);
+ } else {
+ if (extractor->mime == EXTRACT_MIME_AUDIO)
+ needs_audio = TRUE;
+
+ tracker_sparql_builder_predicate (metadata, "a");
+
+ if (needs_audio) {
+ tracker_sparql_builder_object (metadata, "nmm:MusicPiece");
+ tracker_sparql_builder_object (metadata, "nfo:Audio");
+ }
+
+ if (extractor->mime == EXTRACT_MIME_VIDEO) {
+ tracker_sparql_builder_object (metadata, "nmm:Video");
+ } else if (!needs_audio) {
+ tracker_sparql_builder_object (metadata, "nfo:Image");
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]