2 * Copyright (C) 2004 Wim Taymans <wim@fluendo.com>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
14 * You should have received a copy of the GNU General Public
15 * License along with this library; if not, write to the Free
16 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 main (gint argc, gchar ** argv)
26 GstElement *pipeline, *thread, *bin, *src, *queue, *id1, *sink;
28 gst_init (&argc, &argv);
30 g_print ("setting up...\n");
32 pipeline = gst_element_factory_make ("pipeline", NULL);
34 src = gst_element_factory_make ("fakesrc", NULL);
36 queue = gst_element_factory_make ("queue", NULL);
39 thread = gst_element_factory_make ("thread", NULL);
41 bin = gst_element_factory_make ("bin", NULL);
43 id1 = gst_element_factory_make ("identity", NULL);
45 sink = gst_element_factory_make ("fakesink", NULL);
48 gst_bin_add_many (GST_BIN (bin), id1, sink, NULL);
49 gst_bin_add_many (GST_BIN (thread), bin, NULL);
50 gst_bin_add_many (GST_BIN (pipeline), src, queue, thread, NULL);
52 gst_element_link_pads (src, "src", queue, "sink");
53 gst_element_link_pads (queue, "src", id1, "sink");
54 gst_element_link_pads (id1, "src", sink, "sink");
56 if (gst_element_set_state (pipeline, GST_STATE_PLAYING) != GST_STATE_SUCCESS)
57 g_assert_not_reached ();
59 g_print ("unlinking...\n");
61 gst_object_ref (GST_OBJECT (queue));
62 gst_bin_remove (GST_BIN (pipeline), queue);
63 gst_object_ref (GST_OBJECT (bin));
64 gst_bin_remove (GST_BIN (thread), bin);