From 33ae84fd1cfb67aafcc631b288fa4d185e4e99aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 16 May 2017 01:00:09 +0100 Subject: [PATCH] rtp: mark symbols explicitly for export with GST_EXPORT --- gst-libs/gst/rtp/Makefile.am | 1 + gst-libs/gst/rtp/gstrtcpbuffer.h | 131 ++++++++++++++++++++++ gst-libs/gst/rtp/gstrtpbaseaudiopayload.h | 16 +++ gst-libs/gst/rtp/gstrtpbasedepayload.h | 4 + gst-libs/gst/rtp/gstrtpbasepayload.h | 6 + gst-libs/gst/rtp/gstrtpbuffer.h | 78 +++++++++++++ gst-libs/gst/rtp/gstrtphdrext.h | 6 + gst-libs/gst/rtp/gstrtppayloads.h | 3 + gst-libs/gst/rtp/rtp_mkenum.py | 4 +- 9 files changed, 247 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am index bc61dd899b..0a8cc5dafb 100644 --- a/gst-libs/gst/rtp/Makefile.am +++ b/gst-libs/gst/rtp/Makefile.am @@ -38,6 +38,7 @@ glib_gen_prefix = __gst_rtp glib_enum_define = gst_rtp glib_enum_headers = $(libgstrtpinclude_HEADERS) glib_gen_basename = gstrtp +glib_gen_decl_banner=GST_EXPORT include $(top_srcdir)/common/gst-glib-gen.mak diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.h b/gst-libs/gst/rtp/gstrtcpbuffer.h index c28fb8bc66..9e959ddfee 100644 --- a/gst-libs/gst/rtp/gstrtcpbuffer.h +++ b/gst-libs/gst/rtp/gstrtcpbuffer.h @@ -221,127 +221,258 @@ struct _GstRTCPPacket }; /* creating buffers */ + +GST_EXPORT GstBuffer* gst_rtcp_buffer_new_take_data (gpointer data, guint len); + +GST_EXPORT GstBuffer* gst_rtcp_buffer_new_copy_data (gpointer data, guint len); +GST_EXPORT gboolean gst_rtcp_buffer_validate_data (guint8 *data, guint len); + +GST_EXPORT gboolean gst_rtcp_buffer_validate (GstBuffer *buffer); +GST_EXPORT gboolean gst_rtcp_buffer_validate_data_reduced (guint8 *data, guint len); + +GST_EXPORT gboolean gst_rtcp_buffer_validate_reduced (GstBuffer *buffer); +GST_EXPORT GstBuffer* gst_rtcp_buffer_new (guint mtu); +GST_EXPORT gboolean gst_rtcp_buffer_map (GstBuffer *buffer, GstMapFlags flags, GstRTCPBuffer *rtcp); + +GST_EXPORT gboolean gst_rtcp_buffer_unmap (GstRTCPBuffer *rtcp); /* adding/retrieving packets */ + +GST_EXPORT guint gst_rtcp_buffer_get_packet_count (GstRTCPBuffer *rtcp); + +GST_EXPORT gboolean gst_rtcp_buffer_get_first_packet (GstRTCPBuffer *rtcp, GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_move_to_next (GstRTCPPacket *packet); +GST_EXPORT gboolean gst_rtcp_buffer_add_packet (GstRTCPBuffer *rtcp, GstRTCPType type, GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_remove (GstRTCPPacket *packet); /* working with packets */ + +GST_EXPORT gboolean gst_rtcp_packet_get_padding (GstRTCPPacket *packet); + +GST_EXPORT guint8 gst_rtcp_packet_get_count (GstRTCPPacket *packet); + +GST_EXPORT GstRTCPType gst_rtcp_packet_get_type (GstRTCPPacket *packet); + +GST_EXPORT guint16 gst_rtcp_packet_get_length (GstRTCPPacket *packet); /* sender reports */ + +GST_EXPORT void gst_rtcp_packet_sr_get_sender_info (GstRTCPPacket *packet, guint32 *ssrc, guint64 *ntptime, guint32 *rtptime, guint32 *packet_count, guint32 *octet_count); + +GST_EXPORT void gst_rtcp_packet_sr_set_sender_info (GstRTCPPacket *packet, guint32 ssrc, guint64 ntptime, guint32 rtptime, guint32 packet_count, guint32 octet_count); /* receiver reports */ + +GST_EXPORT guint32 gst_rtcp_packet_rr_get_ssrc (GstRTCPPacket *packet); + +GST_EXPORT void gst_rtcp_packet_rr_set_ssrc (GstRTCPPacket *packet, guint32 ssrc); /* report blocks for SR and RR */ + +GST_EXPORT guint gst_rtcp_packet_get_rb_count (GstRTCPPacket *packet); + +GST_EXPORT void gst_rtcp_packet_get_rb (GstRTCPPacket *packet, guint nth, guint32 *ssrc, guint8 *fractionlost, gint32 *packetslost, guint32 *exthighestseq, guint32 *jitter, guint32 *lsr, guint32 *dlsr); + +GST_EXPORT gboolean gst_rtcp_packet_add_rb (GstRTCPPacket *packet, guint32 ssrc, guint8 fractionlost, gint32 packetslost, guint32 exthighestseq, guint32 jitter, guint32 lsr, guint32 dlsr); + +GST_EXPORT void gst_rtcp_packet_set_rb (GstRTCPPacket *packet, guint nth, guint32 ssrc, guint8 fractionlost, gint32 packetslost, guint32 exthighestseq, guint32 jitter, guint32 lsr, guint32 dlsr); /* profile-specific extensions for SR and RR */ + +GST_EXPORT gboolean gst_rtcp_packet_add_profile_specific_ext (GstRTCPPacket * packet, const guint8 * data, guint len); + +GST_EXPORT guint16 gst_rtcp_packet_get_profile_specific_ext_length (GstRTCPPacket * packet); + +GST_EXPORT gboolean gst_rtcp_packet_get_profile_specific_ext (GstRTCPPacket * packet, guint8 ** data, guint * len); + +GST_EXPORT gboolean gst_rtcp_packet_copy_profile_specific_ext (GstRTCPPacket * packet, guint8 ** data, guint * len); /* source description packet */ + +GST_EXPORT guint gst_rtcp_packet_sdes_get_item_count (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_first_item (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_next_item (GstRTCPPacket *packet); + +GST_EXPORT guint32 gst_rtcp_packet_sdes_get_ssrc (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_first_entry (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_next_entry (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_get_entry (GstRTCPPacket *packet, GstRTCPSDESType *type, guint8 *len, guint8 **data); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_copy_entry (GstRTCPPacket *packet, GstRTCPSDESType *type, guint8 *len, guint8 **data); +GST_EXPORT gboolean gst_rtcp_packet_sdes_add_item (GstRTCPPacket *packet, guint32 ssrc); + +GST_EXPORT gboolean gst_rtcp_packet_sdes_add_entry (GstRTCPPacket *packet, GstRTCPSDESType type, guint8 len, const guint8 *data); /* bye packet */ + +GST_EXPORT guint gst_rtcp_packet_bye_get_ssrc_count (GstRTCPPacket *packet); + +GST_EXPORT guint32 gst_rtcp_packet_bye_get_nth_ssrc (GstRTCPPacket *packet, guint nth); + +GST_EXPORT gboolean gst_rtcp_packet_bye_add_ssrc (GstRTCPPacket *packet, guint32 ssrc); + +GST_EXPORT gboolean gst_rtcp_packet_bye_add_ssrcs (GstRTCPPacket *packet, guint32 *ssrc, guint len); + +GST_EXPORT guint8 gst_rtcp_packet_bye_get_reason_len (GstRTCPPacket *packet); + +GST_EXPORT gchar* gst_rtcp_packet_bye_get_reason (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_bye_set_reason (GstRTCPPacket *packet, const gchar *reason); /* app packets */ + +GST_EXPORT void gst_rtcp_packet_app_set_subtype (GstRTCPPacket * packet, guint8 subtype); + +GST_EXPORT guint8 gst_rtcp_packet_app_get_subtype (GstRTCPPacket * packet); + +GST_EXPORT void gst_rtcp_packet_app_set_ssrc (GstRTCPPacket * packet, guint32 ssrc); + +GST_EXPORT guint32 gst_rtcp_packet_app_get_ssrc (GstRTCPPacket * packet); + +GST_EXPORT void gst_rtcp_packet_app_set_name (GstRTCPPacket * packet, const gchar *name); + +GST_EXPORT const gchar* gst_rtcp_packet_app_get_name (GstRTCPPacket * packet); + +GST_EXPORT guint16 gst_rtcp_packet_app_get_data_length (GstRTCPPacket * packet); + +GST_EXPORT gboolean gst_rtcp_packet_app_set_data_length (GstRTCPPacket * packet, guint16 wordlen); + +GST_EXPORT guint8* gst_rtcp_packet_app_get_data (GstRTCPPacket * packet); /* feedback packets */ + +GST_EXPORT guint32 gst_rtcp_packet_fb_get_sender_ssrc (GstRTCPPacket *packet); + +GST_EXPORT void gst_rtcp_packet_fb_set_sender_ssrc (GstRTCPPacket *packet, guint32 ssrc); + +GST_EXPORT guint32 gst_rtcp_packet_fb_get_media_ssrc (GstRTCPPacket *packet); + +GST_EXPORT void gst_rtcp_packet_fb_set_media_ssrc (GstRTCPPacket *packet, guint32 ssrc); + +GST_EXPORT GstRTCPFBType gst_rtcp_packet_fb_get_type (GstRTCPPacket *packet); + +GST_EXPORT void gst_rtcp_packet_fb_set_type (GstRTCPPacket *packet, GstRTCPFBType type); + +GST_EXPORT guint16 gst_rtcp_packet_fb_get_fci_length (GstRTCPPacket *packet); + +GST_EXPORT gboolean gst_rtcp_packet_fb_set_fci_length (GstRTCPPacket *packet, guint16 wordlen); + +GST_EXPORT guint8 * gst_rtcp_packet_fb_get_fci (GstRTCPPacket *packet); /* helper functions */ + +GST_EXPORT guint64 gst_rtcp_ntp_to_unix (guint64 ntptime); + +GST_EXPORT guint64 gst_rtcp_unix_to_ntp (guint64 unixtime); +GST_EXPORT const gchar * gst_rtcp_sdes_type_to_name (GstRTCPSDESType type); + +GST_EXPORT GstRTCPSDESType gst_rtcp_sdes_name_to_type (const gchar *name); G_END_DECLS diff --git a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h index 99e8dd6460..8ab5dbe392 100644 --- a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h +++ b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h @@ -76,28 +76,44 @@ struct _GstRTPBaseAudioPayloadClass gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_rtp_base_audio_payload_get_type (void); /* configure frame based */ + +GST_EXPORT void gst_rtp_base_audio_payload_set_frame_based (GstRTPBaseAudioPayload *rtpbaseaudiopayload); +GST_EXPORT void gst_rtp_base_audio_payload_set_frame_options (GstRTPBaseAudioPayload *rtpbaseaudiopayload, gint frame_duration, gint frame_size); /* configure sample based */ + +GST_EXPORT void gst_rtp_base_audio_payload_set_sample_based (GstRTPBaseAudioPayload *rtpbaseaudiopayload); + +GST_EXPORT void gst_rtp_base_audio_payload_set_sample_options (GstRTPBaseAudioPayload *rtpbaseaudiopayload, gint sample_size); + +GST_EXPORT void gst_rtp_base_audio_payload_set_samplebits_options (GstRTPBaseAudioPayload *rtpbaseaudiopayload, gint sample_size); /* get the internal adapter */ + +GST_EXPORT GstAdapter* gst_rtp_base_audio_payload_get_adapter (GstRTPBaseAudioPayload *rtpbaseaudiopayload); /* push and flushing data */ + +GST_EXPORT GstFlowReturn gst_rtp_base_audio_payload_push (GstRTPBaseAudioPayload * baseaudiopayload, const guint8 * data, guint payload_len, GstClockTime timestamp); + +GST_EXPORT GstFlowReturn gst_rtp_base_audio_payload_flush (GstRTPBaseAudioPayload * baseaudiopayload, guint payload_len, GstClockTime timestamp); diff --git a/gst-libs/gst/rtp/gstrtpbasedepayload.h b/gst-libs/gst/rtp/gstrtpbasedepayload.h index fb55d64a19..f5656ace9a 100644 --- a/gst-libs/gst/rtp/gstrtpbasedepayload.h +++ b/gst-libs/gst/rtp/gstrtpbasedepayload.h @@ -114,9 +114,13 @@ struct _GstRTPBaseDepayloadClass gpointer _gst_reserved[GST_PADDING - 1]; }; +GST_EXPORT GType gst_rtp_base_depayload_get_type (void); +GST_EXPORT GstFlowReturn gst_rtp_base_depayload_push (GstRTPBaseDepayload *filter, GstBuffer *out_buf); + +GST_EXPORT GstFlowReturn gst_rtp_base_depayload_push_list (GstRTPBaseDepayload *filter, GstBufferList *out_list); diff --git a/gst-libs/gst/rtp/gstrtpbasepayload.h b/gst-libs/gst/rtp/gstrtpbasepayload.h index 366377a29b..48bc29c307 100644 --- a/gst-libs/gst/rtp/gstrtpbasepayload.h +++ b/gst-libs/gst/rtp/gstrtpbasepayload.h @@ -145,23 +145,29 @@ struct _GstRTPBasePayloadClass gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_rtp_base_payload_get_type (void); +GST_EXPORT void gst_rtp_base_payload_set_options (GstRTPBasePayload *payload, const gchar *media, gboolean dynamic, const gchar *encoding_name, guint32 clock_rate); +GST_EXPORT gboolean gst_rtp_base_payload_set_outcaps (GstRTPBasePayload *payload, const gchar *fieldname, ...); +GST_EXPORT gboolean gst_rtp_base_payload_is_filled (GstRTPBasePayload *payload, guint size, GstClockTime duration); +GST_EXPORT GstFlowReturn gst_rtp_base_payload_push (GstRTPBasePayload *payload, GstBuffer *buffer); +GST_EXPORT GstFlowReturn gst_rtp_base_payload_push_list (GstRTPBasePayload *payload, GstBufferList *list); diff --git a/gst-libs/gst/rtp/gstrtpbuffer.h b/gst-libs/gst/rtp/gstrtpbuffer.h index 5a9049fb8d..53ff686d8a 100644 --- a/gst-libs/gst/rtp/gstrtpbuffer.h +++ b/gst-libs/gst/rtp/gstrtpbuffer.h @@ -63,76 +63,151 @@ struct _GstRTPBuffer { GST_MAP_INFO_INIT, GST_MAP_INFO_INIT, GST_MAP_INFO_INIT, GST_MAP_INFO_INIT} } /* creating buffers */ + +GST_EXPORT void gst_rtp_buffer_allocate_data (GstBuffer *buffer, guint payload_len, guint8 pad_len, guint8 csrc_count); +GST_EXPORT GstBuffer* gst_rtp_buffer_new_take_data (gpointer data, gsize len); + +GST_EXPORT GstBuffer* gst_rtp_buffer_new_copy_data (gpointer data, gsize len); + +GST_EXPORT GstBuffer* gst_rtp_buffer_new_allocate (guint payload_len, guint8 pad_len, guint8 csrc_count); + +GST_EXPORT GstBuffer* gst_rtp_buffer_new_allocate_len (guint packet_len, guint8 pad_len, guint8 csrc_count); +GST_EXPORT guint gst_rtp_buffer_calc_header_len (guint8 csrc_count); + +GST_EXPORT guint gst_rtp_buffer_calc_packet_len (guint payload_len, guint8 pad_len, guint8 csrc_count); + +GST_EXPORT guint gst_rtp_buffer_calc_payload_len (guint packet_len, guint8 pad_len, guint8 csrc_count); +GST_EXPORT gboolean gst_rtp_buffer_map (GstBuffer *buffer, GstMapFlags flags, GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_unmap (GstRTPBuffer *rtp); +GST_EXPORT void gst_rtp_buffer_set_packet_len (GstRTPBuffer *rtp, guint len); + +GST_EXPORT guint gst_rtp_buffer_get_packet_len (GstRTPBuffer *rtp); +GST_EXPORT guint gst_rtp_buffer_get_header_len (GstRTPBuffer *rtp); +GST_EXPORT guint8 gst_rtp_buffer_get_version (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_version (GstRTPBuffer *rtp, guint8 version); +GST_EXPORT gboolean gst_rtp_buffer_get_padding (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_padding (GstRTPBuffer *rtp, gboolean padding); + +GST_EXPORT void gst_rtp_buffer_pad_to (GstRTPBuffer *rtp, guint len); +GST_EXPORT gboolean gst_rtp_buffer_get_extension (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_extension (GstRTPBuffer *rtp, gboolean extension); + +GST_EXPORT gboolean gst_rtp_buffer_get_extension_data (GstRTPBuffer *rtp, guint16 *bits, gpointer *data, guint *wordlen); + +GST_EXPORT GBytes* gst_rtp_buffer_get_extension_bytes (GstRTPBuffer *rtp, guint16 *bits); + +GST_EXPORT gboolean gst_rtp_buffer_set_extension_data (GstRTPBuffer *rtp, guint16 bits, guint16 length); +GST_EXPORT guint32 gst_rtp_buffer_get_ssrc (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_ssrc (GstRTPBuffer *rtp, guint32 ssrc); +GST_EXPORT guint8 gst_rtp_buffer_get_csrc_count (GstRTPBuffer *rtp); + +GST_EXPORT guint32 gst_rtp_buffer_get_csrc (GstRTPBuffer *rtp, guint8 idx); + +GST_EXPORT void gst_rtp_buffer_set_csrc (GstRTPBuffer *rtp, guint8 idx, guint32 csrc); +GST_EXPORT gboolean gst_rtp_buffer_get_marker (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_marker (GstRTPBuffer *rtp, gboolean marker); +GST_EXPORT guint8 gst_rtp_buffer_get_payload_type (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_payload_type (GstRTPBuffer *rtp, guint8 payload_type); +GST_EXPORT guint16 gst_rtp_buffer_get_seq (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_seq (GstRTPBuffer *rtp, guint16 seq); +GST_EXPORT guint32 gst_rtp_buffer_get_timestamp (GstRTPBuffer *rtp); + +GST_EXPORT void gst_rtp_buffer_set_timestamp (GstRTPBuffer *rtp, guint32 timestamp); +GST_EXPORT GstBuffer* gst_rtp_buffer_get_payload_buffer (GstRTPBuffer *rtp); + +GST_EXPORT GstBuffer* gst_rtp_buffer_get_payload_subbuffer (GstRTPBuffer *rtp, guint offset, guint len); +GST_EXPORT guint gst_rtp_buffer_get_payload_len (GstRTPBuffer *rtp); + +GST_EXPORT gpointer gst_rtp_buffer_get_payload (GstRTPBuffer *rtp); + +GST_EXPORT GBytes* gst_rtp_buffer_get_payload_bytes (GstRTPBuffer *rtp); /* some helpers */ + +GST_EXPORT guint32 gst_rtp_buffer_default_clock_rate (guint8 payload_type); + +GST_EXPORT gint gst_rtp_buffer_compare_seqnum (guint16 seqnum1, guint16 seqnum2); + +GST_EXPORT guint64 gst_rtp_buffer_ext_timestamp (guint64 *exttimestamp, guint32 timestamp); +GST_EXPORT gboolean gst_rtp_buffer_get_extension_onebyte_header (GstRTPBuffer *rtp, guint8 id, guint nth, gpointer * data, guint * size); + +GST_EXPORT gboolean gst_rtp_buffer_get_extension_twobytes_header (GstRTPBuffer *rtp, guint8 * appbits, guint8 id, @@ -140,10 +215,13 @@ gboolean gst_rtp_buffer_get_extension_twobytes_header (GstRTPBuffer *rtp, gpointer * data, guint * size); +GST_EXPORT gboolean gst_rtp_buffer_add_extension_onebyte_header (GstRTPBuffer *rtp, guint8 id, gconstpointer data, guint size); + +GST_EXPORT gboolean gst_rtp_buffer_add_extension_twobytes_header (GstRTPBuffer *rtp, guint8 appbits, guint8 id, diff --git a/gst-libs/gst/rtp/gstrtphdrext.h b/gst-libs/gst/rtp/gstrtphdrext.h index 0447a7f218..475aa5ac70 100644 --- a/gst-libs/gst/rtp/gstrtphdrext.h +++ b/gst-libs/gst/rtp/gstrtphdrext.h @@ -34,14 +34,20 @@ G_BEGIN_DECLS #define GST_RTP_HDREXT_NTP_64_SIZE 8 +GST_EXPORT gboolean gst_rtp_hdrext_set_ntp_64 (gpointer data, guint size, guint64 ntptime); + +GST_EXPORT gboolean gst_rtp_hdrext_get_ntp_64 (gpointer data, guint size, guint64 *ntptime); #define GST_RTP_HDREXT_NTP_56 "ntp-56" #define GST_RTP_HDREXT_NTP_56_SIZE 7 +GST_EXPORT gboolean gst_rtp_hdrext_set_ntp_56 (gpointer data, guint size, guint64 ntptime); + +GST_EXPORT gboolean gst_rtp_hdrext_get_ntp_56 (gpointer data, guint size, guint64 *ntptime); G_END_DECLS diff --git a/gst-libs/gst/rtp/gstrtppayloads.h b/gst-libs/gst/rtp/gstrtppayloads.h index 0ae5a83dd8..d8d5478dbd 100644 --- a/gst-libs/gst/rtp/gstrtppayloads.h +++ b/gst-libs/gst/rtp/gstrtppayloads.h @@ -186,7 +186,10 @@ struct _GstRTPPayloadInfo gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT const GstRTPPayloadInfo * gst_rtp_payload_info_for_pt (guint8 payload_type); + +GST_EXPORT const GstRTPPayloadInfo * gst_rtp_payload_info_for_name (const gchar *media, const gchar *encoding_name); G_END_DECLS diff --git a/gst-libs/gst/rtp/rtp_mkenum.py b/gst-libs/gst/rtp/rtp_mkenum.py index 954fc90659..9e3d92c37a 100755 --- a/gst-libs/gst/rtp/rtp_mkenum.py +++ b/gst-libs/gst/rtp/rtp_mkenum.py @@ -8,11 +8,11 @@ import sys, os, shutil, subprocess h_array = ['--fhead', - "#ifndef __GST_RTP_ENUM_TYPES_H__\n#define __GST_RTP_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n", + "#ifndef __GST_RTP_ENUM_TYPES_H__\n#define __GST_RTP_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n", '--fprod', "\n/* enumerations from \"@filename@\" */\n", '--vhead', - 'GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n', + 'GST_EXPORT GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n', '--ftail', 'G_END_DECLS\n\n#endif /* __GST_RTP_ENUM_TYPES_H__ */', ]