summaryrefslogtreecommitdiffstats
path: root/tests/check/elements
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2007-03-30 04:50:11 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2007-03-30 04:50:11 +0000
commit14c0bebf4b587eb747649987eb09aeab3e31dbe8 (patch)
treec8fe4ecce8fe614311480da285ad86d1690f4d23 /tests/check/elements
parent365437cbc0a210a71756528331c5b3b6fd667813 (diff)
downloadgst-plugins-bad-14c0bebf4b587eb747649987eb09aeab3e31dbe8.tar.gz
gst-plugins-bad-14c0bebf4b587eb747649987eb09aeab3e31dbe8.tar.bz2
gst-plugins-bad-14c0bebf4b587eb747649987eb09aeab3e31dbe8.zip
ext/wavpack/: Don't play audioconvert. As wavpack wants/outputs all samples with width==32 and depth=[1,32] accept th...
Original commit message from CVS: * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset), (gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps), (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain): * ext/wavpack/gstwavpackdec.h: * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset), (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_chain): * ext/wavpack/gstwavpackenc.h: * ext/wavpack/gstwavpackparse.c: Don't play audioconvert. As wavpack wants/outputs all samples with width==32 and depth=[1,32] accept this and let audioconvert convert to accepted formats instead of doing it in the element for n*8 depths. This also adds support for non-n*8 depths and prevents some useless memory allocations. Fixes #421598 Also add a workaround for bug #421542 in wavpackenc for now... * tests/check/elements/wavpackdec.c: (GST_START_TEST): * tests/check/elements/wavpackenc.c: (GST_START_TEST): * tests/check/elements/wavpackparse.c: (GST_START_TEST): Consider the change above in the unit tests and test if the correct caps are accepted and set. Also check for GST_BUFFER_OFFSET_END in the wavpackparse unit test. * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps): Set caps on the src pad as soon as possible. * ext/wavpack/gstwavpackdec.h: * ext/wavpack/gstwavpackcommon.h: * ext/wavpack/gstwavpackenc.h: * ext/wavpack/gstwavpackparse.h: Fix indention. gst-indent is now called by cicl.
Diffstat (limited to 'tests/check/elements')
-rw-r--r--tests/check/elements/wavpackdec.c16
-rw-r--r--tests/check/elements/wavpackenc.c19
-rw-r--r--tests/check/elements/wavpackparse.c8
3 files changed, 32 insertions, 11 deletions
diff --git a/tests/check/elements/wavpackdec.c b/tests/check/elements/wavpackdec.c
index b058a5e2..812944cf 100644
--- a/tests/check/elements/wavpackdec.c
+++ b/tests/check/elements/wavpackdec.c
@@ -51,7 +51,13 @@ guint8 test_frame[] = {
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS_ANY);
+ GST_STATIC_CAPS ("audio/x-raw-int, "
+ "width = (int) 32, "
+ "depth = (int) 16, "
+ "channels = (int) 1, "
+ "rate = (int) 44100, "
+ "endianness = (int) BYTE_ORDER, " "signed = (boolean) true")
+ );
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
@@ -117,11 +123,11 @@ GST_START_TEST (test_decode_frame)
outbuffer = GST_BUFFER (buffers->data);
fail_if (outbuffer == NULL);
- /* uncompressed data should be 51200 bytes */
- fail_unless_equals_int (GST_BUFFER_SIZE (outbuffer), 51200);
+ /* uncompressed data should be 102400 bytes */
+ fail_unless_equals_int (GST_BUFFER_SIZE (outbuffer), 102400);
- /* and all 51200 bytes must be 0, i.e. silence */
- for (i = 0; i < 51200; i++)
+ /* and all 102400 bytes must be 0, i.e. silence */
+ for (i = 0; i < 102400; i++)
fail_unless_equals_int (GST_BUFFER_DATA (outbuffer)[i], 0);
ASSERT_BUFFER_REFCOUNT (outbuffer, "outbuffer", 1);
diff --git a/tests/check/elements/wavpackenc.c b/tests/check/elements/wavpackenc.c
index 3ac3ea3f..a22d2ac8 100644
--- a/tests/check/elements/wavpackenc.c
+++ b/tests/check/elements/wavpackenc.c
@@ -31,7 +31,7 @@ static GstPad *mysrcpad, *mysinkpad;
static GstBus *bus;
#define RAW_CAPS_STRING "audio/x-raw-int, " \
- "width = (int) 16, " \
+ "width = (int) 32, " \
"depth = (int) 16, " \
"channels = (int) 1, " \
"rate = (int) 44100, " \
@@ -47,11 +47,20 @@ static GstBus *bus;
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS_ANY);
+ GST_STATIC_CAPS ("audio/x-wavpack, "
+ "width = (int) 16, "
+ "channels = (int) 1, "
+ "rate = (int) 44100, " "framed = (boolean) true"));
+
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS_ANY);
+ GST_STATIC_CAPS ("audio/x-raw-int, "
+ "width = (int) 32, "
+ "depth = (int) 16, "
+ "channels = (int) 1, "
+ "rate = (int) 44100, "
+ "endianness = (int) BYTE_ORDER, " "signed = (boolean) true"));
GstElement *
setup_wavpackenc ()
@@ -126,8 +135,8 @@ GST_START_TEST (test_encode_silence)
fail_unless_equals_int (GST_BUFFER_TIMESTAMP (outbuffer), 0);
fail_unless_equals_int (GST_BUFFER_OFFSET (outbuffer), 0);
- fail_unless_equals_int (GST_BUFFER_DURATION (outbuffer), 11337868);
- fail_unless_equals_int (GST_BUFFER_OFFSET_END (outbuffer), 500);
+ fail_unless_equals_int (GST_BUFFER_DURATION (outbuffer), 5668934);
+ fail_unless_equals_int (GST_BUFFER_OFFSET_END (outbuffer), 250);
fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), "wvpk", 4) == 0,
"Failed to encode to valid Wavpack frames");
diff --git a/tests/check/elements/wavpackparse.c b/tests/check/elements/wavpackparse.c
index 80cef399..7a3b8cc1 100644
--- a/tests/check/elements/wavpackparse.c
+++ b/tests/check/elements/wavpackparse.c
@@ -59,7 +59,11 @@ guint8 test_file[] = {
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS_ANY);
+ GST_STATIC_CAPS ("audio/x-wavpack, "
+ "width = (int) 16, "
+ "channels = (int) 1, "
+ "rate = (int) 44100, " "framed = (boolean) TRUE"));
+
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
@@ -175,11 +179,13 @@ GST_START_TEST (test_parsing_valid_frames)
case 0:{
fail_unless_equals_int (GST_BUFFER_TIMESTAMP (outbuffer), 0);
fail_unless_equals_int (GST_BUFFER_OFFSET (outbuffer), 0);
+ fail_unless_equals_int (GST_BUFFER_OFFSET_END (outbuffer), 25600);
break;
}
case 1:{
fail_unless_equals_int (GST_BUFFER_TIMESTAMP (outbuffer), 580498866);
fail_unless_equals_int (GST_BUFFER_OFFSET (outbuffer), 25600);
+ fail_unless_equals_int (GST_BUFFER_OFFSET_END (outbuffer), 51200);
break;
}
}