rygel r363 - trunk/src/rygel



Author: zeeshanak
Date: Thu Dec 25 11:59:10 2008
New Revision: 363
URL: http://svn.gnome.org/viewvc/rygel?rev=363&view=rev

Log:
Handle important messages on the pipeline bus.

Modified:
   trunk/src/rygel/rygel-gst-stream.vala

Modified: trunk/src/rygel/rygel-gst-stream.vala
==============================================================================
--- trunk/src/rygel/rygel-gst-stream.vala	(original)
+++ trunk/src/rygel/rygel-gst-stream.vala	Thu Dec 25 11:59:10 2008
@@ -62,6 +62,10 @@
 
         this.add_many (src, sink);
         src.link (sink);
+
+        // Bus handler
+        var bus = this.get_bus ();
+        bus.add_watch (bus_handler);
     }
 
     private void on_new_buffer (Element sink,
@@ -80,5 +84,33 @@
 
         return false;
     }
+
+    private bool bus_handler (Gst.Bus     bus,
+                              Gst.Message message) {
+        bool ret = true;
+
+        if (message.type == MessageType.EOS) {
+            ret = false;
+        } else {
+            GLib.Error err;
+            string err_msg;
+
+            if (message.type == MessageType.ERROR) {
+                message.parse_error (out err, out err_msg);
+                critical ("Error from pipeline %s:%s", this.name, err_msg);
+
+                ret = false;
+            } else if (message.type == MessageType.WARNING) {
+                message.parse_warning (out err, out err_msg);
+                warning ("Warning from pipeline %s:%s", this.name, err_msg);
+            }
+        }
+
+        if (!ret) {
+            this.stream.end ();
+        }
+
+        return ret;
+    }
 }
 



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