summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-05-21 11:21:58 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-06-01 15:55:24 +0200
commit4e5c985ba439a1646494a798e8b31988d9bd449f (patch)
tree96c3cddf19b1709c0103876aad25d90077348978
parentb8fd1a91f1ef90893549788074ada06c66ac13ab (diff)
matroskamux: adjust unit test to modified behaviour
-rw-r--r--tests/check/Makefile.am2
-rw-r--r--tests/check/elements/matroskamux.c86
2 files changed, 37 insertions, 51 deletions
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 3f0071913..988a3f5bc 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -194,6 +194,8 @@ elements_imagefreeze_LDADD = $(GST_BASE_LIBS) $(LDADD) -lgstvideo-0.10
elements_level_LDADD = $(LDADD) $(LIBM)
+elements_matroskamux_LDADD = $(GST_BASE_LIBS) $(LDADD) $(LIBM)
+
elements_rtpbin_buffer_list_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
$(WARNING_CFLAGS) $(ERROR_CFLAGS) $(GST_CHECK_CFLAGS)
elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
diff --git a/tests/check/elements/matroskamux.c b/tests/check/elements/matroskamux.c
index 4aae93b5b..9d6f3752d 100644
--- a/tests/check/elements/matroskamux.c
+++ b/tests/check/elements/matroskamux.c
@@ -23,6 +23,7 @@
#include <unistd.h>
#include <gst/check/gstcheck.h>
+#include <gst/base/gstadapter.h>
/* For ease of programming we use globals to keep refs for our floating
* src and sink pads we create; otherwise we always have to do get_pad,
@@ -194,19 +195,16 @@ GST_START_TEST (test_ebml_header)
{
GstElement *matroskamux;
GstBuffer *inbuffer, *outbuffer;
+ GstAdapter *adapter;
int num_buffers;
int i;
- guint8 data0[12] =
- { 0x1a, 0x45, 0xdf, 0xa3, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff
+ gint available;
+ guint8 data[] =
+ { 0x1a, 0x45, 0xdf, 0xa3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0x42, 0x82, 0x89, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x00,
+ 0x42, 0x87, 0x81, 0x01,
+ 0x42, 0x85, 0x81, 0x01
};
- guint8 data1[12] =
- { 0x42, 0x82, 0x89, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61,
- 0x00
- };
- guint8 data2[4] = { 0x42, 0x87, 0x81, 0x01 };
- guint8 data3[4] = { 0x42, 0x85, 0x81, 0x01 };
- guint8 data4[8] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14 };
matroskamux = setup_matroskamux (&srcac3template);
fail_unless (gst_element_set_state (matroskamux,
@@ -217,39 +215,28 @@ GST_START_TEST (test_ebml_header)
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
num_buffers = g_list_length (buffers);
- fail_unless (num_buffers >= 5,
+ fail_unless (num_buffers >= 1,
"expected at least 5 buffers, but got only %d", num_buffers);
+ adapter = gst_adapter_new ();
for (i = 0; i < num_buffers; ++i) {
outbuffer = GST_BUFFER (buffers->data);
fail_if (outbuffer == NULL);
buffers = g_list_remove (buffers, outbuffer);
- switch (i) {
- case 0:
- check_buffer_data (outbuffer, data0, sizeof (data0));
- break;
- case 1:
- check_buffer_data (outbuffer, data1, sizeof (data1));
- break;
- case 2:
- check_buffer_data (outbuffer, data2, sizeof (data2));
- break;
- case 3:
- check_buffer_data (outbuffer, data3, sizeof (data3));
- break;
- case 4:
- check_buffer_data (outbuffer, data4, sizeof (data4));
- break;
- default:
- break;
- }
-
ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
- gst_buffer_unref (outbuffer);
- outbuffer = NULL;
+
+ gst_adapter_push (adapter, outbuffer);
}
+ available = gst_adapter_available (adapter);
+ fail_unless (available >= sizeof (data));
+ outbuffer = gst_adapter_take_buffer (adapter, sizeof (data));
+ g_object_unref (adapter);
+
+ check_buffer_data (outbuffer, data, sizeof (data));
+ gst_buffer_unref (outbuffer);
+
cleanup_matroskamux (matroskamux);
g_list_free (buffers);
buffers = NULL;
@@ -286,13 +273,19 @@ GST_START_TEST (test_vorbis_header)
num_buffers = g_list_length (buffers);
for (i = 0; i < num_buffers; ++i) {
+ gint j;
+
outbuffer = GST_BUFFER (buffers->data);
fail_if (outbuffer == NULL);
buffers = g_list_remove (buffers, outbuffer);
- if (!vorbis_header_found && GST_BUFFER_SIZE (outbuffer) == sizeof (data)) {
- vorbis_header_found =
- memcmp (GST_BUFFER_DATA (outbuffer), data, sizeof (data));
+ if (!vorbis_header_found && GST_BUFFER_SIZE (outbuffer) >= sizeof (data)) {
+ for (j = 0; j <= GST_BUFFER_SIZE (outbuffer) - sizeof (data); j++) {
+ if (memcmp (GST_BUFFER_DATA (outbuffer) + j, data, sizeof (data)) == 0) {
+ vorbis_header_found = TRUE;
+ break;
+ }
+ }
}
ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
@@ -317,11 +310,11 @@ GST_START_TEST (test_block_group)
GstCaps *caps;
int num_buffers;
int i;
- guint8 data0[9] = { 0xa0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
- guint8 data1[2] = { 0xa1, 0x85 };
- guint8 data2[4] = { 0x81, 0x00, 0x01, 0x00 };
- guint8 data3[1] = { 0x42 };
- guint8 data4[8] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07 };
+ guint8 data0[] = { 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
+ 0xa1, 0x85,
+ 0x81, 0x00, 0x01, 0x00
+ };
+ guint8 data1[] = { 0x42 };
matroskamux = setup_matroskamux (&srcac3template);
fail_unless (gst_element_set_state (matroskamux,
@@ -363,7 +356,7 @@ GST_START_TEST (test_block_group)
fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
num_buffers = g_list_length (buffers);
- fail_unless (num_buffers >= 5);
+ fail_unless (num_buffers >= 2);
for (i = 0; i < num_buffers; ++i) {
outbuffer = GST_BUFFER (buffers->data);
@@ -377,15 +370,6 @@ GST_START_TEST (test_block_group)
case 1:
check_buffer_data (outbuffer, data1, sizeof (data1));
break;
- case 2:
- check_buffer_data (outbuffer, data2, sizeof (data2));
- break;
- case 3:
- check_buffer_data (outbuffer, data3, sizeof (data3));
- break;
- case 4:
- check_buffer_data (outbuffer, data4, sizeof (data4));
- break;
default:
break;
}