aboutsummaryrefslogtreecommitdiff
path: root/tests/check/gst/gstbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/check/gst/gstbuffer.c')
-rw-r--r--tests/check/gst/gstbuffer.c350
1 files changed, 211 insertions, 139 deletions
diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c
index 1ac9688..1344e13 100644
--- a/tests/check/gst/gstbuffer.c
+++ b/tests/check/gst/gstbuffer.c
@@ -35,19 +35,18 @@
GST_START_TEST (test_subbuffer)
{
GstBuffer *buffer, *sub;
- gsize size, maxsize, ssize;
- guint8 *data, *sdata;
+ GstMapInfo info, sinfo;
buffer = gst_buffer_new_and_alloc (4);
/* check sizes, buffer starts out empty */
- data = gst_buffer_map (buffer, &size, &maxsize, GST_MAP_WRITE);
- fail_unless (size == 4, "buffer has wrong size");
- fail_unless (maxsize >= 4, "buffer has wrong size");
- memset (data, 0, 4);
- gst_buffer_unmap (buffer, data, 4);
+ fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
+ fail_unless (info.size == 4, "buffer has wrong size");
+ fail_unless (info.maxsize >= 4, "buffer has wrong size");
+ memset (info.data, 0, 4);
+ gst_buffer_unmap (buffer, &info);
- data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+ fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
/* set some metadata */
GST_BUFFER_TIMESTAMP (buffer) = 1;
GST_BUFFER_DURATION (buffer) = 2;
@@ -57,9 +56,9 @@ GST_START_TEST (test_subbuffer)
sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 1, 2);
fail_if (sub == NULL, "copy region of buffer returned NULL");
- sdata = gst_buffer_map (sub, &ssize, NULL, GST_MAP_READ);
- fail_unless (ssize == 2, "subbuffer has wrong size");
- fail_unless (memcmp (data + 1, sdata, 2) == 0,
+ fail_unless (gst_buffer_map (sub, &sinfo, GST_MAP_READ));
+ fail_unless (sinfo.size == 2, "subbuffer has wrong size");
+ fail_unless (memcmp (info.data + 1, sinfo.data, 2) == 0,
"subbuffer contains the wrong data");
ASSERT_BUFFER_REFCOUNT (sub, "subbuffer", 1);
fail_unless (GST_BUFFER_TIMESTAMP (sub) == -1,
@@ -68,18 +67,18 @@ GST_START_TEST (test_subbuffer)
fail_unless (GST_BUFFER_OFFSET (sub) == -1, "subbuffer has wrong offset");
fail_unless (GST_BUFFER_OFFSET_END (sub) == -1,
"subbuffer has wrong offset end");
- gst_buffer_unmap (sub, sdata, ssize);
+ gst_buffer_unmap (sub, &sinfo);
gst_buffer_unref (sub);
/* create a subbuffer of size 0 */
sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 1, 0);
fail_if (sub == NULL, "copy_region of buffer returned NULL");
- sdata = gst_buffer_map (sub, &ssize, NULL, GST_MAP_READ);
- fail_unless (ssize == 0, "subbuffer has wrong size");
- fail_unless (memcmp (data + 1, sdata, 0) == 0,
+ fail_unless (gst_buffer_map (sub, &sinfo, GST_MAP_READ));
+ fail_unless (sinfo.size == 0, "subbuffer has wrong size");
+ fail_unless (memcmp (info.data + 1, sinfo.data, 0) == 0,
"subbuffer contains the wrong data");
ASSERT_BUFFER_REFCOUNT (sub, "subbuffer", 1);
- gst_buffer_unmap (sub, sdata, ssize);
+ gst_buffer_unmap (sub, &sinfo);
gst_buffer_unref (sub);
/* test if metadata is coppied, not a complete buffer copy so only the
@@ -110,36 +109,7 @@ GST_START_TEST (test_subbuffer)
/* clean up */
gst_buffer_unref (sub);
- gst_buffer_unmap (buffer, data, size);
- gst_buffer_unref (buffer);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_is_span_fast)
-{
- GstBuffer *buffer, *sub1, *sub2;
-
- buffer = gst_buffer_new_and_alloc (4);
-
- sub1 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, 2);
- fail_if (sub1 == NULL, "copy_region of buffer returned NULL");
-
- sub2 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 2, 2);
- fail_if (sub2 == NULL, "copy_region of buffer returned NULL");
-
- fail_if (gst_buffer_is_span_fast (buffer, sub2) == TRUE,
- "a parent buffer can't be span_fasted");
-
- fail_if (gst_buffer_is_span_fast (sub1, buffer) == TRUE,
- "a parent buffer can't be span_fasted");
-
- fail_if (gst_buffer_is_span_fast (sub1, sub2) == FALSE,
- "two subbuffers next to each other should be span_fast");
-
- /* clean up */
- gst_buffer_unref (sub1);
- gst_buffer_unref (sub2);
+ gst_buffer_unmap (buffer, &info);
gst_buffer_unref (buffer);
}
@@ -148,19 +118,17 @@ GST_END_TEST;
GST_START_TEST (test_span)
{
GstBuffer *buffer, *sub1, *sub2, *span;
- guint8 *data;
- gsize size;
+ GstMapInfo info;
buffer = gst_buffer_new_and_alloc (4);
- data = gst_buffer_map (buffer, &size, NULL, GST_MAP_WRITE);
- memcpy (data, "data", 4);
- gst_buffer_unmap (buffer, data, 4);
+ fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
+ memcpy (info.data, "data", 4);
+ gst_buffer_unmap (buffer, &info);
- ASSERT_CRITICAL (gst_buffer_span (NULL, 1, NULL, 2));
- ASSERT_CRITICAL (gst_buffer_span (buffer, 1, NULL, 2));
- ASSERT_CRITICAL (gst_buffer_span (NULL, 1, buffer, 2));
- ASSERT_CRITICAL (gst_buffer_span (buffer, 0, buffer, 10));
+ ASSERT_CRITICAL (gst_buffer_append (NULL, NULL));
+ ASSERT_CRITICAL (gst_buffer_append (buffer, NULL));
+ ASSERT_CRITICAL (gst_buffer_append (NULL, buffer));
sub1 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, 2);
fail_if (sub1 == NULL, "copy_region of buffer returned NULL");
@@ -173,57 +141,34 @@ GST_START_TEST (test_span)
ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
/* span will create a new subbuffer from the parent */
- span = gst_buffer_span (sub1, 0, sub2, 4);
- data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
- fail_unless (size == 4, "spanned buffer is wrong size");
+ gst_buffer_ref (sub1);
+ gst_buffer_ref (sub2);
+ span = gst_buffer_append (sub1, sub2);
+ fail_unless (gst_buffer_map (span, &info, GST_MAP_READ));
+ fail_unless (info.size == 4, "spanned buffer is wrong size");
ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
ASSERT_BUFFER_REFCOUNT (span, "span", 1);
- fail_unless (memcmp (data, "data", 4) == 0,
+ fail_unless (memcmp (info.data, "data", 4) == 0,
"spanned buffer contains the wrong data");
- gst_buffer_unmap (span, data, size);
+ gst_buffer_unmap (span, &info);
gst_buffer_unref (span);
ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
/* span from non-contiguous buffers will create new buffers */
- span = gst_buffer_span (sub2, 0, sub1, 4);
- data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
- fail_unless (size == 4, "spanned buffer is wrong size");
- ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
- ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
- ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
- ASSERT_BUFFER_REFCOUNT (span, "span", 1);
- fail_unless (memcmp (data, "tada", 4) == 0,
- "spanned buffer contains the wrong data");
- gst_buffer_unmap (span, data, size);
- gst_buffer_unref (span);
- ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
-
- /* span with different sizes */
- span = gst_buffer_span (sub1, 1, sub2, 3);
- data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
- fail_unless (size == 3, "spanned buffer is wrong size");
+ gst_buffer_ref (sub1);
+ gst_buffer_ref (sub2);
+ span = gst_buffer_append (sub2, sub1);
+ fail_unless (gst_buffer_map (span, &info, GST_MAP_READ));
+ fail_unless (info.size == 4, "spanned buffer is wrong size");
ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
ASSERT_BUFFER_REFCOUNT (span, "span", 1);
- fail_unless (memcmp (data, "ata", 3) == 0,
+ fail_unless (memcmp (info.data, "tada", 4) == 0,
"spanned buffer contains the wrong data");
- gst_buffer_unmap (span, data, size);
- gst_buffer_unref (span);
- ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
-
- span = gst_buffer_span (sub2, 0, sub1, 3);
- data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
- fail_unless (size == 3, "spanned buffer is wrong size");
- ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
- ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
- ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
- ASSERT_BUFFER_REFCOUNT (span, "span", 1);
- fail_unless (memcmp (data, "tad", 3) == 0,
- "spanned buffer contains the wrong data");
- gst_buffer_unmap (span, data, size);
+ gst_buffer_unmap (span, &info);
gst_buffer_unref (span);
ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
@@ -246,10 +191,10 @@ create_read_only_buffer (void)
buf = gst_buffer_new ();
/* assign some read-only data to the new buffer */
- gst_buffer_take_memory (buf, -1,
+ gst_buffer_insert_memory (buf, -1,
gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
- (gpointer) ro_memory, NULL,
- sizeof (ro_memory), 0, sizeof (ro_memory)));
+ (gpointer) ro_memory, sizeof (ro_memory),
+ 0, sizeof (ro_memory), NULL, NULL));
return buf;
}
@@ -257,15 +202,14 @@ create_read_only_buffer (void)
GST_START_TEST (test_make_writable)
{
GstBuffer *buf, *buf2;
- guint8 *data;
- gsize size;
+ GstMapInfo info;
/* create read-only buffer and make it writable */
buf = create_read_only_buffer ();
- data = gst_buffer_map (buf, &size, NULL, GST_MAP_WRITE);
- data[4] = 'a';
- gst_buffer_unmap (buf, data, size);
+ fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+ info.data[4] = 'a';
+ gst_buffer_unmap (buf, &info);
gst_buffer_unref (buf);
/* alloc'ed buffer with refcount 1 should be writable */
@@ -289,18 +233,17 @@ GST_END_TEST;
GST_START_TEST (test_subbuffer_make_writable)
{
GstBuffer *buf, *sub_buf;
- guint8 *data;
- gsize size;
+ GstMapInfo info;
/* create sub-buffer of read-only buffer and make it writable */
buf = create_read_only_buffer ();
sub_buf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, 0, 8);
- data = gst_buffer_map (sub_buf, &size, NULL, GST_MAP_WRITE);
- fail_if (data == NULL);
- data[4] = 'a';
- gst_buffer_unmap (sub_buf, data, size);
+ fail_unless (gst_buffer_map (sub_buf, &info, GST_MAP_WRITE));
+ fail_if (info.data == NULL);
+ info.data[4] = 'a';
+ gst_buffer_unmap (sub_buf, &info);
gst_buffer_unref (sub_buf);
gst_buffer_unref (buf);
}
@@ -354,8 +297,7 @@ GST_END_TEST;
GST_START_TEST (test_copy)
{
GstBuffer *buffer, *copy;
- gsize size, ssize;
- guint8 *data, *sdata;
+ GstMapInfo info, sinfo;
buffer = gst_buffer_new_and_alloc (4);
ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
@@ -366,30 +308,30 @@ GST_START_TEST (test_copy)
/* buffers are copied and must point to different memory */
fail_if (buffer == copy);
- data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
- sdata = gst_buffer_map (copy, &ssize, NULL, GST_MAP_READ);
+ fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+ fail_unless (gst_buffer_map (copy, &sinfo, GST_MAP_READ));
/* NOTE that data is refcounted */
- fail_unless (size == ssize);
+ fail_unless (info.size == sinfo.size);
- gst_buffer_unmap (copy, sdata, ssize);
- gst_buffer_unmap (buffer, data, size);
+ gst_buffer_unmap (copy, &sinfo);
+ gst_buffer_unmap (buffer, &info);
gst_buffer_unref (copy);
gst_buffer_unref (buffer);
/* a 0-sized buffer has NULL data as per docs */
buffer = gst_buffer_new_and_alloc (0);
- data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
- fail_unless (data == NULL);
- gst_buffer_unmap (buffer, data, size);
+ fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+ fail_unless (info.data == NULL);
+ gst_buffer_unmap (buffer, &info);
/* copying a 0-sized buffer should not crash and also set
* the data member NULL. */
copy = gst_buffer_copy (buffer);
- data = gst_buffer_map (copy, &size, NULL, GST_MAP_READ);
- fail_unless (data == NULL);
- gst_buffer_unmap (copy, data, size);
+ fail_unless (gst_buffer_map (copy, &info, GST_MAP_READ));
+ fail_unless (info.data == NULL);
+ gst_buffer_unmap (copy, &info);
gst_buffer_unref (copy);
gst_buffer_unref (buffer);
@@ -400,27 +342,26 @@ GST_END_TEST;
GST_START_TEST (test_try_new_and_alloc)
{
GstBuffer *buf;
- gsize size;
- guint8 *data;
+ GstMapInfo info;
/* special case: alloc of 0 bytes results in new buffer with NULL data */
buf = gst_buffer_new_and_alloc (0);
fail_unless (buf != NULL);
fail_unless (GST_IS_BUFFER (buf));
- data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
- fail_unless (data == NULL);
- gst_buffer_unmap (buf, data, size);
+ fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
+ fail_unless (info.data == NULL);
+ gst_buffer_unmap (buf, &info);
gst_buffer_unref (buf);
/* normal alloc should still work */
buf = gst_buffer_new_and_alloc (640 * 480 * 4);
fail_unless (buf != NULL);
fail_unless (GST_IS_BUFFER (buf));
- data = gst_buffer_map (buf, &size, NULL, GST_MAP_WRITE);
- fail_unless (data != NULL);
- fail_unless (size == (640 * 480 * 4));
- data[640 * 479 * 4 + 479] = 0xff;
- gst_buffer_unmap (buf, data, size);
+ fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+ fail_unless (info.data != NULL);
+ fail_unless (info.size == (640 * 480 * 4));
+ info.data[640 * 479 * 4 + 479] = 0xff;
+ gst_buffer_unmap (buf, &info);
gst_buffer_unref (buf);
@@ -449,15 +390,16 @@ GST_START_TEST (test_size)
gsize size, maxsize, offset;
/* one memory block */
- buf = gst_buffer_new_allocate (NULL, 100, 0);
+ buf = gst_buffer_new_allocate (NULL, 100, NULL);
size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
fail_unless (size == 100);
fail_unless (offset == 0);
fail_unless (maxalloc >= 100);
- mem = gst_buffer_peek_memory (buf, 0, GST_MAP_WRITE);
+ mem = gst_buffer_get_memory (buf, 0);
gst_memory_resize (mem, 10, 70);
+ gst_memory_unref (mem);
size = gst_buffer_get_sizes (buf, &offset, &maxsize);
fail_unless (size == 70);
@@ -465,7 +407,7 @@ GST_START_TEST (test_size)
fail_unless (maxsize == maxalloc);
/* new memory */
- mem = gst_allocator_alloc (NULL, 100, 0);
+ mem = gst_allocator_alloc (NULL, 100, NULL);
size = gst_memory_get_sizes (mem, &offset, &maxalloc2);
fail_unless (size == 100);
fail_unless (offset == 0);
@@ -478,7 +420,7 @@ GST_START_TEST (test_size)
fail_unless (maxsize == maxalloc2);
/* append */
- gst_buffer_take_memory (buf, -1, mem);
+ gst_buffer_insert_memory (buf, -1, mem);
size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
fail_unless (size == 130);
@@ -488,10 +430,10 @@ GST_START_TEST (test_size)
fail_unless (maxalloc == 80 + (maxalloc2 - 20));
/* appending an empty block */
- mem = gst_allocator_alloc (NULL, 100, 0);
+ mem = gst_allocator_alloc (NULL, 100, NULL);
size = gst_memory_get_sizes (mem, &offset, &maxalloc3);
gst_memory_resize (mem, 0, 0);
- gst_buffer_take_memory (buf, -1, mem);
+ gst_buffer_insert_memory (buf, -1, mem);
size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
fail_unless (size == 130);
@@ -501,10 +443,10 @@ GST_START_TEST (test_size)
fail_unless (maxalloc == 80 + (maxalloc2 - 20) + maxalloc3);
/* prepending an empty block */
- mem = gst_allocator_alloc (NULL, 100, 0);
+ mem = gst_allocator_alloc (NULL, 100, NULL);
size = gst_memory_get_sizes (mem, &offset, &maxalloc4);
gst_memory_resize (mem, 0, 0);
- gst_buffer_take_memory (buf, 0, mem);
+ gst_buffer_insert_memory (buf, 0, mem);
size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
fail_unless (size == 130);
@@ -526,7 +468,7 @@ GST_START_TEST (test_resize)
gsize size, maxsize, offset;
/* one memory block */
- buf = gst_buffer_new_allocate (NULL, 100, 0);
+ buf = gst_buffer_new_allocate (NULL, 100, NULL);
size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
fail_unless (size == 100);
@@ -616,6 +558,135 @@ GST_START_TEST (test_resize)
GST_END_TEST;
+GST_START_TEST (test_map)
+{
+ GstBuffer *buf;
+ GstMapInfo map;
+ gsize maxalloc;
+ gsize size, offset;
+
+ buf = gst_buffer_new ();
+ gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
+ gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
+
+ size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
+ fail_unless (size == 100);
+ fail_unless (offset == 0);
+ fail_unless (maxalloc >= 100);
+ fail_unless (gst_buffer_n_memory (buf) == 2);
+
+ /* make readonly */
+ gst_buffer_ref (buf);
+ /* map should merge */
+ gst_buffer_map (buf, &map, GST_MAP_READ);
+ /* merged memory is not stored */
+ fail_unless (gst_buffer_n_memory (buf) == 2);
+ gst_buffer_unmap (buf, &map);
+
+ fail_unless (gst_buffer_n_memory (buf) == 2);
+
+ /* can't map write on readonly buffer */
+ ASSERT_CRITICAL (gst_buffer_map (buf, &map, GST_MAP_WRITE));
+ /* make writable again */
+ gst_buffer_unref (buf);
+
+ /* should merge and store */
+ gst_buffer_map (buf, &map, GST_MAP_READ);
+ fail_unless (gst_buffer_n_memory (buf) == 1);
+ gst_buffer_unmap (buf, &map);
+
+ gst_buffer_map (buf, &map, GST_MAP_WRITE);
+ gst_buffer_unmap (buf, &map);
+
+ gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_find)
+{
+ GstBuffer *buf;
+ gsize maxalloc;
+ gsize size, offset;
+ guint idx, length;
+
+ buf = gst_buffer_new ();
+ gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 0, NULL));
+ gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 10, NULL));
+ gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 15, NULL));
+ gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 0, NULL));
+
+ size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
+ fail_unless (size == 25);
+ fail_unless (offset >= 0);
+ fail_unless (maxalloc >= 25);
+ fail_unless (gst_buffer_n_memory (buf) == 4);
+
+ fail_unless (gst_buffer_find_memory (buf, 0, 5, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 1);
+ fail_unless (offset == 0);
+
+ fail_unless (gst_buffer_find_memory (buf, 0, 10, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 1);
+ fail_unless (offset == 0);
+
+ fail_unless (gst_buffer_find_memory (buf, 5, 4, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 1);
+ fail_unless (offset == 5);
+
+ fail_unless (gst_buffer_find_memory (buf, 5, 5, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 1);
+ fail_unless (offset == 5);
+
+ fail_unless (gst_buffer_find_memory (buf, 5, 6, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 2);
+ fail_unless (offset == 5);
+
+ fail_unless (gst_buffer_find_memory (buf, 10, 6, &idx, &length, &offset));
+ fail_unless (idx == 2);
+ fail_unless (length == 1);
+ fail_unless (offset == 0);
+
+ fail_unless (gst_buffer_find_memory (buf, 10, 15, &idx, &length, &offset));
+ fail_unless (idx == 2);
+ fail_unless (length == 1);
+ fail_unless (offset == 0);
+
+ fail_unless (gst_buffer_find_memory (buf, 11, 14, &idx, &length, &offset));
+ fail_unless (idx == 2);
+ fail_unless (length == 1);
+ fail_unless (offset == 1);
+
+ fail_unless (gst_buffer_find_memory (buf, 0, 25, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 2);
+ fail_unless (offset == 0);
+
+ fail_unless (gst_buffer_find_memory (buf, 24, 0, &idx, &length, &offset));
+ fail_unless (idx == 2);
+ fail_unless (length == 1);
+ fail_unless (offset == 14);
+
+ fail_if (gst_buffer_find_memory (buf, 11, 15, &idx, &length, &offset));
+ fail_if (gst_buffer_find_memory (buf, 0, 26, &idx, &length, &offset));
+ fail_if (gst_buffer_find_memory (buf, 25, 0, &idx, &length, &offset));
+
+ fail_unless (gst_buffer_find_memory (buf, 1, -1, &idx, &length, &offset));
+ fail_unless (idx == 1);
+ fail_unless (length == 3);
+ fail_unless (offset == 1);
+
+ gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+
static Suite *
gst_buffer_suite (void)
{
@@ -626,13 +697,14 @@ gst_buffer_suite (void)
tcase_add_test (tc_chain, test_subbuffer);
tcase_add_test (tc_chain, test_subbuffer_make_writable);
tcase_add_test (tc_chain, test_make_writable);
- tcase_add_test (tc_chain, test_is_span_fast);
tcase_add_test (tc_chain, test_span);
tcase_add_test (tc_chain, test_metadata_writable);
tcase_add_test (tc_chain, test_copy);
tcase_add_test (tc_chain, test_try_new_and_alloc);
tcase_add_test (tc_chain, test_size);
tcase_add_test (tc_chain, test_resize);
+ tcase_add_test (tc_chain, test_map);
+ tcase_add_test (tc_chain, test_find);
return s;
}