summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/librygel-server/rygel-media-file-item.vala22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/librygel-server/rygel-media-file-item.vala b/src/librygel-server/rygel-media-file-item.vala
index c22b62a1..94cc22cf 100644
--- a/src/librygel-server/rygel-media-file-item.vala
+++ b/src/librygel-server/rygel-media-file-item.vala
@@ -192,13 +192,23 @@ public abstract class Rygel.MediaFileItem : MediaItem {
string uri_extension = null;
// Use the extension from the source content filename, if it has an
// extension
- string basename = Path.get_basename (this.get_primary_uri ());
- int dot_index = -1;
- if (basename != null) {
- dot_index = basename.last_index_of (".");
- if (dot_index > -1) {
- uri_extension = basename.substring (dot_index + 1);
+
+ try {
+ var uri = GLib.Uri.parse (this.get_primary_uri (), UriFlags.NONE);
+ if (uri.get_scheme () == "file") {
+ string basename = Path.get_basename (this.get_primary_uri ());
+ int dot_index = -1;
+ if (basename != null) {
+ dot_index = basename.last_index_of (".");
+ if (dot_index > -1) {
+ uri_extension = basename.substring (dot_index + 1);
+ }
+ }
+ } else {
+ debug ("Uri is not a file, but %s, skipping extension detection", uri.get_scheme());
}
+ } catch (Error err) {
+ debug ("Failed to parse primary uri, skipping extension detection");
}
if (uri_extension == null) {