tests: Fix event handling
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 13 May 2013 11:19:27 +0000 (13:19 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 13 May 2013 11:19:27 +0000 (13:19 +0200)
tests/check/elements/amrnbenc.c
tests/check/elements/mpeg2dec.c
tests/check/elements/x264enc.c
tests/check/elements/xingmux.c

index 935dcbc..bea108d 100644 (file)
@@ -75,7 +75,7 @@ setup_amrnbenc (void)
       "could not set to playing");
 
   caps = gst_caps_from_string (SRC_CAPS);
-  fail_unless (gst_pad_set_caps (srcpad, caps));
+  gst_check_setup_events (srcpad, amrnbenc, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   buffers = NULL;
index 228c649..56de619 100644 (file)
@@ -32,7 +32,7 @@ static GstPad *mysrcpad, *mysinkpad;
 /* mpeg2 video created with gst-launch-0.10 videotestsrc num-buffers=32 pattern=blue ! "video/x-raw,format=(string)I420,width=176,height=144,framerate=(fraction)25/1" ! ffenc_mpeg2video ! filesink location=test.mpg
 */
 
-guint8 test_stream1[] = {
+static const guint8 test_stream1[] = {
   0x00, 0x00, 0x01, 0xb3, 0x0b, 0x00, 0x90, 0x13,
   0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5,
   0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
@@ -548,7 +548,7 @@ guint8 test_stream1[] = {
   0x09, 0x12, 0x70, 0xb3, 0x80,
 };
 
-guint test_stream_sizes[] = {
+static const guint test_stream_sizes[] = {
   497, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
   497, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
   497, 90
@@ -557,7 +557,7 @@ guint test_stream_sizes[] = {
 /* mpeg2 video created with gst-launch-0.10 videotestsrc num-buffers=32 pattern=blue ! "video/x-raw,format=(string)I420,width=183,height=217,framerate=(fraction)25/1" ! ffenc_mpeg2video ! filesink location=test.mpg
 */
 
-guint8 test_stream2[] = {
+static const guint8 test_stream2[] = {
   0x00, 0x00, 0x01, 0xb3, 0x0b, 0x70, 0xd9, 0x13,
   0xff, 0xff, 0xe0, 0x28, 0x00, 0x00, 0x01, 0xb5,
   0x14, 0x8a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
@@ -1688,7 +1688,7 @@ guint8 test_stream2[] = {
   0xa5, 0xfb, 0x85, 0xe6, 0xc0
 };
 
-guint test_stream2_sizes[] = {
+static const guint test_stream2_sizes[] = {
   803, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
   803, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
   803, 228
@@ -1710,7 +1710,7 @@ GstElement *
 setup_mpeg2dec ()
 {
   GstElement *mpeg2dec;
-  GstSegment seg;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_mpeg2dec");
   mpeg2dec = gst_check_setup_element ("mpeg2dec");
@@ -1719,8 +1719,11 @@ setup_mpeg2dec ()
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
-  gst_segment_init (&seg, GST_FORMAT_TIME);
-  gst_pad_push_event (mysrcpad, gst_event_new_segment (&seg));
+  caps = gst_caps_new_simple ("video/mpeg",
+      "systemstream", G_TYPE_BOOLEAN, FALSE,
+      "mpegversion", G_TYPE_INT, 2, NULL);
+  gst_check_setup_events (mysrcpad, mpeg2dec, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
 
   return mpeg2dec;
 }
@@ -1759,8 +1762,8 @@ GST_START_TEST (test_decode_stream1)
   for (i = 0; i < G_N_ELEMENTS (test_stream_sizes); i++) {
     inbuffer =
         gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
-        test_stream1 + offset, test_stream_sizes[i], 0, test_stream_sizes[i],
-        NULL, NULL);
+        (guint8 *) test_stream1 + offset, test_stream_sizes[i], 0,
+        test_stream_sizes[i], NULL, NULL);
     offset += test_stream_sizes[i];
     ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
     gst_buffer_ref (inbuffer);
@@ -1835,8 +1838,8 @@ GST_START_TEST (test_decode_stream2)
   for (i = 0; i < G_N_ELEMENTS (test_stream2_sizes); i++) {
     inbuffer =
         gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
-        test_stream2 + offset, test_stream2_sizes[i], 0, test_stream2_sizes[i],
-        NULL, NULL);
+        (guint8 *) test_stream2 + offset, test_stream2_sizes[i], 0,
+        test_stream2_sizes[i], NULL, NULL);
     offset += test_stream2_sizes[i];
     ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
     gst_buffer_ref (inbuffer);
index 899ba64..f62a80c 100644 (file)
@@ -39,30 +39,40 @@ static GstPad *mysrcpad, *mysinkpad;
                            "width = (int) 384, " \
                            "height = (int) 288, " \
                            "framerate = (fraction) 25/1"
-
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (MPEG_CAPS_STRING));
-
-static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (VIDEO_CAPS_STRING));
-
-
 static GstElement *
-setup_x264enc (void)
+setup_x264enc (const gchar * profile, const gchar * stream_format)
 {
+  GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (MPEG_CAPS_STRING));
+
+  GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (VIDEO_CAPS_STRING));
   GstElement *x264enc;
+  gchar *caps_str;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_x264enc");
+
+  caps_str = g_strdup_printf ("%s, profile = (string) %s, "
+      "stream-format = (string) %s", MPEG_CAPS_STRING, profile, stream_format);
+  sinktemplate.static_caps.string = caps_str;
+
   x264enc = gst_check_setup_element ("x264enc");
   mysrcpad = gst_check_setup_src_pad (x264enc, &srctemplate);
   mysinkpad = gst_check_setup_sink_pad (x264enc, &sinktemplate);
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
+  caps = gst_caps_from_string (VIDEO_CAPS_STRING);
+  gst_check_setup_events (mysrcpad, x264enc, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
+  g_free (caps_str);
+
   return x264enc;
 }
 
@@ -128,23 +138,11 @@ test_video_profile (const gchar * profile, gint profile_id)
   gsize size;
   int i, num_buffers;
 
-  x264enc = setup_x264enc ();
+  x264enc = setup_x264enc (profile, "avc");
   fail_unless (gst_element_set_state (x264enc,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
-  caps = gst_caps_from_string (MPEG_CAPS_STRING);
-  gst_caps_set_simple (caps, "profile", G_TYPE_STRING, profile, NULL);
-  /* code below assumes avc */
-  gst_caps_set_simple (caps, "stream-format", G_TYPE_STRING, "avc", NULL);
-  gst_pad_set_caps (mysinkpad, caps);
-  gst_caps_unref (caps);
-  gst_pad_use_fixed_caps (mysinkpad);
-
-  caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-
   /* corresponds to I420 buffer for the size mentioned in the caps */
   inbuffer = gst_buffer_new_and_alloc (384 * 288 * 3 / 2);
   /* makes valgrind's memcheck happier */
index be16b56..a770588 100644 (file)
@@ -48,6 +48,7 @@ GstElement *
 setup_xingmux ()
 {
   GstElement *xingmux;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_xingmux");
   xingmux = gst_check_setup_element ("xingmux");
@@ -56,6 +57,11 @@ setup_xingmux ()
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
+  caps = gst_caps_new_simple ("audio/mpeg",
+      "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL);
+  gst_check_setup_events (mysrcpad, xingmux, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   return xingmux;
 }