summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2015-08-14 18:06:03 +0200
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2015-08-14 19:27:06 +0200
commit41cb26b0e9969d2b49c26a259bb3bb8a6e9217d6 (patch)
treefe8698f881cc94d25188b862ac996500d1a9b2c0
parentc411819452524c281b58b531829aa3914de53ef2 (diff)
tests/appsink: add test to ensure that the segment returned by pull-preroll/sample is correct
https://bugzilla.gnome.org/show_bug.cgi?id=751147
-rw-r--r--tests/check/elements/appsink.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/check/elements/appsink.c b/tests/check/elements/appsink.c
index 519525fda..1c9feed26 100644
--- a/tests/check/elements/appsink.c
+++ b/tests/check/elements/appsink.c
@@ -313,6 +313,41 @@ GST_START_TEST (test_buffer_list_fallback_signal)
GST_END_TEST;
+GST_START_TEST (test_segment)
+{
+ GstElement *sink;
+ GstSegment segment;
+ GstBuffer *buffer;
+ GstSample *pulled_preroll;
+ GstSample *pulled_sample;
+
+ sink = setup_appsink ();
+
+ gst_segment_init (&segment, GST_FORMAT_TIME);
+ segment.start = 2 * GST_SECOND;
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
+ ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+
+ buffer = gst_buffer_new_and_alloc (4);
+ fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+
+ g_signal_emit_by_name (sink, "pull-preroll", &pulled_preroll);
+ fail_unless (gst_segment_is_equal (&segment,
+ gst_sample_get_segment (pulled_preroll)));
+ gst_sample_unref (pulled_preroll);
+
+ g_signal_emit_by_name (sink, "pull-sample", &pulled_sample);
+ fail_unless (gst_segment_is_equal (&segment,
+ gst_sample_get_segment (pulled_sample)));
+ gst_sample_unref (pulled_sample);
+
+ ASSERT_SET_STATE (sink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+ cleanup_appsink (sink);
+}
+
+GST_END_TEST;
+
static Suite *
appsink_suite (void)
{
@@ -326,6 +361,7 @@ appsink_suite (void)
tcase_add_test (tc_chain, test_notify1);
tcase_add_test (tc_chain, test_buffer_list_fallback);
tcase_add_test (tc_chain, test_buffer_list_fallback_signal);
+ tcase_add_test (tc_chain, test_segment);
return s;
}