diff options
34 files changed, 343 insertions, 294 deletions
diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am index 49d52b8e6..9fc1ccfca 100644 --- a/gst-libs/gst/video/Makefile.am +++ b/gst-libs/gst/video/Makefile.am @@ -8,7 +8,8 @@ glib_enum_headers = video.h video-format.h video-color.h video-info.h video-dith glib_enum_define = GST_VIDEO glib_gen_prefix = gst_video glib_gen_basename = video -glib_gen_decl_banner=GST_EXPORT +glib_gen_decl_banner=GST_VIDEO_API +glib_gen_decl_include=\#include <gst/video/video-prelude.h> built_sources = video-enumtypes.c built_headers = video-enumtypes.h @@ -60,6 +61,7 @@ libgstvideo_@GST_API_VERSION@include_HEADERS = \ colorbalancechannel.h \ navigation.h \ video.h \ + video-prelude.h \ video-event.h \ video-format.h \ video-chroma.h \ diff --git a/gst-libs/gst/video/colorbalance.h b/gst-libs/gst/video/colorbalance.h index 049b39cc2..282ded9fc 100644 --- a/gst-libs/gst/video/colorbalance.h +++ b/gst-libs/gst/video/colorbalance.h @@ -90,31 +90,31 @@ struct _GstColorBalanceInterface { gpointer _gst_reserved[GST_PADDING]; }; -GST_EXPORT +GST_VIDEO_API GType gst_color_balance_get_type (void); /* virtual class function wrappers */ -GST_EXPORT +GST_VIDEO_API const GList * gst_color_balance_list_channels (GstColorBalance *balance); -GST_EXPORT +GST_VIDEO_API void gst_color_balance_set_value (GstColorBalance *balance, GstColorBalanceChannel *channel, gint value); -GST_EXPORT +GST_VIDEO_API gint gst_color_balance_get_value (GstColorBalance *balance, GstColorBalanceChannel *channel); -GST_EXPORT +GST_VIDEO_API GstColorBalanceType gst_color_balance_get_balance_type (GstColorBalance *balance); /* trigger signal */ -GST_EXPORT +GST_VIDEO_API void gst_color_balance_value_changed (GstColorBalance *balance, GstColorBalanceChannel *channel, gint value); diff --git a/gst-libs/gst/video/colorbalancechannel.h b/gst-libs/gst/video/colorbalancechannel.h index e4fefb6e6..47bff83a8 100644 --- a/gst-libs/gst/video/colorbalancechannel.h +++ b/gst-libs/gst/video/colorbalancechannel.h @@ -23,6 +23,7 @@ #define __GST_COLOR_BALANCE_CHANNEL_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -78,7 +79,7 @@ struct _GstColorBalanceChannelClass { gpointer _gst_reserved[GST_PADDING]; }; -GST_EXPORT +GST_VIDEO_API GType gst_color_balance_channel_get_type (void); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/gstvideoaffinetransformationmeta.h b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h index 1f4682cc2..8dee6d902 100644 --- a/gst-libs/gst/video/gstvideoaffinetransformationmeta.h +++ b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h @@ -61,18 +61,18 @@ struct _GstVideoAffineTransformationMeta gfloat matrix[16]; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_affine_transformation_meta_api_get_type (void); -GST_EXPORT +GST_VIDEO_API const GstMetaInfo *gst_video_affine_transformation_meta_get_info (void); #define gst_buffer_get_video_affine_transformation_meta(b) \ ((GstVideoAffineTransformationMeta *)gst_buffer_get_meta((b),GST_VIDEO_AFFINE_TRANSFORMATION_META_API_TYPE)) -GST_EXPORT +GST_VIDEO_API GstVideoAffineTransformationMeta *gst_buffer_add_video_affine_transformation_meta (GstBuffer * buffer); -GST_EXPORT +GST_VIDEO_API void gst_video_affine_transformation_meta_apply_matrix (GstVideoAffineTransformationMeta * meta, const gfloat matrix[16]); diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h index 877cdb878..a3abab283 100644 --- a/gst-libs/gst/video/gstvideodecoder.h +++ b/gst-libs/gst/video/gstvideodecoder.h @@ -118,7 +118,7 @@ typedef struct _GstVideoDecoderPrivate GstVideoDecoderPrivate; /* do not use this one, use macro below */ -GST_EXPORT +GST_VIDEO_API GstFlowReturn _gst_video_decoder_error (GstVideoDecoder *dec, gint weight, GQuark domain, gint code, gchar *txt, gchar *debug, @@ -341,134 +341,134 @@ struct _GstVideoDecoderClass gpointer padding[GST_PADDING_LARGE-6]; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_decoder_get_type (void); /* Context parameters */ -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_set_packetized (GstVideoDecoder * decoder, gboolean packetized); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_decoder_get_packetized (GstVideoDecoder * decoder); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_set_estimate_rate (GstVideoDecoder * dec, gboolean enabled); -GST_EXPORT +GST_VIDEO_API gint gst_video_decoder_get_estimate_rate (GstVideoDecoder * dec); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_set_max_errors (GstVideoDecoder * dec, gint num); -GST_EXPORT +GST_VIDEO_API gint gst_video_decoder_get_max_errors (GstVideoDecoder * dec); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_set_needs_format (GstVideoDecoder * dec, gboolean enabled); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_decoder_get_needs_format (GstVideoDecoder * dec); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_set_latency (GstVideoDecoder *decoder, GstClockTime min_latency, GstClockTime max_latency); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_get_latency (GstVideoDecoder *decoder, GstClockTime *min_latency, GstClockTime *max_latency); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_get_allocator (GstVideoDecoder *decoder, GstAllocator **allocator, GstAllocationParams *params); -GST_EXPORT +GST_VIDEO_API GstBufferPool *gst_video_decoder_get_buffer_pool (GstVideoDecoder *decoder); /* Object methods */ -GST_EXPORT +GST_VIDEO_API GstVideoCodecFrame *gst_video_decoder_get_frame (GstVideoDecoder *decoder, int frame_number); -GST_EXPORT +GST_VIDEO_API GstVideoCodecFrame *gst_video_decoder_get_oldest_frame (GstVideoDecoder *decoder); -GST_EXPORT +GST_VIDEO_API GList * gst_video_decoder_get_frames (GstVideoDecoder *decoder); /* Parsing related methods */ -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_add_to_frame (GstVideoDecoder *decoder, int n_bytes); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_decoder_have_frame (GstVideoDecoder *decoder); -GST_EXPORT +GST_VIDEO_API gsize gst_video_decoder_get_pending_frame_size (GstVideoDecoder *decoder); -GST_EXPORT +GST_VIDEO_API GstBuffer *gst_video_decoder_allocate_output_buffer (GstVideoDecoder * decoder); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_decoder_allocate_output_frame_with_params (GstVideoDecoder *decoder, GstVideoCodecFrame * frame, GstBufferPoolAcquireParams *params); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_decoder_allocate_output_frame (GstVideoDecoder *decoder, GstVideoCodecFrame *frame); -GST_EXPORT +GST_VIDEO_API GstVideoCodecState *gst_video_decoder_set_output_state (GstVideoDecoder *decoder, GstVideoFormat fmt, guint width, guint height, GstVideoCodecState *reference); -GST_EXPORT +GST_VIDEO_API GstVideoCodecState *gst_video_decoder_get_output_state (GstVideoDecoder *decoder); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_decoder_negotiate (GstVideoDecoder * decoder); -GST_EXPORT +GST_VIDEO_API GstClockTimeDiff gst_video_decoder_get_max_decode_time (GstVideoDecoder *decoder, GstVideoCodecFrame *frame); -GST_EXPORT +GST_VIDEO_API gdouble gst_video_decoder_get_qos_proportion (GstVideoDecoder * decoder); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_decoder_finish_frame (GstVideoDecoder *decoder, GstVideoCodecFrame *frame); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_decoder_drop_frame (GstVideoDecoder *dec, GstVideoCodecFrame *frame); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_release_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_merge_tags (GstVideoDecoder *decoder, const GstTagList *tags, GstTagMergeMode mode); -GST_EXPORT +GST_VIDEO_API GstCaps * gst_video_decoder_proxy_getcaps (GstVideoDecoder * decoder, GstCaps * caps, GstCaps * filter); -GST_EXPORT +GST_VIDEO_API void gst_video_decoder_set_use_default_pad_acceptcaps (GstVideoDecoder * decoder, gboolean use); diff --git a/gst-libs/gst/video/gstvideoencoder.h b/gst-libs/gst/video/gstvideoencoder.h index 49a017e1e..21d955e74 100644 --- a/gst-libs/gst/video/gstvideoencoder.h +++ b/gst-libs/gst/video/gstvideoencoder.h @@ -299,82 +299,82 @@ struct _GstVideoEncoderClass gpointer _gst_reserved[GST_PADDING_LARGE-4]; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_encoder_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoCodecState* gst_video_encoder_get_output_state (GstVideoEncoder *encoder); -GST_EXPORT +GST_VIDEO_API GstVideoCodecState* gst_video_encoder_set_output_state (GstVideoEncoder * encoder, GstCaps * caps, GstVideoCodecState * reference); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_encoder_negotiate (GstVideoEncoder * encoder); -GST_EXPORT +GST_VIDEO_API GstVideoCodecFrame* gst_video_encoder_get_frame (GstVideoEncoder *encoder, int frame_number); -GST_EXPORT +GST_VIDEO_API GstVideoCodecFrame* gst_video_encoder_get_oldest_frame (GstVideoEncoder *encoder); -GST_EXPORT +GST_VIDEO_API GList * gst_video_encoder_get_frames (GstVideoEncoder *encoder); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_encoder_allocate_output_buffer (GstVideoEncoder * encoder, gsize size); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_encoder_allocate_output_frame (GstVideoEncoder *encoder, GstVideoCodecFrame *frame, gsize size); -GST_EXPORT +GST_VIDEO_API GstFlowReturn gst_video_encoder_finish_frame (GstVideoEncoder *encoder, GstVideoCodecFrame *frame); -GST_EXPORT +GST_VIDEO_API GstCaps * gst_video_encoder_proxy_getcaps (GstVideoEncoder * enc, GstCaps * caps, GstCaps * filter); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_set_latency (GstVideoEncoder *encoder, GstClockTime min_latency, GstClockTime max_latency); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_get_latency (GstVideoEncoder *encoder, GstClockTime *min_latency, GstClockTime *max_latency); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_set_headers (GstVideoEncoder *encoder, GList *headers); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_merge_tags (GstVideoEncoder *encoder, const GstTagList *tags, GstTagMergeMode mode); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_get_allocator (GstVideoEncoder *encoder, GstAllocator **allocator, GstAllocationParams *params); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_set_min_pts(GstVideoEncoder *encoder, GstClockTime min_pts); -GST_EXPORT +GST_VIDEO_API void gst_video_encoder_set_qos_enabled (GstVideoEncoder * encoder, gboolean enabled); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_encoder_is_qos_enabled (GstVideoEncoder * encoder); -GST_EXPORT +GST_VIDEO_API GstClockTimeDiff gst_video_encoder_get_max_encode_time (GstVideoEncoder *encoder, GstVideoCodecFrame * frame); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/gstvideofilter.h b/gst-libs/gst/video/gstvideofilter.h index 475b113fd..cfe50d662 100644 --- a/gst-libs/gst/video/gstvideofilter.h +++ b/gst-libs/gst/video/gstvideofilter.h @@ -79,7 +79,7 @@ struct _GstVideoFilterClass { gpointer _gst_reserved[GST_PADDING]; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_filter_get_type (void); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/gstvideometa.h b/gst-libs/gst/video/gstvideometa.h index cb2ea1c82..1a7643ff4 100644 --- a/gst-libs/gst/video/gstvideometa.h +++ b/gst-libs/gst/video/gstvideometa.h @@ -76,33 +76,33 @@ struct _GstVideoMeta { gboolean (*unmap) (GstVideoMeta *meta, guint plane, GstMapInfo *info); }; -GST_EXPORT +GST_VIDEO_API GType gst_video_meta_api_get_type (void); -GST_EXPORT +GST_VIDEO_API const GstMetaInfo * gst_video_meta_get_info (void); -GST_EXPORT +GST_VIDEO_API GstVideoMeta * gst_buffer_get_video_meta (GstBuffer *buffer); -GST_EXPORT +GST_VIDEO_API GstVideoMeta * gst_buffer_get_video_meta_id (GstBuffer *buffer, gint id); -GST_EXPORT +GST_VIDEO_API GstVideoMeta * gst_buffer_add_video_meta (GstBuffer *buffer, GstVideoFrameFlags flags, GstVideoFormat format, guint width, guint height); -GST_EXPORT +GST_VIDEO_API GstVideoMeta * gst_buffer_add_video_meta_full (GstBuffer *buffer, GstVideoFrameFlags flags, GstVideoFormat format, guint width, guint height, guint n_planes, gsize offset[GST_VIDEO_MAX_PLANES], gint stride[GST_VIDEO_MAX_PLANES]); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_meta_map (GstVideoMeta *meta, guint plane, GstMapInfo *info, gpointer *data, gint *stride, GstMapFlags flags); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_meta_unmap (GstVideoMeta *meta, guint plane, GstMapInfo *info); /** @@ -124,10 +124,10 @@ struct _GstVideoCropMeta { guint height; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_crop_meta_api_get_type (void); -GST_EXPORT +GST_VIDEO_API const GstMetaInfo * gst_video_crop_meta_get_info (void); #define gst_buffer_get_video_crop_meta(b) ((GstVideoCropMeta*)gst_buffer_get_meta((b),GST_VIDEO_CROP_META_API_TYPE)) @@ -135,7 +135,7 @@ const GstMetaInfo * gst_video_crop_meta_get_info (void); /* video metadata transforms */ -GST_EXPORT +GST_VIDEO_API GQuark gst_video_meta_transform_scale_get_quark (void); /** * gst_video_meta_transform_scale: @@ -247,15 +247,15 @@ struct _GstVideoGLTextureUploadMeta { GBoxedFreeFunc user_data_free; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_gl_texture_upload_meta_api_get_type (void); -GST_EXPORT +GST_VIDEO_API const GstMetaInfo * gst_video_gl_texture_upload_meta_get_info (void); #define gst_buffer_get_video_gl_texture_upload_meta(b) ((GstVideoGLTextureUploadMeta*)gst_buffer_get_meta((b),GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE)) -GST_EXPORT +GST_VIDEO_API GstVideoGLTextureUploadMeta * gst_buffer_add_video_gl_texture_upload_meta (GstBuffer *buffer, GstVideoGLTextureOrientation texture_orientation, @@ -266,7 +266,7 @@ GstVideoGLTextureUploadMeta * GBoxedCopyFunc user_data_copy, GBoxedFreeFunc user_data_free); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_gl_texture_upload_meta_upload (GstVideoGLTextureUploadMeta *meta, guint texture_id[4]); @@ -300,20 +300,20 @@ typedef struct { GList *params; } GstVideoRegionOfInterestMeta; -GST_EXPORT +GST_VIDEO_API GType gst_video_region_of_interest_meta_api_get_type (void); #define GST_VIDEO_REGION_OF_INTEREST_META_API_TYPE (gst_video_region_of_interest_meta_api_get_type()) -GST_EXPORT +GST_VIDEO_API const GstMetaInfo *gst_video_region_of_interest_meta_get_info (void); #define GST_VIDEO_REGION_OF_INTEREST_META_INFO (gst_video_region_of_interest_meta_get_info()) #define gst_buffer_get_video_region_of_interest_meta(b) \ ((GstVideoRegionOfInterestMeta*)gst_buffer_get_meta((b),GST_VIDEO_REGION_OF_INTEREST_META_API_TYPE)) -GST_EXPORT +GST_VIDEO_API GstVideoRegionOfInterestMeta *gst_buffer_get_video_region_of_interest_meta_id (GstBuffer * buffer, gint id); -GST_EXPORT +GST_VIDEO_API GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta (GstBuffer * buffer, const gchar * roi_type, guint x, @@ -321,18 +321,18 @@ GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta (G guint w, guint h); -GST_EXPORT +GST_VIDEO_API GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta_id (GstBuffer * buffer, GQuark roi_type, guint x, guint y, guint w, guint h); -GST_EXPORT +GST_VIDEO_API void gst_video_region_of_interest_meta_add_param (GstVideoRegionOfInterestMeta * meta, GstStructure * s); -GST_EXPORT +GST_VIDEO_API GstStructure *gst_video_region_of_interest_meta_get_param (GstVideoRegionOfInterestMeta * meta, const gchar * name); @@ -354,22 +354,22 @@ typedef struct { GstVideoTimeCode tc; } GstVideoTimeCodeMeta; -GST_EXPORT +GST_VIDEO_API GType gst_video_time_code_meta_api_get_type (void); #define GST_VIDEO_TIME_CODE_META_API_TYPE (gst_video_time_code_meta_api_get_type()) -GST_EXPORT +GST_VIDEO_API const GstMetaInfo *gst_video_time_code_meta_get_info (void); #define GST_VIDEO_TIME_CODE_META_INFO (gst_video_time_code_meta_get_info()) #define gst_buffer_get_video_time_code_meta(b) \ ((GstVideoTimeCodeMeta*)gst_buffer_get_meta((b),GST_VIDEO_TIME_CODE_META_API_TYPE)) -GST_EXPORT +GST_VIDEO_API GstVideoTimeCodeMeta *gst_buffer_add_video_time_code_meta (GstBuffer * buffer, GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCodeMeta * gst_buffer_add_video_time_code_meta_full (GstBuffer * buffer, guint fps_n, diff --git a/gst-libs/gst/video/gstvideopool.h b/gst-libs/gst/video/gstvideopool.h index 2dff667b4..db390fbb4 100644 --- a/gst-libs/gst/video/gstvideopool.h +++ b/gst-libs/gst/video/gstvideopool.h @@ -47,10 +47,10 @@ G_BEGIN_DECLS /* setting a bufferpool config */ -GST_EXPORT +GST_VIDEO_API void gst_buffer_pool_config_set_video_alignment (GstStructure *config, GstVideoAlignment *align); -GST_EXPORT +GST_VIDEO_API gboolean gst_buffer_pool_config_get_video_alignment (GstStructure *config, GstVideoAlignment *align); /* video bufferpool */ @@ -75,10 +75,10 @@ struct _GstVideoBufferPoolClass GstBufferPoolClass parent_class; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_buffer_pool_get_type (void); -GST_EXPORT +GST_VIDEO_API GstBufferPool * gst_video_buffer_pool_new (void); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/gstvideosink.h b/gst-libs/gst/video/gstvideosink.h index e1a3ed309..aaa3c22a7 100644 --- a/gst-libs/gst/video/gstvideosink.h +++ b/gst-libs/gst/video/gstvideosink.h @@ -25,6 +25,7 @@ #include <gst/gst.h> #include <gst/base/gstbasesink.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -120,10 +121,10 @@ struct _GstVideoSinkClass { gpointer _gst_reserved[GST_PADDING]; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_sink_get_type (void); -GST_EXPORT +GST_VIDEO_API void gst_video_sink_center_rect (GstVideoRectangle src, GstVideoRectangle dst, GstVideoRectangle *result, gboolean scaling); diff --git a/gst-libs/gst/video/gstvideotimecode.h b/gst-libs/gst/video/gstvideotimecode.h index b5ce095f5..fea5f7407 100644 --- a/gst-libs/gst/video/gstvideotimecode.h +++ b/gst-libs/gst/video/gstvideotimecode.h @@ -21,6 +21,7 @@ #define __GST_VIDEO_TIME_CODE_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -123,10 +124,10 @@ struct _GstVideoTimeCodeInterval { #define GST_VIDEO_TIME_CODE_INIT { {0, 0, 0, NULL}, 0, 0, 0, 0, 0 } #define GST_TYPE_VIDEO_TIME_CODE (gst_video_time_code_get_type()) -GST_EXPORT +GST_VIDEO_API GType gst_video_time_code_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCode * gst_video_time_code_new (guint fps_n, guint fps_d, GDateTime * latest_daily_jam, @@ -137,26 +138,26 @@ GstVideoTimeCode * gst_video_time_code_new (guint fp guint frames, guint field_count); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCode * gst_video_time_code_new_empty (void); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCode * gst_video_time_code_new_from_string (const gchar * tc_str); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCode * gst_video_time_code_new_from_date_time (guint fps_n, guint fps_d, GDateTime * dt, GstVideoTimeCodeFlags flags, guint field_count); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_free (GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCode * gst_video_time_code_copy (const GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_init (GstVideoTimeCode * tc, guint fps_n, guint fps_d, @@ -168,7 +169,7 @@ void gst_video_time_code_init (GstVideoTimeCode * tc guint frames, guint field_count); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_init_from_date_time (GstVideoTimeCode * tc, guint fps_n, guint fps_d, @@ -176,65 +177,65 @@ void gst_video_time_code_init_from_date_time (GstVideoTimeCode * tc GstVideoTimeCodeFlags flags, guint field_count); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_clear (GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_time_code_is_valid (const GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API gint gst_video_time_code_compare (const GstVideoTimeCode * tc1, const GstVideoTimeCode * tc2); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_increment_frame (GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_add_frames (GstVideoTimeCode * tc, gint64 frames); -GST_EXPORT +GST_VIDEO_API gchar *gst_video_time_code_to_string (const GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API GDateTime *gst_video_time_code_to_date_time (const GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API guint64 gst_video_time_code_nsec_since_daily_jam (const GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API guint64 gst_video_time_code_frames_since_daily_jam (const GstVideoTimeCode * tc); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCode * gst_video_time_code_add_interval (const GstVideoTimeCode * tc, const GstVideoTimeCodeInterval * tc_inter); #define GST_TYPE_VIDEO_TIME_CODE_INTERVAL (gst_video_time_code_interval_get_type()) -GST_EXPORT +GST_VIDEO_API GType gst_video_time_code_interval_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCodeInterval * gst_video_time_code_interval_new (guint hours, guint minutes, guint seconds, guint frames); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCodeInterval * gst_video_time_code_interval_new_from_string (const gchar * tc_inter_str); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_interval_free (GstVideoTimeCodeInterval * tc); -GST_EXPORT +GST_VIDEO_API GstVideoTimeCodeInterval * gst_video_time_code_interval_copy (const GstVideoTimeCodeInterval * tc); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_interval_init (GstVideoTimeCodeInterval * tc, guint hours, guint minutes, guint seconds, guint frames); -GST_EXPORT +GST_VIDEO_API void gst_video_time_code_interval_clear (GstVideoTimeCodeInterval * tc); G_END_DECLS diff --git a/gst-libs/gst/video/gstvideoutils.h b/gst-libs/gst/video/gstvideoutils.h index 620fc18a9..12a384cc2 100644 --- a/gst-libs/gst/video/gstvideoutils.h +++ b/gst-libs/gst/video/gstvideoutils.h @@ -27,6 +27,7 @@ #define _GST_VIDEO_UTILS_H_ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS #define GST_TYPE_VIDEO_CODEC_STATE \ @@ -265,33 +266,33 @@ struct _GstVideoCodecFrame /* GstVideoCodecState */ -GST_EXPORT +GST_VIDEO_API GType gst_video_codec_state_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoCodecState *gst_video_codec_state_ref (GstVideoCodecState * state); -GST_EXPORT +GST_VIDEO_API void gst_video_codec_state_unref (GstVideoCodecState * state); /* GstVideoCodecFrame */ -GST_EXPORT +GST_VIDEO_API GType gst_video_codec_frame_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoCodecFrame *gst_video_codec_frame_ref (GstVideoCodecFrame * frame); -GST_EXPORT +GST_VIDEO_API void gst_video_codec_frame_unref (GstVideoCodecFrame * frame); -GST_EXPORT +GST_VIDEO_API void gst_video_codec_frame_set_user_data (GstVideoCodecFrame *frame, gpointer user_data, GDestroyNotify notify); -GST_EXPORT +GST_VIDEO_API gpointer gst_video_codec_frame_get_user_data (GstVideoCodecFrame *frame); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build index fa7629e59..0c44d9a87 100644 --- a/gst-libs/gst/video/meson.build +++ b/gst-libs/gst/video/meson.build @@ -55,6 +55,7 @@ video_headers = [ 'video-dither.h', 'video-info.h', 'video-frame.h', + 'video-prelude.h', 'video-scaler.h', 'video-tile.h', 'videodirection.h', diff --git a/gst-libs/gst/video/navigation.h b/gst-libs/gst/video/navigation.h index 110545b19..ce082580e 100644 --- a/gst-libs/gst/video/navigation.h +++ b/gst-libs/gst/video/navigation.h @@ -24,6 +24,7 @@ #define __GST_NAVIGATION_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -53,7 +54,7 @@ struct _GstNavigationInterface { void (*send_event) (GstNavigation *navigation, GstStructure *structure); }; -GST_EXPORT +GST_VIDEO_API GType gst_navigation_get_type (void); /* Navigation commands */ @@ -149,35 +150,35 @@ typedef enum GST_NAVIGATION_QUERY_ANGLES = 2 } GstNavigationQueryType; -GST_EXPORT +GST_VIDEO_API GstNavigationQueryType gst_navigation_query_get_type (GstQuery *query); -GST_EXPORT +GST_VIDEO_API GstQuery * gst_navigation_query_new_commands (void); -GST_EXPORT +GST_VIDEO_API void gst_navigation_query_set_commands (GstQuery *query, gint n_cmds, ...); -GST_EXPORT +GST_VIDEO_API void gst_navigation_query_set_commandsv (GstQuery *query, gint n_cmds, GstNavigationCommand *cmds); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_query_parse_commands_length (GstQuery *query, guint *n_cmds); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_query_parse_commands_nth (GstQuery *query, guint nth, GstNavigationCommand *cmd); -GST_EXPORT +GST_VIDEO_API GstQuery * gst_navigation_query_new_angles (void); -GST_EXPORT +GST_VIDEO_API void gst_navigation_query_set_angles (GstQuery *query, guint cur_angle, guint n_angles); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_query_parse_angles (GstQuery *query, guint *cur_angle, guint *n_angles); @@ -208,35 +209,35 @@ typedef enum { GST_NAVIGATION_MESSAGE_EVENT } GstNavigationMessageType; -GST_EXPORT +GST_VIDEO_API GstNavigationMessageType gst_navigation_message_get_type (GstMessage *message); -GST_EXPORT +GST_VIDEO_API GstMessage * gst_navigation_message_new_mouse_over (GstObject *src, gboolean active); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_message_parse_mouse_over (GstMessage *message, gboolean *active); -GST_EXPORT +GST_VIDEO_API GstMessage * gst_navigation_message_new_commands_changed (GstObject *src); -GST_EXPORT +GST_VIDEO_API GstMessage * gst_navigation_message_new_angles_changed (GstObject *src, guint cur_angle, guint n_angles); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_message_parse_angles_changed (GstMessage *message, guint *cur_angle, guint *n_angles); -GST_EXPORT +GST_VIDEO_API GstMessage * gst_navigation_message_new_event (GstObject *src, GstEvent *event); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_message_parse_event (GstMessage *message, GstEvent ** event); /* event parsing functions */ @@ -273,40 +274,40 @@ typedef enum { GST_NAVIGATION_EVENT_COMMAND = 6 } GstNavigationEventType; -GST_EXPORT +GST_VIDEO_API GstNavigationEventType gst_navigation_event_get_type (GstEvent *event); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_event_parse_key_event (GstEvent *event, const gchar **key); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_event_parse_mouse_button_event (GstEvent *event, gint *button, gdouble *x, gdouble *y); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_event_parse_mouse_move_event (GstEvent *event, gdouble *x, gdouble *y); -GST_EXPORT +GST_VIDEO_API gboolean gst_navigation_event_parse_command (GstEvent *event, GstNavigationCommand *command); /* interface virtual function wrappers */ -GST_EXPORT +GST_VIDEO_API void gst_navigation_send_event (GstNavigation *navigation, GstStructure *structure); -GST_EXPORT +GST_VIDEO_API void gst_navigation_send_key_event (GstNavigation *navigation, const char *event, const char *key); -GST_EXPORT +GST_VIDEO_API void gst_navigation_send_mouse_event (GstNavigation *navigation, const char *event, int button, double x, double y); -GST_EXPORT +GST_VIDEO_API void gst_navigation_send_command (GstNavigation *navigation, GstNavigationCommand command); diff --git a/gst-libs/gst/video/video-blend.h b/gst-libs/gst/video/video-blend.h index 81719db47..1d6175b79 100644 --- a/gst-libs/gst/video/video-blend.h +++ b/gst-libs/gst/video/video-blend.h @@ -27,12 +27,12 @@ #include <gst/gst.h> #include <gst/video/video.h> -GST_EXPORT +GST_VIDEO_API void gst_video_blend_scale_linear_RGBA (GstVideoInfo * src, GstBuffer * src_buffer, gint dest_height, gint dest_width, GstVideoInfo * dest, GstBuffer ** dest_buffer); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_blend (GstVideoFrame * dest, GstVideoFrame * src, gint x, gint y, diff --git a/gst-libs/gst/video/video-chroma.h b/gst-libs/gst/video/video-chroma.h index 95a2f48dc..5240078c0 100644 --- a/gst-libs/gst/video/video-chroma.h +++ b/gst-libs/gst/video/video-chroma.h @@ -21,6 +21,7 @@ #define __GST_VIDEO_CHROMA_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -51,10 +52,10 @@ typedef enum { GST_VIDEO_CHROMA_SITE_DV = (GST_VIDEO_CHROMA_SITE_COSITED | GST_VIDEO_CHROMA_SITE_ALT_LINE), } GstVideoChromaSite; -GST_EXPORT +GST_VIDEO_API GstVideoChromaSite gst_video_chroma_from_string (const gchar * s); -GST_EXPORT +GST_VIDEO_API const gchar * gst_video_chroma_to_string (GstVideoChromaSite site); /** @@ -88,21 +89,21 @@ typedef struct _GstVideoChromaResample GstVideoChromaResample; /* circular dependency, need to include this after defining the enums */ #include <gst/video/video-format.h> -GST_EXPORT +GST_VIDEO_API GstVideoChromaResample * gst_video_chroma_resample_new (GstVideoChromaMethod method, GstVideoChromaSite site, GstVideoChromaFlags flags, GstVideoFormat format, gint h_factor, gint v_factor); -GST_EXPORT +GST_VIDEO_API void gst_video_chroma_resample_free (GstVideoChromaResample *resample); -GST_EXPORT +GST_VIDEO_API void gst_video_chroma_resample_get_info (GstVideoChromaResample *resample, guint * n_lines, gint *offset); -GST_EXPORT +GST_VIDEO_API void gst_video_chroma_resample (GstVideoChromaResample *resample, gpointer lines[], gint width); diff --git a/gst-libs/gst/video/video-color.h b/gst-libs/gst/video/video-color.h index 48ad626e8..6efd9150a 100644 --- a/gst-libs/gst/video/video-color.h +++ b/gst-libs/gst/video/video-color.h @@ -65,7 +65,7 @@ typedef enum { GST_VIDEO_COLOR_MATRIX_BT2020 } GstVideoColorMatrix; -GST_EXPORT +GST_VIDEO_API gboolean gst_video_color_matrix_get_Kr_Kb (GstVideoColorMatrix matrix, gdouble * Kr, gdouble * Kb); /** @@ -110,10 +110,10 @@ typedef enum { GST_VIDEO_TRANSFER_ADOBERGB } GstVideoTransferFunction; -GST_EXPORT +GST_VIDEO_API gdouble gst_video_color_transfer_encode (GstVideoTransferFunction func, gdouble val); -GST_EXPORT +GST_VIDEO_API gdouble gst_video_color_transfer_decode (GstVideoTransferFunction func, gdouble val); /** @@ -169,7 +169,7 @@ typedef struct { gdouble Bx, By; } GstVideoColorPrimariesInfo; -GST_EXPORT +GST_VIDEO_API const GstVideoColorPrimariesInfo * gst_video_color_primaries_get_info (GstVideoColorPrimaries primaries); @@ -198,21 +198,21 @@ typedef struct { #define GST_VIDEO_COLORIMETRY_SRGB "sRGB" #define GST_VIDEO_COLORIMETRY_BT2020 "bt2020" -GST_EXPORT +GST_VIDEO_API gboolean gst_video_colorimetry_matches (const GstVideoColorimetry *cinfo, const gchar *color); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_colorimetry_from_string (GstVideoColorimetry *cinfo, const gchar *color); -GST_EXPORT +GST_VIDEO_API gchar * gst_video_colorimetry_to_string (const GstVideoColorimetry *cinfo); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_colorimetry_is_equal (const GstVideoColorimetry *cinfo, const GstVideoColorimetry *other); /* compute offset and scale */ -GST_EXPORT +GST_VIDEO_API void gst_video_color_range_offsets (GstVideoColorRange range, const GstVideoFormatInfo *info, gint offset[GST_VIDEO_MAX_COMPONENTS], diff --git a/gst-libs/gst/video/video-converter.h b/gst-libs/gst/video/video-converter.h index 491f7576c..cb6222fe3 100644 --- a/gst-libs/gst/video/video-converter.h +++ b/gst-libs/gst/video/video-converter.h @@ -275,21 +275,21 @@ typedef enum { typedef struct _GstVideoConverter GstVideoConverter; -GST_EXPORT +GST_VIDEO_API GstVideoConverter * gst_video_converter_new (GstVideoInfo *in_info, GstVideoInfo *out_info, GstStructure *config); -GST_EXPORT +GST_VIDEO_API void gst_video_converter_free (GstVideoConverter * convert); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_converter_set_config (GstVideoConverter * convert, GstStructure *config); -GST_EXPORT +GST_VIDEO_API const GstStructure * gst_video_converter_get_config (GstVideoConverter * convert); -GST_EXPORT +GST_VIDEO_API void gst_video_converter_frame (GstVideoConverter * convert, const GstVideoFrame *src, GstVideoFrame *dest); diff --git a/gst-libs/gst/video/video-dither.h b/gst-libs/gst/video/video-dither.h index 7f58fdef1..61a696ed3 100644 --- a/gst-libs/gst/video/video-dither.h +++ b/gst-libs/gst/video/video-dither.h @@ -21,6 +21,7 @@ #define __GST_VIDEO_DITHER_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -61,17 +62,17 @@ typedef struct _GstVideoDither GstVideoDither; /* circular dependency, need to include this after defining the enums */ #include <gst/video/video-format.h> -GST_EXPORT +GST_VIDEO_API GstVideoDither * gst_video_dither_new (GstVideoDitherMethod method, GstVideoDitherFlags flags, GstVideoFormat format, guint quantizer[GST_VIDEO_MAX_COMPONENTS], guint width); -GST_EXPORT +GST_VIDEO_API void gst_video_dither_free (GstVideoDither *dither); -GST_EXPORT +GST_VIDEO_API void gst_video_dither_line (GstVideoDither *dither, gpointer line, guint x, guint y, guint width); diff --git a/gst-libs/gst/video/video-event.h b/gst-libs/gst/video/video-event.h index 2b6fd1f73..1fe4e504c 100644 --- a/gst-libs/gst/video/video-event.h +++ b/gst-libs/gst/video/video-event.h @@ -21,27 +21,28 @@ #define __GST_VIDEO_EVENT_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS /* video still frame event creation and parsing */ -GST_EXPORT +GST_VIDEO_API GstEvent * gst_video_event_new_still_frame (gboolean in_still); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_event_parse_still_frame (GstEvent * event, gboolean * in_still); /* video force key unit event creation and parsing */ -GST_EXPORT +GST_VIDEO_API GstEvent * gst_video_event_new_downstream_force_key_unit (GstClockTime timestamp, GstClockTime stream_time, GstClockTime running_time, gboolean all_headers, guint count); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_event_parse_downstream_force_key_unit (GstEvent * event, GstClockTime * timestamp, GstClockTime * stream_time, @@ -49,18 +50,18 @@ gboolean gst_video_event_parse_downstream_force_key_unit (GstEvent * event, gboolean * all_headers, guint * count); -GST_EXPORT +GST_VIDEO_API GstEvent * gst_video_event_new_upstream_force_key_unit (GstClockTime running_time, gboolean all_headers, guint count); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_event_parse_upstream_force_key_unit (GstEvent * event, GstClockTime * running_time, gboolean * all_headers, guint * count); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_event_is_force_key_unit(GstEvent *event); G_END_DECLS diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h index 7e029af66..dbf514d55 100644 --- a/gst-libs/gst/video/video-format.h +++ b/gst-libs/gst/video/video-format.h @@ -505,28 +505,28 @@ struct _GstVideoFormatInfo { /* format properties */ -GST_EXPORT +GST_VIDEO_API GstVideoFormat gst_video_format_from_masks (gint depth, gint bpp, gint endianness, guint red_mask, guint green_mask, guint blue_mask, guint alpha_mask) G_GNUC_CONST; -GST_EXPORT +GST_VIDEO_API GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc) G_GNUC_CONST; -GST_EXPORT +GST_VIDEO_API GstVideoFormat gst_video_format_from_string (const gchar *format) G_GNUC_CONST; -GST_EXPORT +GST_VIDEO_API guint32 gst_video_format_to_fourcc (GstVideoFormat format) G_GNUC_CONST; -GST_EXPORT +GST_VIDEO_API const gchar * gst_video_format_to_string (GstVideoFormat format) G_GNUC_CONST; -GST_EXPORT +GST_VIDEO_API const GstVideoFormatInfo * gst_video_format_get_info (GstVideoFormat format) G_GNUC_CONST; -GST_EXPORT +GST_VIDEO_API gconstpointer gst_video_format_get_palette (GstVideoFormat format, gsize *size); #define GST_VIDEO_SIZE_RANGE "(int) [ 1, max ]" diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h index 2eb17f06b..490a5f154 100644 --- a/gst-libs/gst/video/video-frame.h +++ b/gst-libs/gst/video/video-frame.h @@ -84,21 +84,21 @@ struct _GstVideoFrame { gpointer _gst_reserved[GST_PADDING]; }; -GST_EXPORT +GST_VIDEO_API gboolean gst_video_frame_map (GstVideoFrame *frame, GstVideoInfo *info, GstBuffer *buffer, GstMapFlags flags); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_frame_map_id (GstVideoFrame *frame, GstVideoInfo *info, GstBuffer *buffer, gint id, GstMapFlags flags); -GST_EXPORT +GST_VIDEO_API void gst_video_frame_unmap (GstVideoFrame *frame); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_frame_copy (GstVideoFrame *dest, const GstVideoFrame *src); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_frame_copy_plane (GstVideoFrame *dest, const GstVideoFrame *src, guint plane); diff --git a/gst-libs/gst/video/video-info.h b/gst-libs/gst/video/video-info.h index 546ea65ac..b1580d811 100644 --- a/gst-libs/gst/video/video-info.h +++ b/gst-libs/gst/video/video-info.h @@ -55,10 +55,10 @@ typedef enum { GST_VIDEO_INTERLACE_MODE_FIELDS } GstVideoInterlaceMode; -GST_EXPORT +GST_VIDEO_API const gchar * gst_video_interlace_mode_to_string (GstVideoInterlaceMode mode); -GST_EXPORT +GST_VIDEO_API GstVideoInterlaceMode gst_video_interlace_mode_from_string (const gchar * mode); /** @@ -250,10 +250,10 @@ typedef enum { GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST = 2, } GstVideoFieldOrder; -GST_EXPORT +GST_VIDEO_API const gchar * gst_video_field_order_to_string (GstVideoFieldOrder order); -GST_EXPORT +GST_VIDEO_API GstVideoFieldOrder gst_video_field_order_from_string (const gchar * order); /** @@ -318,7 +318,7 @@ struct _GstVideoInfo { }; #define GST_TYPE_VIDEO_INFO (gst_video_info_get_type ()) -GST_EXPORT +GST_VIDEO_API GType gst_video_info_get_type (void); /* general info */ @@ -370,42 +370,42 @@ GType gst_video_info_get_type (void); #define GST_VIDEO_INFO_COMP_PSTRIDE(i,c) GST_VIDEO_FORMAT_INFO_PSTRIDE((i)->finfo,(c)) #define GST_VIDEO_INFO_COMP_POFFSET(i,c) GST_VIDEO_FORMAT_INFO_POFFSET((i)->finfo,(c)) -GST_EXPORT +GST_VIDEO_API GstVideoInfo * gst_video_info_new (void); -GST_EXPORT +GST_VIDEO_API void gst_video_info_init (GstVideoInfo *info); -GST_EXPORT +GST_VIDEO_API GstVideoInfo * gst_video_info_copy (const GstVideoInfo *info); -GST_EXPORT +GST_VIDEO_API void gst_video_info_free (GstVideoInfo *info); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_info_set_format (GstVideoInfo *info, GstVideoFormat format, guint width, guint height); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_info_from_caps (GstVideoInfo *info, const GstCaps * caps); -GST_EXPORT +GST_VIDEO_API GstCaps * gst_video_info_to_caps (GstVideoInfo *info); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_info_convert (GstVideoInfo *info, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 *dest_value); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_info_is_equal (const GstVideoInfo *info, const GstVideoInfo *other); #include <gst/video/video.h> -GST_EXPORT +GST_VIDEO_API gboolean gst_video_info_align (GstVideoInfo * info, GstVideoAlignment * align); diff --git a/gst-libs/gst/video/video-multiview.h b/gst-libs/gst/video/video-multiview.h index 4588ec569..562f77167 100644 --- a/gst-libs/gst/video/video-multiview.h +++ b/gst-libs/gst/video/video-multiview.h @@ -21,39 +21,40 @@ #define __GST_VIDEO_MULTIVIEW_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS #define GST_TYPE_VIDEO_MULTIVIEW_FLAGSET (gst_video_multiview_flagset_get_type()) -GST_EXPORT +GST_VIDEO_API GType gst_video_multiview_flagset_get_type (void); -GST_EXPORT +GST_VIDEO_API const gchar * gst_video_multiview_mode_to_caps_string (GstVideoMultiviewMode mview_mode); -GST_EXPORT +GST_VIDEO_API GstVideoMultiviewMode gst_video_multiview_mode_from_caps_string (const gchar * caps_mview_mode); -GST_EXPORT +GST_VIDEO_API const GValue *gst_video_multiview_get_mono_modes(void); -GST_EXPORT +GST_VIDEO_API const GValue *gst_video_multiview_get_unpacked_modes(void); -GST_EXPORT +GST_VIDEO_API const GValue *gst_video_multiview_get_doubled_height_modes(void); -GST_EXPORT +GST_VIDEO_API const GValue *gst_video_multiview_get_doubled_width_modes(void); -GST_EXPORT +GST_VIDEO_API const GValue *gst_video_multiview_get_doubled_size_modes(void); -GST_EXPORT +GST_VIDEO_API void gst_video_multiview_video_info_change_mode (GstVideoInfo *info, GstVideoMultiviewMode out_mview_mode, GstVideoMultiviewFlags out_mview_flags); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_multiview_guess_half_aspect (GstVideoMultiviewMode mv_mode, guint width, guint height, guint par_n, guint par_d); diff --git a/gst-libs/gst/video/video-overlay-composition.h b/gst-libs/gst/video/video-overlay-composition.h index 54630c7b0..5c9bf24fe 100644 --- a/gst-libs/gst/video/video-overlay-composition.h +++ b/gst-libs/gst/video/video-overlay-composition.h @@ -124,66 +124,66 @@ typedef enum { " I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444," \ " NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }" -GST_EXPORT +GST_VIDEO_API GType gst_video_overlay_rectangle_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayRectangle * gst_video_overlay_rectangle_new_raw (GstBuffer * pixels, gint render_x, gint render_y, guint render_width, guint render_height, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayRectangle * gst_video_overlay_rectangle_copy (GstVideoOverlayRectangle * rectangle); -GST_EXPORT +GST_VIDEO_API guint gst_video_overlay_rectangle_get_seqnum (GstVideoOverlayRectangle * rectangle); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_rectangle_set_render_rectangle (GstVideoOverlayRectangle * rectangle, gint render_x, gint render_y, guint render_width, guint render_height); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_overlay_rectangle_get_render_rectangle (GstVideoOverlayRectangle * rectangle, gint * render_x, gint * render_y, guint * render_width, guint * render_height); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_overlay_rectangle_get_pixels_raw (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_overlay_rectangle_get_pixels_argb (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_overlay_rectangle_get_pixels_ayuv (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_raw (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_argb (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_ayuv (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayFormatFlags gst_video_overlay_rectangle_get_flags (GstVideoOverlayRectangle * rectangle); -GST_EXPORT +GST_VIDEO_API gfloat gst_video_overlay_rectangle_get_global_alpha (GstVideoOverlayRectangle * rectangle); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_rectangle_set_global_alpha (GstVideoOverlayRectangle * rectangle, gfloat global_alpha); @@ -235,34 +235,34 @@ gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp) gst_mini_object_unref (GST_MINI_OBJECT_CAST (comp)); } -GST_EXPORT +GST_VIDEO_API GType gst_video_overlay_composition_get_type (void); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayComposition * gst_video_overlay_composition_copy (GstVideoOverlayComposition * comp); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayComposition * gst_video_overlay_composition_make_writable (GstVideoOverlayComposition * comp); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayComposition * gst_video_overlay_composition_new (GstVideoOverlayRectangle * rectangle); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_composition_add_rectangle (GstVideoOverlayComposition * comp, GstVideoOverlayRectangle * rectangle); -GST_EXPORT +GST_VIDEO_API guint gst_video_overlay_composition_n_rectangles (GstVideoOverlayComposition * comp); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayRectangle * gst_video_overlay_composition_get_rectangle (GstVideoOverlayComposition * comp, guint n); -GST_EXPORT +GST_VIDEO_API guint gst_video_overlay_composition_get_seqnum (GstVideoOverlayComposition * comp); /* blend composition onto raw video buffer */ -GST_EXPORT +GST_VIDEO_API gboolean gst_video_overlay_composition_blend (GstVideoOverlayComposition * comp, GstVideoFrame * video_buf); @@ -289,13 +289,13 @@ struct _GstVideoOverlayCompositionMeta GstVideoOverlayComposition *overlay; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_overlay_composition_meta_api_get_type (void); -GST_EXPORT +GST_VIDEO_API const GstMetaInfo *gst_video_overlay_composition_meta_get_info (void); -GST_EXPORT +GST_VIDEO_API GstVideoOverlayCompositionMeta * gst_buffer_add_video_overlay_composition_meta (GstBuffer * buf, GstVideoOverlayComposition * comp); diff --git a/gst-libs/gst/video/video-prelude.h b/gst-libs/gst/video/video-prelude.h new file mode 100644 index 000000000..bde26bfd0 --- /dev/null +++ b/gst-libs/gst/video/video-prelude.h @@ -0,0 +1,31 @@ +/* GStreamer Video Library + * Copyright (C) 2018 GStreamer developers + * + * video-prelude.h: prelude include header for gst-video 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_VIDEO_PRELUDE_H__ +#define __GST_VIDEO_PRELUDE_H__ + +#include <gst/gst.h> + +#ifndef GST_VIDEO_API +#define GST_VIDEO_API GST_EXPORT +#endif + +#endif /* __GST_VIDEO_PRELUDE_H__ */ diff --git a/gst-libs/gst/video/video-resampler.h b/gst-libs/gst/video/video-resampler.h index 1bbfa7ad4..34e940bff 100644 --- a/gst-libs/gst/video/video-resampler.h +++ b/gst-libs/gst/video/video-resampler.h @@ -21,6 +21,7 @@ #define __GST_VIDEO_RESAMPLER_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -160,7 +161,7 @@ struct _GstVideoResampler }; -GST_EXPORT +GST_VIDEO_API gboolean gst_video_resampler_init (GstVideoResampler *resampler, GstVideoResamplerMethod method, GstVideoResamplerFlags flags, @@ -169,7 +170,7 @@ gboolean gst_video_resampler_init (GstVideoResampler *resampler, guint in_size, guint out_size, GstStructure *options); -GST_EXPORT +GST_VIDEO_API void gst_video_resampler_clear (GstVideoResampler *resampler); G_END_DECLS diff --git a/gst-libs/gst/video/video-scaler.h b/gst-libs/gst/video/video-scaler.h index 23e2baafa..743f5993b 100644 --- a/gst-libs/gst/video/video-scaler.h +++ b/gst-libs/gst/video/video-scaler.h @@ -50,44 +50,44 @@ typedef enum { typedef struct _GstVideoScaler GstVideoScaler; -GST_EXPORT +GST_VIDEO_API GstVideoScaler * gst_video_scaler_new (GstVideoResamplerMethod method, GstVideoScalerFlags flags, guint n_taps, guint in_size, guint out_size, GstStructure * options); -GST_EXPORT +GST_VIDEO_API void gst_video_scaler_free (GstVideoScaler *scale); -GST_EXPORT +GST_VIDEO_API guint gst_video_scaler_get_max_taps (GstVideoScaler *scale); -GST_EXPORT +GST_VIDEO_API const gdouble * gst_video_scaler_get_coeff (GstVideoScaler *scale, guint out_offset, guint *in_offset, guint *n_taps); -GST_EXPORT +GST_VIDEO_API void gst_video_scaler_horizontal (GstVideoScaler *scale, GstVideoFormat format, gpointer src, gpointer dest, guint dest_offset, guint width); -GST_EXPORT +GST_VIDEO_API void gst_video_scaler_vertical (GstVideoScaler *scale, GstVideoFormat format, gpointer src_lines[], gpointer dest, guint dest_offset, guint width); -GST_EXPORT +GST_VIDEO_API GstVideoScaler * gst_video_scaler_combine_packed_YUV (GstVideoScaler * y_scale, GstVideoScaler *uv_scale, GstVideoFormat in_format, GstVideoFormat out_format); -GST_EXPORT +GST_VIDEO_API void gst_video_scaler_2d (GstVideoScaler *hscale, GstVideoScaler *vscale, GstVideoFormat format, diff --git a/gst-libs/gst/video/video-tile.h b/gst-libs/gst/video/video-tile.h index f73897c6b..4959c5472 100644 --- a/gst-libs/gst/video/video-tile.h +++ b/gst-libs/gst/video/video-tile.h @@ -21,6 +21,7 @@ #define __GST_VIDEO_TILE_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -112,7 +113,7 @@ typedef enum GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 = GST_VIDEO_TILE_MAKE_MODE (1, INDEXED), } GstVideoTileMode; -GST_EXPORT +GST_VIDEO_API guint gst_video_tile_get_index (GstVideoTileMode mode, gint x, gint y, gint x_tiles, gint y_tiles); diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h index 31f14f76f..16f680b85 100644 --- a/gst-libs/gst/video/video.h +++ b/gst-libs/gst/video/video.h @@ -22,6 +22,8 @@ #include <gst/gst.h> +#include <gst/video/video-prelude.h> + typedef struct _GstVideoAlignment GstVideoAlignment; #include <gst/video/video-format.h> @@ -121,13 +123,13 @@ typedef enum { */ #define GST_META_TAG_VIDEO_COLORSPACE_STR "colorspace" -GST_EXPORT +GST_VIDEO_API void gst_video_alignment_reset (GstVideoAlignment *align); /* some helper functions */ -GST_EXPORT +GST_VIDEO_API gboolean gst_video_calculate_display_ratio (guint * dar_n, guint * dar_d, guint video_width, @@ -137,7 +139,7 @@ gboolean gst_video_calculate_display_ratio (guint * dar_n, guint display_par_n, guint display_par_d); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_guess_framerate (GstClockTime duration, gint * dest_n, gint * dest_d); @@ -145,7 +147,7 @@ gboolean gst_video_guess_framerate (GstClockTime duration, typedef void (*GstVideoConvertSampleCallback) (GstSample * sample, GError *error, gpointer user_data); -GST_EXPORT +GST_VIDEO_API void gst_video_convert_sample_async (GstSample * sample, const GstCaps * to_caps, GstClockTime timeout, @@ -153,7 +155,7 @@ void gst_video_convert_sample_async (GstSample * sam gpointer user_data, GDestroyNotify destroy_notify); -GST_EXPORT +GST_VIDEO_API GstSample * gst_video_convert_sample (GstSample * sample, const GstCaps * to_caps, GstClockTime timeout, diff --git a/gst-libs/gst/video/video_mkenum.py b/gst-libs/gst/video/video_mkenum.py index 6e38dbdc9..abf376bea 100755 --- a/gst-libs/gst/video/video_mkenum.py +++ b/gst-libs/gst/video/video_mkenum.py @@ -8,11 +8,11 @@ import sys, os, shutil, subprocess h_array = ['--fhead', - "#ifndef __GST_VIDEO_ENUM_TYPES_H__\n#define __GST_VIDEO_ENUM_TYPES_H__\n\n#include <gst/gst.h>\n\nG_BEGIN_DECLS\n", + "#ifndef __GST_VIDEO_ENUM_TYPES_H__\n#define __GST_VIDEO_ENUM_TYPES_H__\n\n#include <gst/gst.h>\n#include <gst/video/video-prelude.h>\nG_BEGIN_DECLS\n", '--fprod', "\n/* enumerations from \"@filename@\" */\n", '--vhead', - "GST_EXPORT GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n", + "GST_VIDEO_API GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n", '--ftail', "G_END_DECLS\n\n#endif /* __GST_VIDEO_ENUM_TYPES_H__ */" ] diff --git a/gst-libs/gst/video/videodirection.h b/gst-libs/gst/video/videodirection.h index 02ea162ea..127606c88 100644 --- a/gst-libs/gst/video/videodirection.h +++ b/gst-libs/gst/video/videodirection.h @@ -23,6 +23,7 @@ #define __GST_VIDEO_DIRECTION_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS #define GST_TYPE_VIDEO_DIRECTION \ @@ -56,7 +57,7 @@ struct _GstVideoDirectionInterface GTypeInterface iface; }; -GST_EXPORT +GST_VIDEO_API GType gst_video_direction_get_type (void); G_END_DECLS diff --git a/gst-libs/gst/video/videoorientation.h b/gst-libs/gst/video/videoorientation.h index b9104b6ef..8414be62b 100644 --- a/gst-libs/gst/video/videoorientation.h +++ b/gst-libs/gst/video/videoorientation.h @@ -23,6 +23,7 @@ #define __GST_VIDEO_ORIENTATION_H__ #include <gst/gst.h> +#include <gst/video/video-prelude.h> G_BEGIN_DECLS @@ -76,33 +77,33 @@ struct _GstVideoOrientationInterface { gboolean (* set_vcenter) (GstVideoOrientation *video_orientation, gint center); }; -GST_EXPORT +GST_VIDEO_API GType gst_video_orientation_get_type (void); /* virtual class function wrappers */ -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_get_hflip (GstVideoOrientation *video_orientation, gboolean *flip); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_get_vflip (GstVideoOrientation *video_orientation, gboolean *flip); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_get_hcenter (GstVideoOrientation *video_orientation, gint *center); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_get_vcenter (GstVideoOrientation *video_orientation, gint *center); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_set_hflip (GstVideoOrientation *video_orientation, gboolean flip); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_set_vflip (GstVideoOrientation *video_orientation, gboolean flip); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_set_hcenter (GstVideoOrientation *video_orientation, gint center); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_orientation_set_vcenter (GstVideoOrientation *video_orientation, gint center); G_END_DECLS diff --git a/gst-libs/gst/video/videooverlay.h b/gst-libs/gst/video/videooverlay.h index e86202105..12420f700 100644 --- a/gst-libs/gst/video/videooverlay.h +++ b/gst-libs/gst/video/videooverlay.h @@ -72,46 +72,46 @@ struct _GstVideoOverlayInterface { void (*set_window_handle) (GstVideoOverlay *overlay, guintptr handle); }; -GST_EXPORT +GST_VIDEO_API GType gst_video_overlay_get_type (void); /* virtual function wrappers */ -GST_EXPORT +GST_VIDEO_API gboolean gst_video_overlay_set_render_rectangle (GstVideoOverlay * overlay, gint x, gint y, gint width, gint height); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_expose (GstVideoOverlay * overlay); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_handle_events (GstVideoOverlay * overlay, gboolean handle_events); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_set_window_handle (GstVideoOverlay * overlay, guintptr handle); /* public methods to dispatch bus messages */ -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_got_window_handle (GstVideoOverlay * overlay, guintptr handle); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_prepare_window_handle (GstVideoOverlay * overlay); -GST_EXPORT +GST_VIDEO_API gboolean gst_is_video_overlay_prepare_window_handle_message (GstMessage * msg); -GST_EXPORT +GST_VIDEO_API void gst_video_overlay_install_properties (GObjectClass * oclass, gint last_prop_id); -GST_EXPORT +GST_VIDEO_API gboolean gst_video_overlay_set_property (GObject * object, gint last_prop_id, guint property_id, |