tee: First deactivate the pad and then remove it when releasing pads
[platform/upstream/gstreamer.git] / plugins / elements / gstelements.c
1 /* GStreamer
2  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3  *                    2000 Wim Taymans <wtay@chello.be>
4  *
5  * gstelements.c:
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  */
22
23
24 #ifdef HAVE_CONFIG_H
25 #  include "config.h"
26 #endif
27
28 #include <gst/gst.h>
29
30 #include "gstcapsfilter.h"
31 #include "gstconcat.h"
32 #include "gstdataurisrc.h"
33 #include "gstdownloadbuffer.h"
34 #include "gstfakesink.h"
35 #include "gstfakesrc.h"
36 #include "gstfdsrc.h"
37 #include "gstfdsink.h"
38 #include "gstfilesink.h"
39 #include "gstfilesrc.h"
40 #include "gstfunnel.h"
41 #include "gstidentity.h"
42 #include "gstinputselector.h"
43 #include "gstoutputselector.h"
44 #include "gstmultiqueue.h"
45 #include "gstqueue.h"
46 #include "gstqueue2.h"
47 #include "gsttee.h"
48 #include "gsttypefindelement.h"
49 #include "gstvalve.h"
50 #include "gststreamiddemux.h"
51
52 static gboolean
53 plugin_init (GstPlugin * plugin)
54 {
55   if (!gst_element_register (plugin, "capsfilter", GST_RANK_NONE,
56           gst_capsfilter_get_type ()))
57     return FALSE;
58   if (!gst_element_register (plugin, "concat", GST_RANK_NONE,
59           gst_concat_get_type ()))
60     return FALSE;
61   if (!gst_element_register (plugin, "dataurisrc", GST_RANK_PRIMARY,
62           gst_data_uri_src_get_type ()))
63     return FALSE;
64   if (!gst_element_register (plugin, "downloadbuffer", GST_RANK_NONE,
65           gst_download_buffer_get_type ()))
66     return FALSE;
67   if (!gst_element_register (plugin, "fakesrc", GST_RANK_NONE,
68           gst_fake_src_get_type ()))
69     return FALSE;
70   if (!gst_element_register (plugin, "fakesink", GST_RANK_NONE,
71           gst_fake_sink_get_type ()))
72     return FALSE;
73 #if defined(HAVE_SYS_SOCKET_H) || defined(_MSC_VER)
74   if (!gst_element_register (plugin, "fdsrc", GST_RANK_NONE,
75           gst_fd_src_get_type ()))
76     return FALSE;
77   if (!gst_element_register (plugin, "fdsink", GST_RANK_NONE,
78           gst_fd_sink_get_type ()))
79     return FALSE;
80 #endif
81   if (!gst_element_register (plugin, "filesrc", GST_RANK_PRIMARY,
82           gst_file_src_get_type ()))
83     return FALSE;
84   if (!gst_element_register (plugin, "funnel", GST_RANK_NONE,
85           gst_funnel_get_type ()))
86     return FALSE;
87   if (!gst_element_register (plugin, "identity", GST_RANK_NONE,
88           gst_identity_get_type ()))
89     return FALSE;
90   if (!gst_element_register (plugin, "input-selector", GST_RANK_NONE,
91           gst_input_selector_get_type ()))
92     return FALSE;
93   if (!gst_element_register (plugin, "output-selector", GST_RANK_NONE,
94           gst_output_selector_get_type ()))
95     return FALSE;
96   if (!gst_element_register (plugin, "queue", GST_RANK_NONE,
97           gst_queue_get_type ()))
98     return FALSE;
99   if (!gst_element_register (plugin, "queue2", GST_RANK_NONE,
100           gst_queue2_get_type ()))
101     return FALSE;
102   if (!gst_element_register (plugin, "filesink", GST_RANK_PRIMARY,
103           gst_file_sink_get_type ()))
104     return FALSE;
105   if (!gst_element_register (plugin, "tee", GST_RANK_NONE, gst_tee_get_type ()))
106     return FALSE;
107   if (!gst_element_register (plugin, "typefind", GST_RANK_NONE,
108           gst_type_find_element_get_type ()))
109     return FALSE;
110   if (!gst_element_register (plugin, "multiqueue", GST_RANK_NONE,
111           gst_multi_queue_get_type ()))
112     return FALSE;
113   if (!gst_element_register (plugin, "valve", GST_RANK_NONE,
114           gst_valve_get_type ()))
115     return FALSE;
116
117   if (!gst_element_register (plugin, "streamiddemux", GST_RANK_PRIMARY,
118           gst_streamid_demux_get_type ()))
119     return FALSE;
120
121   return TRUE;
122 }
123
124 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, coreelements,
125     "GStreamer core elements", plugin_init, VERSION, GST_LICENSE,
126     GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);