summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2015-12-29 14:40:04 +0100
committerStefan Sauer <ensonic@users.sf.net>2015-12-29 14:40:32 +0100
commit898940a37ffcafb69b61cc0ce02f6be24e7e2280 (patch)
tree9fecc3d2ff4d9afd4470c47952c3f209e4e3292d
parent7bbfa39ada905b44743170f6c29d13e5fefb5888 (diff)
audioconvert: add a test for gap handling
-rw-r--r--tests/check/elements/audioconvert.c47
1 files changed, 46 insertions, 1 deletions
diff --git a/tests/check/elements/audioconvert.c b/tests/check/elements/audioconvert.c
index fe497b937..aaaebe336 100644
--- a/tests/check/elements/audioconvert.c
+++ b/tests/check/elements/audioconvert.c
@@ -1575,6 +1575,51 @@ GST_START_TEST (test_preserve_width)
GST_END_TEST;
+GST_START_TEST (test_gap_buffers)
+{
+ GstBuffer *inbuffer, *outbuffer;
+ GstElement *audioconvert;
+ GstCaps *caps = get_int_caps (1, G_BYTE_ORDER, 16, 16, TRUE);
+ gint16 data[] = { 0, 0, 0, 0 };
+ gsize data_len = sizeof (data);
+ gint i;
+
+ audioconvert = setup_audioconvert (caps);
+
+ fail_unless (gst_element_set_state (audioconvert,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ gst_check_setup_events (mysrcpad, audioconvert, caps, GST_FORMAT_TIME);
+
+ inbuffer = gst_buffer_new_and_alloc (data_len);
+ gst_buffer_fill (inbuffer, 0, data, data_len);
+ GST_BUFFER_FLAG_SET (inbuffer, GST_BUFFER_FLAG_GAP);
+
+ for (i = 0; i < 2; i++) {
+ gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (audioconvert),
+ (i == 0));
+
+ gst_pad_push (mysrcpad, inbuffer);
+
+ fail_unless (g_list_length (buffers) == 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+
+ fail_unless (GST_BUFFER_FLAG_IS_SET (outbuffer, GST_BUFFER_FLAG_GAP));
+
+ buffers = g_list_remove (buffers, outbuffer);
+ }
+
+ GST_DEBUG ("cleanup, unref buffers");
+ gst_buffer_unref (outbuffer);
+ cleanup_audioconvert (audioconvert);
+ GST_DEBUG ("cleanup, unref caps");
+ gst_caps_unref (caps);
+}
+
+GST_END_TEST;
+
+
static Suite *
audioconvert_suite (void)
{
@@ -1592,7 +1637,7 @@ audioconvert_suite (void)
tcase_add_test (tc_chain, test_caps_negotiation);
tcase_add_test (tc_chain, test_convert_undefined_multichannel);
tcase_add_test (tc_chain, test_preserve_width);
-
+ tcase_add_test (tc_chain, test_gap_buffers);
return s;
}