diff --git a/src/lib/gst/plugin/gstclappercontexthandler.h b/src/lib/gst/plugin/gstclappercontexthandler.h index 1231badf..ea7baa02 100644 --- a/src/lib/gst/plugin/gstclappercontexthandler.h +++ b/src/lib/gst/plugin/gstclappercontexthandler.h @@ -22,6 +22,8 @@ #include #include +#include "gst/plugin/clapper-gst-visibility.h" + G_BEGIN_DECLS #define GST_TYPE_CLAPPER_CONTEXT_HANDLER (gst_clapper_context_handler_get_type()) @@ -53,10 +55,13 @@ struct _GstClapperContextHandlerClass GstQuery *query); }; +CLAPPER_GST_API GType gst_clapper_context_handler_get_type (void); +CLAPPER_GST_API gboolean gst_clapper_context_handler_handle_context_query (GstClapperContextHandler *handler, GstBaseSink *bsink, GstQuery *query); +CLAPPER_GST_API GstClapperContextHandler * gst_clapper_context_handler_obtain_with_type (GPtrArray *context_handlers, GType type); G_END_DECLS diff --git a/src/lib/gst/plugin/gstclapperimporter.h b/src/lib/gst/plugin/gstclapperimporter.h index b3b11e98..851b2b10 100644 --- a/src/lib/gst/plugin/gstclapperimporter.h +++ b/src/lib/gst/plugin/gstclapperimporter.h @@ -23,6 +23,8 @@ #include #include +#include "gst/plugin/clapper-gst-visibility.h" + G_BEGIN_DECLS #define GST_TYPE_CLAPPER_IMPORTER (gst_clapper_importer_get_type()) @@ -79,6 +81,7 @@ struct _GstClapperImporterClass GstVideoInfo *v_info); }; +CLAPPER_GST_API GType gst_clapper_importer_get_type (void); GstBufferPool * gst_clapper_importer_create_pool (GstClapperImporter *importer, GstStructure **config); diff --git a/src/lib/gst/plugin/gstgtkutils.h b/src/lib/gst/plugin/gstgtkutils.h index 972eccba..5d4ed40f 100644 --- a/src/lib/gst/plugin/gstgtkutils.h +++ b/src/lib/gst/plugin/gstgtkutils.h @@ -26,10 +26,14 @@ #include #include +#include "gst/plugin/clapper-gst-visibility.h" + G_BEGIN_DECLS +CLAPPER_GST_API gpointer gst_gtk_invoke_on_main (GThreadFunc func, gpointer data); +CLAPPER_GST_API GdkTexture * gst_video_frame_into_gdk_texture (GstVideoFrame *frame); void gst_gtk_get_width_height_for_rotation (gint width, gint height, diff --git a/src/lib/gst/plugin/handlers/gl/gstclapperglcontexthandler.h b/src/lib/gst/plugin/handlers/gl/gstclapperglcontexthandler.h index 9bfc7dd8..064626f3 100644 --- a/src/lib/gst/plugin/handlers/gl/gstclapperglcontexthandler.h +++ b/src/lib/gst/plugin/handlers/gl/gstclapperglcontexthandler.h @@ -27,10 +27,13 @@ #include #include "gst/plugin/gstclappercontexthandler.h" +#include "gst/plugin/clapper-gst-visibility.h" G_BEGIN_DECLS #define GST_TYPE_CLAPPER_GL_CONTEXT_HANDLER (gst_clapper_gl_context_handler_get_type()) + +CLAPPER_GST_API G_DECLARE_FINAL_TYPE (GstClapperGLContextHandler, gst_clapper_gl_context_handler, GST, CLAPPER_GL_CONTEXT_HANDLER, GstClapperContextHandler) #define GST_CLAPPER_GL_CONTEXT_HANDLER_CAST(obj) ((GstClapperGLContextHandler *)(obj)) @@ -55,10 +58,13 @@ struct _GstClapperGLContextHandler GstGLContext *gst_context; }; +CLAPPER_GST_API void gst_clapper_gl_context_handler_add_handler (GPtrArray *context_handlers); +CLAPPER_GST_API GstCaps * gst_clapper_gl_context_handler_make_gdk_gl_caps (const gchar *features, gboolean only_2d); +CLAPPER_GST_API GdkTexture * gst_clapper_gl_context_handler_make_gl_texture (GstClapperGLContextHandler *handler, GstBuffer *buffer, GstVideoInfo *v_info); G_END_DECLS diff --git a/src/lib/gst/plugin/meson.build b/src/lib/gst/plugin/meson.build index 17e5f00c..5273d287 100644 --- a/src/lib/gst/plugin/meson.build +++ b/src/lib/gst/plugin/meson.build @@ -23,11 +23,15 @@ endforeach gst_clapper_plugin_args = [ '-DHAVE_CONFIG_H', + '-DCLAPPER_GST_COMPILATION', '-DGST_USE_UNSTABLE_API', ] if get_option('default_library') == 'static' - gst_clapper_plugin_args += ['-DGST_STATIC_COMPILATION'] + gst_clapper_plugin_args += [ + '-DGST_STATIC_COMPILATION', + '-DCLAPPER_GST_STATIC_COMPILATION', + ] endif cdata = configuration_data() @@ -46,6 +50,20 @@ configure_file( output: 'config.h', configuration: cdata, ) + +visibility_conf = configuration_data() + +visibility_conf.set( + 'CLAPPER_API', + 'CLAPPER_GST', +) + +clappergst_visibility_header = configure_file( + input: '../../shared/clapper-api-visibility.h.in', + output: 'clapper-gst-visibility.h', + configuration: visibility_conf, +) + gst_plugin_conf_inc = [ include_directories('.'), include_directories('..'),