diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2012-03-28 12:44:44 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2012-03-28 12:51:58 +0200 |
commit | bb876588ac998061cef3b3343a8c00f01d119063 (patch) | |
tree | 3e9b2253471084f6c9cad3fc5b3444fd5bdebdef /tests | |
parent | fd675fa38529aa5a43a4176674d8d3c01b82d8b3 (diff) |
buffer: unify buffer merge methods
Add gst_buffer_append() which appends the memory blocks from one buffer to
another. Remove the old inefficient _merge() and _join() methods which forced a
premature memcpy in most cases.
Remove the _is_span() and _span() methods they are not needed anymore now that
we can _append(). Merging and spanning will be delayed until mapping or maybe
not at all when the element can deal with the different memory blocks.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check/gst/gstbuffer.c | 72 |
1 files changed, 9 insertions, 63 deletions
diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c index d009e68658..190825e24d 100644 --- a/tests/check/gst/gstbuffer.c +++ b/tests/check/gst/gstbuffer.c @@ -115,35 +115,6 @@ GST_START_TEST (test_subbuffer) 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_unref (buffer); -} - -GST_END_TEST; - GST_START_TEST (test_span) { GstBuffer *buffer, *sub1, *sub2, *span; @@ -155,10 +126,9 @@ GST_START_TEST (test_span) 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"); @@ -171,7 +141,9 @@ 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); + 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); @@ -185,7 +157,9 @@ GST_START_TEST (test_span) ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1); /* span from non-contiguous buffers will create new buffers */ - span = gst_buffer_span (sub2, 0, sub1, 4); + 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); @@ -198,33 +172,6 @@ GST_START_TEST (test_span) gst_buffer_unref (span); ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1); - /* span with different sizes */ - span = gst_buffer_span (sub1, 1, sub2, 3); - fail_unless (gst_buffer_map (span, &info, GST_MAP_READ)); - fail_unless (info.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 (info.data, "ata", 3) == 0, - "spanned buffer contains the wrong data"); - gst_buffer_unmap (span, &info); - gst_buffer_unref (span); - ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1); - - span = gst_buffer_span (sub2, 0, sub1, 3); - fail_unless (gst_buffer_map (span, &info, GST_MAP_READ)); - fail_unless (info.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 (info.data, "tad", 3) == 0, - "spanned buffer contains the wrong data"); - gst_buffer_unmap (span, &info); - gst_buffer_unref (span); - ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1); - /* clean up */ gst_buffer_unref (sub1); gst_buffer_unref (sub2); @@ -667,7 +614,6 @@ 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); |