diff --git a/tests/sched/Makefile.am b/tests/sched/Makefile.am index e7ddf6f117..5f55065dbc 100644 --- a/tests/sched/Makefile.am +++ b/tests/sched/Makefile.am @@ -1,7 +1,7 @@ if GST_DISABLE_LOADSAVE noinst_PROGRAMS = else -noinst_PROGRAMS = runxml dynamic-pipeline sched-stress interrupt1 interrupt2 +noinst_PROGRAMS = runxml dynamic-pipeline sched-stress interrupt1 interrupt2 interrupt3 endif dynamic_pipeline_SOURCES = dynamic-pipeline.c diff --git a/tests/sched/interrupt3.c b/tests/sched/interrupt3.c new file mode 100644 index 0000000000..04fb9fa618 --- /dev/null +++ b/tests/sched/interrupt3.c @@ -0,0 +1,45 @@ +#include + +int main (int argc, char *argv[]) +{ + GstElement *pipeline, *thread, *queue, *src, *adder, *sink; + GstPad *sinkpad; + + gst_init (&argc, &argv); + + free (malloc (8)); /* -lefence */ + + pipeline = gst_pipeline_new ("pipeline"); + + src = gst_element_factory_make ("fakesrc", "src"); + g_object_set (G_OBJECT (src), "sizetype", 2, NULL); + + thread = gst_thread_new ("thread"); + + queue = gst_element_factory_make ("queue", "queue"); + adder = gst_element_factory_make ("adder", "adder"); + sink = gst_element_factory_make ("fakesink", "sink"); + + gst_bin_add (GST_BIN (thread), queue); + gst_bin_add (GST_BIN (thread), adder); + gst_bin_add (GST_BIN (thread), sink); + gst_bin_add (GST_BIN (pipeline), thread); + gst_bin_add (GST_BIN (pipeline), src); + + sinkpad = gst_element_get_request_pad (adder, "sink%d"); + + gst_element_link_pads (src, "src", queue, "sink"); + gst_pad_link (gst_element_get_pad (queue, "src"), sinkpad); + gst_element_link_pads (adder, "src", sink, "sink"); + + gst_element_set_state (pipeline, GST_STATE_PLAYING); + sleep (1); + gst_element_set_state (pipeline, GST_STATE_PAUSED); + + gst_element_set_state (pipeline, GST_STATE_PLAYING); + sleep (1); + gst_element_set_state (pipeline, GST_STATE_PAUSED); + + return 0; +} +