From 5ac457935812e85d7c0e74fed8f22e407dc1e5d8 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Thu, 11 Jul 2013 00:04:41 -0300 Subject: [PATCH] qa-bin-monitor/element-monitor: implement pad/element wrapping Add code that creates new monitors when elements/pads are found in bin and element monitors --- validate/gst/qa/gst-qa-bin-monitor.c | 11 ++++++++++- validate/gst/qa/gst-qa-element-monitor.c | 10 +++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/validate/gst/qa/gst-qa-bin-monitor.c b/validate/gst/qa/gst-qa-bin-monitor.c index d8bf869cb7..0575e48c0b 100644 --- a/validate/gst/qa/gst-qa-bin-monitor.c +++ b/validate/gst/qa/gst-qa-bin-monitor.c @@ -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 diff --git a/validate/gst/qa/gst-qa-element-monitor.c b/validate/gst/qa/gst-qa-element-monitor.c index 4d9c745d26..d152184c43 100644 --- a/validate/gst/qa/gst-qa-element-monitor.c +++ b/validate/gst/qa/gst-qa-element-monitor.c @@ -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