|
1 /* GStreamer |
|
2 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> |
|
3 * 2004,2005 Wim Taymans <wim@fluendo.com> |
|
4 * |
|
5 * gstconfig.h: GST_DISABLE_* macros for build configuration |
|
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., 59 Temple Place - Suite 330, |
|
20 * Boston, MA 02111-1307, USA. |
|
21 */ |
|
22 |
|
23 /** |
|
24 * SECTION:gstconfig |
|
25 * @short_description: Build configuration options |
|
26 * |
|
27 * This describes the configuration options for GStreamer. When building |
|
28 * GStreamer there are a lot of parts (known internally as "subsystems" ) that |
|
29 * can be disabled for various reasons. The most common reasons are speed and |
|
30 * size, which is important because GStreamer is designed to run on embedded |
|
31 * systems. |
|
32 * |
|
33 * If a subsystem is disabled, most of this changes are done in an API |
|
34 * compatible way, so you don't need to adapt your code in most cases. It is |
|
35 * never done in an ABI compatible way though. So if you want to disable a |
|
36 * suybsystem, you have to rebuild all programs depending on GStreamer, too. |
|
37 * |
|
38 * If a subsystem is disabled in GStreamer, a value is defined in |
|
39 * <gst/gst.h>. You can check this if you do subsystem-specific stuff. |
|
40 * <example id="example-gstconfig"> |
|
41 * <title>Doing subsystem specific things</title> |
|
42 * <programlisting> |
|
43 * &hash;ifndef GST_DISABLE_GST_DEBUG |
|
44 * // do stuff specific to the debugging subsystem |
|
45 * &hash;endif // GST_DISABLE_GST_DEBUG |
|
46 * </programlisting> |
|
47 * </example> |
|
48 */ |
|
49 |
|
50 #ifndef __GST_CONFIG_H__ |
|
51 #define __GST_CONFIG_H__ |
|
52 |
|
53 /* trick gtk-doc into believing these symbols are defined (yes, it's ugly) */ |
|
54 |
|
55 #if 0 |
|
56 #define GST_DISABLE_GST_DEBUG 1 |
|
57 #define GST_DISABLE_LOADSAVE 1 |
|
58 #define GST_DISABLE_PARSE 1 |
|
59 #define GST_DISABLE_TRACE 1 |
|
60 #define GST_DISABLE_ALLOC_TRACE 1 |
|
61 #define GST_DISABLE_REGISTRY 1 |
|
62 #define GST_DISABLE_ENUMTYPES 1 |
|
63 #define GST_DISABLE_INDEX 1 |
|
64 #define GST_DISABLE_PLUGIN 1 |
|
65 #define GST_DISABLE_URI 1 |
|
66 #define GST_DISABLE_XML 1 |
|
67 #define GST_DISABLE_LOADSAVE_REGISTRY 1 |
|
68 #define GST_HAVE_GLIB_2_8 1 |
|
69 #endif |
|
70 |
|
71 /***** default padding of structures *****/ |
|
72 #define GST_PADDING 4 |
|
73 #define GST_PADDING_INIT { NULL } |
|
74 |
|
75 /***** padding for very extensible base classes *****/ |
|
76 #define GST_PADDING_LARGE 20 |
|
77 |
|
78 /***** disabling of subsystems *****/ |
|
79 |
|
80 /** |
|
81 * GST_DISABLE_GST_DEBUG: |
|
82 * |
|
83 * Configures the inclusion of the debugging subsystem |
|
84 */ |
|
85 /* #undef GST_DISABLE_GST_DEBUG */ |
|
86 |
|
87 /** |
|
88 * GST_DISABLE_LOADSAVE: |
|
89 * |
|
90 * Configures the inclusion of the plugin graph xml-serialisation |
|
91 * (was used in 0.8 by gst-editor) |
|
92 */ |
|
93 #define GST_DISABLE_LOADSAVE 1 |
|
94 |
|
95 /** |
|
96 * GST_DISABLE_PARSE: |
|
97 * |
|
98 * Configures the inclusion of the gst-lauch parser |
|
99 */ |
|
100 /* #undef GST_DISABLE_PARSE */ |
|
101 |
|
102 /** |
|
103 * GST_DISABLE_TRACE: |
|
104 * |
|
105 * Configures the inclusion of a resource tracing facillity |
|
106 * (seems to be unused) |
|
107 */ |
|
108 /* #undef GST_DISABLE_TRACE */ |
|
109 |
|
110 /** |
|
111 * GST_DISABLE_ALLOC_TRACE: |
|
112 * |
|
113 * Configures the use of a memory tracer based on the resource tracer |
|
114 * if TRACE is disabled, ALLOC_TRACE is disabled as well |
|
115 */ |
|
116 /* #undef GST_DISABLE_ALLOC_TRACE */ |
|
117 |
|
118 /** |
|
119 * GST_DISABLE_REGISTRY: |
|
120 * |
|
121 * Configures the use of the plugin registry. |
|
122 * If one disables this, required plugins need to be loaded and registered |
|
123 * manually |
|
124 */ |
|
125 /* #undef GST_DISABLE_REGISTRY */ |
|
126 |
|
127 /** |
|
128 * GST_DISABLE_XML: |
|
129 * |
|
130 * Configures the use libxml2. This setting is derived from the settings of |
|
131 * %GST_DISABLE_LOADSAVE and %GST_DISABLE_REGISTRY (in the xml registry case). |
|
132 */ |
|
133 #define GST_DISABLE_XML 1 |
|
134 |
|
135 /* FIXME: test and document these! */ |
|
136 /* Configure the use of glib enumtypes (useful for introspection) |
|
137 * see http://bugzilla.gnome.org/show_bug.cgi?id=342564 |
|
138 */ |
|
139 /* #undef GST_DISABLE_ENUMTYPES */ |
|
140 /* Configure the use of indizies for seeking |
|
141 * (not used in plugins right now) |
|
142 */ |
|
143 /* #undef GST_DISABLE_INDEX */ |
|
144 /* Configures the use of external plugins */ |
|
145 /* #undef GST_DISABLE_PLUGIN */ |
|
146 /* Configures the use of uri-handlers */ |
|
147 /* #undef GST_DISABLE_URI */ |
|
148 |
|
149 /* printf extension format */ |
|
150 /** |
|
151 * GST_PTR_FORMAT: |
|
152 * |
|
153 * printf format type used to debug GStreamer types. |
|
154 * This can only be used on types whose size is >= sizeof(gpointer). |
|
155 */ |
|
156 #define GST_PTR_FORMAT "P" |
|
157 /** |
|
158 * GST_SEGMENT_FORMAT: |
|
159 * |
|
160 * printf format type used to debug GStreamer segments. |
|
161 * This can only be used on pointers to GstSegment structures. |
|
162 * |
|
163 * Since: 0.10.10 |
|
164 */ |
|
165 #define GST_SEGMENT_FORMAT "Q" |
|
166 |
|
167 /* whether or not GST_PTR_FORMAT or GST_SEGMENT_FORMAT are using |
|
168 * the printf extension mechanism. This is for internal use in our |
|
169 * header files so we know whether we can use G_GNUC_PRINTF or not */ |
|
170 #define GST_USING_PRINTF_EXTENSION |
|
171 |
|
172 /* whether or not the CPU supports unaligned access */ |
|
173 #define GST_HAVE_UNALIGNED_ACCESS 1 |
|
174 |
|
175 /* FIXME: 0.11 (remove) |
|
176 * whether or not we are using glib 2.8 api, e.g. atomic gobject |
|
177 * refcounting */ |
|
178 #define GST_HAVE_GLIB_2_8 1 |
|
179 |
|
180 /***** Deal with XML stuff, we have to handle both loadsave and registry *****/ |
|
181 /* FIXME: move include to where we need it */ |
|
182 /*#if (! (defined(GST_DISABLE_LOADSAVE) && defined(GST_DISABLE_REGISTRY)) )*/ |
|
183 #ifndef GST_DISABLE_XML |
|
184 # include <libxml/parser.h> |
|
185 #else |
|
186 /* FIXME: 0.11 (replace by GST_DISABLE_XML) */ |
|
187 # define GST_DISABLE_LOADSAVE_REGISTRY |
|
188 #endif |
|
189 |
|
190 /** |
|
191 * GST_EXPORT: |
|
192 * |
|
193 * Export the given variable from the built shared object. |
|
194 * |
|
195 * On Windows, this exports the variable from the DLL. |
|
196 * On other platforms, this gets defined to "extern". |
|
197 */ |
|
198 /** |
|
199 * GST_PLUGIN_EXPORT: |
|
200 * |
|
201 * Export the plugin's definition. |
|
202 * |
|
203 * On Windows, this exports the plugin definition from the DLL. |
|
204 * On other platforms, this gets defined as a no-op. |
|
205 */ |
|
206 #ifdef _MSC_VER |
|
207 #define GST_PLUGIN_EXPORT __declspec(dllexport) extern |
|
208 #ifdef GST_EXPORTS |
|
209 #define GST_EXPORT __declspec(dllexport) extern |
|
210 #else |
|
211 #define GST_EXPORT __declspec(dllimport) extern |
|
212 #endif |
|
213 #else /* not _MSC_VER */ |
|
214 #define GST_PLUGIN_EXPORT |
|
215 #define GST_EXPORT extern |
|
216 #endif |
|
217 |
|
218 #endif /* __GST_CONFIG_H__ */ |