We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
libgstplayer_HEADERS = \
player.h \
+ player-prelude.h \
gstplayer.h \
gstplayer-types.h \
gstplayer-signal-dispatcher.h \
#define GST_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER, GstPlayerGMainContextSignalDispatcherClass))
#define GST_PLAYER_G_MAIN_CONTEXT_SIGNAL_DISPATCHER_CAST(obj) ((GstPlayerGMainContextSignalDispatcher*)(obj))
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_g_main_context_signal_dispatcher_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerSignalDispatcher * gst_player_g_main_context_signal_dispatcher_new (GMainContext * application_context);
G_END_DECLS
#define __GST_PLAYER_MEDIA_INFO_H__
#include <gst/gst.h>
+#include <gst/player/player-prelude.h>
G_BEGIN_DECLS
typedef struct _GstPlayerStreamInfo GstPlayerStreamInfo;
typedef struct _GstPlayerStreamInfoClass GstPlayerStreamInfoClass;
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_stream_info_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_stream_info_get_index (const GstPlayerStreamInfo *info);
-GST_EXPORT
+GST_PLAYER_API
const gchar* gst_player_stream_info_get_stream_type (const GstPlayerStreamInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GstTagList* gst_player_stream_info_get_tags (const GstPlayerStreamInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GstCaps* gst_player_stream_info_get_caps (const GstPlayerStreamInfo *info);
-GST_EXPORT
+GST_PLAYER_API
const gchar* gst_player_stream_info_get_codec (const GstPlayerStreamInfo *info);
#define GST_TYPE_PLAYER_VIDEO_INFO \
typedef struct _GstPlayerVideoInfo GstPlayerVideoInfo;
typedef struct _GstPlayerVideoInfoClass GstPlayerVideoInfoClass;
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_video_info_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_video_info_get_bitrate (const GstPlayerVideoInfo * info);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_video_info_get_max_bitrate (const GstPlayerVideoInfo * info);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_video_info_get_width (const GstPlayerVideoInfo * info);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_video_info_get_height (const GstPlayerVideoInfo * info);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_video_info_get_framerate (const GstPlayerVideoInfo * info,
gint * fps_n,
gint * fps_d);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_video_info_get_pixel_aspect_ratio (const GstPlayerVideoInfo * info,
guint * par_n,
guint * par_d);
typedef struct _GstPlayerAudioInfo GstPlayerAudioInfo;
typedef struct _GstPlayerAudioInfoClass GstPlayerAudioInfoClass;
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_audio_info_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_audio_info_get_channels (const GstPlayerAudioInfo* info);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_audio_info_get_sample_rate (const GstPlayerAudioInfo* info);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_audio_info_get_bitrate (const GstPlayerAudioInfo* info);
-GST_EXPORT
+GST_PLAYER_API
gint gst_player_audio_info_get_max_bitrate (const GstPlayerAudioInfo* info);
-GST_EXPORT
+GST_PLAYER_API
const gchar* gst_player_audio_info_get_language (const GstPlayerAudioInfo* info);
#define GST_TYPE_PLAYER_SUBTITLE_INFO \
typedef struct _GstPlayerSubtitleInfo GstPlayerSubtitleInfo;
typedef struct _GstPlayerSubtitleInfoClass GstPlayerSubtitleInfoClass;
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_subtitle_info_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
const gchar * gst_player_subtitle_info_get_language (const GstPlayerSubtitleInfo* info);
#define GST_TYPE_PLAYER_MEDIA_INFO \
typedef struct _GstPlayerMediaInfo GstPlayerMediaInfo;
typedef struct _GstPlayerMediaInfoClass GstPlayerMediaInfoClass;
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_media_info_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
const gchar * gst_player_media_info_get_uri (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_media_info_is_seekable (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_media_info_is_live (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GstClockTime gst_player_media_info_get_duration (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GList* gst_player_media_info_get_stream_list (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
guint gst_player_media_info_get_number_of_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GList* gst_player_media_info_get_video_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
guint gst_player_media_info_get_number_of_video_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GList* gst_player_media_info_get_audio_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
guint gst_player_media_info_get_number_of_audio_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GList* gst_player_media_info_get_subtitle_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
guint gst_player_media_info_get_number_of_subtitle_streams (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GstTagList* gst_player_media_info_get_tags (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
const gchar* gst_player_media_info_get_title (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
const gchar* gst_player_media_info_get_container_format (const GstPlayerMediaInfo *info);
-GST_EXPORT
+GST_PLAYER_API
GstSample* gst_player_media_info_get_image_sample (const GstPlayerMediaInfo *info);
#ifndef GST_REMOVE_DEPRECATED
GDestroyNotify destroy);
};
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_signal_dispatcher_get_type (void);
G_END_DECLS
#define __GST_PLAYER_TYPES_H__
#include <gst/gst.h>
+#include <gst/player/player-prelude.h>
G_BEGIN_DECLS
#define GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER, GstPlayerVideoOverlayVideoRendererClass))
#define GST_PLAYER_VIDEO_OVERLAY_VIDEO_RENDERER_CAST(obj) ((GstPlayerVideoOverlayVideoRenderer*)(obj))
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_video_overlay_video_renderer_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerVideoRenderer * gst_player_video_overlay_video_renderer_new (gpointer window_handle);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerVideoRenderer * gst_player_video_overlay_video_renderer_new_with_sink (gpointer window_handle, GstElement * video_sink);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_video_overlay_video_renderer_set_window_handle (GstPlayerVideoOverlayVideoRenderer * self, gpointer window_handle);
-GST_EXPORT
+GST_PLAYER_API
gpointer gst_player_video_overlay_video_renderer_get_window_handle (GstPlayerVideoOverlayVideoRenderer * self);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_video_overlay_video_renderer_expose (GstPlayerVideoOverlayVideoRenderer * self);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_video_overlay_video_renderer_set_render_rectangle (GstPlayerVideoOverlayVideoRenderer * self, gint x, gint y, gint width, gint height);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_video_overlay_video_renderer_get_render_rectangle (GstPlayerVideoOverlayVideoRenderer * self, gint *x, gint *y, gint *width, gint *height);
G_END_DECLS
GstElement * (*create_video_sink) (GstPlayerVideoRenderer * self, GstPlayer * player);
};
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_video_renderer_get_type (void);
G_END_DECLS
#define __GST_PLAYER_VISUALIZATION_H__
#include <gst/gst.h>
+#include <gst/player/player-prelude.h>
G_BEGIN_DECLS
gchar *description;
};
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_visualization_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerVisualization * gst_player_visualization_copy (const GstPlayerVisualization *vis);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_visualization_free (GstPlayerVisualization *vis);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerVisualization ** gst_player_visualizations_get (void);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_visualizations_free (GstPlayerVisualization **viss);
G_END_DECLS
#include <gst/gst.h>
#include <gst/video/video.h>
+#include <gst/player/player-prelude.h>
#include <gst/player/gstplayer-types.h>
#include <gst/player/gstplayer-signal-dispatcher.h>
#include <gst/player/gstplayer-video-renderer.h>
G_BEGIN_DECLS
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_state_get_type (void);
#define GST_TYPE_PLAYER_STATE (gst_player_state_get_type ())
GST_PLAYER_STATE_PLAYING
} GstPlayerState;
-GST_EXPORT
+GST_PLAYER_API
const gchar *gst_player_state_get_name (GstPlayerState state);
-GST_EXPORT
+GST_PLAYER_API
GQuark gst_player_error_quark (void);
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_error_get_type (void);
#define GST_PLAYER_ERROR (gst_player_error_quark ())
#define GST_TYPE_PLAYER_ERROR (gst_player_error_get_type ())
GST_PLAYER_ERROR_FAILED = 0
} GstPlayerError;
-GST_EXPORT
+GST_PLAYER_API
const gchar *gst_player_error_get_name (GstPlayerError error);
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_color_balance_type_get_type (void);
#define GST_TYPE_PLAYER_COLOR_BALANCE_TYPE (gst_player_color_balance_type_get_type ())
GST_PLAYER_COLOR_BALANCE_HUE,
} GstPlayerColorBalanceType;
-GST_EXPORT
+GST_PLAYER_API
const gchar *gst_player_color_balance_type_get_name (GstPlayerColorBalanceType type);
#define GST_TYPE_PLAYER (gst_player_get_type ())
#define GST_PLAYER_CAST(obj) ((GstPlayer*)(obj))
-GST_EXPORT
+GST_PLAYER_API
GType gst_player_get_type (void);
-GST_EXPORT
+GST_PLAYER_API
GstPlayer * gst_player_new (GstPlayerVideoRenderer * video_renderer, GstPlayerSignalDispatcher * signal_dispatcher);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_play (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_pause (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_stop (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_seek (GstPlayer * player,
GstClockTime position);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_rate (GstPlayer * player,
gdouble rate);
-GST_EXPORT
+GST_PLAYER_API
gdouble gst_player_get_rate (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
gchar * gst_player_get_uri (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_uri (GstPlayer * player,
const gchar * uri);
-GST_EXPORT
+GST_PLAYER_API
gchar * gst_player_get_subtitle_uri (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_subtitle_uri (GstPlayer * player,
const gchar *uri);
-GST_EXPORT
+GST_PLAYER_API
GstClockTime gst_player_get_position (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
GstClockTime gst_player_get_duration (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
gdouble gst_player_get_volume (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_volume (GstPlayer * player,
gdouble val);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_get_mute (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_mute (GstPlayer * player,
gboolean val);
-GST_EXPORT
+GST_PLAYER_API
GstElement * gst_player_get_pipeline (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_video_track_enabled (GstPlayer * player,
gboolean enabled);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_audio_track_enabled (GstPlayer * player,
gboolean enabled);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_subtitle_track_enabled (GstPlayer * player,
gboolean enabled);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_set_audio_track (GstPlayer *player,
gint stream_index);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_set_video_track (GstPlayer *player,
gint stream_index);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_set_subtitle_track (GstPlayer *player,
gint stream_index);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerMediaInfo * gst_player_get_media_info (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerAudioInfo * gst_player_get_current_audio_track (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerVideoInfo * gst_player_get_current_video_track (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
GstPlayerSubtitleInfo * gst_player_get_current_subtitle_track (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_set_visualization (GstPlayer * player,
const gchar *name);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_visualization_enabled (GstPlayer * player,
gboolean enabled);
-GST_EXPORT
+GST_PLAYER_API
gchar * gst_player_get_current_visualization (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_has_color_balance (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_color_balance (GstPlayer * player,
GstPlayerColorBalanceType type,
gdouble value);
-GST_EXPORT
+GST_PLAYER_API
gdouble gst_player_get_color_balance (GstPlayer * player,
GstPlayerColorBalanceType type);
-GST_EXPORT
+GST_PLAYER_API
GstVideoMultiviewFramePacking gst_player_get_multiview_mode (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_multiview_mode (GstPlayer * player,
GstVideoMultiviewFramePacking mode);
-GST_EXPORT
+GST_PLAYER_API
GstVideoMultiviewFlags gst_player_get_multiview_flags (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_multiview_flags (GstPlayer * player,
GstVideoMultiviewFlags flags);
-GST_EXPORT
+GST_PLAYER_API
gint64 gst_player_get_audio_video_offset (GstPlayer * player);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_set_audio_video_offset (GstPlayer * player,
gint64 offset);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_set_config (GstPlayer * player,
GstStructure * config);
-GST_EXPORT
+GST_PLAYER_API
GstStructure * gst_player_get_config (GstPlayer * player);
/* helpers for configuring the config structure */
-GST_EXPORT
+GST_PLAYER_API
void gst_player_config_set_user_agent (GstStructure * config,
const gchar * agent);
-GST_EXPORT
+GST_PLAYER_API
gchar * gst_player_config_get_user_agent (const GstStructure * config);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_config_set_position_update_interval (GstStructure * config,
guint interval);
-GST_EXPORT
+GST_PLAYER_API
guint gst_player_config_get_position_update_interval (const GstStructure * config);
-GST_EXPORT
+GST_PLAYER_API
void gst_player_config_set_seek_accurate (GstStructure * config, gboolean accurate);
-GST_EXPORT
+GST_PLAYER_API
gboolean gst_player_config_get_seek_accurate (const GstStructure * config);
typedef enum
GST_PLAYER_THUMBNAIL_PNG
} GstPlayerSnapshotFormat;
-GST_EXPORT
+GST_PLAYER_API
GstSample * gst_player_get_video_snapshot (GstPlayer * player,
GstPlayerSnapshotFormat format, const GstStructure * config);
gstplayer_headers = [
'player.h',
+ 'player-prelude.h',
'gstplayer.h',
'gstplayer-types.h',
'gstplayer-signal-dispatcher.h',
--- /dev/null
+/* GStreamer Player Library
+ * Copyright (C) 2018 GStreamer developers
+ *
+ * player-prelude.h: prelude include header for gst-player 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_PLAYER_PRELUDE_H__
+#define __GST_PLAYER_PRELUDE_H__
+
+#include <gst/gst.h>
+
+#ifndef GST_PLAYER_API
+#define GST_PLAYER_API GST_EXPORT
+#endif
+
+#endif /* __GST_PLAYER_PRELUDE_H__ */
#ifndef __PLAYER_H__
#define __PLAYER_H__
+#include <gst/player/player-prelude.h>
#include <gst/player/gstplayer.h>
#include <gst/player/gstplayer-media-info.h>
#include <gst/player/gstplayer-g-main-context-signal-dispatcher.h>