Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/GStreamer/gst-plugins-good.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2012-01-03 13:26:48 +0400
committerWim Taymans <wim.taymans@collabora.co.uk>2012-01-03 13:26:48 +0400
commit08d8b81005f58460d50858edfd4c4f5d0de16ea8 (patch)
tree6004c2e492680b85b4566b4b2e70c799ebd42e23 /tests/check/elements/deinterleave.c
parent27ee8931ddb47a522cc2602aa3ed68e9ffa2adf7 (diff)
tests: fix some unit tests
Remove unit test for GstIndex. Make some other unit tests compile
Diffstat (limited to 'tests/check/elements/deinterleave.c')
-rw-r--r--tests/check/elements/deinterleave.c124
1 files changed, 63 insertions, 61 deletions
diff --git a/tests/check/elements/deinterleave.c b/tests/check/elements/deinterleave.c
index 3a0eb0c38..f4cb201dd 100644
--- a/tests/check/elements/deinterleave.c
+++ b/tests/check/elements/deinterleave.c
@@ -46,51 +46,46 @@ static GstElement *deinterleave;
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-raw-float, "
- "width = (int) 32, "
- "channels = (int) 1, "
- "rate = (int) {32000, 48000}, " "endianness = (int) BYTE_ORDER"));
+ GST_STATIC_CAPS ("audio/x-raw, "
+ "format = (string) " GST_AUDIO_NE (F32) ", "
+ "channels = (int) 1, " "rate = (int) {32000, 48000}"));
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("audio/x-raw-float, "
- "width = (int) 32, "
- "channels = (int) { 2, 3 }, "
- "rate = (int) {32000, 48000}, " "endianness = (int) BYTE_ORDER"));
+ GST_STATIC_CAPS ("audio/x-raw, "
+ "format = (string) " GST_AUDIO_NE (F32) ", "
+ "channels = (int) { 2, 3 }, " "rate = (int) {32000, 48000}"));
#define CAPS_32khz \
- "audio/x-raw-float, " \
- "width = (int) 32, " \
+ "audio/x-raw, " \
+ "format = (string) "GST_AUDIO_NE (F32) ", " \
"channels = (int) 2, " \
- "rate = (int) 32000, " \
- "endianness = (int) BYTE_ORDER"
+ "rate = (int) 32000"
#define CAPS_48khz \
- "audio/x-raw-float, " \
- "width = (int) 32, " \
+ "audio/x-raw, " \
+ "format = (string) "GST_AUDIO_NE (F32) ", " \
"channels = (int) 2, " \
- "rate = (int) 48000, " \
- "endianness = (int) BYTE_ORDER"
+ "rate = (int) 48000"
#define CAPS_48khz_3CH \
- "audio/x-raw-float, " \
- "width = (int) 32, " \
+ "audio/x-raw, " \
+ "format = (string) "GST_AUDIO_NE (F32) ", " \
"channels = (int) 3, " \
- "rate = (int) 48000, " \
- "endianness = (int) BYTE_ORDER"
+ "rate = (int) 48000"
static GstFlowReturn
-deinterleave_chain_func (GstPad * pad, GstBuffer * buffer)
+deinterleave_chain_func (GstPad * pad, GstObject * parent, GstBuffer * buffer)
{
gint i;
+ gsize size;
gfloat *indata;
fail_unless (GST_IS_BUFFER (buffer));
- fail_unless_equals_int (GST_BUFFER_SIZE (buffer), 48000 * sizeof (gfloat));
- fail_unless (GST_BUFFER_DATA (buffer) != NULL);
-
- indata = (gfloat *) GST_BUFFER_DATA (buffer);
+ indata = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+ fail_unless_equals_int (size, 48000 * sizeof (gfloat));
+ fail_unless (indata != NULL);
if (strcmp (GST_PAD_NAME (pad), "sink0") == 0) {
for (i = 0; i < 48000; i++)
@@ -101,7 +96,7 @@ deinterleave_chain_func (GstPad * pad, GstBuffer * buffer)
} else {
g_assert_not_reached ();
}
-
+ gst_buffer_unmap (buffer, indata, size);
gst_buffer_unref (buffer);
return GST_FLOW_OK;
@@ -165,12 +160,13 @@ GST_START_TEST (test_2_channels)
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
inbuf = gst_buffer_new_and_alloc (2 * 48000 * sizeof (gfloat));
- indata = (gfloat *) GST_BUFFER_DATA (inbuf);
+ indata = gst_buffer_map (inbuf, NULL, NULL, GST_MAP_WRITE);
for (i = 0; i < 2 * 48000; i += 2) {
indata[i] = -1.0;
indata[i + 1] = 1.0;
}
- gst_buffer_set_caps (inbuf, caps);
+ gst_buffer_unmap (inbuf, indata, -1);
+ gst_pad_set_caps (mysrcpad, caps);
fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -225,12 +221,13 @@ GST_START_TEST (test_2_channels_1_linked)
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
inbuf = gst_buffer_new_and_alloc (2 * 48000 * sizeof (gfloat));
- indata = (gfloat *) GST_BUFFER_DATA (inbuf);
+ indata = gst_buffer_map (inbuf, NULL, NULL, GST_MAP_WRITE);
for (i = 0; i < 2 * 48000; i += 2) {
indata[i] = -1.0;
indata[i + 1] = 1.0;
}
- gst_buffer_set_caps (inbuf, caps);
+ gst_buffer_unmap (inbuf, indata, -1);
+ gst_pad_set_caps (mysrcpad, caps);
fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -285,12 +282,13 @@ GST_START_TEST (test_2_channels_caps_change)
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
inbuf = gst_buffer_new_and_alloc (2 * 48000 * sizeof (gfloat));
- indata = (gfloat *) GST_BUFFER_DATA (inbuf);
+ indata = gst_buffer_map (inbuf, NULL, NULL, GST_MAP_WRITE);
for (i = 0; i < 2 * 48000; i += 2) {
indata[i] = -1.0;
indata[i + 1] = 1.0;
}
- gst_buffer_set_caps (inbuf, caps);
+ gst_buffer_unmap (inbuf, indata, -1);
+ gst_pad_set_caps (mysrcpad, caps);
fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -298,12 +296,13 @@ GST_START_TEST (test_2_channels_caps_change)
gst_pad_set_caps (mysrcpad, caps2);
inbuf = gst_buffer_new_and_alloc (2 * 48000 * sizeof (gfloat));
- indata = (gfloat *) GST_BUFFER_DATA (inbuf);
+ indata = gst_buffer_map (inbuf, NULL, NULL, GST_MAP_WRITE);
for (i = 0; i < 2 * 48000; i += 2) {
indata[i] = -1.0;
indata[i + 1] = 1.0;
}
- gst_buffer_set_caps (inbuf, caps2);
+ gst_buffer_unmap (inbuf, indata, -1);
+ gst_pad_set_caps (mysrcpad, caps2);
/* Should work fine because the caps changed in a compatible way */
fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -314,13 +313,14 @@ GST_START_TEST (test_2_channels_caps_change)
gst_pad_set_caps (mysrcpad, caps2);
inbuf = gst_buffer_new_and_alloc (3 * 48000 * sizeof (gfloat));
- indata = (gfloat *) GST_BUFFER_DATA (inbuf);
+ indata = gst_buffer_map (inbuf, NULL, NULL, GST_MAP_WRITE);
for (i = 0; i < 3 * 48000; i += 3) {
indata[i] = -1.0;
indata[i + 1] = 1.0;
indata[i + 2] = 0.0;
}
- gst_buffer_set_caps (inbuf, caps2);
+ gst_buffer_unmap (inbuf, indata, -1);
+ gst_pad_set_caps (mysrcpad, caps2);
/* Should break because the caps changed in an incompatible way */
fail_if (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -376,15 +376,13 @@ src_handoff_float32_8ch (GstElement * src, GstBuffer * buf, GstPad * pad,
{
GstAudioChannelPosition layout[NUM_CHANNELS];
GstCaps *caps;
- gfloat *data;
+ gfloat *data, *p;
guint size, i, c;
- caps = gst_caps_new_simple ("audio/x-raw-float",
- "width", G_TYPE_INT, 32,
- "depth", G_TYPE_INT, 32,
+ caps = gst_caps_new_simple ("audio/x-raw",
+ "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
"channels", G_TYPE_INT, NUM_CHANNELS,
- "rate", G_TYPE_INT, SAMPLE_RATE,
- "endianness", G_TYPE_INT, G_BYTE_ORDER, NULL);
+ "rate", G_TYPE_INT, SAMPLE_RATE, NULL);
for (i = 0; i < NUM_CHANNELS; ++i)
layout[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
@@ -392,42 +390,43 @@ src_handoff_float32_8ch (GstElement * src, GstBuffer * buf, GstPad * pad,
set_channel_positions (caps, NUM_CHANNELS, layout);
size = sizeof (gfloat) * SAMPLES_PER_BUFFER * NUM_CHANNELS;
- data = (gfloat *) g_malloc (size);
-
- GST_BUFFER_MALLOCDATA (buf) = (guint8 *) data;
- GST_BUFFER_DATA (buf) = (guint8 *) data;
- GST_BUFFER_SIZE (buf) = size;
-
- GST_BUFFER_OFFSET (buf) = 0;
- GST_BUFFER_TIMESTAMP (buf) = 0;
-
- GST_BUFFER_CAPS (buf) = caps;
+ data = p = (gfloat *) g_malloc (size);
for (i = 0; i < SAMPLES_PER_BUFFER; ++i) {
for (c = 0; c < NUM_CHANNELS; ++c) {
- *data = (gfloat) ((i * NUM_CHANNELS) + c);
- ++data;
+ *p = (gfloat) ((i * NUM_CHANNELS) + c);
+ ++p;
}
}
+ gst_buffer_take_memory (buf, -1, gst_memory_new_wrapped (0, data, g_free,
+ size, 0, size));
+
+ GST_BUFFER_OFFSET (buf) = 0;
+ GST_BUFFER_TIMESTAMP (buf) = 0;
+
+ /* FIXME, caps */
}
-static gboolean
-float_buffer_check_probe (GstPad * pad, GstBuffer * buf, gpointer userdata)
+static GstPadProbeReturn
+float_buffer_check_probe (GstPad * pad, GstPadProbeInfo * info,
+ gpointer userdata)
{
gfloat *data;
+ gsize size;
guint padnum, numpads;
guint num, i;
GstCaps *caps;
GstStructure *s;
GstAudioChannelPosition *pos;
gint channels;
+ GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER (info);
fail_unless_equals_int (sscanf (GST_PAD_NAME (pad), "src%u", &padnum), 1);
numpads = pads_created;
/* Check caps */
- caps = GST_BUFFER_CAPS (buf);
+ caps = gst_pad_get_current_caps (pad);
fail_unless (caps != NULL);
s = gst_caps_get_structure (caps, 0);
fail_unless (gst_structure_get_int (s, "channels", &channels));
@@ -436,9 +435,10 @@ float_buffer_check_probe (GstPad * pad, GstBuffer * buf, gpointer userdata)
pos = gst_audio_get_channel_positions (s);
fail_unless (pos != NULL && pos[0] == GST_AUDIO_CHANNEL_POSITION_NONE);
g_free (pos);
+ gst_caps_unref (caps);
- data = (gfloat *) GST_BUFFER_DATA (buf);
- num = GST_BUFFER_SIZE (buf) / sizeof (gfloat);
+ data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+ num = size / sizeof (gfloat);
/* Check buffer content */
for (i = 0; i < num; ++i) {
@@ -453,8 +453,9 @@ float_buffer_check_probe (GstPad * pad, GstBuffer * buf, gpointer userdata)
/* check that the first channel is on pad src0, the second on src1 etc. */
fail_unless_equals_int (rest, padnum);
}
+ gst_buffer_unmap (buffer, data, size);
- return TRUE; /* don't drop data */
+ return GST_PAD_PROBE_OK; /* don't drop data */
}
static void
@@ -477,7 +478,8 @@ pad_added_setup_data_check_float32_8ch_cb (GstElement * deinterleave,
fail_unless_equals_int (gst_pad_link (pad, sinkpad), GST_PAD_LINK_OK);
gst_object_unref (sinkpad);
- gst_pad_add_buffer_probe (pad, G_CALLBACK (float_buffer_check_probe), NULL);
+ gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, float_buffer_check_probe,
+ NULL, NULL);
gst_element_set_state (sink, GST_STATE_PLAYING);
gst_element_set_state (queue, GST_STATE_PLAYING);