GST_END_TEST;
static GstBuffer *
-buffer_from_string (gchar * str)
+buffer_from_string (const gchar * str)
{
guint size;
GstBuffer *buf;
+ gpointer data;
size = strlen (str);
buf = gst_buffer_new_and_alloc (size);
- memcpy (GST_BUFFER_DATA (buf), str, size);
- GST_BUFFER_SIZE (buf) = size;
+
+ data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
+ memcpy (data, str, size);
+ gst_buffer_unmap (buf, data, size);
return buf;
}
+static gboolean
+buffer_compare (GstBuffer * buf, const gchar * str, gsize size)
+{
+ gboolean res;
+ gpointer data;
+
+ data = gst_buffer_map (buf, NULL, NULL, GST_MAP_READ);
+ res = memcmp (data, str, size) == 0;
+ GST_DEBUG ("%s <-> %s: %d", (gchar *) data, str, res);
+ gst_buffer_unmap (buf, data, size);
+
+ return res;
+}
+
GST_START_TEST (test_push_buffer_list_compat)
{
GstPad *src, *sink;
GstPadLinkReturn plr;
GstCaps *caps;
GstBufferList *list;
- GstBufferListIterator *it;
GstBuffer *buffer;
+ guint len;
/* setup */
sink = gst_pad_new ("sink", GST_PAD_SINK);
/* test */
/* adding to a buffer list will drop the ref to the buffer */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- gst_buffer_list_iterator_add (it, buffer_from_string ("List"));
- gst_buffer_list_iterator_add (it, buffer_from_string ("Group"));
- gst_buffer_list_iterator_add_group (it);
- gst_buffer_list_iterator_add (it, buffer_from_string ("Another"));
- gst_buffer_list_iterator_add (it, buffer_from_string ("List"));
- gst_buffer_list_iterator_add (it, buffer_from_string ("Group"));
- gst_buffer_list_iterator_free (it);
+ len = gst_buffer_list_len (list);
+
+ gst_buffer_list_add (list, buffer_from_string ("ListGroup"));
+ gst_buffer_list_add (list, buffer_from_string ("AnotherListGroup"));
+
fail_unless (gst_pad_push_list (src, list) == GST_FLOW_OK);
fail_unless_equals_int (g_list_length (buffers), 2);
buffer = GST_BUFFER (buffers->data);
ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
- fail_unless (memcmp (GST_BUFFER_DATA (buffer), "ListGroup", 9) == 0);
+ fail_unless (buffer_compare (buffer, "ListGroup", 9));
gst_buffer_unref (buffer);
buffers = g_list_delete_link (buffers, buffers);
buffer = GST_BUFFER (buffers->data);
ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
- fail_unless (memcmp (GST_BUFFER_DATA (buffer), "AnotherListGroup", 16) == 0);
+ fail_unless (buffer_compare (buffer, "AnotherListGroup", 16));
gst_buffer_unref (buffer);
buffers = g_list_delete_link (buffers, buffers);
fail_unless (buffers == NULL);
/* test some of the macros */
ret = GST_FLOW_UNEXPECTED;
- fail_unless (GST_FLOW_IS_FATAL (ret));
- fail_if (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "unexpected"));
quark = gst_flow_to_quark (ret);
fail_if (strcmp (g_quark_to_string (quark), "unexpected"));
ret = GST_FLOW_RESEND;
- fail_if (GST_FLOW_IS_FATAL (ret));
- fail_unless (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "resend"));
quark = gst_flow_to_quark (ret);
fail_if (strcmp (g_quark_to_string (quark), "resend"));
/* custom returns */
ret = GST_FLOW_CUSTOM_SUCCESS;
- fail_if (GST_FLOW_IS_FATAL (ret));
- fail_unless (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "custom-success"));
quark = gst_flow_to_quark (ret);
fail_if (strcmp (g_quark_to_string (quark), "custom-success"));
ret = GST_FLOW_CUSTOM_ERROR;
- fail_unless (GST_FLOW_IS_FATAL (ret));
- fail_if (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "custom-error"));
quark = gst_flow_to_quark (ret);
fail_if (strcmp (g_quark_to_string (quark), "custom-error"));
/* custom returns clamping */
ret = GST_FLOW_CUSTOM_SUCCESS + 2;
- fail_if (GST_FLOW_IS_FATAL (ret));
- fail_unless (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "custom-success"));
quark = gst_flow_to_quark (ret);
fail_if (strcmp (g_quark_to_string (quark), "custom-success"));
ret = GST_FLOW_CUSTOM_ERROR - 2;
- fail_unless (GST_FLOW_IS_FATAL (ret));
- fail_if (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "custom-error"));
quark = gst_flow_to_quark (ret);
fail_if (strcmp (g_quark_to_string (quark), "custom-error"));
/* unknown values */
ret = GST_FLOW_CUSTOM_ERROR + 2;
- fail_unless (GST_FLOW_IS_FATAL (ret));
- fail_if (GST_FLOW_IS_SUCCESS (ret));
fail_if (strcmp (gst_flow_get_name (ret), "unknown"));
quark = gst_flow_to_quark (ret);
fail_unless (quark == 0);
/* Should fail if src pad caps are incompatible with sink pad caps */
gst_pad_set_caps (src, caps);
- gst_buffer_set_caps (buffer, caps);
gst_buffer_ref (buffer);
fail_unless (gst_pad_push (src, buffer) == GST_FLOW_NOT_NEGOTIATED);
ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
GST_END_TEST;
-/* gst_pad_get_caps should return a copy of the caps */
-GST_START_TEST (test_get_caps_must_be_copy)
-{
- GstPad *pad;
- GstCaps *caps;
- GstPadTemplate *templ;
-
- caps = gst_caps_new_any ();
- templ =
- gst_pad_template_new ("test_templ", GST_PAD_SRC, GST_PAD_ALWAYS, caps);
-
- pad = gst_pad_new_from_template (templ, NULL);
- fail_unless (GST_PAD_CAPS (pad) == NULL, "caps present on pad");
- /* This is a writable copy ! */
- caps = gst_pad_get_caps (pad);
-
- /* we must own the caps */
- ASSERT_OBJECT_REFCOUNT (caps, "caps", 1);
-
- /* cleanup */
- gst_object_unref (templ);
- gst_caps_unref (caps);
- gst_object_unref (pad);
-}
-
-GST_END_TEST;
-
static void
unblock_async_cb (GstPad * pad, gboolean blocked, gpointer user_data)
{
tcase_add_test (tc_chain, test_push_negotiation);
tcase_add_test (tc_chain, test_src_unref_unlink);
tcase_add_test (tc_chain, test_sink_unref_unlink);
- tcase_add_test (tc_chain, test_get_caps_must_be_copy);
tcase_add_test (tc_chain, test_block_async);
#if 0
tcase_add_test (tc_chain, test_block_async_replace_callback);