gstconfig.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /* GStreamer
  2. * Copyright (C) 1999,2000 Erik Walthinsen <[email protected]>
  3. * 2004,2005 Wim Taymans <[email protected]>
  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., 51 Franklin St, Fifth Floor,
  20. * Boston, MA 02110-1301, USA.
  21. */
  22. /**
  23. * SECTION:gstconfig
  24. * @short_description: Build configuration options
  25. *
  26. * This describes the configuration options for GStreamer. When building
  27. * GStreamer there are a lot of parts (known internally as "subsystems" ) that
  28. * can be disabled for various reasons. The most common reasons are speed and
  29. * size, which is important because GStreamer is designed to run on embedded
  30. * systems.
  31. *
  32. * If a subsystem is disabled, most of this changes are done in an API
  33. * compatible way, so you don't need to adapt your code in most cases. It is
  34. * never done in an ABI compatible way though. So if you want to disable a
  35. * subsystem, you have to rebuild all programs depending on GStreamer, too.
  36. *
  37. * If a subsystem is disabled in GStreamer, a value is defined in
  38. * &lt;gst/gst.h&gt;. You can check this if you do subsystem-specific stuff.
  39. * <example id="example-gstconfig">
  40. * <title>Doing subsystem specific things</title>
  41. * <programlisting>
  42. * &hash;ifndef GST_DISABLE_GST_DEBUG
  43. * // do stuff specific to the debugging subsystem
  44. * &hash;endif // GST_DISABLE_GST_DEBUG
  45. * </programlisting>
  46. * </example>
  47. */
  48. #ifndef __GST_CONFIG_H__
  49. #define __GST_CONFIG_H__
  50. /* trick gtk-doc into believing these symbols are defined (yes, it's ugly) */
  51. #if 0
  52. #define GST_DISABLE_GST_DEBUG 1
  53. #define GST_DISABLE_PARSE 1
  54. #define GST_DISABLE_TRACE 1
  55. #define GST_DISABLE_ALLOC_TRACE 1
  56. #define GST_DISABLE_REGISTRY 1
  57. #define GST_DISABLE_PLUGIN 1
  58. #define GST_HAVE_GLIB_2_8 1
  59. #endif
  60. /***** default padding of structures *****/
  61. #define GST_PADDING 4
  62. #define GST_PADDING_INIT { NULL }
  63. /***** padding for very extensible base classes *****/
  64. #define GST_PADDING_LARGE 20
  65. /***** disabling of subsystems *****/
  66. /**
  67. * GST_DISABLE_GST_DEBUG:
  68. *
  69. * Configures the inclusion of the debugging subsystem
  70. */
  71. /* #undef GST_DISABLE_GST_DEBUG */
  72. /**
  73. * GST_DISABLE_PARSE:
  74. *
  75. * Configures the inclusion of the gst-launch parser
  76. */
  77. /* #undef GST_DISABLE_PARSE */
  78. /**
  79. * GST_DISABLE_TRACE:
  80. *
  81. * Configures the inclusion of a resource tracing facility
  82. * (seems to be unused)
  83. */
  84. /* #undef GST_DISABLE_TRACE */
  85. /**
  86. * GST_DISABLE_ALLOC_TRACE:
  87. *
  88. * Configures the use of a memory tracer based on the resource tracer
  89. * if TRACE is disabled, ALLOC_TRACE is disabled as well
  90. */
  91. /* #undef GST_DISABLE_ALLOC_TRACE */
  92. /**
  93. * GST_DISABLE_REGISTRY:
  94. *
  95. * Configures the use of the plugin registry.
  96. * If one disables this, required plugins need to be loaded and registered
  97. * manually
  98. */
  99. /* #undef GST_DISABLE_REGISTRY */
  100. /* FIXME: test and document these! */
  101. /* Configures the use of external plugins */
  102. /* #undef GST_DISABLE_PLUGIN */
  103. /* whether or not the CPU supports unaligned access */
  104. #define GST_HAVE_UNALIGNED_ACCESS 1
  105. /**
  106. * GST_EXPORT:
  107. *
  108. * Export the given variable from the built shared object.
  109. *
  110. * On Windows, this exports the variable from the DLL.
  111. * On other platforms, this gets defined to "extern".
  112. */
  113. /**
  114. * GST_PLUGIN_EXPORT:
  115. *
  116. * Export the plugin's definition.
  117. *
  118. * On Windows, this exports the plugin definition from the DLL.
  119. * On other platforms, this gets defined as a no-op.
  120. */
  121. #ifdef _MSC_VER
  122. #define GST_PLUGIN_EXPORT __declspec(dllexport) extern
  123. #ifdef GST_EXPORTS
  124. #define GST_EXPORT __declspec(dllexport) extern
  125. #else
  126. #define GST_EXPORT __declspec(dllimport) extern
  127. #endif
  128. #else /* not _MSC_VER */
  129. #define GST_PLUGIN_EXPORT
  130. #if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
  131. #define GST_EXPORT extern __attribute__ ((visibility ("default")))
  132. #else
  133. #define GST_EXPORT extern
  134. #endif
  135. #endif
  136. #endif /* __GST_CONFIG_H__ */