123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- #ifndef __GST_HARNESS_H__
- #define __GST_HARNESS_H__
- #include <gst/gst.h>
- #include <gst/check/gsttestclock.h>
- G_BEGIN_DECLS
- typedef struct _GstHarnessThread GstHarnessThread;
- typedef struct _GstHarness GstHarness;
- typedef struct _GstHarnessPrivate GstHarnessPrivate;
- struct _GstHarness {
- GstElement * element;
- GstPad * srcpad;
- GstPad * sinkpad;
- GstHarness * src_harness;
- GstHarness * sink_harness;
-
- GstHarnessPrivate * priv;
- };
- GstHarness * gst_harness_new_empty (void);
- void gst_harness_add_element_full (GstHarness * h,
- GstElement * element,
- GstStaticPadTemplate * hsrc,
- const gchar * element_sinkpad_name,
- GstStaticPadTemplate * hsink,
- const gchar * element_srcpad_name);
- GstHarness * gst_harness_new_full (GstElement * element,
- GstStaticPadTemplate * hsrc,
- const gchar * element_sinkpad_name,
- GstStaticPadTemplate * hsink,
- const gchar * element_srcpad_name);
- GstHarness * gst_harness_new_with_element (GstElement * element,
- const gchar * element_sinkpad_name,
- const gchar * element_srcpad_name);
- GstHarness * gst_harness_new_with_padnames (const gchar * element_name,
- const gchar * element_sinkpad_name,
- const gchar * element_srcpad_name);
- GstHarness * gst_harness_new_with_templates (const gchar * element_name,
- GstStaticPadTemplate * hsrc,
- GstStaticPadTemplate * hsink);
- GstHarness * gst_harness_new (const gchar * element_name);
- GstHarness * gst_harness_new_parse (const gchar * launchline);
- void gst_harness_add_parse (GstHarness * h, const gchar * launchline);
- void gst_harness_teardown (GstHarness * h);
- void gst_harness_add_element_src_pad (GstHarness * h, GstPad * srcpad);
- void gst_harness_add_element_sink_pad (GstHarness * h, GstPad * sinkpad);
- void gst_harness_set_src_caps (GstHarness * h, GstCaps * caps);
- void gst_harness_set_sink_caps (GstHarness * h, GstCaps * caps);
- void gst_harness_set_caps (GstHarness * h, GstCaps * in, GstCaps * out);
- void gst_harness_set_src_caps_str (GstHarness * h, const gchar * str);
- void gst_harness_set_sink_caps_str (GstHarness * h, const gchar * str);
- void gst_harness_set_caps_str (GstHarness * h,
- const gchar * in,
- const gchar * out);
- void gst_harness_use_systemclock (GstHarness * h);
- void gst_harness_use_testclock (GstHarness * h);
- GstTestClock * gst_harness_get_testclock (GstHarness * h);
- gboolean gst_harness_set_time (GstHarness * h, GstClockTime time);
- gboolean gst_harness_wait_for_clock_id_waits (GstHarness * h,
- guint waits,
- guint timeout);
- gboolean gst_harness_crank_single_clock_wait (GstHarness * h);
- gboolean gst_harness_crank_multiple_clock_waits (GstHarness * h,
- guint waits);
- void gst_harness_play (GstHarness * h);
- void gst_harness_set_blocking_push_mode (GstHarness * h);
- void gst_harness_set_forwarding (GstHarness * h, gboolean forwarding);
- GstBuffer * gst_harness_create_buffer (GstHarness * h, gsize size);
- GstFlowReturn gst_harness_push (GstHarness * h, GstBuffer * buffer);
- GstBuffer * gst_harness_pull (GstHarness * h);
- GstBuffer * gst_harness_try_pull (GstHarness * h);
- GstBuffer * gst_harness_push_and_pull (GstHarness * h, GstBuffer * buffer);
- guint gst_harness_buffers_received (GstHarness * h);
- guint gst_harness_buffers_in_queue (GstHarness * h);
- void gst_harness_set_drop_buffers (GstHarness * h, gboolean drop_buffers);
- void gst_harness_dump_to_file (GstHarness * h, const gchar * filename);
- GstClockTime gst_harness_get_last_pushed_timestamp (GstHarness * h);
- gboolean gst_harness_push_event (GstHarness * h, GstEvent * event);
- GstEvent * gst_harness_pull_event (GstHarness * h);
- GstEvent * gst_harness_try_pull_event (GstHarness * h);
- guint gst_harness_events_received (GstHarness * h);
- guint gst_harness_events_in_queue (GstHarness * h);
- gboolean gst_harness_push_upstream_event (GstHarness * h, GstEvent * event);
- GstEvent * gst_harness_pull_upstream_event (GstHarness * h);
- GstEvent * gst_harness_try_pull_upstream_event (GstHarness * h);
- guint gst_harness_upstream_events_received (GstHarness * h);
- guint gst_harness_upstream_events_in_queue (GstHarness * h);
- GstClockTime gst_harness_query_latency (GstHarness * h);
- void gst_harness_set_upstream_latency (GstHarness * h, GstClockTime latency);
- void gst_harness_set_propose_allocator (GstHarness * h,
- GstAllocator * allocator,
- const GstAllocationParams * params);
- void gst_harness_get_allocator (GstHarness * h,
- GstAllocator ** allocator,
- GstAllocationParams * params);
- void gst_harness_add_src_harness (GstHarness * h,
- GstHarness * src_harness,
- gboolean has_clock_wait);
- void gst_harness_add_src (GstHarness * h,
- const gchar * src_element_name,
- gboolean has_clock_wait);
- void gst_harness_add_src_parse (GstHarness * h,
- const gchar * launchline,
- gboolean has_clock_wait);
- GstFlowReturn gst_harness_push_from_src (GstHarness * h);
- GstFlowReturn gst_harness_src_crank_and_push_many (GstHarness * h,
- gint cranks,
- gint pushes);
- gboolean gst_harness_src_push_event (GstHarness * h);
- void gst_harness_add_sink_harness (GstHarness * h,
- GstHarness * sink_harness);
- void gst_harness_add_sink (GstHarness * h,
- const gchar * sink_element_name);
- void gst_harness_add_sink_parse (GstHarness * h,
- const gchar * launchline);
- GstFlowReturn gst_harness_push_to_sink (GstHarness * h);
- GstFlowReturn gst_harness_sink_push_many (GstHarness * h, gint pushes);
- GstElement * gst_harness_find_element (GstHarness * h,
- const gchar * element_name);
- void gst_harness_set (GstHarness * h,
- const gchar * element_name,
- const gchar * first_property_name, ...);
- void gst_harness_get (GstHarness * h,
- const gchar * element_name,
- const gchar * first_property_name, ...);
- void gst_harness_add_probe (GstHarness * h,
- const gchar * element_name,
- const gchar * pad_name,
- GstPadProbeType mask,
- GstPadProbeCallback callback,
- gpointer user_data,
- GDestroyNotify destroy_data);
- guint gst_harness_stress_thread_stop (GstHarnessThread * t);
- GstHarnessThread * gst_harness_stress_custom_start (GstHarness * h,
- GFunc init,
- GFunc callback,
- gpointer data,
- gulong sleep);
- #define gst_harness_stress_statechange_start(h) \
- gst_harness_stress_statechange_start_full (h, G_USEC_PER_SEC / 100)
- GstHarnessThread * gst_harness_stress_statechange_start_full (GstHarness * h,
- gulong sleep);
- #define gst_harness_stress_push_buffer_start(h, c, s, b) \
- gst_harness_stress_push_buffer_start_full (h, c, s, b, 0)
- GstHarnessThread * gst_harness_stress_push_buffer_start_full (GstHarness * h,
- GstCaps * caps,
- const GstSegment * segment,
- GstBuffer * buf,
- gulong sleep);
- typedef GstBuffer * (*GstHarnessPrepareBufferFunc) (GstHarness * h, gpointer data);
- #define gst_harness_stress_push_buffer_with_cb_start(h, c, s, f, d, n) \
- gst_harness_stress_push_buffer_with_cb_start_full (h, c, s, f, d, n, 0)
- GstHarnessThread * gst_harness_stress_push_buffer_with_cb_start_full (GstHarness * h,
- GstCaps * caps,
- const GstSegment * segment,
- GstHarnessPrepareBufferFunc func,
- gpointer data,
- GDestroyNotify notify,
- gulong sleep);
- #define gst_harness_stress_push_event_start(h, e) \
- gst_harness_stress_push_event_start_full (h, e, 0)
- GstHarnessThread * gst_harness_stress_push_event_start_full (GstHarness * h,
- GstEvent * event,
- gulong sleep);
- typedef GstEvent * (*GstHarnessPrepareEventFunc) (GstHarness * h, gpointer data);
- #define gst_harness_stress_push_event_with_cb_start(h, f, d, n) \
- gst_harness_stress_push_event_with_cb_start_full (h, f, d, n, 0)
- GstHarnessThread * gst_harness_stress_push_event_with_cb_start_full (GstHarness * h,
- GstHarnessPrepareEventFunc func,
- gpointer data,
- GDestroyNotify notify,
- gulong sleep);
- #define gst_harness_stress_send_upstream_event_start(h, e) \
- gst_harness_stress_push_upstream_event_start_full (h, e, 0)
- GstHarnessThread * gst_harness_stress_push_upstream_event_start_full (GstHarness * h,
- GstEvent * event,
- gulong sleep);
- #define gst_harness_stress_send_upstream_event_with_cb_start(h, f, d, n) \
- gst_harness_stress_push_upstream_event_with_cb_start_full (h, f, d, n, 0)
- GstHarnessThread * gst_harness_stress_push_upstream_event_with_cb_start_full (GstHarness * h,
- GstHarnessPrepareEventFunc func,
- gpointer data,
- GDestroyNotify notify,
- gulong sleep);
- #define gst_harness_stress_property_start(h, n, v) \
- gst_harness_stress_property_start_full (h, n, v, G_USEC_PER_SEC / 1000)
- GstHarnessThread * gst_harness_stress_property_start_full (GstHarness * h,
- const gchar * name,
- const GValue * value,
- gulong sleep);
- #define gst_harness_stress_requestpad_start(h, t, n, c, r) \
- gst_harness_stress_requestpad_start_full (h, t, n, c, r, G_USEC_PER_SEC / 100)
- GstHarnessThread * gst_harness_stress_requestpad_start_full (GstHarness * h,
- GstPadTemplate * templ,
- const gchar * name,
- GstCaps * caps,
- gboolean release,
- gulong sleep);
- G_END_DECLS
- #endif
|