From: Thiago Santos Date: Mon, 17 Jan 2011 17:12:06 +0000 (-0300) Subject: tests: capsfilter-renegotiation: New renegotiation use cases X-Git-Tag: 1.19.3~511^2~7711 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=213050e53cb3ba61052ad4c00bab3a16b0401c66;p=platform%2Fupstream%2Fgstreamer.git tests: capsfilter-renegotiation: New renegotiation use cases Adds some new tests for renegotiation use cases that would use the new renegotiate event --- diff --git a/tests/check/pipelines/capsfilter-renegotiation.c b/tests/check/pipelines/capsfilter-renegotiation.c index f18a713..7f12041 100644 --- a/tests/check/pipelines/capsfilter-renegotiation.c +++ b/tests/check/pipelines/capsfilter-renegotiation.c @@ -88,7 +88,11 @@ buffer_probe (GstPad * pad, GstMiniObject * obj, gpointer data) return TRUE; } -GST_START_TEST (test_capsfilter_renegotiation) +/* launch line is a pipeline that must have a capsfilter named 'cf' that + * will be used to trigger the renegotiation */ +static void +run_capsfilter_renegotiation (const gchar * launch_line, + gboolean reset_buffer_alloc) { GstElement *capsfilter; GstElement *sink; @@ -96,6 +100,7 @@ GST_START_TEST (test_capsfilter_renegotiation) GstBus *bus; GstMessage *msg; GstPad *pad; + GstPad *sinkpad; caps_change = 0; buffer_count = 0; @@ -103,13 +108,18 @@ GST_START_TEST (test_capsfilter_renegotiation) gst_caps_unref (current_caps); current_caps = NULL; - pipeline = gst_parse_launch ("videotestsrc num-buffers=200 ! capsfilter " - "caps=\"" FIRST_CAPS "\" name=cf ! fakesink name=sink", NULL); + pipeline = gst_parse_launch (launch_line, NULL); g_assert (pipeline); capsfilter = gst_bin_get_by_name (GST_BIN (pipeline), "cf"); g_assert (capsfilter); + if (reset_buffer_alloc) { + sinkpad = gst_element_get_static_pad (capsfilter, "sink"); + gst_pad_set_bufferalloc_function (sinkpad, NULL); + gst_object_unref (sinkpad); + } + sink = gst_bin_get_by_name (GST_BIN (pipeline), "sink"); g_assert (sink); @@ -126,18 +136,32 @@ GST_START_TEST (test_capsfilter_renegotiation) GST_MESSAGE_EOS | GST_MESSAGE_ERROR); g_assert (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS); - g_assert (caps_change == 4); gst_element_set_state (pipeline, GST_STATE_NULL); if (current_caps) gst_caps_unref (current_caps); + current_caps = NULL; gst_message_unref (msg); g_object_unref (bus); g_object_unref (G_OBJECT (pipeline)); } +GST_START_TEST (test_capsfilter_renegotiation) +{ + run_capsfilter_renegotiation ("videotestsrc num-buffers=200 peer-alloc=true" + " ! capsfilter caps=\"" FIRST_CAPS "\" name=cf ! fakesink name=sink", + FALSE); + run_capsfilter_renegotiation ("videotestsrc num-buffers=200 peer-alloc=false" + " ! capsfilter caps=\"" FIRST_CAPS "\" name=cf ! fakesink name=sink", + FALSE); + run_capsfilter_renegotiation ("videotestsrc num-buffers=200 peer-alloc=false" + " ! capsfilter caps=\"video/x-raw-yuv, format=(fourcc)I420, width=(int)100, height=(int)100\" " + " ! ffmpegcolorspace ! videoscale ! capsfilter caps=\"" FIRST_CAPS + "\" name=cf " " ! fakesink name=sink", TRUE); +} + GST_END_TEST; static Suite *