summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJulien Moutte <julien@moutte.net>2006-02-25 19:07:41 +0000
committerJulien Moutte <julien@moutte.net>2006-02-25 19:07:41 +0000
commit675a5afed05aa4a67f8eb1ac7ee4b6db96923a7e (patch)
tree07c36573a2f154805b4b1ec11c2d8d5387a0427f /tests
parent36e55fc8582b7c256ddf606ff096eafd10c237ab (diff)
Fix a memleak in gst_cmml_track_list_add_clip.
Original commit message from CVS: 2006-02-25 Alessandro Decina <alessandro@nnva.org> * ext/annodex/Makefile.am: * ext/annodex/gstannodex.c: * ext/annodex/gstcmmldec.c: * ext/annodex/gstcmmlenc.c: * ext/annodex/gstcmmlparser.c: * ext/annodex/gstcmmlparser.h: * ext/annodex/gstcmmlutils.c: * tests/check/elements/cmmldec.c: * tests/check/elements/cmmlenc.c: Fix a memleak in gst_cmml_track_list_add_clip. Handle overflows in clip's start and end times. Add the "encoded" parameter to cmmldec and cmmlenc caps. Do not parse junk at the end of a CMML preamble buffer. Register a libxml error handler to not print stuff on stderr. Check for bad clip start and end times in the testsuites.
Diffstat (limited to 'tests')
-rw-r--r--tests/check/elements/cmmldec.c7
-rw-r--r--tests/check/elements/cmmlenc.c33
2 files changed, 25 insertions, 15 deletions
diff --git a/tests/check/elements/cmmldec.c b/tests/check/elements/cmmldec.c
index 67b896a8..57219576 100644
--- a/tests/check/elements/cmmldec.c
+++ b/tests/check/elements/cmmldec.c
@@ -25,14 +25,14 @@
#include <gst/tag/tag.h>
-#define SINK_CAPS "text/xml"
+#define SINK_CAPS "text/x-cmml"
#define SRC_CAPS "text/x-cmml"
#define IDENT_HEADER \
"CMML\x00\x00\x00\x00"\
"\x03\x00\x00\x00"\
- "\x01\x00\x00\x00\x00\x00\x00\x00"\
"\xe8\x03\x00\x00\x00\x00\x00\x00"\
+ "\x01\x00\x00\x00\x00\x00\x00\x00"\
"\x20"
#define XML_PREAMBLE \
@@ -269,11 +269,8 @@ GST_START_TEST (test_dec)
/* send EOS to flush clip-2 and clip-3 */
gst_pad_send_event (GST_PAD_PEER (srcpad), gst_event_new_eos ());
- printf ("Check1\n");
check_clip ("clip-1", "default", "0:00:01.234", NULL);
- printf ("Check2\n");
check_clip ("clip-2", "othertrack", "0:00:04.321", NULL);
- printf ("Check3\n");
check_clip ("clip-3", "default", "100:59:59.678", NULL);
check_end ();
diff --git a/tests/check/elements/cmmlenc.c b/tests/check/elements/cmmlenc.c
index b6f532d1..ca664805 100644
--- a/tests/check/elements/cmmlenc.c
+++ b/tests/check/elements/cmmlenc.c
@@ -26,13 +26,13 @@
#include <gst/tag/tag.h>
#define SINK_CAPS "text/x-cmml"
-#define SRC_CAPS "text/xml"
+#define SRC_CAPS "text/x-cmml"
#define IDENT_HEADER \
"CMML\x00\x00\x00\x00"\
"\x03\x00\x00\x00"\
- "\x01\x00\x00\x00\x00\x00\x00\x00"\
"\xe8\x03\x00\x00\x00\x00\x00\x00"\
+ "\x01\x00\x00\x00\x00\x00\x00\x00"\
"\x20"
#define XML_PREAMBLE \
@@ -154,7 +154,7 @@ setup_cmmlenc ()
"granule-rate-denominator", &granulerate_d,
"granule-shift", &granuleshift, NULL);
- granulerate = GST_SECOND * granulerate_n / granulerate_d;
+ granulerate = GST_SECOND * granulerate_d / granulerate_n;
buffers = NULL;
return cmmlenc;
}
@@ -240,7 +240,7 @@ push_clip (const gchar * name, const gchar * track,
if (track == NULL)
track = "default";
- clip = g_strdup_printf (CLIP_TEMPLATE, name, track, start, end);
+ clip = g_strdup_printf (CLIP_TEMPLATE, name, track, start);
push_data (name, clip, strlen (clip), expected_return);
g_free (clip);
}
@@ -317,17 +317,30 @@ GST_START_TEST (test_bad_start_time)
check_headers ();
- push_clip ("clip-1", "default", "1.234", NULL, GST_FLOW_OK);
- check_clip ("clip-1", "default", 1234 * granulerate, 0);
+ push_clip ("clip-1", "default", "1000:00:00.000", NULL, GST_FLOW_OK);
+ check_clip ("clip-1", "default", (guint64) 3600000 * 1000 * granulerate, 0);
- push_clip ("clip-bad", "default", "1.1000", NULL, GST_FLOW_ERROR);
-
- push_clip ("clip-2", NULL, "5.678", NULL, GST_FLOW_OK);
- check_clip ("clip-2", "default", 5678 * granulerate, 1234 * granulerate);
+ /* keyindex overflow: npt:1000:00:00.000 doesn't fit in 32 bits */
+ push_clip ("clip-2", NULL, "5.678", NULL, GST_FLOW_ERROR);
+ /* other tracks should work */
push_clip ("clip-3", "othertrack", "9.123", NULL, GST_FLOW_OK);
check_clip ("clip-3", "othertrack", 9123 * granulerate, 0);
+ /* bad msecs */
+ push_clip ("clip-bad-msecs", "default", "0.1000", NULL, GST_FLOW_ERROR);
+
+ /* bad secs */
+ push_clip ("clip-bad-secs", "default", "00:00:60.123", NULL, GST_FLOW_ERROR);
+
+ /* bad minutes */
+ push_clip ("clip-bad-minutes", "default", "00:60:12.345",
+ NULL, GST_FLOW_ERROR);
+
+ /* bad hours */
+ push_clip ("clip-bad-hours", "default", "10000:12:34.567",
+ NULL, GST_FLOW_ERROR);
+
push_end ();
check_end ();