gstreamer_core/libs/gst/check/gstcheck.c
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
--- a/gstreamer_core/libs/gst/check/gstcheck.c	Tue Aug 31 15:30:33 2010 +0300
+++ b/gstreamer_core/libs/gst/check/gstcheck.c	Wed Sep 01 12:16:41 2010 +0100
@@ -31,6 +31,8 @@
 #include "gstcheck.h"
 #include <glib_global.h>
 
+//#include "libgstreamer_wsd_solution.h"
+
 GST_DEBUG_CATEGORY (check_debug);
 
 /* logging function for tests
@@ -41,13 +43,6 @@
 
 //gboolean _gst_check_threads_running = FALSE;
 //GList *thread_list = NULL;
-#ifdef __SYMBIAN32__
-EXPORT_C
-GstDebugCategory ** _check_debug()
-{
-    return &check_debug;
-}
-#endif
 #if EMULATOR
 GET_GLOBAL_VAR_FROM_TLS(thread_list,gstcheck,GList*)
 #define thread_list (*GET_GSTREAMER_WSD_VAR_NAME(thread_list,gstcheck,g)())
@@ -104,6 +99,7 @@
 EXPORT_C GCond *check_cond = NULL;
 #endif
 
+
 /* FIXME 0.11: shouldn't _gst_check_debug be static? Not used anywhere */
 EXPORT_C gboolean _gst_check_debug = FALSE;
 #if EMULATOR
@@ -143,6 +139,7 @@
   }
 }
 
+
 static void gst_check_log_critical_func
     (const gchar * log_domain, GLogLevelFlags log_level,
     const gchar * message, gpointer user_data)
@@ -276,22 +273,6 @@
 gst_check_setup_src_pad (GstElement * element,
     GstStaticPadTemplate * template, GstCaps * caps)
 {
-  GstPad *srcpad;
-
-  srcpad = gst_check_setup_src_pad_by_name (element, template, "sink");
-  if (caps)
-    fail_unless (gst_pad_set_caps (srcpad, caps), "could not set caps on pad");
-  return srcpad;
-}
-#ifdef __SYMBIAN32__
-EXPORT_C
-#endif
-
-
-GstPad *
-gst_check_setup_src_pad_by_name (GstElement * element,
-    GstStaticPadTemplate * template, gchar * name)
-{
   GstPad *srcpad, *sinkpad;
 
   /* sending pad */
@@ -300,12 +281,12 @@
   fail_if (srcpad == NULL, "Could not create a srcpad");
   ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 1);
 
-  sinkpad = gst_element_get_static_pad (element, name);
-  if (sinkpad == NULL)
-    sinkpad = gst_element_get_request_pad (element, name);
+  sinkpad = gst_element_get_pad (element, "sink");
   fail_if (sinkpad == NULL, "Could not get sink pad from %s",
       GST_ELEMENT_NAME (element));
   ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 2);
+  if (caps)
+    fail_unless (gst_pad_set_caps (srcpad, caps), "could not set caps on pad");
   fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK,
       "Could not link source and %s sink pads", GST_ELEMENT_NAME (element));
   gst_object_unref (sinkpad);   /* because we got it higher up */
@@ -319,46 +300,29 @@
 
 
 void
-gst_check_teardown_pad_by_name (GstElement * element, gchar * name)
+gst_check_teardown_src_pad (GstElement * element)
 {
-  GstPad *pad_peer, *pad_element;
+  GstPad *srcpad, *sinkpad;
 
   /* clean up floating src pad */
-  pad_element = gst_element_get_static_pad (element, name);
-  ASSERT_OBJECT_REFCOUNT (pad_element, "pad", 2);
-  pad_peer = gst_pad_get_peer (pad_element);
+  sinkpad = gst_element_get_pad (element, "sink");
+  ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 2);
+  srcpad = gst_pad_get_peer (sinkpad);
 
-  if (pad_peer) {
-    if (gst_pad_get_direction (pad_element) == GST_PAD_SINK)
-      gst_pad_unlink (pad_peer, pad_element);
-    else
-      gst_pad_unlink (pad_element, pad_peer);
+  gst_pad_unlink (srcpad, sinkpad);
 
-    /* caps could have been set, make sure they get unset */
-    gst_pad_set_caps (pad_peer, NULL);
-  }
+  /* caps could have been set, make sure they get unset */
+  gst_pad_set_caps (srcpad, NULL);
 
   /* pad refs held by both creator and this function (through _get) */
-  ASSERT_OBJECT_REFCOUNT (pad_element, "element pad_element", 2);
-  gst_object_unref (pad_element);
+  ASSERT_OBJECT_REFCOUNT (sinkpad, "element sinkpad", 2);
+  gst_object_unref (sinkpad);
   /* one more ref is held by element itself */
 
-  if (pad_peer) {
-    /* pad refs held by both creator and this function (through _get_peer) */
-    ASSERT_OBJECT_REFCOUNT (pad_peer, "check pad_peer", 2);
-    gst_object_unref (pad_peer);
-    gst_object_unref (pad_peer);
-  }
-}
-#ifdef __SYMBIAN32__
-EXPORT_C
-#endif
-
-
-void
-gst_check_teardown_src_pad (GstElement * element)
-{
-  gst_check_teardown_pad_by_name (element, "sink");
+  /* pad refs held by both creator and this function (through _get_peer) */
+  ASSERT_OBJECT_REFCOUNT (srcpad, "check srcpad", 2);
+  gst_object_unref (srcpad);
+  gst_object_unref (srcpad);
 }
 
 /* FIXME: set_caps isn't that useful; might want to check if fixed,
@@ -371,22 +335,6 @@
 gst_check_setup_sink_pad (GstElement * element, GstStaticPadTemplate * template,
     GstCaps * caps)
 {
-  GstPad *sinkpad;
-
-  sinkpad = gst_check_setup_sink_pad_by_name (element, template, "src");
-  if (caps)
-    fail_unless (gst_pad_set_caps (sinkpad, caps), "Could not set pad caps");
-  return sinkpad;
-}
-#ifdef __SYMBIAN32__
-EXPORT_C
-#endif
-
-
-GstPad *
-gst_check_setup_sink_pad_by_name (GstElement * element,
-    GstStaticPadTemplate * template, gchar * name)
-{
   GstPad *srcpad, *sinkpad;
 
   /* receiving pad */
@@ -394,11 +342,11 @@
   GST_DEBUG_OBJECT (element, "setting up receiving pad %p", sinkpad);
   fail_if (sinkpad == NULL, "Could not create a sinkpad");
 
-  srcpad = gst_element_get_static_pad (element, name);
-  if (srcpad == NULL)
-    srcpad = gst_element_get_request_pad (element, name);
+  srcpad = gst_element_get_pad (element, "src");
   fail_if (srcpad == NULL, "Could not get source pad from %s",
       GST_ELEMENT_NAME (element));
+  if (caps)
+    fail_unless (gst_pad_set_caps (sinkpad, caps), "Could not set pad caps");
   gst_pad_set_chain_function (sinkpad, gst_check_chain_func);
 
   GST_DEBUG_OBJECT (element, "Linking element src pad and receiving sink pad");
@@ -418,7 +366,23 @@
 void
 gst_check_teardown_sink_pad (GstElement * element)
 {
-  gst_check_teardown_pad_by_name (element, "src");
+  GstPad *srcpad, *sinkpad;
+
+  /* clean up floating sink pad */
+  srcpad = gst_element_get_pad (element, "src");
+  sinkpad = gst_pad_get_peer (srcpad);
+
+  gst_pad_unlink (srcpad, sinkpad);
+
+  /* pad refs held by both creator and this function (through _get_pad) */
+  ASSERT_OBJECT_REFCOUNT (srcpad, "element srcpad", 2);
+  gst_object_unref (srcpad);
+  /* one more ref is held by element itself */
+
+  /* pad refs held by both creator and this function (through _get_peer) */
+  ASSERT_OBJECT_REFCOUNT (sinkpad, "check sinkpad", 2);
+  gst_object_unref (sinkpad);
+  gst_object_unref (sinkpad);
 }
 
 /**
@@ -447,6 +411,7 @@
 
 /**
  * gst_check_caps_equal:
+ *
  * @caps1: first caps to compare
  * @caps2: second caps to compare
  *
@@ -518,8 +483,8 @@
   src_caps = GST_BUFFER_CAPS (buffer);
   src_pad = gst_pad_new (NULL, GST_PAD_SRC);
   gst_pad_set_caps (src_pad, src_caps);
-  pad_peer = gst_element_get_static_pad (element, "sink");
-  fail_if (pad_peer == NULL);
+  pad_peer = gst_element_get_pad (element, "sink");
+  fail_if (pad_peer == NULL, "");
   fail_unless (gst_pad_link (src_pad, pad_peer) == GST_PAD_LINK_OK,
       "Could not link source and %s sink pads", GST_ELEMENT_NAME (element));
   gst_object_unref (pad_peer);
@@ -540,11 +505,11 @@
     g_free (temp);
     fail_unless (gst_caps_is_fixed (sink_caps), "we need fixed caps");
     /* get the sink pad */
-    sink_pad = gst_pad_new (NULL, GST_PAD_SINK);
-    fail_unless (GST_IS_PAD (sink_pad));
+    sink_pad = gst_pad_new ('\0', GST_PAD_SINK);
+    fail_unless (GST_IS_PAD (sink_pad), "");
     gst_pad_set_caps (sink_pad, sink_caps);
     /* get the peer pad */
-    pad_peer = gst_element_get_static_pad (element, "src");
+    pad_peer = gst_element_get_pad (element, "src");
     fail_unless (gst_pad_link (pad_peer, sink_pad) == GST_PAD_LINK_OK,
         "Could not link sink and %s source pads", GST_ELEMENT_NAME (element));
     gst_object_unref (pad_peer);
@@ -603,7 +568,7 @@
 
 /**
  * gst_check_element_push_buffer:
- * @element_name: name of the element that needs to be created
+ * @element: name of the element that needs to be created
  * @buffer_in: push this buffer to the element
  * @buffer_out: compare the result with this buffer
  *
@@ -629,6 +594,9 @@
   out = g_list_append (out, buffer_out);
 
   gst_check_element_push_buffer_list (element_name, in, out, GST_FLOW_OK);
+
+  g_list_free (in);
+  g_list_free (out);
 }
 #ifdef __SYMBIAN32__
 EXPORT_C