check: Add helper that sends initial events
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 9 May 2013 21:17:14 +0000 (17:17 -0400)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 10 May 2013 07:23:28 +0000 (09:23 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=700033

docs/libs/gstreamer-libs-sections.txt
libs/gst/check/Makefile.am
libs/gst/check/gstcheck.c
libs/gst/check/gstcheck.h

index f82a565..0f32db5 100644 (file)
@@ -907,6 +907,7 @@ gst_check_caps_equal
 gst_check_element_push_buffer_list
 gst_check_element_push_buffer
 gst_check_run_suite
+gst_check_setup_events
 
 <SUBSECTION Private>
 MAIN_INIT
index 71abf2b..9b5e093 100644 (file)
@@ -79,6 +79,7 @@ LIBGSTCHECK_EXPORTED_FUNCS = \
        gst_check_message_error \
        gst_check_run_suite \
        gst_check_setup_element \
+       gst_check_setup_events \
        gst_check_setup_sink_pad \
        gst_check_setup_sink_pad_by_name \
        gst_check_setup_src_pad \
index d9b5e33..5db9dad 100644 (file)
@@ -718,3 +718,32 @@ _gst_check_run_test_func (const gchar * func_name)
   g_strfreev (funcs);
   return res;
 }
+
+/**
+ * gst_check_setup_events:
+ * @srcpad: The src #GstPad to push on
+ * @element: The #GstElement use to create the stream id
+ * @caps: (allow-none): #GstCaps in case caps event must be sent
+ * @format: The #GstFormat of the default segment to send
+ *
+ * Push stream-start, caps and segment event, which concist of the minimum required
+ * events to allow streaming. Caps is optional to allow raw src testing.
+ */
+void
+gst_check_setup_events (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format)
+{
+  gchar *stream_id;
+  GstSegment segment;
+
+  stream_id = gst_pad_create_stream_id (srcpad, element, NULL);
+  gst_segment_init (&segment, format);
+
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start (stream_id)));
+  if (caps)
+    fail_unless (gst_pad_push_event (srcpad, gst_event_new_caps (caps)));
+  fail_unless (gst_pad_push_event (srcpad, gst_event_new_segment (&segment)));
+
+  g_free (stream_id);
+}
index ecd6797..aefce7e 100644 (file)
@@ -94,6 +94,8 @@ void gst_check_teardown_sink_pad (GstElement * element);
 void gst_check_abi_list (GstCheckABIStruct list[], gboolean have_abi_sizes);
 gint gst_check_run_suite (Suite * suite, const gchar * name,
     const gchar * fname);
+void gst_check_setup_events (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format);
 
 #define fail_unless_message_error(msg, domain, code)            \
 gst_check_message_error (msg, GST_MESSAGE_ERROR,                \