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',
