[gst-cvs] gst-plugins-bad: mimic: Use GST_ELEMENT_ERROR when returning a flow error

Olivier Crête tester at kemper.freedesktop.org
Wed Jun 2 18:40:19 PDT 2010


Module: gst-plugins-bad
Branch: master
Commit: a5b3b27d70cde9fcca6f3ef36eb725787c980291
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a5b3b27d70cde9fcca6f3ef36eb725787c980291

Author: Olivier Crête <olivier.crete at collabora.co.uk>
Date:   Mon Oct 12 19:16:26 2009 -0400

mimic: Use GST_ELEMENT_ERROR when returning a flow error

---

 ext/mimic/gstmimdec.c |   21 +++++++++++++--------
 ext/mimic/gstmimenc.c |   12 +++++++-----
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/ext/mimic/gstmimdec.c b/ext/mimic/gstmimdec.c
index 0ab7a0f..28f3e89 100644
--- a/ext/mimic/gstmimdec.c
+++ b/ext/mimic/gstmimdec.c
@@ -174,9 +174,9 @@ gst_mim_dec_chain (GstPad * pad, GstBuffer * in)
       header = (guchar *) gst_adapter_peek (mimdec->adapter, 24);
       header_size = header[0];
       if (header_size != 24) {
-        GST_WARNING_OBJECT (mimdec,
-            "invalid frame: header size %d incorrect", header_size);
         gst_adapter_flush (mimdec->adapter, 24);
+        GST_ELEMENT_ERROR (mimdec, STREAM, DECODE, (NULL),
+            ("invalid frame: header size %d incorrect", header_size));
         res = GST_FLOW_ERROR;
         goto out;
       }
@@ -189,9 +189,10 @@ gst_mim_dec_chain (GstPad * pad, GstBuffer * in)
 
       fourcc = GUINT32_FROM_LE (*((guint32 *) (header + 12)));
       if (GST_MAKE_FOURCC ('M', 'L', '2', '0') != fourcc) {
-        GST_WARNING_OBJECT (mimdec, "invalid frame: unknown FOURCC code"
-            " %X (%" GST_FOURCC_FORMAT ")", fourcc, GST_FOURCC_ARGS (fourcc));
         gst_adapter_flush (mimdec->adapter, 24);
+        GST_ELEMENT_ERROR (mimdec, STREAM, WRONG_TYPE, (NULL),
+            ("invalid frame: unknown FOURCC code %X (%" GST_FOURCC_FORMAT ")",
+                fourcc, GST_FOURCC_ARGS (fourcc)));
         res = GST_FLOW_ERROR;
         goto out;
       }
@@ -225,34 +226,35 @@ gst_mim_dec_chain (GstPad * pad, GstBuffer * in)
 
       mimdec->dec = mimic_open ();
       if (mimdec->dec == NULL) {
-        GST_WARNING_OBJECT (mimdec, "mimic_open error\n");
 
         gst_adapter_flush (mimdec->adapter, mimdec->payload_size);
         mimdec->have_header = FALSE;
+        GST_ELEMENT_ERROR (mimdec, LIBRARY, INIT, (NULL), ("mimic_open error"));
         res = GST_FLOW_ERROR;
         goto out;
       }
 
       if (!mimic_decoder_init (mimdec->dec, frame_body)) {
-        GST_WARNING_OBJECT (mimdec, "mimic_decoder_init error\n");
         mimic_close (mimdec->dec);
         mimdec->dec = NULL;
 
         gst_adapter_flush (mimdec->adapter, mimdec->payload_size);
         mimdec->have_header = FALSE;
+        GST_ELEMENT_ERROR (mimdec, LIBRARY, INIT, (NULL),
+            ("mimic_decoder_init error"));
         res = GST_FLOW_ERROR;
         goto out;
       }
 
       if (!mimic_get_property (mimdec->dec, "buffer_size",
               &mimdec->buffer_size)) {
-        GST_WARNING_OBJECT (mimdec,
-            "mimic_get_property('buffer_size') error\n");
         mimic_close (mimdec->dec);
         mimdec->dec = NULL;
 
         gst_adapter_flush (mimdec->adapter, mimdec->payload_size);
         mimdec->have_header = FALSE;
+        GST_ELEMENT_ERROR (mimdec, LIBRARY, INIT, (NULL),
+            ("mimic_get_property('buffer_size') error"));
         res = GST_FLOW_ERROR;
         goto out;
       }
@@ -290,6 +292,8 @@ gst_mim_dec_chain (GstPad * pad, GstBuffer * in)
       mimdec->have_header = FALSE;
 
       gst_buffer_unref (out_buf);
+      GST_ELEMENT_ERROR (mimdec, STREAM, DECODE, (NULL),
+          ("mimic_decode_frame error"));
       res = GST_FLOW_ERROR;
       goto out;
     }
@@ -328,6 +332,7 @@ out:
   gst_object_unref (mimdec);
 
   return res;
+
 }
 
 static GstStateChangeReturn
diff --git a/ext/mimic/gstmimenc.c b/ext/mimic/gstmimenc.c
index 90d34bd..1bfac28 100644
--- a/ext/mimic/gstmimenc.c
+++ b/ext/mimic/gstmimenc.c
@@ -279,23 +279,25 @@ gst_mim_enc_chain (GstPad * pad, GstBuffer * in)
   if (mimenc->enc == NULL) {
     mimenc->enc = mimic_open ();
     if (mimenc->enc == NULL) {
-      GST_WARNING_OBJECT (mimenc, "mimic_open error\n");
+      GST_ELEMENT_ERROR (mimenc, LIBRARY, INIT, (NULL), ("mimic_open error"));
       res = GST_FLOW_ERROR;
       goto out_unlock;
     }
 
     if (!mimic_encoder_init (mimenc->enc, mimenc->res)) {
-      GST_WARNING_OBJECT (mimenc, "mimic_encoder_init error\n");
       mimic_close (mimenc->enc);
       mimenc->enc = NULL;
+      GST_ELEMENT_ERROR (mimenc, LIBRARY, INIT, (NULL),
+          ("mimic_encoder_init error"));
       res = GST_FLOW_ERROR;
       goto out_unlock;
     }
 
     if (!mimic_get_property (mimenc->enc, "buffer_size", &mimenc->buffer_size)) {
-      GST_WARNING_OBJECT (mimenc, "mimic_get_property('buffer_size') error\n");
       mimic_close (mimenc->enc);
       mimenc->enc = NULL;
+      GST_ELEMENT_ERROR (mimenc, LIBRARY, INIT, (NULL),
+          ("mimic_get_property(buffer_size) error"));
       res = GST_FLOW_ERROR;
       goto out_unlock;
     }
@@ -313,9 +315,10 @@ gst_mim_enc_chain (GstPad * pad, GstBuffer * in)
   keyframe = (mimenc->frames % MAX_INTERFRAMES) == 0 ? TRUE : FALSE;
   if (!mimic_encode_frame (mimenc->enc, data, GST_BUFFER_DATA (out_buf),
           &buffer_size, keyframe)) {
-    GST_WARNING_OBJECT (mimenc, "mimic_encode_frame error\n");
     gst_buffer_unref (out_buf);
     gst_buffer_unref (buf);
+    GST_ELEMENT_ERROR (mimenc, STREAM, ENCODE, (NULL),
+        ("mimic_encode_frame error"));
     res = GST_FLOW_ERROR;
     goto out_unlock;
   }
@@ -366,7 +369,6 @@ out:
 out_unlock:
   GST_OBJECT_UNLOCK (mimenc);
   goto out;
-
 }
 
 static GstBuffer *





More information about the Gstreamer-commits mailing list