diff options
author | Julien Moutte <julien@moutte.net> | 2006-02-25 19:07:41 +0000 |
---|---|---|
committer | Julien Moutte <julien@moutte.net> | 2006-02-25 19:07:41 +0000 |
commit | 675a5afed05aa4a67f8eb1ac7ee4b6db96923a7e (patch) | |
tree | 07c36573a2f154805b4b1ec11c2d8d5387a0427f /tests | |
parent | 36e55fc8582b7c256ddf606ff096eafd10c237ab (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.c | 7 | ||||
-rw-r--r-- | tests/check/elements/cmmlenc.c | 33 |
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 (); |