summaryrefslogtreecommitdiff
path: root/tests/check/libs/rtp.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/libs/rtp.c')
-rw-r--r--tests/check/libs/rtp.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/check/libs/rtp.c b/tests/check/libs/rtp.c
index 77b3d194a..602a9a1ed 100644
--- a/tests/check/libs/rtp.c
+++ b/tests/check/libs/rtp.c
@@ -171,6 +171,36 @@ GST_START_TEST (test_rtp_buffer_validate_corrupt)
GST_END_TEST;
+GST_START_TEST (test_rtp_buffer_validate_padding)
+{
+ GstBuffer *buf;
+ guint8 packet_with_padding[] = {
+ 0xa0, 0x60, 0x6c, 0x49, 0x58, 0xab, 0xaa, 0x65, 0x65, 0x2e, 0xaf, 0xce,
+ 0x68, 0xce, 0x3c, 0x80, 0x00, 0x00, 0x00, 0x04
+ };
+ GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+
+ buf = gst_buffer_new_and_alloc (sizeof (packet_with_padding));
+ gst_buffer_fill (buf, 0, packet_with_padding, sizeof (packet_with_padding));
+ fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp));
+ gst_rtp_buffer_unmap (&rtp);
+ gst_buffer_unref (buf);
+
+ /* Set the padding to something invalid */
+ buf = gst_buffer_new_and_alloc (sizeof (packet_with_padding));
+ gst_buffer_fill (buf, 0, packet_with_padding, sizeof (packet_with_padding));
+ gst_buffer_memset (buf, gst_buffer_get_size (buf) - 1, 0xff, 1);
+ fail_if (gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp));
+
+ memset (&rtp, 0, sizeof (rtp));
+ fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READ |
+ GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING, &rtp));
+ gst_rtp_buffer_unmap (&rtp);
+ gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
#if 0
GST_START_TEST (test_rtp_buffer_list)
{
@@ -1179,6 +1209,7 @@ rtp_suite (void)
suite_add_tcase (s, tc_chain);
tcase_add_test (tc_chain, test_rtp_buffer);
tcase_add_test (tc_chain, test_rtp_buffer_validate_corrupt);
+ tcase_add_test (tc_chain, test_rtp_buffer_validate_padding);
tcase_add_test (tc_chain, test_rtp_buffer_set_extension_data);
//tcase_add_test (tc_chain, test_rtp_buffer_list_set_extension);
tcase_add_test (tc_chain, test_rtp_seqnum_compare);