From 820c34740fa903cb949c71076e5e9c3cb076a852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 16 May 2017 01:09:38 +0100 Subject: [PATCH] video: mark symbols explicitly for export with GST_EXPORT --- gst-libs/gst/video/Makefile.am | 1 + gst-libs/gst/video/colorbalance.h | 9 ++++ gst-libs/gst/video/colorbalancechannel.h | 1 + .../video/gstvideoaffinetransformationmeta.h | 5 +++ gst-libs/gst/video/gstvideodecoder.h | 42 ++++++++++++++++++ gst-libs/gst/video/gstvideoencoder.h | 19 ++++++++ gst-libs/gst/video/gstvideofilter.h | 1 + gst-libs/gst/video/gstvideometa.h | 36 ++++++++++++++++ gst-libs/gst/video/gstvideopool.h | 6 +++ gst-libs/gst/video/gstvideosink.h | 2 + gst-libs/gst/video/gstvideotimecode.h | 36 ++++++++++++++++ gst-libs/gst/video/gstvideoutils.h | 13 ++++++ gst-libs/gst/video/navigation.h | 43 +++++++++++++++++++ gst-libs/gst/video/video-blend.h | 2 + gst-libs/gst/video/video-chroma.h | 8 ++++ gst-libs/gst/video/video-color.h | 13 ++++++ gst-libs/gst/video/video-converter.h | 7 +++ gst-libs/gst/video/video-dither.h | 3 ++ gst-libs/gst/video/video-event.h | 7 +++ gst-libs/gst/video/video-format.h | 10 +++++ gst-libs/gst/video/video-frame.h | 8 ++++ gst-libs/gst/video/video-info.h | 21 +++++++++ gst-libs/gst/video/video-multiview.h | 16 +++++++ .../gst/video/video-overlay-composition.h | 29 +++++++++++++ gst-libs/gst/video/video-resampler.h | 2 + gst-libs/gst/video/video-scaler.h | 11 +++++ gst-libs/gst/video/video-tile.h | 1 + gst-libs/gst/video/video.h | 6 +++ gst-libs/gst/video/video_mkenum.py | 4 +- gst-libs/gst/video/videodirection.h | 1 + gst-libs/gst/video/videoorientation.h | 16 +++++++ gst-libs/gst/video/videooverlay.h | 9 ++++ 32 files changed, 386 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am index 3994bbb637..49d52b8e65 100644 --- a/gst-libs/gst/video/Makefile.am +++ b/gst-libs/gst/video/Makefile.am @@ -8,6 +8,7 @@ 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 built_sources = video-enumtypes.c built_headers = video-enumtypes.h diff --git a/gst-libs/gst/video/colorbalance.h b/gst-libs/gst/video/colorbalance.h index d5c2bd5dc7..d80a84ca87 100644 --- a/gst-libs/gst/video/colorbalance.h +++ b/gst-libs/gst/video/colorbalance.h @@ -90,14 +90,21 @@ struct _GstColorBalanceInterface { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_color_balance_get_type (void); /* virtual class function wrappers */ + +GST_EXPORT const GList * gst_color_balance_list_channels (GstColorBalance *balance); + +GST_EXPORT void gst_color_balance_set_value (GstColorBalance *balance, GstColorBalanceChannel *channel, gint value); + +GST_EXPORT gint gst_color_balance_get_value (GstColorBalance *balance, GstColorBalanceChannel *channel); @@ -105,6 +112,8 @@ GstColorBalanceType gst_color_balance_get_balance_type (GstColorBalance *balance); /* trigger signal */ + +GST_EXPORT 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 b124f4e54b..e4fefb6e6e 100644 --- a/gst-libs/gst/video/colorbalancechannel.h +++ b/gst-libs/gst/video/colorbalancechannel.h @@ -78,6 +78,7 @@ struct _GstColorBalanceChannelClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT 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 f1ee62982f..ba68bd76fe 100644 --- a/gst-libs/gst/video/gstvideoaffinetransformationmeta.h +++ b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h @@ -62,13 +62,18 @@ struct _GstVideoAffineTransformationMeta gfloat matrix[16]; }; +GST_EXPORT GType gst_video_affine_transformation_meta_api_get_type (void); + +GST_EXPORT 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 GstVideoAffineTransformationMeta *gst_buffer_add_video_affine_transformation_meta (GstBuffer * buffer); +GST_EXPORT 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 b314c4f297..b7b54b24c8 100644 --- a/gst-libs/gst/video/gstvideodecoder.h +++ b/gst-libs/gst/video/gstvideodecoder.h @@ -117,6 +117,8 @@ typedef struct _GstVideoDecoderPrivate GstVideoDecoderPrivate; /* do not use this one, use macro below */ + +GST_EXPORT GstFlowReturn _gst_video_decoder_error (GstVideoDecoder *dec, gint weight, GQuark domain, gint code, gchar *txt, gchar *debug, @@ -339,94 +341,134 @@ struct _GstVideoDecoderClass void *padding[GST_PADDING_LARGE-6]; }; +GST_EXPORT GType gst_video_decoder_get_type (void); /* Context parameters */ + +GST_EXPORT void gst_video_decoder_set_packetized (GstVideoDecoder * decoder, gboolean packetized); +GST_EXPORT gboolean gst_video_decoder_get_packetized (GstVideoDecoder * decoder); +GST_EXPORT void gst_video_decoder_set_estimate_rate (GstVideoDecoder * dec, gboolean enabled); +GST_EXPORT gint gst_video_decoder_get_estimate_rate (GstVideoDecoder * dec); +GST_EXPORT void gst_video_decoder_set_max_errors (GstVideoDecoder * dec, gint num); +GST_EXPORT gint gst_video_decoder_get_max_errors (GstVideoDecoder * dec); +GST_EXPORT void gst_video_decoder_set_needs_format (GstVideoDecoder * dec, gboolean enabled); +GST_EXPORT gboolean gst_video_decoder_get_needs_format (GstVideoDecoder * dec); +GST_EXPORT void gst_video_decoder_set_latency (GstVideoDecoder *decoder, GstClockTime min_latency, GstClockTime max_latency); + +GST_EXPORT void gst_video_decoder_get_latency (GstVideoDecoder *decoder, GstClockTime *min_latency, GstClockTime *max_latency); +GST_EXPORT void gst_video_decoder_get_allocator (GstVideoDecoder *decoder, GstAllocator **allocator, GstAllocationParams *params); + +GST_EXPORT GstBufferPool *gst_video_decoder_get_buffer_pool (GstVideoDecoder *decoder); /* Object methods */ +GST_EXPORT GstVideoCodecFrame *gst_video_decoder_get_frame (GstVideoDecoder *decoder, int frame_number); +GST_EXPORT GstVideoCodecFrame *gst_video_decoder_get_oldest_frame (GstVideoDecoder *decoder); +GST_EXPORT GList * gst_video_decoder_get_frames (GstVideoDecoder *decoder); /* Parsing related methods */ + +GST_EXPORT void gst_video_decoder_add_to_frame (GstVideoDecoder *decoder, int n_bytes); + +GST_EXPORT GstFlowReturn gst_video_decoder_have_frame (GstVideoDecoder *decoder); + +GST_EXPORT gsize gst_video_decoder_get_pending_frame_size (GstVideoDecoder *decoder); +GST_EXPORT GstBuffer *gst_video_decoder_allocate_output_buffer (GstVideoDecoder * decoder); +GST_EXPORT GstFlowReturn gst_video_decoder_allocate_output_frame_with_params (GstVideoDecoder *decoder, GstVideoCodecFrame * frame, GstBufferPoolAcquireParams *params); + +GST_EXPORT GstFlowReturn gst_video_decoder_allocate_output_frame (GstVideoDecoder *decoder, GstVideoCodecFrame *frame); +GST_EXPORT GstVideoCodecState *gst_video_decoder_set_output_state (GstVideoDecoder *decoder, GstVideoFormat fmt, guint width, guint height, GstVideoCodecState *reference); +GST_EXPORT GstVideoCodecState *gst_video_decoder_get_output_state (GstVideoDecoder *decoder); +GST_EXPORT gboolean gst_video_decoder_negotiate (GstVideoDecoder * decoder); +GST_EXPORT GstClockTimeDiff gst_video_decoder_get_max_decode_time (GstVideoDecoder *decoder, GstVideoCodecFrame *frame); +GST_EXPORT gdouble gst_video_decoder_get_qos_proportion (GstVideoDecoder * decoder); +GST_EXPORT GstFlowReturn gst_video_decoder_finish_frame (GstVideoDecoder *decoder, GstVideoCodecFrame *frame); +GST_EXPORT GstFlowReturn gst_video_decoder_drop_frame (GstVideoDecoder *dec, GstVideoCodecFrame *frame); +GST_EXPORT void gst_video_decoder_release_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame); +GST_EXPORT void gst_video_decoder_merge_tags (GstVideoDecoder *decoder, const GstTagList *tags, GstTagMergeMode mode); +GST_EXPORT GstCaps * gst_video_decoder_proxy_getcaps (GstVideoDecoder * decoder, GstCaps * caps, GstCaps * filter); +GST_EXPORT 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 9282b1c944..3c4c7e292a 100644 --- a/gst-libs/gst/video/gstvideoencoder.h +++ b/gst-libs/gst/video/gstvideoencoder.h @@ -299,54 +299,73 @@ struct _GstVideoEncoderClass gpointer _gst_reserved[GST_PADDING_LARGE-4]; }; +GST_EXPORT GType gst_video_encoder_get_type (void); +GST_EXPORT GstVideoCodecState* gst_video_encoder_get_output_state (GstVideoEncoder *encoder); +GST_EXPORT GstVideoCodecState* gst_video_encoder_set_output_state (GstVideoEncoder * encoder, GstCaps * caps, GstVideoCodecState * reference); +GST_EXPORT gboolean gst_video_encoder_negotiate (GstVideoEncoder * encoder); +GST_EXPORT GstVideoCodecFrame* gst_video_encoder_get_frame (GstVideoEncoder *encoder, int frame_number); + +GST_EXPORT GstVideoCodecFrame* gst_video_encoder_get_oldest_frame (GstVideoEncoder *encoder); +GST_EXPORT GList * gst_video_encoder_get_frames (GstVideoEncoder *encoder); +GST_EXPORT GstBuffer * gst_video_encoder_allocate_output_buffer (GstVideoEncoder * encoder, gsize size); +GST_EXPORT GstFlowReturn gst_video_encoder_allocate_output_frame (GstVideoEncoder *encoder, GstVideoCodecFrame *frame, gsize size); +GST_EXPORT GstFlowReturn gst_video_encoder_finish_frame (GstVideoEncoder *encoder, GstVideoCodecFrame *frame); +GST_EXPORT GstCaps * gst_video_encoder_proxy_getcaps (GstVideoEncoder * enc, GstCaps * caps, GstCaps * filter); +GST_EXPORT void gst_video_encoder_set_latency (GstVideoEncoder *encoder, GstClockTime min_latency, GstClockTime max_latency); + +GST_EXPORT void gst_video_encoder_get_latency (GstVideoEncoder *encoder, GstClockTime *min_latency, GstClockTime *max_latency); +GST_EXPORT void gst_video_encoder_set_headers (GstVideoEncoder *encoder, GList *headers); +GST_EXPORT void gst_video_encoder_merge_tags (GstVideoEncoder *encoder, const GstTagList *tags, GstTagMergeMode mode); +GST_EXPORT void gst_video_encoder_get_allocator (GstVideoEncoder *encoder, GstAllocator **allocator, GstAllocationParams *params); +GST_EXPORT void gst_video_encoder_set_min_pts(GstVideoEncoder *encoder, GstClockTime min_pts); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/gstvideofilter.h b/gst-libs/gst/video/gstvideofilter.h index e64d533716..475b113fdb 100644 --- a/gst-libs/gst/video/gstvideofilter.h +++ b/gst-libs/gst/video/gstvideofilter.h @@ -79,6 +79,7 @@ struct _GstVideoFilterClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT 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 55da189dee..477a29762d 100644 --- a/gst-libs/gst/video/gstvideometa.h +++ b/gst-libs/gst/video/gstvideometa.h @@ -76,21 +76,33 @@ struct _GstVideoMeta { gboolean (*unmap) (GstVideoMeta *meta, guint plane, GstMapInfo *info); }; +GST_EXPORT GType gst_video_meta_api_get_type (void); + +GST_EXPORT const GstMetaInfo * gst_video_meta_get_info (void); +GST_EXPORT GstVideoMeta * gst_buffer_get_video_meta (GstBuffer *buffer); + +GST_EXPORT GstVideoMeta * gst_buffer_get_video_meta_id (GstBuffer *buffer, gint id); +GST_EXPORT GstVideoMeta * gst_buffer_add_video_meta (GstBuffer *buffer, GstVideoFrameFlags flags, GstVideoFormat format, guint width, guint height); + +GST_EXPORT 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 gboolean gst_video_meta_map (GstVideoMeta *meta, guint plane, GstMapInfo *info, gpointer *data, gint *stride, GstMapFlags flags); + +GST_EXPORT gboolean gst_video_meta_unmap (GstVideoMeta *meta, guint plane, GstMapInfo *info); /** @@ -112,7 +124,10 @@ struct _GstVideoCropMeta { guint height; }; +GST_EXPORT GType gst_video_crop_meta_api_get_type (void); + +GST_EXPORT 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)) @@ -120,6 +135,7 @@ const GstMetaInfo * gst_video_crop_meta_get_info (void); /* video metadata transforms */ +GST_EXPORT GQuark gst_video_meta_transform_scale_get_quark (void); /** * gst_video_meta_transform_scale: @@ -231,10 +247,15 @@ struct _GstVideoGLTextureUploadMeta { GBoxedFreeFunc user_data_free; }; +GST_EXPORT GType gst_video_gl_texture_upload_meta_api_get_type (void); + +GST_EXPORT 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 GstVideoGLTextureUploadMeta * gst_buffer_add_video_gl_texture_upload_meta (GstBuffer *buffer, GstVideoGLTextureOrientation texture_orientation, @@ -244,6 +265,8 @@ GstVideoGLTextureUploadMeta * gpointer user_data, GBoxedCopyFunc user_data_copy, GBoxedFreeFunc user_data_free); + +GST_EXPORT gboolean gst_video_gl_texture_upload_meta_upload (GstVideoGLTextureUploadMeta *meta, guint texture_id[4]); @@ -274,21 +297,28 @@ typedef struct { guint h; } GstVideoRegionOfInterestMeta; +GST_EXPORT 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 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 GstVideoRegionOfInterestMeta *gst_buffer_get_video_region_of_interest_meta_id (GstBuffer * buffer, gint id); + +GST_EXPORT GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta (GstBuffer * buffer, const gchar * roi_type, guint x, guint y, guint w, guint h); + +GST_EXPORT GstVideoRegionOfInterestMeta *gst_buffer_add_video_region_of_interest_meta_id (GstBuffer * buffer, GQuark roi_type, guint x, @@ -314,16 +344,22 @@ typedef struct { GstVideoTimeCode tc; } GstVideoTimeCodeMeta; +GST_EXPORT 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 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 GstVideoTimeCodeMeta *gst_buffer_add_video_time_code_meta (GstBuffer * buffer, GstVideoTimeCode * tc); +GST_EXPORT 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 d5a9de474e..2dff667b4b 100644 --- a/gst-libs/gst/video/gstvideopool.h +++ b/gst-libs/gst/video/gstvideopool.h @@ -46,7 +46,11 @@ G_BEGIN_DECLS #define GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT "GstBufferPoolOptionVideoAlignment" /* setting a bufferpool config */ + +GST_EXPORT void gst_buffer_pool_config_set_video_alignment (GstStructure *config, GstVideoAlignment *align); + +GST_EXPORT gboolean gst_buffer_pool_config_get_video_alignment (GstStructure *config, GstVideoAlignment *align); /* video bufferpool */ @@ -71,8 +75,10 @@ struct _GstVideoBufferPoolClass GstBufferPoolClass parent_class; }; +GST_EXPORT GType gst_video_buffer_pool_get_type (void); +GST_EXPORT 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 d645058164..e1a3ed3091 100644 --- a/gst-libs/gst/video/gstvideosink.h +++ b/gst-libs/gst/video/gstvideosink.h @@ -120,8 +120,10 @@ struct _GstVideoSinkClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_video_sink_get_type (void); +GST_EXPORT 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 402b755ac3..f4a84ea3d3 100644 --- a/gst-libs/gst/video/gstvideotimecode.h +++ b/gst-libs/gst/video/gstvideotimecode.h @@ -122,8 +122,10 @@ struct _GstVideoTimeCodeInterval { #define GST_TYPE_VIDEO_TIME_CODE (gst_video_time_code_get_type()) +GST_EXPORT GType gst_video_time_code_get_type (void); +GST_EXPORT GstVideoTimeCode * gst_video_time_code_new (guint fps_n, guint fps_d, GDateTime * latest_daily_jam, @@ -133,17 +135,27 @@ GstVideoTimeCode * gst_video_time_code_new (guint fp guint seconds, guint frames, guint field_count); + +GST_EXPORT GstVideoTimeCode * gst_video_time_code_new_empty (void); + +GST_EXPORT GstVideoTimeCode * gst_video_time_code_new_from_string (const gchar * tc_str); + +GST_EXPORT GstVideoTimeCode * gst_video_time_code_new_from_date_time (guint fps_n, guint fps_d, GDateTime * dt, GstVideoTimeCodeFlags flags, guint field_count); + +GST_EXPORT void gst_video_time_code_free (GstVideoTimeCode * tc); +GST_EXPORT GstVideoTimeCode * gst_video_time_code_copy (const GstVideoTimeCode * tc); +GST_EXPORT void gst_video_time_code_init (GstVideoTimeCode * tc, guint fps_n, guint fps_d, @@ -154,50 +166,74 @@ void gst_video_time_code_init (GstVideoTimeCode * tc guint seconds, guint frames, guint field_count); + +GST_EXPORT void gst_video_time_code_init_from_date_time (GstVideoTimeCode * tc, guint fps_n, guint fps_d, GDateTime * dt, GstVideoTimeCodeFlags flags, guint field_count); + +GST_EXPORT void gst_video_time_code_clear (GstVideoTimeCode * tc); +GST_EXPORT gboolean gst_video_time_code_is_valid (const GstVideoTimeCode * tc); +GST_EXPORT gint gst_video_time_code_compare (const GstVideoTimeCode * tc1, const GstVideoTimeCode * tc2); +GST_EXPORT void gst_video_time_code_increment_frame (GstVideoTimeCode * tc); + +GST_EXPORT void gst_video_time_code_add_frames (GstVideoTimeCode * tc, gint64 frames); +GST_EXPORT gchar *gst_video_time_code_to_string (const GstVideoTimeCode * tc); +GST_EXPORT GDateTime *gst_video_time_code_to_date_time (const GstVideoTimeCode * tc); +GST_EXPORT guint64 gst_video_time_code_nsec_since_daily_jam (const GstVideoTimeCode * tc); +GST_EXPORT guint64 gst_video_time_code_frames_since_daily_jam (const GstVideoTimeCode * tc); +GST_EXPORT 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 GType gst_video_time_code_interval_get_type (void); +GST_EXPORT GstVideoTimeCodeInterval * gst_video_time_code_interval_new (guint hours, guint minutes, guint seconds, guint frames); + +GST_EXPORT GstVideoTimeCodeInterval * gst_video_time_code_interval_new_from_string (const gchar * tc_inter_str); + +GST_EXPORT void gst_video_time_code_interval_free (GstVideoTimeCodeInterval * tc); +GST_EXPORT GstVideoTimeCodeInterval * gst_video_time_code_interval_copy (const GstVideoTimeCodeInterval * tc); +GST_EXPORT void gst_video_time_code_interval_init (GstVideoTimeCodeInterval * tc, guint hours, guint minutes, guint seconds, guint frames); + +GST_EXPORT 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 f7aed89384..94d64078c4 100644 --- a/gst-libs/gst/video/gstvideoutils.h +++ b/gst-libs/gst/video/gstvideoutils.h @@ -264,21 +264,34 @@ struct _GstVideoCodecFrame }; /* GstVideoCodecState */ + +GST_EXPORT GType gst_video_codec_state_get_type (void); +GST_EXPORT GstVideoCodecState *gst_video_codec_state_ref (GstVideoCodecState * state); +GST_EXPORT void gst_video_codec_state_unref (GstVideoCodecState * state); /* GstVideoCodecFrame */ + +GST_EXPORT GType gst_video_codec_frame_get_type (void); +GST_EXPORT GstVideoCodecFrame *gst_video_codec_frame_ref (GstVideoCodecFrame * frame); + +GST_EXPORT void gst_video_codec_frame_unref (GstVideoCodecFrame * frame); + +GST_EXPORT void gst_video_codec_frame_set_user_data (GstVideoCodecFrame *frame, gpointer user_data, GDestroyNotify notify); + +GST_EXPORT gpointer gst_video_codec_frame_get_user_data (GstVideoCodecFrame *frame); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst-libs/gst/video/navigation.h b/gst-libs/gst/video/navigation.h index b69c70c458..110545b198 100644 --- a/gst-libs/gst/video/navigation.h +++ b/gst-libs/gst/video/navigation.h @@ -53,6 +53,7 @@ struct _GstNavigationInterface { void (*send_event) (GstNavigation *navigation, GstStructure *structure); }; +GST_EXPORT GType gst_navigation_get_type (void); /* Navigation commands */ @@ -148,20 +149,35 @@ typedef enum GST_NAVIGATION_QUERY_ANGLES = 2 } GstNavigationQueryType; +GST_EXPORT GstNavigationQueryType gst_navigation_query_get_type (GstQuery *query); +GST_EXPORT GstQuery * gst_navigation_query_new_commands (void); + +GST_EXPORT void gst_navigation_query_set_commands (GstQuery *query, gint n_cmds, ...); + +GST_EXPORT void gst_navigation_query_set_commandsv (GstQuery *query, gint n_cmds, GstNavigationCommand *cmds); + +GST_EXPORT gboolean gst_navigation_query_parse_commands_length (GstQuery *query, guint *n_cmds); + +GST_EXPORT gboolean gst_navigation_query_parse_commands_nth (GstQuery *query, guint nth, GstNavigationCommand *cmd); +GST_EXPORT GstQuery * gst_navigation_query_new_angles (void); + +GST_EXPORT void gst_navigation_query_set_angles (GstQuery *query, guint cur_angle, guint n_angles); + +GST_EXPORT gboolean gst_navigation_query_parse_angles (GstQuery *query, guint *cur_angle, guint *n_angles); @@ -192,24 +208,35 @@ typedef enum { GST_NAVIGATION_MESSAGE_EVENT } GstNavigationMessageType; +GST_EXPORT GstNavigationMessageType gst_navigation_message_get_type (GstMessage *message); +GST_EXPORT GstMessage * gst_navigation_message_new_mouse_over (GstObject *src, gboolean active); + +GST_EXPORT gboolean gst_navigation_message_parse_mouse_over (GstMessage *message, gboolean *active); +GST_EXPORT GstMessage * gst_navigation_message_new_commands_changed (GstObject *src); +GST_EXPORT GstMessage * gst_navigation_message_new_angles_changed (GstObject *src, guint cur_angle, guint n_angles); + +GST_EXPORT gboolean gst_navigation_message_parse_angles_changed (GstMessage *message, guint *cur_angle, guint *n_angles); +GST_EXPORT GstMessage * gst_navigation_message_new_event (GstObject *src, GstEvent *event); + +GST_EXPORT gboolean gst_navigation_message_parse_event (GstMessage *message, GstEvent ** event); /* event parsing functions */ @@ -246,24 +273,40 @@ typedef enum { GST_NAVIGATION_EVENT_COMMAND = 6 } GstNavigationEventType; +GST_EXPORT GstNavigationEventType gst_navigation_event_get_type (GstEvent *event); +GST_EXPORT gboolean gst_navigation_event_parse_key_event (GstEvent *event, const gchar **key); + +GST_EXPORT gboolean gst_navigation_event_parse_mouse_button_event (GstEvent *event, gint *button, gdouble *x, gdouble *y); + +GST_EXPORT gboolean gst_navigation_event_parse_mouse_move_event (GstEvent *event, gdouble *x, gdouble *y); + +GST_EXPORT gboolean gst_navigation_event_parse_command (GstEvent *event, GstNavigationCommand *command); /* interface virtual function wrappers */ + +GST_EXPORT void gst_navigation_send_event (GstNavigation *navigation, GstStructure *structure); + +GST_EXPORT void gst_navigation_send_key_event (GstNavigation *navigation, const char *event, const char *key); + +GST_EXPORT void gst_navigation_send_mouse_event (GstNavigation *navigation, const char *event, int button, double x, double y); + +GST_EXPORT 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 88c91faf51..81719db479 100644 --- a/gst-libs/gst/video/video-blend.h +++ b/gst-libs/gst/video/video-blend.h @@ -27,10 +27,12 @@ #include #include +GST_EXPORT 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 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 717d43b24f..95a2f48dca 100644 --- a/gst-libs/gst/video/video-chroma.h +++ b/gst-libs/gst/video/video-chroma.h @@ -51,7 +51,10 @@ typedef enum { GST_VIDEO_CHROMA_SITE_DV = (GST_VIDEO_CHROMA_SITE_COSITED | GST_VIDEO_CHROMA_SITE_ALT_LINE), } GstVideoChromaSite; +GST_EXPORT GstVideoChromaSite gst_video_chroma_from_string (const gchar * s); + +GST_EXPORT const gchar * gst_video_chroma_to_string (GstVideoChromaSite site); /** @@ -85,16 +88,21 @@ typedef struct _GstVideoChromaResample GstVideoChromaResample; /* circular dependency, need to include this after defining the enums */ #include +GST_EXPORT GstVideoChromaResample * gst_video_chroma_resample_new (GstVideoChromaMethod method, GstVideoChromaSite site, GstVideoChromaFlags flags, GstVideoFormat format, gint h_factor, gint v_factor); + +GST_EXPORT void gst_video_chroma_resample_free (GstVideoChromaResample *resample); +GST_EXPORT void gst_video_chroma_resample_get_info (GstVideoChromaResample *resample, guint * n_lines, gint *offset); +GST_EXPORT 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 6dafdea2a4..e6c92591d6 100644 --- a/gst-libs/gst/video/video-color.h +++ b/gst-libs/gst/video/video-color.h @@ -65,6 +65,7 @@ typedef enum { GST_VIDEO_COLOR_MATRIX_BT2020 } GstVideoColorMatrix; +GST_EXPORT gboolean gst_video_color_matrix_get_Kr_Kb (GstVideoColorMatrix matrix, gdouble * Kr, gdouble * Kb); /** @@ -109,7 +110,10 @@ typedef enum { GST_VIDEO_TRANSFER_ADOBERGB } GstVideoTransferFunction; +GST_EXPORT gdouble gst_video_color_transfer_encode (GstVideoTransferFunction func, gdouble val); + +GST_EXPORT gdouble gst_video_color_transfer_decode (GstVideoTransferFunction func, gdouble val); /** @@ -193,12 +197,21 @@ typedef struct { #define GST_VIDEO_COLORIMETRY_SRGB "sRGB" #define GST_VIDEO_COLORIMETRY_BT2020 "bt2020" +GST_EXPORT gboolean gst_video_colorimetry_matches (const GstVideoColorimetry *cinfo, const gchar *color); + +GST_EXPORT gboolean gst_video_colorimetry_from_string (GstVideoColorimetry *cinfo, const gchar *color); + +GST_EXPORT gchar * gst_video_colorimetry_to_string (const GstVideoColorimetry *cinfo); + +GST_EXPORT gboolean gst_video_colorimetry_is_equal (const GstVideoColorimetry *cinfo, const GstVideoColorimetry *other); /* compute offset and scale */ + +GST_EXPORT 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 ee014cc885..491f7576ce 100644 --- a/gst-libs/gst/video/video-converter.h +++ b/gst-libs/gst/video/video-converter.h @@ -275,14 +275,21 @@ typedef enum { typedef struct _GstVideoConverter GstVideoConverter; +GST_EXPORT GstVideoConverter * gst_video_converter_new (GstVideoInfo *in_info, GstVideoInfo *out_info, GstStructure *config); + +GST_EXPORT void gst_video_converter_free (GstVideoConverter * convert); +GST_EXPORT gboolean gst_video_converter_set_config (GstVideoConverter * convert, GstStructure *config); + +GST_EXPORT const GstStructure * gst_video_converter_get_config (GstVideoConverter * convert); +GST_EXPORT 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 06378e91c5..7f58fdef17 100644 --- a/gst-libs/gst/video/video-dither.h +++ b/gst-libs/gst/video/video-dither.h @@ -61,14 +61,17 @@ typedef struct _GstVideoDither GstVideoDither; /* circular dependency, need to include this after defining the enums */ #include +GST_EXPORT GstVideoDither * gst_video_dither_new (GstVideoDitherMethod method, GstVideoDitherFlags flags, GstVideoFormat format, guint quantizer[GST_VIDEO_MAX_COMPONENTS], guint width); +GST_EXPORT void gst_video_dither_free (GstVideoDither *dither); +GST_EXPORT 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 beed226f48..2b6fd1f732 100644 --- a/gst-libs/gst/video/video-event.h +++ b/gst-libs/gst/video/video-event.h @@ -26,18 +26,22 @@ G_BEGIN_DECLS /* video still frame event creation and parsing */ +GST_EXPORT GstEvent * gst_video_event_new_still_frame (gboolean in_still); +GST_EXPORT gboolean gst_video_event_parse_still_frame (GstEvent * event, gboolean * in_still); /* video force key unit event creation and parsing */ +GST_EXPORT GstEvent * gst_video_event_new_downstream_force_key_unit (GstClockTime timestamp, GstClockTime stream_time, GstClockTime running_time, gboolean all_headers, guint count); +GST_EXPORT gboolean gst_video_event_parse_downstream_force_key_unit (GstEvent * event, GstClockTime * timestamp, GstClockTime * stream_time, @@ -45,15 +49,18 @@ gboolean gst_video_event_parse_downstream_force_key_unit (GstEvent * event, gboolean * all_headers, guint * count); +GST_EXPORT GstEvent * gst_video_event_new_upstream_force_key_unit (GstClockTime running_time, gboolean all_headers, guint count); +GST_EXPORT gboolean gst_video_event_parse_upstream_force_key_unit (GstEvent * event, GstClockTime * running_time, gboolean * all_headers, guint * count); +GST_EXPORT 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 5b651bcb8d..162409bfc5 100644 --- a/gst-libs/gst/video/video-format.h +++ b/gst-libs/gst/video/video-format.h @@ -498,19 +498,29 @@ struct _GstVideoFormatInfo { #define GST_VIDEO_FORMAT_INFO_TILE_HS(info) ((info)->tile_hs) /* format properties */ + +GST_EXPORT 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 GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc) G_GNUC_CONST; + +GST_EXPORT GstVideoFormat gst_video_format_from_string (const gchar *format) G_GNUC_CONST; +GST_EXPORT guint32 gst_video_format_to_fourcc (GstVideoFormat format) G_GNUC_CONST; + +GST_EXPORT const gchar * gst_video_format_to_string (GstVideoFormat format) G_GNUC_CONST; +GST_EXPORT const GstVideoFormatInfo * gst_video_format_get_info (GstVideoFormat format) G_GNUC_CONST; +GST_EXPORT 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 ef3e03b8da..2eb17f06b4 100644 --- a/gst-libs/gst/video/video-frame.h +++ b/gst-libs/gst/video/video-frame.h @@ -84,13 +84,21 @@ struct _GstVideoFrame { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT gboolean gst_video_frame_map (GstVideoFrame *frame, GstVideoInfo *info, GstBuffer *buffer, GstMapFlags flags); + +GST_EXPORT gboolean gst_video_frame_map_id (GstVideoFrame *frame, GstVideoInfo *info, GstBuffer *buffer, gint id, GstMapFlags flags); + +GST_EXPORT void gst_video_frame_unmap (GstVideoFrame *frame); +GST_EXPORT gboolean gst_video_frame_copy (GstVideoFrame *dest, const GstVideoFrame *src); + +GST_EXPORT 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 e91a6d0a73..546ea65ac3 100644 --- a/gst-libs/gst/video/video-info.h +++ b/gst-libs/gst/video/video-info.h @@ -55,7 +55,10 @@ typedef enum { GST_VIDEO_INTERLACE_MODE_FIELDS } GstVideoInterlaceMode; +GST_EXPORT const gchar * gst_video_interlace_mode_to_string (GstVideoInterlaceMode mode); + +GST_EXPORT GstVideoInterlaceMode gst_video_interlace_mode_from_string (const gchar * mode); /** @@ -247,7 +250,10 @@ typedef enum { GST_VIDEO_FIELD_ORDER_BOTTOM_FIELD_FIRST = 2, } GstVideoFieldOrder; +GST_EXPORT const gchar * gst_video_field_order_to_string (GstVideoFieldOrder order); + +GST_EXPORT GstVideoFieldOrder gst_video_field_order_from_string (const gchar * order); /** @@ -312,6 +318,7 @@ struct _GstVideoInfo { }; #define GST_TYPE_VIDEO_INFO (gst_video_info_get_type ()) +GST_EXPORT GType gst_video_info_get_type (void); /* general info */ @@ -363,28 +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 GstVideoInfo * gst_video_info_new (void); + +GST_EXPORT void gst_video_info_init (GstVideoInfo *info); + +GST_EXPORT GstVideoInfo * gst_video_info_copy (const GstVideoInfo *info); + +GST_EXPORT void gst_video_info_free (GstVideoInfo *info); +GST_EXPORT gboolean gst_video_info_set_format (GstVideoInfo *info, GstVideoFormat format, guint width, guint height); +GST_EXPORT gboolean gst_video_info_from_caps (GstVideoInfo *info, const GstCaps * caps); +GST_EXPORT GstCaps * gst_video_info_to_caps (GstVideoInfo *info); +GST_EXPORT gboolean gst_video_info_convert (GstVideoInfo *info, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 *dest_value); + +GST_EXPORT gboolean gst_video_info_is_equal (const GstVideoInfo *info, const GstVideoInfo *other); #include +GST_EXPORT 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 2c022727b0..4588ec569c 100644 --- a/gst-libs/gst/video/video-multiview.h +++ b/gst-libs/gst/video/video-multiview.h @@ -25,19 +25,35 @@ G_BEGIN_DECLS #define GST_TYPE_VIDEO_MULTIVIEW_FLAGSET (gst_video_multiview_flagset_get_type()) +GST_EXPORT GType gst_video_multiview_flagset_get_type (void); +GST_EXPORT const gchar * gst_video_multiview_mode_to_caps_string (GstVideoMultiviewMode mview_mode); + +GST_EXPORT GstVideoMultiviewMode gst_video_multiview_mode_from_caps_string (const gchar * caps_mview_mode); +GST_EXPORT const GValue *gst_video_multiview_get_mono_modes(void); + +GST_EXPORT const GValue *gst_video_multiview_get_unpacked_modes(void); + +GST_EXPORT const GValue *gst_video_multiview_get_doubled_height_modes(void); + +GST_EXPORT const GValue *gst_video_multiview_get_doubled_width_modes(void); + +GST_EXPORT const GValue *gst_video_multiview_get_doubled_size_modes(void); +GST_EXPORT void gst_video_multiview_video_info_change_mode (GstVideoInfo *info, GstVideoMultiviewMode out_mview_mode, GstVideoMultiviewFlags out_mview_flags); + +GST_EXPORT 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 d1609cc2d9..54630c7b0c 100644 --- a/gst-libs/gst/video/video-overlay-composition.h +++ b/gst-libs/gst/video/video-overlay-composition.h @@ -124,50 +124,66 @@ typedef enum { " I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444," \ " NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }" +GST_EXPORT GType gst_video_overlay_rectangle_get_type (void); +GST_EXPORT 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 GstVideoOverlayRectangle * gst_video_overlay_rectangle_copy (GstVideoOverlayRectangle * rectangle); +GST_EXPORT guint gst_video_overlay_rectangle_get_seqnum (GstVideoOverlayRectangle * rectangle); +GST_EXPORT void gst_video_overlay_rectangle_set_render_rectangle (GstVideoOverlayRectangle * rectangle, gint render_x, gint render_y, guint render_width, guint render_height); +GST_EXPORT gboolean gst_video_overlay_rectangle_get_render_rectangle (GstVideoOverlayRectangle * rectangle, gint * render_x, gint * render_y, guint * render_width, guint * render_height); +GST_EXPORT GstBuffer * gst_video_overlay_rectangle_get_pixels_raw (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); +GST_EXPORT GstBuffer * gst_video_overlay_rectangle_get_pixels_argb (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); +GST_EXPORT GstBuffer * gst_video_overlay_rectangle_get_pixels_ayuv (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); +GST_EXPORT GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_raw (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); +GST_EXPORT GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_argb (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); +GST_EXPORT GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_ayuv (GstVideoOverlayRectangle * rectangle, GstVideoOverlayFormatFlags flags); +GST_EXPORT GstVideoOverlayFormatFlags gst_video_overlay_rectangle_get_flags (GstVideoOverlayRectangle * rectangle); +GST_EXPORT gfloat gst_video_overlay_rectangle_get_global_alpha (GstVideoOverlayRectangle * rectangle); + +GST_EXPORT void gst_video_overlay_rectangle_set_global_alpha (GstVideoOverlayRectangle * rectangle, gfloat global_alpha); @@ -219,25 +235,34 @@ gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp) gst_mini_object_unref (GST_MINI_OBJECT_CAST (comp)); } +GST_EXPORT GType gst_video_overlay_composition_get_type (void); +GST_EXPORT GstVideoOverlayComposition * gst_video_overlay_composition_copy (GstVideoOverlayComposition * comp); +GST_EXPORT GstVideoOverlayComposition * gst_video_overlay_composition_make_writable (GstVideoOverlayComposition * comp); +GST_EXPORT GstVideoOverlayComposition * gst_video_overlay_composition_new (GstVideoOverlayRectangle * rectangle); +GST_EXPORT void gst_video_overlay_composition_add_rectangle (GstVideoOverlayComposition * comp, GstVideoOverlayRectangle * rectangle); +GST_EXPORT guint gst_video_overlay_composition_n_rectangles (GstVideoOverlayComposition * comp); +GST_EXPORT GstVideoOverlayRectangle * gst_video_overlay_composition_get_rectangle (GstVideoOverlayComposition * comp, guint n); +GST_EXPORT guint gst_video_overlay_composition_get_seqnum (GstVideoOverlayComposition * comp); /* blend composition onto raw video buffer */ +GST_EXPORT gboolean gst_video_overlay_composition_blend (GstVideoOverlayComposition * comp, GstVideoFrame * video_buf); @@ -264,9 +289,13 @@ struct _GstVideoOverlayCompositionMeta GstVideoOverlayComposition *overlay; }; +GST_EXPORT GType gst_video_overlay_composition_meta_api_get_type (void); + +GST_EXPORT const GstMetaInfo *gst_video_overlay_composition_meta_get_info (void); +GST_EXPORT GstVideoOverlayCompositionMeta * gst_buffer_add_video_overlay_composition_meta (GstBuffer * buf, GstVideoOverlayComposition * comp); diff --git a/gst-libs/gst/video/video-resampler.h b/gst-libs/gst/video/video-resampler.h index 33380461b0..1bbfa7ad46 100644 --- a/gst-libs/gst/video/video-resampler.h +++ b/gst-libs/gst/video/video-resampler.h @@ -160,6 +160,7 @@ struct _GstVideoResampler }; +GST_EXPORT gboolean gst_video_resampler_init (GstVideoResampler *resampler, GstVideoResamplerMethod method, GstVideoResamplerFlags flags, @@ -168,6 +169,7 @@ gboolean gst_video_resampler_init (GstVideoResampler *resampler, guint in_size, guint out_size, GstStructure *options); +GST_EXPORT 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 e4b752fd22..23e2baafa7 100644 --- a/gst-libs/gst/video/video-scaler.h +++ b/gst-libs/gst/video/video-scaler.h @@ -50,33 +50,44 @@ typedef enum { typedef struct _GstVideoScaler GstVideoScaler; +GST_EXPORT GstVideoScaler * gst_video_scaler_new (GstVideoResamplerMethod method, GstVideoScalerFlags flags, guint n_taps, guint in_size, guint out_size, GstStructure * options); + +GST_EXPORT void gst_video_scaler_free (GstVideoScaler *scale); +GST_EXPORT guint gst_video_scaler_get_max_taps (GstVideoScaler *scale); + +GST_EXPORT const gdouble * gst_video_scaler_get_coeff (GstVideoScaler *scale, guint out_offset, guint *in_offset, guint *n_taps); +GST_EXPORT void gst_video_scaler_horizontal (GstVideoScaler *scale, GstVideoFormat format, gpointer src, gpointer dest, guint dest_offset, guint width); + +GST_EXPORT void gst_video_scaler_vertical (GstVideoScaler *scale, GstVideoFormat format, gpointer src_lines[], gpointer dest, guint dest_offset, guint width); +GST_EXPORT GstVideoScaler * gst_video_scaler_combine_packed_YUV (GstVideoScaler * y_scale, GstVideoScaler *uv_scale, GstVideoFormat in_format, GstVideoFormat out_format); +GST_EXPORT 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 4924427540..f73897c6bb 100644 --- a/gst-libs/gst/video/video-tile.h +++ b/gst-libs/gst/video/video-tile.h @@ -112,6 +112,7 @@ typedef enum GST_VIDEO_TILE_MODE_ZFLIPZ_2X2 = GST_VIDEO_TILE_MAKE_MODE (1, INDEXED), } GstVideoTileMode; +GST_EXPORT 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 fd4813a19f..31f14f76f9 100644 --- a/gst-libs/gst/video/video.h +++ b/gst-libs/gst/video/video.h @@ -121,10 +121,13 @@ typedef enum { */ #define GST_META_TAG_VIDEO_COLORSPACE_STR "colorspace" +GST_EXPORT void gst_video_alignment_reset (GstVideoAlignment *align); /* some helper functions */ + +GST_EXPORT gboolean gst_video_calculate_display_ratio (guint * dar_n, guint * dar_d, guint video_width, @@ -134,6 +137,7 @@ gboolean gst_video_calculate_display_ratio (guint * dar_n, guint display_par_n, guint display_par_d); +GST_EXPORT gboolean gst_video_guess_framerate (GstClockTime duration, gint * dest_n, gint * dest_d); @@ -141,6 +145,7 @@ gboolean gst_video_guess_framerate (GstClockTime duration, typedef void (*GstVideoConvertSampleCallback) (GstSample * sample, GError *error, gpointer user_data); +GST_EXPORT void gst_video_convert_sample_async (GstSample * sample, const GstCaps * to_caps, GstClockTime timeout, @@ -148,6 +153,7 @@ void gst_video_convert_sample_async (GstSample * sam gpointer user_data, GDestroyNotify destroy_notify); +GST_EXPORT 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 b1073f2e14..6e38dbdc92 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 \n\nG_BEGIN_DECLS\n", + "#ifndef __GST_VIDEO_ENUM_TYPES_H__\n#define __GST_VIDEO_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_VIDEO_ENUM_TYPES_H__ */" ] diff --git a/gst-libs/gst/video/videodirection.h b/gst-libs/gst/video/videodirection.h index 1428489ed7..02ea162eab 100644 --- a/gst-libs/gst/video/videodirection.h +++ b/gst-libs/gst/video/videodirection.h @@ -56,6 +56,7 @@ struct _GstVideoDirectionInterface GTypeInterface iface; }; +GST_EXPORT 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 9930f28953..b9104b6ef4 100644 --- a/gst-libs/gst/video/videoorientation.h +++ b/gst-libs/gst/video/videoorientation.h @@ -76,17 +76,33 @@ struct _GstVideoOrientationInterface { gboolean (* set_vcenter) (GstVideoOrientation *video_orientation, gint center); }; +GST_EXPORT GType gst_video_orientation_get_type (void); /* virtual class function wrappers */ + +GST_EXPORT gboolean gst_video_orientation_get_hflip (GstVideoOrientation *video_orientation, gboolean *flip); + +GST_EXPORT gboolean gst_video_orientation_get_vflip (GstVideoOrientation *video_orientation, gboolean *flip); + +GST_EXPORT gboolean gst_video_orientation_get_hcenter (GstVideoOrientation *video_orientation, gint *center); + +GST_EXPORT gboolean gst_video_orientation_get_vcenter (GstVideoOrientation *video_orientation, gint *center); +GST_EXPORT gboolean gst_video_orientation_set_hflip (GstVideoOrientation *video_orientation, gboolean flip); + +GST_EXPORT gboolean gst_video_orientation_set_vflip (GstVideoOrientation *video_orientation, gboolean flip); + +GST_EXPORT gboolean gst_video_orientation_set_hcenter (GstVideoOrientation *video_orientation, gint center); + +GST_EXPORT 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 36c2dd2290..46a5906cd8 100644 --- a/gst-libs/gst/video/videooverlay.h +++ b/gst-libs/gst/video/videooverlay.h @@ -68,30 +68,39 @@ struct _GstVideoOverlayInterface { void (*set_window_handle) (GstVideoOverlay *overlay, guintptr handle); }; +GST_EXPORT GType gst_video_overlay_get_type (void); /* virtual function wrappers */ +GST_EXPORT gboolean gst_video_overlay_set_render_rectangle (GstVideoOverlay * overlay, gint x, gint y, gint width, gint height); +GST_EXPORT void gst_video_overlay_expose (GstVideoOverlay * overlay); +GST_EXPORT void gst_video_overlay_handle_events (GstVideoOverlay * overlay, gboolean handle_events); +GST_EXPORT void gst_video_overlay_set_window_handle (GstVideoOverlay * overlay, guintptr handle); /* public methods to dispatch bus messages */ + +GST_EXPORT void gst_video_overlay_got_window_handle (GstVideoOverlay * overlay, guintptr handle); +GST_EXPORT void gst_video_overlay_prepare_window_handle (GstVideoOverlay * overlay); +GST_EXPORT gboolean gst_is_video_overlay_prepare_window_handle_message (GstMessage * msg); G_END_DECLS