ext/taglib/gsttaglib.cc: Post an error message on the bus in the (extremely unlikely...
authorTim-Philipp Müller <tim@centricular.net>
Sat, 29 Apr 2006 18:46:36 +0000 (18:46 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 29 Apr 2006 18:46:36 +0000 (18:46 +0000)
Original commit message from CVS:
* ext/taglib/gsttaglib.cc:
Post an error message on the bus in the (extremely unlikely)
case of an error.

ChangeLog
ext/taglib/gsttaglib.cc

index d818657fd09f08437240c334c13c563c3886c7b8..649113c3e75ae39376d6aca83bef0c8a29c1f5b5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-29  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * ext/taglib/gsttaglib.cc:
+         Post an error message on the bus in the (extremely unlikely)
+         case of an error.
+
 2006-04-29  Tim-Philipp Müller  <tim at centricular dot net>
 
        * ext/taglib/Makefile.am:
index d47803bea82d6df95e4bf518a166c07aa6f3141c..f2bc521875764f6ef54ce705f79285979d176f03 100644 (file)
@@ -189,12 +189,14 @@ gst_tag_lib_mux_render_tag (GstTagLibMux * mux)
 
 no_vfunc:
   {
-    return NULL;                /* FIXME */
+    GST_ERROR_OBJECT (mux, "Subclass does not implement render_tag vfunc!");
+    return NULL;
   }
 
 render_error:
   {
-    return NULL;                /* FIXME */
+    GST_ERROR_OBJECT (mux, "Failed to render tag");
+    return NULL;
   }
 }
 
@@ -231,9 +233,13 @@ gst_tag_lib_mux_chain (GstPad * pad, GstBuffer * buffer)
 
   if (mux->render_tag) {
     GstFlowReturn ret;
+    GstBuffer *tag_buffer;
 
     GST_INFO_OBJECT (mux, "Adding tags to stream");
-    ret = gst_pad_push (mux->srcpad, gst_tag_lib_mux_render_tag (mux));
+    tag_buffer = gst_tag_lib_mux_render_tag (mux);
+    if (tag_buffer == NULL)
+      goto no_tag_buffer;
+    ret = gst_pad_push (mux->srcpad, tag_buffer);
     if (ret != GST_FLOW_OK) {
       GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret));
       gst_buffer_unref (buffer);
@@ -265,6 +271,13 @@ gst_tag_lib_mux_chain (GstPad * pad, GstBuffer * buffer)
 
   gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->srcpad));
   return gst_pad_push (mux->srcpad, buffer);
+
+/* ERRORS */
+no_tag_buffer:
+  {
+    GST_ELEMENT_ERROR (mux, LIBRARY, ENCODE, (NULL), (NULL));
+    return GST_FLOW_ERROR;
+  }
 }
 
 static gboolean