qa-bin-monitor/element-monitor: implement pad/element wrapping
authorThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 11 Jul 2013 03:04:41 +0000 (00:04 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.com>
Thu, 11 Jul 2013 03:04:41 +0000 (00:04 -0300)
Add code that creates new monitors when elements/pads are found
in bin and element monitors

validate/gst/qa/gst-qa-bin-monitor.c
validate/gst/qa/gst-qa-element-monitor.c

index d8bf869..0575e48 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "gst-qa-bin-monitor.h"
+#include "gst-qa-monitor-factory.h"
 
 /**
  * SECTION:gst-qa-bin-monitor
@@ -148,8 +149,16 @@ static void
 gst_qa_bin_monitor_wrap_element (GstQaBinMonitor * monitor,
     GstElement * element)
 {
+  GstQaElementMonitor *element_monitor;
   GST_DEBUG_OBJECT (monitor, "Wrapping element %s", GST_ELEMENT_NAME (element));
-  /* TODO */
+
+  element_monitor = gst_qa_monitor_factory_create (element);
+  g_return_if_fail (element_monitor != NULL);
+
+  GST_QA_MONITOR_LOCK (monitor);
+  monitor->element_monitors = g_list_prepend (monitor->element_monitors,
+      element_monitor);
+  GST_QA_MONITOR_UNLOCK (monitor);
 }
 
 static void
index 4d9c745..d152184 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "gst-qa-element-monitor.h"
+#include "gst-qa-pad-monitor.h"
 
 /**
  * SECTION:gst-qa-element-monitor
@@ -151,8 +152,15 @@ gst_qa_element_monitor_do_setup (GstQaMonitor * monitor)
 static void
 gst_qa_element_monitor_wrap_pad (GstQaElementMonitor * monitor, GstPad * pad)
 {
+  GstQaPadMonitor *pad_monitor;
   GST_DEBUG_OBJECT (monitor, "Wrapping pad %s:%s", GST_DEBUG_PAD_NAME (pad));
-  /* TODO */
+
+  pad_monitor = gst_qa_pad_monitor_new (pad);
+  g_return_if_fail (pad_monitor != NULL);
+
+  GST_QA_MONITOR_LOCK (monitor);
+  monitor->pad_monitors = g_list_prepend (monitor->pad_monitors, pad_monitor);
+  GST_QA_MONITOR_UNLOCK (monitor);
 }
 
 static void