summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>2011-04-12 19:03:10 +0300
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>2011-04-12 19:03:10 +0300
commit331cbb4e43d7a6eacfdcdc6e1b088ce542579cae (patch)
treef833bdb402c0f52b25d685b5cc9a51280c865bd0
parent586db0498cf57bf9d0f2f79871fc45f1c1279d29 (diff)
downloadrygel-331cbb4e43d7a6eacfdcdc6e1b088ce542579cae.tar.gz
tracker: Take mime-type from gupnp-dlna
In order to work around bug#647575, we take mime-type from gupnp-dlna (whenever possible) rather than Tracker.
-rw-r--r--src/plugins/tracker/Makefile.am8
-rw-r--r--src/plugins/tracker/rygel-tracker-item-factory.vala17
2 files changed, 19 insertions, 6 deletions
diff --git a/src/plugins/tracker/Makefile.am b/src/plugins/tracker/Makefile.am
index 507582f2..ccb1c1f0 100644
--- a/src/plugins/tracker/Makefile.am
+++ b/src/plugins/tracker/Makefile.am
@@ -2,7 +2,7 @@ include ../../../common.am
plugin_LTLIBRARIES = librygel-tracker.la
-AM_CFLAGS += -DG_LOG_DOMAIN='"Tracker"'
+AM_CFLAGS += -DG_LOG_DOMAIN='"Tracker"' $(LIBGUPNP_DLNA_CFLAGS)
librygel_tracker_la_SOURCES = \
rygel-tracker-root-container.vala \
@@ -35,6 +35,8 @@ librygel_tracker_la_SOURCES = \
rygel-tracker-plugin-factory.vala \
rygel-tracker-interfaces.vala
-librygel_tracker_la_VALAFLAGS = --pkg posix $(RYGEL_COMMON_PLUGIN_VALAFLAGS)
-librygel_tracker_la_LIBADD = $(RYGEL_COMMON_LDADD)
+librygel_tracker_la_VALAFLAGS = --pkg posix \
+ --pkg gupnp-dlna-1.0 \
+ $(RYGEL_COMMON_PLUGIN_VALAFLAGS)
+librygel_tracker_la_LIBADD = $(RYGEL_COMMON_LDADD) $(LIBGUPNP_DLNA_LIBS)
librygel_tracker_la_LDFLAGS = $(RYGEL_PLUGIN_LINKER_FLAGS)
diff --git a/src/plugins/tracker/rygel-tracker-item-factory.vala b/src/plugins/tracker/rygel-tracker-item-factory.vala
index afe9f29c..84ff6393 100644
--- a/src/plugins/tracker/rygel-tracker-item-factory.vala
+++ b/src/plugins/tracker/rygel-tracker-item-factory.vala
@@ -24,6 +24,8 @@
*/
using Gee;
+using GUPnP;
+using Gst;
/**
* Abstract Tracker item factory.
@@ -47,6 +49,8 @@ public abstract class Rygel.Tracker.ItemFactory {
public ArrayList<string> properties;
+ private DLNADiscoverer discoverer;
+
public ItemFactory (string category,
string upnp_class,
string? upload_dir) {
@@ -54,6 +58,10 @@ public abstract class Rygel.Tracker.ItemFactory {
this.upnp_class = upnp_class;
this.upload_dir = upload_dir;
+ // FIXME: In order to work around bug#647575, we take mime-type from
+ // gupnp-dlna rather than Tracker.
+ this.discoverer = new DLNADiscoverer ((ClockTime) SECOND, true, true);
+
this.properties = new ArrayList<string> ();
// These must be the same order as enum Metadata
@@ -92,10 +100,13 @@ public abstract class Rygel.Tracker.ItemFactory {
if (metadata[Metadata.DATE] != "")
item.date = metadata[Metadata.DATE];
- if (metadata[Metadata.DLNA_PROFILE] != "")
+ if (metadata[Metadata.DLNA_PROFILE] != "") {
item.dlna_profile = metadata[Metadata.DLNA_PROFILE];
-
- item.mime_type = metadata[Metadata.MIME];
+ var profile = this.discoverer.get_profile (item.dlna_profile);
+ item.mime_type = profile.mime;
+ } else {
+ item.mime_type = metadata[Metadata.MIME];
+ }
item.add_uri (uri);
}