diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2015-08-14 18:06:03 +0200 |
---|---|---|
committer | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2015-08-14 19:27:06 +0200 |
commit | 41cb26b0e9969d2b49c26a259bb3bb8a6e9217d6 (patch) | |
tree | fe8698f881cc94d25188b862ac996500d1a9b2c0 | |
parent | c411819452524c281b58b531829aa3914de53ef2 (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.c | 36 |
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; } |