[rygel] gst-launch,engine-gst: Fix gst-launch plugin



commit 1b7f6d2c025417729636af737063f7211061ab68
Author: Jens Georg <mail jensge org>
Date:   Fri Aug 28 23:58:35 2015 +0200

    gst-launch,engine-gst: Fix gst-launch plugin
    
    Signed-off-by: Jens Georg <mail jensge org>

 .../gstreamer/rygel-gst-media-engine.vala          |    3 +-
 src/plugins/gst-launch/Makefile.am                 |    1 -
 .../gst-launch/rygel-gst-launch-audio-item.vala    |   24 ++++++++----
 src/plugins/gst-launch/rygel-gst-launch-item.vala  |   41 --------------------
 .../gst-launch/rygel-gst-launch-video-item.vala    |   10 +----
 5 files changed, 20 insertions(+), 59 deletions(-)
---
diff --git a/src/media-engines/gstreamer/rygel-gst-media-engine.vala 
b/src/media-engines/gstreamer/rygel-gst-media-engine.vala
index 11e05b7..c8ea488 100644
--- a/src/media-engines/gstreamer/rygel-gst-media-engine.vala
+++ b/src/media-engines/gstreamer/rygel-gst-media-engine.vala
@@ -135,7 +135,8 @@ public class Rygel.GstMediaEngine : Rygel.MediaEngine {
                source_uri,
                parts[0]);
 
-        if (!Gst.URI.protocol_is_supported (URIType.SRC, parts[0])) {
+        if (!Gst.URI.protocol_is_supported (URIType.SRC, parts[0]) &&
+            parts[0] != "gst-launch") {
             warning (_("Can't process URI %s with protocol %s"),
                      source_uri,
                      parts[0]);
diff --git a/src/plugins/gst-launch/Makefile.am b/src/plugins/gst-launch/Makefile.am
index bfccfd5..437c8f9 100644
--- a/src/plugins/gst-launch/Makefile.am
+++ b/src/plugins/gst-launch/Makefile.am
@@ -6,7 +6,6 @@ plugin_DATA = gst-launch.plugin
 librygel_gst_launch_la_SOURCES = \
        rygel-gst-launch-plugin.vala \
        rygel-gst-launch-root-container.vala \
-       rygel-gst-launch-item.vala \
        rygel-gst-launch-audio-item.vala \
        rygel-gst-launch-video-item.vala
 
diff --git a/src/plugins/gst-launch/rygel-gst-launch-audio-item.vala 
b/src/plugins/gst-launch/rygel-gst-launch-audio-item.vala
index 9d24e21..4b60ab0 100644
--- a/src/plugins/gst-launch/rygel-gst-launch-audio-item.vala
+++ b/src/plugins/gst-launch/rygel-gst-launch-audio-item.vala
@@ -28,9 +28,7 @@
 /**
  * Audio item that serves data from a gst-launch commandline.
  */
-public class Rygel.GstLaunch.AudioItem : Rygel.AudioItem, Item {
-    public string launch_line { get; protected set; }
-
+public class Rygel.GstLaunch.AudioItem : Rygel.AudioItem {
     public AudioItem (string         id,
                       MediaContainer parent,
                       string         title,
@@ -39,11 +37,21 @@ public class Rygel.GstLaunch.AudioItem : Rygel.AudioItem, Item {
         base (id, parent, title);
 
         this.mime_type = mime_type;
-        this.launch_line = launch_line;
-    }
+        this.add_uri ("gst-launch://" + launch_line);
 
-    public override DataSource? create_stream_source_for_resource (HTTPRequest request,
-                                                                   MediaResource resource) {
-        return this.create_source ();
+        // Call the MediaEngine to determine which item representations it can support
+        var media_engine = MediaEngine.get_default ( );
+        media_engine.get_resources_for_item.begin ( this,
+                                                    (obj, res) => {
+            var added_resources = media_engine
+                                  .get_resources_for_item.end (res);
+            debug ("Adding %d resources to item source %s",
+                   added_resources.size, this.get_primary_uri ());
+            foreach (var resrc in added_resources) {
+               debug ("Media-export item media resource %s",
+                      resrc.get_name ());
+            }
+            this.get_resource_list ().add_all (added_resources);
+          });
     }
 }
diff --git a/src/plugins/gst-launch/rygel-gst-launch-video-item.vala 
b/src/plugins/gst-launch/rygel-gst-launch-video-item.vala
index 90c4554..a2a4f75 100644
--- a/src/plugins/gst-launch/rygel-gst-launch-video-item.vala
+++ b/src/plugins/gst-launch/rygel-gst-launch-video-item.vala
@@ -28,8 +28,7 @@
 /**
  * Video item that serves data from a gst-launch commandline.
  */
-public class Rygel.GstLaunch.VideoItem : Rygel.VideoItem, Item {
-    public string launch_line { get; protected set; }
+public class Rygel.GstLaunch.VideoItem : Rygel.VideoItem {
 
     public VideoItem (string         id,
                       MediaContainer parent,
@@ -39,11 +38,6 @@ public class Rygel.GstLaunch.VideoItem : Rygel.VideoItem, Item {
         base (id, parent, title);
 
         this.mime_type = mime_type;
-        this.launch_line = launch_line;
-    }
-
-    public override DataSource? create_stream_source_for_resource (HTTPRequest request,
-                                                                   MediaResource resource) {
-        return this.create_source ();
+        this.add_uri ("gst-launch://" + launch_line);
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]