7 GstStaticPadTemplate templ = GST_STATIC_PAD_TEMPLATE ("default",
13 main (int argc, gchar * argv[])
16 GstPadTemplate *padtempl;
20 gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
22 gst_init (&argc, &argv);
27 iters = atoi (argv[1]);
31 //gst_alloc_trace_print_all ();
33 g_print ("starting pad test\n");
36 g_print ("DEBUG: creating new pad with name padname\n");
38 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
40 g_print ("DEBUG: unreffing new pad with name padname\n");
41 gst_object_unref (GST_OBJECT (pad));
42 g_print ("create/unref new pad %ld\n", vmsize () - usage1);
44 for (i = 0; i < iters; i++) {
46 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
48 gst_object_unref (GST_OBJECT (pad));
50 g_print ("create/unref %d pads %ld\n", iters, vmsize () - usage1);
53 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
55 g_assert (GST_OBJECT_IS_FLOATING (pad));
56 gst_object_ref (GST_OBJECT (pad));
57 gst_object_sink (GST_OBJECT (pad));
58 g_assert (!GST_OBJECT_IS_FLOATING (pad));
59 gst_object_unref (GST_OBJECT (pad));
60 g_print ("create/ref/sink/unref new pad %ld\n", vmsize () - usage1);
62 for (i = 0; i < iters; i++) {
64 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
66 gst_object_ref (GST_OBJECT (pad));
67 gst_object_sink (GST_OBJECT (pad));
68 gst_object_unref (GST_OBJECT (pad));
70 g_print ("create/ref/sink/unref %d pads %ld\n", iters, vmsize () - usage1);
73 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
75 gst_object_ref (GST_OBJECT (pad));
76 gst_object_unref (GST_OBJECT (pad));
77 gst_object_unref (GST_OBJECT (pad));
78 g_print ("create/ref/unref/unref pad %ld\n", vmsize () - usage1);
80 for (i = 0; i < iters; i++) {
82 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
84 gst_object_ref (GST_OBJECT (pad));
85 gst_object_unref (GST_OBJECT (pad));
86 gst_object_unref (GST_OBJECT (pad));
88 g_print ("create/ref/unref/unref %d pads %ld\n", iters, vmsize () - usage1);
91 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
93 gst_object_ref (GST_OBJECT (pad));
94 gst_object_unref (GST_OBJECT (pad));
95 gst_object_unref (GST_OBJECT (pad));
96 g_print ("create/ref/unref/unref pad %ld\n", vmsize () - usage1);
98 for (i = 0; i < iters; i++) {
100 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
102 gst_object_ref (GST_OBJECT (pad));
103 gst_object_unref (GST_OBJECT (pad));
104 gst_object_unref (GST_OBJECT (pad));
106 g_print ("create/ref/unref/unref %d pads %ld\n", iters, vmsize () - usage1);
108 for (i = 0; i < iters; i++) {
110 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
112 gst_object_ref (GST_OBJECT (pad));
113 gst_pad_set_name (pad, "testing123");
114 gst_object_unref (GST_OBJECT (pad));
115 gst_pad_set_name (pad, "testing123");
116 gst_object_unref (GST_OBJECT (pad));
118 g_print ("create/ref/unref/unref %d pads %ld with name\n", iters,
122 gst_pad_new_from_template (gst_static_pad_template_get (&templ),
124 for (i = 0; i < iters; i++) {
125 gst_pad_set_name (pad, "testing");
127 gst_object_unref (GST_OBJECT (pad));
128 g_print ("set name %d times %ld\n", iters, vmsize () - usage1);
130 for (i = 0; i < iters; i++) {
132 gst_pad_template_new ("sink%d", GST_PAD_SINK, GST_PAD_SOMETIMES,
133 gst_caps_new_any ());
134 gst_object_unref (GST_OBJECT (padtempl));
136 g_print ("%d padtemplates create/unref %ld\n", iters, vmsize () - usage1);
138 for (i = 0; i < iters; i++) {
140 gst_pad_template_new ("sink%d", GST_PAD_SINK, GST_PAD_SOMETIMES,
141 gst_caps_new_any ());
142 pad = gst_pad_new_from_template (padtempl, "sink1");
143 gst_object_unref (GST_OBJECT (pad));
145 g_print ("%d pads create/unref from padtemplate %ld\n", iters,
148 g_print ("leaked: %ld\n", vmsize () - usage1);
150 //gst_alloc_trace_print_all ();