diff --git a/gst-libs/gst/codecparsers/Makefile.am b/gst-libs/gst/codecparsers/Makefile.am
index e7d8248..47ad21d 100644
--- a/gst-libs/gst/codecparsers/Makefile.am
+++ b/gst-libs/gst/codecparsers/Makefile.am
@@ -17,6 +17,7 @@
 libgstcodecparsers_@GST_API_VERSION@include_HEADERS = \
 	gstmpegvideoparser.h gsth264parser.h gstvc1parser.h gstmpeg4parser.h \
 	gsth265parser.h gstvp8parser.h gstvp8rangedecoder.h \
+	codecparsers-prelude.h \
 	gstjpegparser.h \
 	gstmpegvideometa.h \
 	gstjpeg2000sampling.h \
diff --git a/gst-libs/gst/codecparsers/codecparsers-prelude.h b/gst-libs/gst/codecparsers/codecparsers-prelude.h
new file mode 100644
index 0000000..6fe11d3
--- /dev/null
+++ b/gst-libs/gst/codecparsers/codecparsers-prelude.h
@@ -0,0 +1,31 @@
+/* GStreamer Codec Parsers Library
+ * Copyright (C) 2018 GStreamer developers
+ *
+ * codecparsers-prelude.h: prelude include header for gst-codecparsers 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_CODEC_PARSERS_PRELUDE_H__
+#define __GST_CODEC_PARSERS_PRELUDE_H__
+
+#include <gst/gst.h>
+
+#ifndef GST_CODEC_PARSERS_API
+#define GST_CODEC_PARSERS_API GST_EXPORT
+#endif
+
+#endif /* __GST_CODEC_PARSERS_PRELUDE_H__ */
diff --git a/gst-libs/gst/codecparsers/gsth264parser.h b/gst-libs/gst/codecparsers/gsth264parser.h
index 54270ef..ffd609f 100644
--- a/gst-libs/gst/codecparsers/gsth264parser.h
+++ b/gst-libs/gst/codecparsers/gsth264parser.h
@@ -36,6 +36,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -1024,87 +1025,87 @@
   GstH264PPS *last_pps;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264NalParser *gst_h264_nal_parser_new             (void);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_identify_nalu     (GstH264NalParser *nalparser,
                                                        const guint8 *data, guint offset,
                                                        gsize size, GstH264NalUnit *nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_identify_nalu_unchecked (GstH264NalParser *nalparser,
                                                        const guint8 *data, guint offset,
                                                        gsize size, GstH264NalUnit *nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_identify_nalu_avc (GstH264NalParser *nalparser, const guint8 *data,
                                                        guint offset, gsize size, guint8 nal_length_size,
                                                        GstH264NalUnit *nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_parse_nal         (GstH264NalParser *nalparser,
                                                        GstH264NalUnit *nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_parse_slice_hdr   (GstH264NalParser *nalparser, GstH264NalUnit *nalu,
                                                        GstH264SliceHdr *slice, gboolean parse_pred_weight_table,
                                                        gboolean parse_dec_ref_pic_marking);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_parse_subset_sps  (GstH264NalParser *nalparser, GstH264NalUnit *nalu,
                                                        GstH264SPS *sps, gboolean parse_vui_params);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_parse_sps         (GstH264NalParser *nalparser, GstH264NalUnit *nalu,
                                                        GstH264SPS *sps, gboolean parse_vui_params);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_parse_pps         (GstH264NalParser *nalparser,
                                                        GstH264NalUnit *nalu, GstH264PPS *pps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parser_parse_sei         (GstH264NalParser *nalparser,
                                                        GstH264NalUnit *nalu, GArray ** messages);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void gst_h264_nal_parser_free                         (GstH264NalParser *nalparser);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parse_subset_sps         (GstH264NalUnit *nalu,
                                                        GstH264SPS *sps, gboolean parse_vui_params);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parse_sps                (GstH264NalUnit *nalu,
                                                        GstH264SPS *sps, gboolean parse_vui_params);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH264ParserResult gst_h264_parse_pps                (GstH264NalParser *nalparser,
                                                        GstH264NalUnit *nalu, GstH264PPS *pps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void                gst_h264_sps_clear                (GstH264SPS *sps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void                gst_h264_pps_clear                (GstH264PPS *pps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h264_quant_matrix_8x8_get_zigzag_from_raster (guint8 out_quant[64],
                                                           const guint8 quant[64]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h264_quant_matrix_8x8_get_raster_from_zigzag (guint8 out_quant[64],
                                                           const guint8 quant[64]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h264_quant_matrix_4x4_get_zigzag_from_raster (guint8 out_quant[16],
                                                           const guint8 quant[16]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h264_quant_matrix_4x4_get_raster_from_zigzag (guint8 out_quant[16],
                                                           const guint8 quant[16]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void gst_h264_video_calculate_framerate (const GstH264SPS * sps, guint field_pic_flag,
     guint pic_struct, gint * fps_num, gint * fps_den);
 
diff --git a/gst-libs/gst/codecparsers/gsth265parser.h b/gst-libs/gst/codecparsers/gsth265parser.h
index 985e1b5..1a9440f 100644
--- a/gst-libs/gst/codecparsers/gsth265parser.h
+++ b/gst-libs/gst/codecparsers/gsth265parser.h
@@ -29,6 +29,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -1083,24 +1084,24 @@
   GstH265PPS *last_pps;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265Parser *     gst_h265_parser_new               (void);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_identify_nalu      (GstH265Parser  * parser,
                                                         const guint8   * data,
                                                         guint            offset,
                                                         gsize            size,
                                                         GstH265NalUnit * nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_identify_nalu_unchecked (GstH265Parser * parser,
                                                         const guint8   * data,
                                                         guint            offset,
                                                         gsize            size,
                                                         GstH265NalUnit * nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_identify_nalu_hevc (GstH265Parser  * parser,
                                                         const guint8   * data,
                                                         guint            offset,
@@ -1108,81 +1109,81 @@
                                                         guint8           nal_length_size,
                                                         GstH265NalUnit * nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_parse_nal       (GstH265Parser   * parser,
                                                      GstH265NalUnit  * nalu);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_parse_slice_hdr (GstH265Parser   * parser,
                                                      GstH265NalUnit  * nalu,
                                                      GstH265SliceHdr * slice);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_parse_vps       (GstH265Parser   * parser,
                                                      GstH265NalUnit  * nalu,
                                                      GstH265VPS      * vps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_parse_sps       (GstH265Parser   * parser,
                                                      GstH265NalUnit  * nalu,
                                                      GstH265SPS      * sps,
                                                      gboolean          parse_vui_params);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_parse_pps       (GstH265Parser   * parser,
                                                      GstH265NalUnit  * nalu,
                                                      GstH265PPS      * pps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parser_parse_sei       (GstH265Parser   * parser,
                                                      GstH265NalUnit  * nalu,
                                                      GArray **messages);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void                gst_h265_parser_free            (GstH265Parser  * parser);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parse_vps              (GstH265NalUnit * nalu,
                                                      GstH265VPS     * vps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parse_sps              (GstH265Parser  * parser,
                                                      GstH265NalUnit * nalu,
                                                      GstH265SPS     * sps,
                                                      gboolean         parse_vui_params);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265ParserResult gst_h265_parse_pps              (GstH265Parser  * parser,
                                                      GstH265NalUnit * nalu,
                                                      GstH265PPS     * pps);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean            gst_h265_slice_hdr_copy (GstH265SliceHdr       * dst_slice,
                                              const GstH265SliceHdr * src_slice);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void                gst_h265_slice_hdr_free (GstH265SliceHdr * slice_hdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean            gst_h265_sei_copy       (GstH265SEIMessage       * dest_sei,
                                              const GstH265SEIMessage * src_sei);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void                gst_h265_sei_free       (GstH265SEIMessage * sei);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_4x4_get_zigzag_from_raster (guint8 out_quant[16],
                                                           const guint8 quant[16]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_4x4_get_raster_from_zigzag (guint8 out_quant[16],
                                                           const guint8 quant[16]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_8x8_get_zigzag_from_raster (guint8 out_quant[64],
                                                           const guint8 quant[64]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_8x8_get_raster_from_zigzag (guint8 out_quant[64],
                                                           const guint8 quant[64]);
 
@@ -1195,19 +1196,19 @@
 #define gst_h265_quant_matrix_32x32_get_raster_from_zigzag \
         gst_h265_quant_matrix_8x8_get_raster_from_zigzag
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_4x4_get_uprightdiagonal_from_raster (guint8 out_quant[16],
                                                           const guint8 quant[16]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_4x4_get_raster_from_uprightdiagonal (guint8 out_quant[16],
                                                           const guint8 quant[16]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_8x8_get_uprightdiagonal_from_raster (guint8 out_quant[64],
                                                           const guint8 quant[64]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void    gst_h265_quant_matrix_8x8_get_raster_from_uprightdiagonal (guint8 out_quant[64],
                                                           const guint8 quant[64]);
 
@@ -1220,7 +1221,7 @@
 #define gst_h265_quant_matrix_32x32_get_raster_from_uprightdiagonal\
         gst_h265_quant_matrix_8x8_get_raster_from_uprightdiagonal
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstH265Profile gst_h265_profile_tier_level_get_profile (GstH265ProfileTierLevel * ptl);
 
 G_END_DECLS
diff --git a/gst-libs/gst/codecparsers/gstjpeg2000sampling.h b/gst-libs/gst/codecparsers/gstjpeg2000sampling.h
index cc91fdb..5fa0810 100644
--- a/gst-libs/gst/codecparsers/gstjpeg2000sampling.h
+++ b/gst-libs/gst/codecparsers/gstjpeg2000sampling.h
@@ -22,6 +22,7 @@
 #define __GST_JPEG2000_SAMPLING_H__
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 /**
  * GstJPEG2000Sampling:
@@ -58,20 +59,20 @@
 /* GST_JPEG2000_SAMPLING_LIST: sampling strings in list form, for use in caps */
 #define GST_JPEG2000_SAMPLING_LIST "sampling = (string) {\"RGB\", \"BGR\", \"RGBA\", \"BGRA\", \"YCbCr-4:4:4\", \"YCbCr-4:2:2\", \"YCbCr-4:2:0\", \"YCbCr-4:1:1\", \"GRAYSCALE\" , \"YCbCrA-4:4:4:4\"}"
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 const gchar *gst_jpeg2000_sampling_to_string (GstJPEG2000Sampling sampling);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstJPEG2000Sampling gst_jpeg2000_sampling_from_string (const gchar *
     sampling_string);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_jpeg2000_sampling_is_rgb (GstJPEG2000Sampling sampling);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_jpeg2000_sampling_is_yuv (GstJPEG2000Sampling sampling);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_jpeg2000_sampling_is_mono (GstJPEG2000Sampling sampling);
 
 
@@ -90,11 +91,11 @@
   GST_JPEG2000_COLORSPACE_GRAY
 } GstJPEG2000Colorspace;
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 const gchar *gst_jpeg2000_colorspace_to_string (GstJPEG2000Colorspace
     colorspace);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstJPEG2000Colorspace gst_jpeg2000_colorspace_from_string (const gchar *
     colorspace_string);
 
diff --git a/gst-libs/gst/codecparsers/gstjpegparser.h b/gst-libs/gst/codecparsers/gstjpegparser.h
index ce32aa3..ca96e89 100644
--- a/gst-libs/gst/codecparsers/gstjpegparser.h
+++ b/gst-libs/gst/codecparsers/gstjpegparser.h
@@ -27,6 +27,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -374,36 +375,36 @@
   gssize size;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_jpeg_parse (GstJpegSegment * seg,
                           const guint8   * data,
                           gsize            size,
                           guint            offset);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_jpeg_segment_parse_frame_header  (const GstJpegSegment  * segment,
                                                 GstJpegFrameHdr       * frame_hdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_jpeg_segment_parse_scan_header   (const GstJpegSegment * segment,
                                                 GstJpegScanHdr       * scan_hdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_jpeg_segment_parse_huffman_table (const GstJpegSegment * segment,
                                                 GstJpegHuffmanTables * huff_tables);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_jpeg_segment_parse_restart_interval (const GstJpegSegment * segment,
                                                    guint                * interval);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_jpeg_segment_parse_quantization_table (const GstJpegSegment * segment,
                                                      GstJpegQuantTables   * quant_tables);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void      gst_jpeg_get_default_quantization_tables (GstJpegQuantTables * quant_tables);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void      gst_jpeg_get_default_huffman_tables (GstJpegHuffmanTables * huff_tables);
 
 G_END_DECLS
diff --git a/gst-libs/gst/codecparsers/gstmpeg4parser.h b/gst-libs/gst/codecparsers/gstmpeg4parser.h
index aa87d8c..48a37c8 100644
--- a/gst-libs/gst/codecparsers/gstmpeg4parser.h
+++ b/gst-libs/gst/codecparsers/gstmpeg4parser.h
@@ -22,6 +22,7 @@
 #define __GST_MPEG4UTIL_H__
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -532,48 +533,48 @@
   GstMpeg4StartCode type;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult gst_h263_parse       (GstMpeg4Packet * packet,
                                           const guint8 * data, guint offset,
                                           gsize size);
 
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult gst_mpeg4_parse      (GstMpeg4Packet * packet,
                                           gboolean skip_user_data,
                                           GstMpeg4VideoObjectPlane *vop,
                                           const guint8 * data, guint offset,
                                           gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_video_object_plane       (GstMpeg4VideoObjectPlane *vop,
                                           GstMpeg4SpriteTrajectory *sprite_trajectory,
                                           GstMpeg4VideoObjectLayer *vol,
                                           const guint8 * data,
                                           gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_group_of_vop             (GstMpeg4GroupOfVOP *gov,
                                           const guint8 * data, gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_video_object_layer       (GstMpeg4VideoObjectLayer *vol,
                                           GstMpeg4VisualObject *vo,
                                           const guint8 * data, gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_visual_object            (GstMpeg4VisualObject *vo,
                                           GstMpeg4VideoSignalType *signal_type,
                                           const guint8 * data, gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_visual_object_sequence   (GstMpeg4VisualObjectSequence *vos,
                                           const guint8 * data, gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_video_plane_short_header (GstMpeg4VideoPlaneShortHdr * shorthdr,
                                           const guint8 * data, gsize size);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpeg4ParseResult
 gst_mpeg4_parse_video_packet_header      (GstMpeg4VideoPacketHdr * videopackethdr,
                                           GstMpeg4VideoObjectLayer * vol,
diff --git a/gst-libs/gst/codecparsers/gstmpegvideometa.h b/gst-libs/gst/codecparsers/gstmpegvideometa.h
index 6b77d6f..df33d97 100644
--- a/gst-libs/gst/codecparsers/gstmpegvideometa.h
+++ b/gst-libs/gst/codecparsers/gstmpegvideometa.h
@@ -32,11 +32,11 @@
 
 typedef struct _GstMpegVideoMeta GstMpegVideoMeta;
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GType gst_mpeg_video_meta_api_get_type (void);
 #define GST_MPEG_VIDEO_META_API_TYPE  (gst_mpeg_video_meta_api_get_type())
 #define GST_MPEG_VIDEO_META_INFO  (gst_mpeg_video_meta_get_info())
-GST_EXPORT
+GST_CODEC_PARSERS_API
 const GstMetaInfo * gst_mpeg_video_meta_get_info (void);
 
 /**
@@ -77,7 +77,7 @@
 
 #define gst_buffer_get_mpeg_video_meta(b) ((GstMpegVideoMeta*)gst_buffer_get_meta((b),GST_MPEG_VIDEO_META_API_TYPE))
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstMpegVideoMeta *
 gst_buffer_add_mpeg_video_meta (GstBuffer * buffer, 
                                 const GstMpegVideoSequenceHdr *seq_hdr,
diff --git a/gst-libs/gst/codecparsers/gstmpegvideoparser.h b/gst-libs/gst/codecparsers/gstmpegvideoparser.h
index 6a6c56a..057c6ad 100644
--- a/gst-libs/gst/codecparsers/gstmpegvideoparser.h
+++ b/gst-libs/gst/codecparsers/gstmpegvideoparser.h
@@ -32,6 +32,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -501,59 +502,59 @@
   gint   size;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_parse                         (GstMpegVideoPacket * packet,
                                                        const guint8 * data, gsize size, guint offset);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_sequence_header    (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoSequenceHdr * seqhdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_sequence_extension (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoSequenceExt * seqext);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_sequence_display_extension (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoSequenceDisplayExt * seqdisplayext);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_sequence_scalable_extension (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoSequenceScalableExt * seqscaleext);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_picture_header     (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoPictureHdr* pichdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_picture_extension  (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoPictureExt *picext);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_gop                (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoGop * gop);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_slice_header       (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoSliceHdr * slice_hdr,
                                                          GstMpegVideoSequenceHdr * seq_hdr,
                                                          GstMpegVideoSequenceScalableExt * seqscaleext);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_packet_parse_quant_matrix_extension (const GstMpegVideoPacket * packet,
                                                          GstMpegVideoQuantMatrixExt * quant);
 
 /* seqext and displayext may be NULL if not received */
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean gst_mpeg_video_finalise_mpeg2_sequence_header (GstMpegVideoSequenceHdr *hdr,
    GstMpegVideoSequenceExt *seqext, GstMpegVideoSequenceDisplayExt *displayext);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void     gst_mpeg_video_quant_matrix_get_raster_from_zigzag (guint8 out_quant[64],
                                                              const guint8 quant[64]);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void     gst_mpeg_video_quant_matrix_get_zigzag_from_raster (guint8 out_quant[64],
                                                              const guint8 quant[64]);
 
diff --git a/gst-libs/gst/codecparsers/gstvc1parser.h b/gst-libs/gst/codecparsers/gstvc1parser.h
index e74f9a3..fac7ace 100644
--- a/gst-libs/gst/codecparsers/gstvc1parser.h
+++ b/gst-libs/gst/codecparsers/gstvc1parser.h
@@ -28,6 +28,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -576,78 +577,78 @@
   guint8 * data;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_identify_next_bdu           (const guint8 *data,
                                                         gsize size,
                                                         GstVC1BDU *bdu);
 
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_sequence_header       (const guint8 *data,
                                                         gsize size,
                                                         GstVC1SeqHdr * seqhdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_entry_point_header    (const  guint8 *data,
                                                         gsize size,
                                                         GstVC1EntryPointHdr * entrypoint,
                                                         GstVC1SeqHdr *seqhdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_sequence_layer        (const guint8 *data,
                                                         gsize size,
                                                         GstVC1SeqLayer * seqlayer);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult
 gst_vc1_parse_sequence_header_struct_a                 (const guint8 *data,
                                                         gsize size,
                                                         GstVC1SeqStructA *structa);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult
 gst_vc1_parse_sequence_header_struct_b                 (const guint8 *data,
                                                         gsize size,
                                                         GstVC1SeqStructB *structb);
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult
 gst_vc1_parse_sequence_header_struct_c                 (const guint8 *data,
                                                         gsize size,
                                                         GstVC1SeqStructC *structc);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_frame_layer           (const guint8 *data,
                                                         gsize size,
                                                         GstVC1FrameLayer * framelayer);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_frame_header          (const guint8 *data,
                                                         gsize size,
                                                         GstVC1FrameHdr * framehdr,
                                                         GstVC1SeqHdr *seqhdr,
                                                         GstVC1BitPlanes *bitplanes);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_field_header          (const guint8 *data,
                                                         gsize size,
                                                         GstVC1FrameHdr * fieldhdr,
                                                         GstVC1SeqHdr *seqhdr,
                                                         GstVC1BitPlanes *bitplanes);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1ParserResult gst_vc1_parse_slice_header           (const guint8 *data,
                                                          gsize size,
                                                          GstVC1SliceHdr *slicehdr, 
                                                          GstVC1SeqHdr *seqhdr);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVC1BitPlanes *  gst_vc1_bitplanes_new               (void);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void               gst_vc1_bitplanes_free              (GstVC1BitPlanes *bitplanes);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void               gst_vc1_bitplanes_free_1            (GstVC1BitPlanes *bitplanes);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean           gst_vc1_bitplanes_ensure_size       (GstVC1BitPlanes *bitplanes,
                                                         GstVC1SeqHdr *seqhdr);
 
diff --git a/gst-libs/gst/codecparsers/gstvp8parser.h b/gst-libs/gst/codecparsers/gstvp8parser.h
index 279ea38..23a432d 100644
--- a/gst-libs/gst/codecparsers/gstvp8parser.h
+++ b/gst-libs/gst/codecparsers/gstvp8parser.h
@@ -25,6 +25,7 @@
 #define GST_VP8_PARSER_H
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -326,10 +327,10 @@
   GstVp8ModeProbs mode_probs;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void                gst_vp8_parser_init (GstVp8Parser * parser);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVp8ParserResult  gst_vp8_parser_parse_frame_header (GstVp8Parser   * parser,
                                                        GstVp8FrameHdr * frame_hdr,
                                                        const guint8   * data,
diff --git a/gst-libs/gst/codecparsers/gstvp8rangedecoder.h b/gst-libs/gst/codecparsers/gstvp8rangedecoder.h
index 35f28ec..510cff2 100644
--- a/gst-libs/gst/codecparsers/gstvp8rangedecoder.h
+++ b/gst-libs/gst/codecparsers/gstvp8rangedecoder.h
@@ -25,6 +25,7 @@
 
 #include <glib.h>
 #include <gst/gstconfig.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 typedef struct _GstVp8RangeDecoder      GstVp8RangeDecoder;
 typedef struct _GstVp8RangeDecoderState GstVp8RangeDecoderState;
@@ -58,21 +59,21 @@
   guint8 count;
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gboolean  gst_vp8_range_decoder_init (GstVp8RangeDecoder * rd,
                                       const guchar * buf,
                                       guint buf_size);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gint       gst_vp8_range_decoder_read (GstVp8RangeDecoder * rd, guint8 prob);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 gint       gst_vp8_range_decoder_read_literal (GstVp8RangeDecoder * rd, gint bits);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 guint      gst_vp8_range_decoder_get_pos (GstVp8RangeDecoder * rd);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void       gst_vp8_range_decoder_get_state (GstVp8RangeDecoder      * rd,
                                             GstVp8RangeDecoderState * state);
 
diff --git a/gst-libs/gst/codecparsers/gstvp9parser.h b/gst-libs/gst/codecparsers/gstvp9parser.h
index 2130294..0f382db 100644
--- a/gst-libs/gst/codecparsers/gstvp9parser.h
+++ b/gst-libs/gst/codecparsers/gstvp9parser.h
@@ -31,6 +31,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/codecparsers/codecparsers-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -482,13 +483,13 @@
   GstVp9Segmentation segmentation[GST_VP9_MAX_SEGMENTS];
 };
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVp9Parser *     gst_vp9_parser_new (void);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 GstVp9ParserResult gst_vp9_parser_parse_frame_header (GstVp9Parser* parser, GstVp9FrameHdr * frame_hdr, const guint8 * data, gsize size);
 
-GST_EXPORT
+GST_CODEC_PARSERS_API
 void               gst_vp9_parser_free (GstVp9Parser * parser);
 
 G_END_DECLS
diff --git a/gst-libs/gst/codecparsers/meson.build b/gst-libs/gst/codecparsers/meson.build
index 12e53c9..75bda95 100644
--- a/gst-libs/gst/codecparsers/meson.build
+++ b/gst-libs/gst/codecparsers/meson.build
@@ -17,6 +17,7 @@
   'gstmpegvideometa.c',
 ]
 codecparser_headers = [
+  'codecparsers-prelude.h',
   'gstmpegvideoparser.h',
   'gsth264parser.h',
   'gstvc1parser.h',
