base: GST_EXPORT -> GST_BASE_API

We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
diff --git a/libs/gst/base/Makefile.am b/libs/gst/base/Makefile.am
index 5e83157..76551f8 100644
--- a/libs/gst/base/Makefile.am
+++ b/libs/gst/base/Makefile.am
@@ -28,6 +28,7 @@
 
 libgstbase_@GST_API_VERSION@include_HEADERS =	\
 	base.h			\
+	base-prelude.h		\
 	gstadapter.h		\
 	gstaggregator.h		\
 	gstbaseparse.h		\
diff --git a/libs/gst/base/base-prelude.h b/libs/gst/base/base-prelude.h
new file mode 100644
index 0000000..4392817
--- /dev/null
+++ b/libs/gst/base/base-prelude.h
@@ -0,0 +1,31 @@
+/* GStreamer Base Library
+ * Copyright (C) 2018 GStreamer developers
+ *
+ * base-prelude.h: prelude include header for gst-base library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_BASE_PRELUDE_H__
+#define __GST_BASE_PRELUDE_H__
+
+#include <gst/gst.h>
+
+#ifndef GST_BASE_API
+#define GST_BASE_API GST_EXPORT
+#endif
+
+#endif /* __GST_BASE_PRELUDE_H__ */
diff --git a/libs/gst/base/base.h b/libs/gst/base/base.h
index c2abd4e..b680e66 100644
--- a/libs/gst/base/base.h
+++ b/libs/gst/base/base.h
@@ -22,6 +22,8 @@
 #ifndef __GST_BASE_H__
 #define __GST_BASE_H__
 
+#include <gst/base/base-prelude.h>
+
 #include <gst/base/gstadapter.h>
 #include <gst/base/gstaggregator.h>
 #include <gst/base/gstbaseparse.h>
diff --git a/libs/gst/base/gstadapter.h b/libs/gst/base/gstadapter.h
index 7215939..3e7610e 100644
--- a/libs/gst/base/gstadapter.h
+++ b/libs/gst/base/gstadapter.h
@@ -22,6 +22,8 @@
 #ifndef __GST_ADAPTER_H__
 #define __GST_ADAPTER_H__
 
+#include <gst/base/base-prelude.h>
+
 G_BEGIN_DECLS
 
 
@@ -46,97 +48,97 @@
 typedef struct _GstAdapter GstAdapter;
 typedef struct _GstAdapterClass GstAdapterClass;
 
-GST_EXPORT
+GST_BASE_API
 GType                   gst_adapter_get_type            (void);
 
-GST_EXPORT
+GST_BASE_API
 GstAdapter *            gst_adapter_new                 (void) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 void                    gst_adapter_clear               (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 void                    gst_adapter_push                (GstAdapter *adapter, GstBuffer* buf);
 
-GST_EXPORT
+GST_BASE_API
 gconstpointer           gst_adapter_map                 (GstAdapter *adapter, gsize size);
 
-GST_EXPORT
+GST_BASE_API
 void                    gst_adapter_unmap               (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 void                    gst_adapter_copy                (GstAdapter *adapter, gpointer dest,
                                                          gsize offset, gsize size);
-GST_EXPORT
+GST_BASE_API
 GBytes *                gst_adapter_copy_bytes          (GstAdapter *adapter,
                                                          gsize offset, gsize size);
-GST_EXPORT
+GST_BASE_API
 void                    gst_adapter_flush               (GstAdapter *adapter, gsize flush);
 
-GST_EXPORT
+GST_BASE_API
 gpointer                gst_adapter_take                (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer*              gst_adapter_take_buffer         (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GList*                  gst_adapter_take_list           (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer *             gst_adapter_take_buffer_fast    (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GstBufferList *         gst_adapter_take_buffer_list    (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer*              gst_adapter_get_buffer          (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GList*                  gst_adapter_get_list            (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer *             gst_adapter_get_buffer_fast     (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 GstBufferList *         gst_adapter_get_buffer_list     (GstAdapter *adapter, gsize nbytes);
 
-GST_EXPORT
+GST_BASE_API
 gsize                   gst_adapter_available           (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 gsize                   gst_adapter_available_fast      (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime            gst_adapter_prev_pts            (GstAdapter *adapter, guint64 *distance);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime            gst_adapter_prev_dts            (GstAdapter *adapter, guint64 *distance);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime            gst_adapter_prev_pts_at_offset  (GstAdapter * adapter, gsize offset, guint64 * distance);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime            gst_adapter_prev_dts_at_offset  (GstAdapter * adapter, gsize offset, guint64 * distance);
 
-GST_EXPORT
+GST_BASE_API
 guint64                 gst_adapter_prev_offset         (GstAdapter *adapter, guint64 *distance);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime            gst_adapter_pts_at_discont      (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime            gst_adapter_dts_at_discont      (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 guint64                 gst_adapter_offset_at_discont   (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 guint64                 gst_adapter_distance_from_discont (GstAdapter *adapter);
 
-GST_EXPORT
+GST_BASE_API
 gssize                  gst_adapter_masked_scan_uint32  (GstAdapter * adapter, guint32 mask,
                                                          guint32 pattern, gsize offset, gsize size);
-GST_EXPORT
+GST_BASE_API
 gssize                  gst_adapter_masked_scan_uint32_peek  (GstAdapter * adapter, guint32 mask,
                                                          guint32 pattern, gsize offset, gsize size, guint32 * value);
 
diff --git a/libs/gst/base/gstaggregator.h b/libs/gst/base/gstaggregator.h
index d191d94..67d52dc 100644
--- a/libs/gst/base/gstaggregator.h
+++ b/libs/gst/base/gstaggregator.h
@@ -22,6 +22,7 @@
 #define __GST_AGGREGATOR_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -94,23 +95,23 @@
   gpointer      _gst_reserved[GST_PADDING_LARGE];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType gst_aggregator_pad_get_type           (void);
 
 /****************************
  * GstAggregatorPad methods *
  ***************************/
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer * gst_aggregator_pad_pop_buffer   (GstAggregatorPad *  pad);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer * gst_aggregator_pad_peek_buffer  (GstAggregatorPad *  pad);
 
-GST_EXPORT
+GST_BASE_API
 gboolean    gst_aggregator_pad_drop_buffer  (GstAggregatorPad *  pad);
 
-GST_EXPORT
+GST_BASE_API
 gboolean    gst_aggregator_pad_is_eos       (GstAggregatorPad *  pad);
 
 /*********************
@@ -310,29 +311,29 @@
  * GstAggregator methods *
  ************************/
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn  gst_aggregator_finish_buffer         (GstAggregator                *  aggregator,
                                                      GstBuffer                    *  buffer);
 
-GST_EXPORT
+GST_BASE_API
 void           gst_aggregator_set_src_caps          (GstAggregator                *  self,
                                                      GstCaps                      *  caps);
 
-GST_EXPORT
+GST_BASE_API
 void           gst_aggregator_set_latency           (GstAggregator                *  self,
                                                      GstClockTime                    min_latency,
                                                      GstClockTime                    max_latency);
 
-GST_EXPORT
+GST_BASE_API
 GType gst_aggregator_get_type(void);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime  gst_aggregator_get_latency           (GstAggregator                 *  self);
 
-GST_EXPORT
+GST_BASE_API
 GstBufferPool * gst_aggregator_get_buffer_pool     (GstAggregator                 * self);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_aggregator_get_allocator       (GstAggregator                 * self,
                                                     GstAllocator                 ** allocator,
                                                     GstAllocationParams           * params);
diff --git a/libs/gst/base/gstbaseparse.h b/libs/gst/base/gstbaseparse.h
index 8c69cf6..26c7e7b 100644
--- a/libs/gst/base/gstbaseparse.h
+++ b/libs/gst/base/gstbaseparse.h
@@ -23,6 +23,7 @@
 #define __GST_BASE_PARSE_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -275,86 +276,86 @@
   gpointer       _gst_reserved[GST_PADDING_LARGE - 2];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType           gst_base_parse_get_type (void);
 
-GST_EXPORT
+GST_BASE_API
 GType           gst_base_parse_frame_get_type (void);
 
-GST_EXPORT
+GST_BASE_API
 GstBaseParseFrame * gst_base_parse_frame_new  (GstBuffer              * buffer,
                                                GstBaseParseFrameFlags   flags,
                                                gint                     overhead);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_frame_init      (GstBaseParseFrame * frame);
 
-GST_EXPORT
+GST_BASE_API
 GstBaseParseFrame * gst_base_parse_frame_copy  (GstBaseParseFrame * frame);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_frame_free      (GstBaseParseFrame * frame);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_parse_push_frame      (GstBaseParse      * parse,
                                                 GstBaseParseFrame * frame);
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_parse_finish_frame    (GstBaseParse * parse,
                                                 GstBaseParseFrame * frame,
                                                 gint size);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_duration    (GstBaseParse      * parse,
                                                 GstFormat           fmt,
                                                 gint64              duration,
                                                 gint                interval);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_average_bitrate (GstBaseParse   * parse,
                                                     guint            bitrate);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_min_frame_size (GstBaseParse    * parse,
                                                    guint             min_size);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_has_timing_info (GstBaseParse   * parse,
                                                     gboolean         has_timing);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_drain           (GstBaseParse * parse);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_syncable    (GstBaseParse * parse,
                                                 gboolean       syncable);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_passthrough (GstBaseParse * parse,
                                                 gboolean       passthrough);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_pts_interpolation (GstBaseParse * parse,
                                                       gboolean pts_interpolate);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_infer_ts (GstBaseParse * parse,
                                              gboolean infer_ts);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_frame_rate  (GstBaseParse * parse,
                                                 guint          fps_num,
                                                 guint          fps_den,
                                                 guint          lead_in,
                                                 guint          lead_out);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_latency     (GstBaseParse * parse,
                                                 GstClockTime min_latency,
                                                 GstClockTime max_latency);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_parse_convert_default (GstBaseParse * parse,
                                                 GstFormat      src_format,
                                                 gint64         src_value,
                                                 GstFormat      dest_format,
                                                 gint64       * dest_value);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_parse_add_index_entry (GstBaseParse * parse,
                                                 guint64        offset,
                                                 GstClockTime   ts,
                                                 gboolean       key,
                                                 gboolean       force);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_set_ts_at_offset (GstBaseParse *parse,
                                                  gsize offset);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_parse_merge_tags       (GstBaseParse  * parse,
                                                  GstTagList    * tags,
                                                  GstTagMergeMode mode);
diff --git a/libs/gst/base/gstbasesink.h b/libs/gst/base/gstbasesink.h
index 891cd56..af8ca98 100644
--- a/libs/gst/base/gstbasesink.h
+++ b/libs/gst/base/gstbasesink.h
@@ -24,6 +24,7 @@
 #define __GST_BASE_SINK_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -201,118 +202,118 @@
   gpointer       _gst_reserved[GST_PADDING_LARGE];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType           gst_base_sink_get_type (void);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_sink_do_preroll        (GstBaseSink *sink, GstMiniObject *obj);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_sink_wait_preroll      (GstBaseSink *sink);
 
 /* synchronizing against the clock */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_sync          (GstBaseSink *sink, gboolean sync);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_sink_get_sync          (GstBaseSink *sink);
 
 /* Drop buffers which are out of segment */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_drop_out_of_segment (GstBaseSink *sink, gboolean drop_out_of_segment);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_sink_get_drop_out_of_segment (GstBaseSink *sink);
 
 /* dropping late buffers */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_max_lateness  (GstBaseSink *sink, gint64 max_lateness);
 
-GST_EXPORT
+GST_BASE_API
 gint64          gst_base_sink_get_max_lateness  (GstBaseSink *sink);
 
 /* performing QoS */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_qos_enabled   (GstBaseSink *sink, gboolean enabled);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_sink_is_qos_enabled    (GstBaseSink *sink);
 
 /* doing async state changes */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_async_enabled (GstBaseSink *sink, gboolean enabled);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_sink_is_async_enabled  (GstBaseSink *sink);
 
 /* tuning synchronisation */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_ts_offset     (GstBaseSink *sink, GstClockTimeDiff offset);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTimeDiff gst_base_sink_get_ts_offset    (GstBaseSink *sink);
 
 /* last sample */
 
-GST_EXPORT
+GST_BASE_API
 GstSample *     gst_base_sink_get_last_sample   (GstBaseSink *sink);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_last_sample_enabled (GstBaseSink *sink, gboolean enabled);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_sink_is_last_sample_enabled (GstBaseSink *sink);
 
 /* latency */
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_sink_query_latency     (GstBaseSink *sink, gboolean *live, gboolean *upstream_live,
                                                  GstClockTime *min_latency, GstClockTime *max_latency);
-GST_EXPORT
+GST_BASE_API
 GstClockTime    gst_base_sink_get_latency       (GstBaseSink *sink);
 
 /* render delay */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_render_delay  (GstBaseSink *sink, GstClockTime delay);
 
-GST_EXPORT
+GST_BASE_API
 GstClockTime    gst_base_sink_get_render_delay  (GstBaseSink *sink);
 
 /* blocksize */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_blocksize     (GstBaseSink *sink, guint blocksize);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_base_sink_get_blocksize     (GstBaseSink *sink);
 
 /* throttle-time */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_throttle_time (GstBaseSink *sink, guint64 throttle);
 
-GST_EXPORT
+GST_BASE_API
 guint64         gst_base_sink_get_throttle_time (GstBaseSink *sink);
 
 /* max-bitrate */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_sink_set_max_bitrate   (GstBaseSink *sink, guint64 max_bitrate);
 
-GST_EXPORT
+GST_BASE_API
 guint64         gst_base_sink_get_max_bitrate   (GstBaseSink *sink);
 
-GST_EXPORT
+GST_BASE_API
 GstClockReturn  gst_base_sink_wait_clock        (GstBaseSink *sink, GstClockTime time,
                                                  GstClockTimeDiff * jitter);
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_sink_wait              (GstBaseSink *sink, GstClockTime time,
                                                  GstClockTimeDiff *jitter);
 
diff --git a/libs/gst/base/gstbasesrc.h b/libs/gst/base/gstbasesrc.h
index 314416d..b782bbe 100644
--- a/libs/gst/base/gstbasesrc.h
+++ b/libs/gst/base/gstbasesrc.h
@@ -25,6 +25,7 @@
 #define __GST_BASE_SRC_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -247,70 +248,70 @@
   gpointer       _gst_reserved[GST_PADDING_LARGE];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType           gst_base_src_get_type (void);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_src_wait_playing     (GstBaseSrc *src);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_live         (GstBaseSrc *src, gboolean live);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_src_is_live          (GstBaseSrc *src);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_format       (GstBaseSrc *src, GstFormat format);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_dynamic_size (GstBaseSrc * src, gboolean dynamic);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_automatic_eos (GstBaseSrc * src, gboolean automatic_eos);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_async        (GstBaseSrc *src, gboolean async);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_src_is_async         (GstBaseSrc *src);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_start_complete   (GstBaseSrc * basesrc, GstFlowReturn ret);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn   gst_base_src_start_wait       (GstBaseSrc * basesrc);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_src_query_latency    (GstBaseSrc *src, gboolean * live,
                                                GstClockTime * min_latency,
                                                GstClockTime * max_latency);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_blocksize    (GstBaseSrc *src, guint blocksize);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_base_src_get_blocksize    (GstBaseSrc *src);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_set_do_timestamp (GstBaseSrc *src, gboolean timestamp);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_src_get_do_timestamp (GstBaseSrc *src);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_src_new_seamless_segment (GstBaseSrc *src, gint64 start, gint64 stop, gint64 time);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_base_src_set_caps         (GstBaseSrc *src, GstCaps *caps);
 
-GST_EXPORT
+GST_BASE_API
 GstBufferPool * gst_base_src_get_buffer_pool  (GstBaseSrc *src);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_get_allocator    (GstBaseSrc *src,
                                                GstAllocator **allocator,
                                                GstAllocationParams *params);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_src_submit_buffer_list (GstBaseSrc    * src,
                                                  GstBufferList * buffer_list);
 
diff --git a/libs/gst/base/gstbasetransform.h b/libs/gst/base/gstbasetransform.h
index 9d75d63..cd7d5c5 100644
--- a/libs/gst/base/gstbasetransform.h
+++ b/libs/gst/base/gstbasetransform.h
@@ -22,6 +22,7 @@
 #define __GST_BASE_TRANSFORM_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -300,52 +301,52 @@
   gpointer       _gst_reserved[GST_PADDING_LARGE - 2];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType           gst_base_transform_get_type         (void);
 
-GST_EXPORT
+GST_BASE_API
 void		gst_base_transform_set_passthrough  (GstBaseTransform *trans,
 	                                             gboolean passthrough);
-GST_EXPORT
+GST_BASE_API
 gboolean	gst_base_transform_is_passthrough   (GstBaseTransform *trans);
 
-GST_EXPORT
+GST_BASE_API
 void		gst_base_transform_set_in_place     (GstBaseTransform *trans,
 	                                             gboolean in_place);
-GST_EXPORT
+GST_BASE_API
 gboolean	gst_base_transform_is_in_place      (GstBaseTransform *trans);
 
-GST_EXPORT
+GST_BASE_API
 void		gst_base_transform_update_qos       (GstBaseTransform *trans,
 						     gdouble proportion,
 						     GstClockTimeDiff diff,
 						     GstClockTime timestamp);
-GST_EXPORT
+GST_BASE_API
 void		gst_base_transform_set_qos_enabled  (GstBaseTransform *trans,
 		                                     gboolean enabled);
-GST_EXPORT
+GST_BASE_API
 gboolean	gst_base_transform_is_qos_enabled   (GstBaseTransform *trans);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_transform_set_gap_aware    (GstBaseTransform *trans,
                                                      gboolean gap_aware);
-GST_EXPORT
+GST_BASE_API
 void            gst_base_transform_set_prefer_passthrough (GstBaseTransform *trans,
                                                            gboolean prefer_passthrough);
-GST_EXPORT
+GST_BASE_API
 GstBufferPool * gst_base_transform_get_buffer_pool  (GstBaseTransform *trans);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_base_transform_get_allocator    (GstBaseTransform *trans,
                                                      GstAllocator **allocator,
                                                      GstAllocationParams *params);
-GST_EXPORT
+GST_BASE_API
 void		gst_base_transform_reconfigure_sink (GstBaseTransform *trans);
 
-GST_EXPORT
+GST_BASE_API
 void		gst_base_transform_reconfigure_src  (GstBaseTransform *trans);
 
-GST_EXPORT
+GST_BASE_API
 gboolean gst_base_transform_update_src_caps (GstBaseTransform *trans,
                                              GstCaps *updated_caps);
 
diff --git a/libs/gst/base/gstbitreader.h b/libs/gst/base/gstbitreader.h
index cd00e17..380edd3 100644
--- a/libs/gst/base/gstbitreader.h
+++ b/libs/gst/base/gstbitreader.h
@@ -22,6 +22,7 @@
 #define __GST_BIT_READER_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 /* FIXME: inline functions */
 
@@ -50,55 +51,55 @@
   gpointer _gst_reserved[GST_PADDING];
 } GstBitReader;
 
-GST_EXPORT
+GST_BASE_API
 GstBitReader *  gst_bit_reader_new              (const guint8 *data, guint size) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 void            gst_bit_reader_free             (GstBitReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_bit_reader_init             (GstBitReader *reader, const guint8 *data, guint size);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_set_pos          (GstBitReader *reader, guint pos);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_bit_reader_get_pos          (const GstBitReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_bit_reader_get_remaining    (const GstBitReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_bit_reader_get_size         (const GstBitReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_skip             (GstBitReader *reader, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_skip_to_byte     (GstBitReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_get_bits_uint8   (GstBitReader *reader, guint8 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_get_bits_uint16  (GstBitReader *reader, guint16 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_get_bits_uint32  (GstBitReader *reader, guint32 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_get_bits_uint64  (GstBitReader *reader, guint64 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_peek_bits_uint8  (const GstBitReader *reader, guint8 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_peek_bits_uint16 (const GstBitReader *reader, guint16 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_peek_bits_uint32 (const GstBitReader *reader, guint32 *val, guint nbits);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_bit_reader_peek_bits_uint64 (const GstBitReader *reader, guint64 *val, guint nbits);
 
 /**
diff --git a/libs/gst/base/gstbytereader.h b/libs/gst/base/gstbytereader.h
index 764be74..b988739 100644
--- a/libs/gst/base/gstbytereader.h
+++ b/libs/gst/base/gstbytereader.h
@@ -23,6 +23,7 @@
 #define __GST_BYTE_READER_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -47,201 +48,201 @@
   gpointer _gst_reserved[GST_PADDING];
 } GstByteReader;
 
-GST_EXPORT
+GST_BASE_API
 GstByteReader * gst_byte_reader_new             (const guint8 *data, guint size) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_reader_free            (GstByteReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_reader_init            (GstByteReader *reader, const guint8 *data, guint size);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_sub_reader (GstByteReader * reader,
                                                  GstByteReader * sub_reader,
                                                  guint           size);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_sub_reader  (GstByteReader * reader,
                                                  GstByteReader * sub_reader,
                                                  guint           size);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_set_pos         (GstByteReader *reader, guint pos);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_byte_reader_get_pos         (const GstByteReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_byte_reader_get_remaining   (const GstByteReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_byte_reader_get_size        (const GstByteReader *reader);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_skip            (GstByteReader *reader, guint nbytes);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint8       (GstByteReader *reader, guint8 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int8        (GstByteReader *reader, gint8 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint16_le   (GstByteReader *reader, guint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int16_le    (GstByteReader *reader, gint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint16_be   (GstByteReader *reader, guint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int16_be    (GstByteReader *reader, gint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint24_le   (GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int24_le    (GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint24_be   (GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int24_be    (GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint32_le   (GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int32_le    (GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint32_be   (GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int32_be    (GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint64_le   (GstByteReader *reader, guint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int64_le    (GstByteReader *reader, gint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_uint64_be   (GstByteReader *reader, guint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_int64_be    (GstByteReader *reader, gint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint8      (const GstByteReader *reader, guint8 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int8       (const GstByteReader *reader, gint8 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint16_le  (const GstByteReader *reader, guint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int16_le   (const GstByteReader *reader, gint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint16_be  (const GstByteReader *reader, guint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int16_be   (const GstByteReader *reader, gint16 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint24_le  (const GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int24_le   (const GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint24_be  (const GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int24_be   (const GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint32_le  (const GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int32_le   (const GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint32_be  (const GstByteReader *reader, guint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int32_be   (const GstByteReader *reader, gint32 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint64_le  (const GstByteReader *reader, guint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int64_le   (const GstByteReader *reader, gint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_uint64_be  (const GstByteReader *reader, guint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_int64_be   (const GstByteReader *reader, gint64 *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_float32_le  (GstByteReader *reader, gfloat *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_float32_be  (GstByteReader *reader, gfloat *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_float64_le  (GstByteReader *reader, gdouble *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_float64_be  (GstByteReader *reader, gdouble *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_float32_le (const GstByteReader *reader, gfloat *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_float32_be (const GstByteReader *reader, gfloat *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_float64_le (const GstByteReader *reader, gdouble *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_float64_be (const GstByteReader *reader, gdouble *val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_dup_data        (GstByteReader * reader, guint size, guint8       ** val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_data        (GstByteReader * reader, guint size, const guint8 ** val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_data       (const GstByteReader * reader, guint size, const guint8 ** val);
 
 #define gst_byte_reader_dup_string(reader,str) \
     gst_byte_reader_dup_string_utf8(reader,str)
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_dup_string_utf8  (GstByteReader * reader, gchar   ** str);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_dup_string_utf16 (GstByteReader * reader, guint16 ** str);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_dup_string_utf32 (GstByteReader * reader, guint32 ** str);
 
 #define gst_byte_reader_skip_string(reader) \
     gst_byte_reader_skip_string_utf8(reader)
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_skip_string_utf8  (GstByteReader * reader);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_skip_string_utf16 (GstByteReader * reader);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_skip_string_utf32 (GstByteReader * reader);
 
 #define gst_byte_reader_get_string(reader,str) \
@@ -250,19 +251,19 @@
 #define gst_byte_reader_peek_string(reader,str) \
     gst_byte_reader_peek_string_utf8(reader,str)
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_get_string_utf8    (GstByteReader * reader, const gchar ** str);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_reader_peek_string_utf8   (const GstByteReader * reader, const gchar ** str);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_byte_reader_masked_scan_uint32 (const GstByteReader * reader,
                                                     guint32               mask,
                                                     guint32               pattern,
                                                     guint                 offset,
                                                     guint                 size);
-GST_EXPORT
+GST_BASE_API
 guint           gst_byte_reader_masked_scan_uint32_peek (const GstByteReader * reader,
                                                          guint32 mask,
                                                          guint32 pattern,
diff --git a/libs/gst/base/gstbytewriter.h b/libs/gst/base/gstbytewriter.h
index d957db4..365c774 100644
--- a/libs/gst/base/gstbytewriter.h
+++ b/libs/gst/base/gstbytewriter.h
@@ -51,40 +51,40 @@
   gpointer _gst_reserved[GST_PADDING];
 } GstByteWriter;
 
-GST_EXPORT
+GST_BASE_API
 GstByteWriter * gst_byte_writer_new             (void) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 GstByteWriter * gst_byte_writer_new_with_size   (guint size, gboolean fixed) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 GstByteWriter * gst_byte_writer_new_with_data   (guint8 *data, guint size, gboolean initialized) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_writer_init            (GstByteWriter *writer);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_writer_init_with_size  (GstByteWriter *writer, guint size, gboolean fixed);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_writer_init_with_data  (GstByteWriter *writer, guint8 *data,
                                                  guint size, gboolean initialized);
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_writer_free                    (GstByteWriter *writer);
 
-GST_EXPORT
+GST_BASE_API
 guint8 *        gst_byte_writer_free_and_get_data       (GstByteWriter *writer);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer *     gst_byte_writer_free_and_get_buffer     (GstByteWriter *writer) G_GNUC_MALLOC;
 
-GST_EXPORT
+GST_BASE_API
 void            gst_byte_writer_reset                   (GstByteWriter *writer);
 
-GST_EXPORT
+GST_BASE_API
 guint8 *        gst_byte_writer_reset_and_get_data      (GstByteWriter *writer);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer *     gst_byte_writer_reset_and_get_buffer    (GstByteWriter *writer) G_GNUC_MALLOC;
 
 /**
@@ -127,91 +127,91 @@
   return gst_byte_reader_get_size ((const GstByteReader *) writer);
 }
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_byte_writer_get_remaining     (const GstByteWriter *writer);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_ensure_free_space (GstByteWriter *writer, guint size);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint8         (GstByteWriter *writer, guint8 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int8          (GstByteWriter *writer, gint8 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint16_be     (GstByteWriter *writer, guint16 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint16_le     (GstByteWriter *writer, guint16 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int16_be      (GstByteWriter *writer, gint16 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int16_le      (GstByteWriter *writer, gint16 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint24_be     (GstByteWriter *writer, guint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint24_le     (GstByteWriter *writer, guint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int24_be      (GstByteWriter *writer, gint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int24_le      (GstByteWriter *writer, gint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint32_be     (GstByteWriter *writer, guint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint32_le     (GstByteWriter *writer, guint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int32_be      (GstByteWriter *writer, gint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int32_le      (GstByteWriter *writer, gint32 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint64_be     (GstByteWriter *writer, guint64 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_uint64_le     (GstByteWriter *writer, guint64 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int64_be      (GstByteWriter *writer, gint64 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_int64_le      (GstByteWriter *writer, gint64 val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_float32_be    (GstByteWriter *writer, gfloat val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_float32_le    (GstByteWriter *writer, gfloat val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_float64_be    (GstByteWriter *writer, gdouble val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_float64_le    (GstByteWriter *writer, gdouble val);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_data          (GstByteWriter *writer, const guint8 *data, guint size);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_fill              (GstByteWriter *writer, guint8 value, guint size);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_string_utf8   (GstByteWriter *writer, const gchar *data);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_string_utf16  (GstByteWriter *writer, const guint16 *data);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_byte_writer_put_string_utf32  (GstByteWriter *writer, const guint32 *data);
 gboolean        gst_byte_writer_put_buffer        (GstByteWriter *writer, GstBuffer * buffer, gsize offset, gssize size);
 
diff --git a/libs/gst/base/gstcollectpads.h b/libs/gst/base/gstcollectpads.h
index cb0527c..b843d5b 100644
--- a/libs/gst/base/gstcollectpads.h
+++ b/libs/gst/base/gstcollectpads.h
@@ -24,6 +24,7 @@
 #define __GST_COLLECT_PADS_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -339,97 +340,97 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType           gst_collect_pads_get_type (void);
 
 /* creating the object */
 
-GST_EXPORT
+GST_BASE_API
 GstCollectPads* gst_collect_pads_new      (void);
 
 /* set the callbacks */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_function         (GstCollectPads *pads,
                                                        GstCollectPadsFunction func,
                                                        gpointer user_data);
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_buffer_function  (GstCollectPads *pads,
                                                        GstCollectPadsBufferFunction func,
                                                        gpointer user_data);
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_event_function   (GstCollectPads *pads,
                                                        GstCollectPadsEventFunction func,
                                                        gpointer user_data);
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_query_function   (GstCollectPads *pads,
                                                        GstCollectPadsQueryFunction func,
                                                        gpointer user_data);
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_compare_function (GstCollectPads *pads,
                                                        GstCollectPadsCompareFunction func,
                                                        gpointer user_data);
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_clip_function    (GstCollectPads *pads,
                                                        GstCollectPadsClipFunction clipfunc,
                                                        gpointer user_data);
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_flush_function    (GstCollectPads *pads,
                                                        GstCollectPadsFlushFunction func,
                                                        gpointer user_data);
 
 /* pad management */
 
-GST_EXPORT
+GST_BASE_API
 GstCollectData* gst_collect_pads_add_pad       (GstCollectPads *pads, GstPad *pad, guint size,
                                                 GstCollectDataDestroyNotify destroy_notify,
                                                 gboolean lock);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_collect_pads_remove_pad    (GstCollectPads *pads, GstPad *pad);
 
 /* start/stop collection */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_start         (GstCollectPads *pads);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_stop          (GstCollectPads *pads);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_flushing  (GstCollectPads *pads, gboolean flushing);
 
 /* get collected buffers */
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer*      gst_collect_pads_peek          (GstCollectPads *pads, GstCollectData *data);
 
-GST_EXPORT
+GST_BASE_API
 GstBuffer*      gst_collect_pads_pop           (GstCollectPads *pads, GstCollectData *data);
 
 /* get collected bytes */
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_collect_pads_available     (GstCollectPads *pads);
 
-GST_EXPORT
+GST_BASE_API
 guint           gst_collect_pads_flush         (GstCollectPads *pads, GstCollectData *data,
                                                 guint size);
-GST_EXPORT
+GST_BASE_API
 GstBuffer*      gst_collect_pads_read_buffer   (GstCollectPads * pads, GstCollectData * data,
                                                 guint size);
-GST_EXPORT
+GST_BASE_API
 GstBuffer*      gst_collect_pads_take_buffer   (GstCollectPads * pads, GstCollectData * data,
                                                 guint size);
 
 /* setting and unsetting waiting mode */
 
-GST_EXPORT
+GST_BASE_API
 void            gst_collect_pads_set_waiting   (GstCollectPads *pads, GstCollectData *data,
                                                 gboolean waiting);
 
 /* convenience helper */
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn	gst_collect_pads_clip_running_time (GstCollectPads * pads,
                                                     GstCollectData * cdata,
                                                     GstBuffer * buf, GstBuffer ** outbuf,
@@ -437,13 +438,13 @@
 
 /* default handlers */
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_collect_pads_event_default (GstCollectPads * pads, GstCollectData * data,
                                                 GstEvent * event, gboolean discard);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_collect_pads_src_event_default (GstCollectPads * pads, GstPad * pad,
                                                     GstEvent * event);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_collect_pads_query_default (GstCollectPads * pads, GstCollectData * data,
                                                 GstQuery * query, gboolean discard);
 
diff --git a/libs/gst/base/gstdataqueue.h b/libs/gst/base/gstdataqueue.h
index c2f86bb..4492e6d 100644
--- a/libs/gst/base/gstdataqueue.h
+++ b/libs/gst/base/gstdataqueue.h
@@ -24,6 +24,7 @@
 #define __GST_DATA_QUEUE_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 #define GST_TYPE_DATA_QUEUE \
@@ -135,45 +136,45 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType          gst_data_queue_get_type (void);
 
-GST_EXPORT
+GST_BASE_API
 GstDataQueue * gst_data_queue_new            (GstDataQueueCheckFullFunction checkfull,
 					      GstDataQueueFullCallback fullcallback,
 					      GstDataQueueEmptyCallback emptycallback,
 					      gpointer checkdata) G_GNUC_MALLOC;
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_push           (GstDataQueue * queue, GstDataQueueItem * item);
 
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_push_force     (GstDataQueue * queue, GstDataQueueItem * item);
 
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_pop            (GstDataQueue * queue, GstDataQueueItem ** item);
 
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_peek           (GstDataQueue * queue, GstDataQueueItem ** item);
 
-GST_EXPORT
+GST_BASE_API
 void           gst_data_queue_flush          (GstDataQueue * queue);
 
-GST_EXPORT
+GST_BASE_API
 void           gst_data_queue_set_flushing   (GstDataQueue * queue, gboolean flushing);
 
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_drop_head      (GstDataQueue * queue, GType type);
 
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_is_full        (GstDataQueue * queue);
 
-GST_EXPORT
+GST_BASE_API
 gboolean       gst_data_queue_is_empty       (GstDataQueue * queue);
 
-GST_EXPORT
+GST_BASE_API
 void           gst_data_queue_get_level      (GstDataQueue * queue, GstDataQueueSize *level);
 
-GST_EXPORT
+GST_BASE_API
 void           gst_data_queue_limits_changed (GstDataQueue * queue);
 
 #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
diff --git a/libs/gst/base/gstflowcombiner.h b/libs/gst/base/gstflowcombiner.h
index 3b04b2c..bd06da8 100644
--- a/libs/gst/base/gstflowcombiner.h
+++ b/libs/gst/base/gstflowcombiner.h
@@ -27,6 +27,7 @@
 
 #include <glib.h>
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -41,37 +42,37 @@
  */
 typedef struct _GstFlowCombiner GstFlowCombiner;
 
-GST_EXPORT
+GST_BASE_API
 GstFlowCombiner * gst_flow_combiner_new (void);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowCombiner * gst_flow_combiner_ref (GstFlowCombiner * combiner);
 
-GST_EXPORT
+GST_BASE_API
 void              gst_flow_combiner_unref (GstFlowCombiner * combiner);
 
-GST_EXPORT
+GST_BASE_API
 void              gst_flow_combiner_free (GstFlowCombiner * combiner);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn     gst_flow_combiner_update_flow (GstFlowCombiner * combiner, GstFlowReturn fret);
 
-GST_EXPORT
+GST_BASE_API
 GstFlowReturn     gst_flow_combiner_update_pad_flow (GstFlowCombiner * combiner, GstPad * pad,
                                                      GstFlowReturn fret);
-GST_EXPORT
+GST_BASE_API
 void              gst_flow_combiner_add_pad    (GstFlowCombiner * combiner, GstPad * pad);
 
-GST_EXPORT
+GST_BASE_API
 void              gst_flow_combiner_remove_pad (GstFlowCombiner * combiner, GstPad * pad);
 
-GST_EXPORT
+GST_BASE_API
 void              gst_flow_combiner_clear (GstFlowCombiner * combiner);
 
-GST_EXPORT
+GST_BASE_API
 void              gst_flow_combiner_reset (GstFlowCombiner * combiner);
 
-GST_EXPORT
+GST_BASE_API
 GType             gst_flow_combiner_get_type (void);
 
 #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
diff --git a/libs/gst/base/gstindex.h b/libs/gst/base/gstindex.h
index c80fa6c..4761465 100644
--- a/libs/gst/base/gstindex.h
+++ b/libs/gst/base/gstindex.h
@@ -27,6 +27,7 @@
 #include <gst/gstobject.h>
 #include <gst/gstformat.h>
 #include <gst/gstpluginfeature.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
diff --git a/libs/gst/base/gstpushsrc.h b/libs/gst/base/gstpushsrc.h
index 2cb6565..89e6776 100644
--- a/libs/gst/base/gstpushsrc.h
+++ b/libs/gst/base/gstpushsrc.h
@@ -82,7 +82,7 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GST_EXPORT
+GST_BASE_API
 GType gst_push_src_get_type (void);
 
 #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
diff --git a/libs/gst/base/gstqueuearray.h b/libs/gst/base/gstqueuearray.h
index bbb465f..7f6db21 100644
--- a/libs/gst/base/gstqueuearray.h
+++ b/libs/gst/base/gstqueuearray.h
@@ -24,6 +24,8 @@
 #ifndef __GST_QUEUE_ARRAY_H__
 #define __GST_QUEUE_ARRAY_H__
 
+#include <gst/base/base-prelude.h>
+
 G_BEGIN_DECLS
 
 /**
@@ -31,61 +33,61 @@
  */
 typedef struct _GstQueueArray GstQueueArray;
 
-GST_EXPORT
+GST_BASE_API
 GstQueueArray * gst_queue_array_new       (guint initial_size);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_queue_array_free      (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_pop_head  (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_peek_head (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_pop_tail  (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_peek_tail (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 void            gst_queue_array_push_tail (GstQueueArray * array,
                                            gpointer        data);
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_queue_array_is_empty  (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_drop_element (GstQueueArray * array,
                                               guint           idx);
-GST_EXPORT
+GST_BASE_API
 guint           gst_queue_array_find (GstQueueArray * array,
                                       GCompareFunc    func,
                                       gpointer        data);
-GST_EXPORT
+GST_BASE_API
 guint           gst_queue_array_get_length (GstQueueArray * array);
 
 /* Functions for use with structures */
 
-GST_EXPORT
+GST_BASE_API
 GstQueueArray * gst_queue_array_new_for_struct (gsize struct_size,
                                                 guint initial_size);
-GST_EXPORT
+GST_BASE_API
 void            gst_queue_array_push_tail_struct (GstQueueArray * array,
                                                   gpointer        p_struct);
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_pop_head_struct  (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_peek_head_struct (GstQueueArray * array);
 
-GST_EXPORT
+GST_BASE_API
 gboolean        gst_queue_array_drop_struct      (GstQueueArray * array,
                                                   guint           idx,
                                                   gpointer        p_struct);
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_pop_tail_struct  (GstQueueArray * array);
-GST_EXPORT
+GST_BASE_API
 gpointer        gst_queue_array_peek_tail_struct (GstQueueArray * array);
 
 G_END_DECLS
diff --git a/libs/gst/base/gsttypefindhelper.h b/libs/gst/base/gsttypefindhelper.h
index 77406b3..d350277 100644
--- a/libs/gst/base/gsttypefindhelper.h
+++ b/libs/gst/base/gsttypefindhelper.h
@@ -25,22 +25,23 @@
 #define __GST_TYPEFINDHELPER_H__
 
 #include <gst/gst.h>
+#include <gst/base/base-prelude.h>
 
 G_BEGIN_DECLS
 
-GST_EXPORT
+GST_BASE_API
 GstCaps * gst_type_find_helper (GstPad *src, guint64 size);
 
-GST_EXPORT
+GST_BASE_API
 GstCaps * gst_type_find_helper_for_data   (GstObject              *obj,
                                            const guint8           *data,
                                            gsize                   size,
                                            GstTypeFindProbability *prob);
-GST_EXPORT
+GST_BASE_API
 GstCaps * gst_type_find_helper_for_buffer (GstObject              *obj,
                                            GstBuffer              *buf,
                                            GstTypeFindProbability *prob);
-GST_EXPORT
+GST_BASE_API
 GstCaps * gst_type_find_helper_for_extension (GstObject * obj,
                                               const gchar * extension);
 
@@ -67,7 +68,7 @@
                                                             guint64     offset,
                                                             guint       length,
                                                             GstBuffer **buffer);
-GST_EXPORT
+GST_BASE_API
 GstCaps * gst_type_find_helper_get_range (GstObject                         *obj,
                                           GstObject                         *parent,
                                           GstTypeFindHelperGetRangeFunction  func,
diff --git a/libs/gst/base/meson.build b/libs/gst/base/meson.build
index 1d3b688..760d2e7 100644
--- a/libs/gst/base/meson.build
+++ b/libs/gst/base/meson.build
@@ -18,6 +18,7 @@
 
 gst_base_headers = [
   'base.h',
+  'base-prelude.h',
   'gstadapter.h',
   'gstaggregator.h',
   'gstbaseparse.h',
@@ -83,6 +84,7 @@
   sources : gst_base_gen_sources)
 
 install_headers('base.h',
+  'base-prelude.h',
   'gstadapter.h',
   'gstaggregator.h',
   'gstbaseparse.h',