gstgl: Add GST_EXPORT to all symbols used on Windows

This is a requirement for those symbols to be exported in gstgl-1.0.dll
when building with the MSVC compiler
This commit is contained in:
Nirbheek Chauhan 2016-10-27 08:17:58 +05:30 committed by Tim-Philipp Müller
parent c7c2a68de2
commit 6106816f50
27 changed files with 300 additions and 6 deletions

View file

@ -174,10 +174,14 @@ typedef struct _GstGLFuncs
#undef GST_GL_EXT_FUNCTION #undef GST_GL_EXT_FUNCTION
#undef GST_GL_EXT_END #undef GST_GL_EXT_END
GST_EXPORT
gchar * gst_gl_api_to_string (GstGLAPI api); gchar * gst_gl_api_to_string (GstGLAPI api);
GST_EXPORT
GstGLAPI gst_gl_api_from_string (const gchar * api_s); GstGLAPI gst_gl_api_from_string (const gchar * api_s);
GST_EXPORT
gchar * gst_gl_platform_to_string (GstGLPlatform platform); gchar * gst_gl_platform_to_string (GstGLPlatform platform);
GST_EXPORT
GstGLPlatform gst_gl_platform_from_string (const gchar * platform_s); GstGLPlatform gst_gl_platform_from_string (const gchar * platform_s);
G_END_DECLS G_END_DECLS

View file

@ -31,6 +31,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_base_filter_get_type(void); GType gst_gl_base_filter_get_type(void);
#define GST_TYPE_GL_BASE_FILTER (gst_gl_base_filter_get_type()) #define GST_TYPE_GL_BASE_FILTER (gst_gl_base_filter_get_type())
#define GST_GL_BASE_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_BASE_FILTER,GstGLBaseFilter)) #define GST_GL_BASE_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_BASE_FILTER,GstGLBaseFilter))

View file

@ -30,6 +30,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define GST_TYPE_GL_BASE_MEMORY_ALLOCATOR (gst_gl_base_memory_allocator_get_type()) #define GST_TYPE_GL_BASE_MEMORY_ALLOCATOR (gst_gl_base_memory_allocator_get_type())
GST_EXPORT
GType gst_gl_base_memory_allocator_get_type(void); GType gst_gl_base_memory_allocator_get_type(void);
#define GST_IS_GL_BASE_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_BASE_MEMORY_ALLOCATOR)) #define GST_IS_GL_BASE_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_BASE_MEMORY_ALLOCATOR))
@ -41,6 +42,7 @@ GType gst_gl_base_memory_allocator_get_type(void);
#define GST_GL_BASE_MEMORY_CAST(mem) ((GstGLBaseMemory *)mem) #define GST_GL_BASE_MEMORY_CAST(mem) ((GstGLBaseMemory *)mem)
GST_EXPORT
GQuark gst_gl_base_memory_error_quark (void); GQuark gst_gl_base_memory_error_quark (void);
#define GST_GL_BASE_MEMORY_ERROR (gst_gl_base_memory_error_quark ()) #define GST_GL_BASE_MEMORY_ERROR (gst_gl_base_memory_error_quark ())
@ -136,6 +138,7 @@ typedef void (*GstGLAllocationParamsCopyFunc) (GstGLAllocationParams * src
typedef void (*GstGLAllocationParamsFreeFunc) (gpointer params); typedef void (*GstGLAllocationParamsFreeFunc) (gpointer params);
#define GST_TYPE_GL_ALLOCATION_PARAMS (gst_gl_allocation_params_get_type()) #define GST_TYPE_GL_ALLOCATION_PARAMS (gst_gl_allocation_params_get_type())
GST_EXPORT
GType gst_gl_allocation_params_get_type (void); GType gst_gl_allocation_params_get_type (void);
#define GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_ALLOC (1 << 0) #define GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_ALLOC (1 << 0)
@ -195,12 +198,16 @@ gboolean gst_gl_allocation_params_init (GstGLAllocationPara
GDestroyNotify notify); GDestroyNotify notify);
/* free with gst_gl_allocation_params_free */ /* free with gst_gl_allocation_params_free */
GST_EXPORT
GstGLAllocationParams * gst_gl_allocation_params_copy (GstGLAllocationParams * src); GstGLAllocationParams * gst_gl_allocation_params_copy (GstGLAllocationParams * src);
GST_EXPORT
void gst_gl_allocation_params_free (GstGLAllocationParams * params); void gst_gl_allocation_params_free (GstGLAllocationParams * params);
/* subclass usage */ /* subclass usage */
GST_EXPORT
void gst_gl_allocation_params_free_data (GstGLAllocationParams * params); void gst_gl_allocation_params_free_data (GstGLAllocationParams * params);
/* subclass usage */ /* subclass usage */
GST_EXPORT
void gst_gl_allocation_params_copy_data (GstGLAllocationParams * src, void gst_gl_allocation_params_copy_data (GstGLAllocationParams * src,
GstGLAllocationParams * dest); GstGLAllocationParams * dest);
@ -345,9 +352,12 @@ struct _GstGLBaseMemoryAllocatorClass
*/ */
#define GST_GL_BASE_MEMORY_ALLOCATOR_NAME "GLBaseMemory" #define GST_GL_BASE_MEMORY_ALLOCATOR_NAME "GLBaseMemory"
GST_EXPORT
void gst_gl_base_memory_init_once (void); void gst_gl_base_memory_init_once (void);
GST_EXPORT
gboolean gst_is_gl_base_memory (GstMemory * mem); gboolean gst_is_gl_base_memory (GstMemory * mem);
GST_EXPORT
void gst_gl_base_memory_init (GstGLBaseMemory * mem, void gst_gl_base_memory_init (GstGLBaseMemory * mem,
GstAllocator * allocator, GstAllocator * allocator,
GstMemory * parent, GstMemory * parent,
@ -357,12 +367,15 @@ void gst_gl_base_memory_init (GstGLBaseMemory * mem,
gpointer user_data, gpointer user_data,
GDestroyNotify notify); GDestroyNotify notify);
GST_EXPORT
gboolean gst_gl_base_memory_alloc_data (GstGLBaseMemory * gl_mem); gboolean gst_gl_base_memory_alloc_data (GstGLBaseMemory * gl_mem);
GST_EXPORT
gboolean gst_gl_base_memory_memcpy (GstGLBaseMemory * src, gboolean gst_gl_base_memory_memcpy (GstGLBaseMemory * src,
GstGLBaseMemory * dest, GstGLBaseMemory * dest,
gssize offset, gssize offset,
gssize size); gssize size);
GST_EXPORT
GstGLBaseMemory * gst_gl_base_memory_alloc (GstGLBaseMemoryAllocator * allocator, GstGLBaseMemory * gst_gl_base_memory_alloc (GstGLBaseMemoryAllocator * allocator,
GstGLAllocationParams * params); GstGLAllocationParams * params);

View file

@ -30,6 +30,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define GST_TYPE_GL_BUFFER_ALLOCATOR (gst_gl_buffer_allocator_get_type()) #define GST_TYPE_GL_BUFFER_ALLOCATOR (gst_gl_buffer_allocator_get_type())
GST_EXPORT
GType gst_gl_buffer_allocator_get_type(void); GType gst_gl_buffer_allocator_get_type(void);
#define GST_IS_GL_BUFFER_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_ALLOCATOR)) #define GST_IS_GL_BUFFER_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_ALLOCATOR))
@ -79,6 +80,7 @@ struct _GstGLBufferAllocationParams
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstGLBufferAllocationParams * gst_gl_buffer_allocation_params_new (GstGLContext * context, GstGLBufferAllocationParams * gst_gl_buffer_allocation_params_new (GstGLContext * context,
gsize alloc_size, gsize alloc_size,
GstAllocationParams * alloc_params, GstAllocationParams * alloc_params,
@ -120,9 +122,12 @@ struct _GstGLBufferAllocatorClass
*/ */
#define GST_GL_BUFFER_ALLOCATOR_NAME "GLBuffer" #define GST_GL_BUFFER_ALLOCATOR_NAME "GLBuffer"
GST_EXPORT
void gst_gl_buffer_init_once (void); void gst_gl_buffer_init_once (void);
GST_EXPORT
gboolean gst_is_gl_buffer (GstMemory * mem); gboolean gst_is_gl_buffer (GstMemory * mem);
GST_EXPORT
GstGLBuffer * gst_gl_buffer_alloc (GstGLContext * context, GstGLBuffer * gst_gl_buffer_alloc (GstGLContext * context,
guint gl_target, guint gl_target,
guint gl_usage, guint gl_usage,

View file

@ -30,6 +30,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
/* buffer pool functions */ /* buffer pool functions */
GST_EXPORT
GType gst_gl_buffer_pool_get_type (void); GType gst_gl_buffer_pool_get_type (void);
#define GST_TYPE_GL_BUFFER_POOL (gst_gl_buffer_pool_get_type()) #define GST_TYPE_GL_BUFFER_POOL (gst_gl_buffer_pool_get_type())
#define GST_IS_GL_BUFFER_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_BUFFER_POOL)) #define GST_IS_GL_BUFFER_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_BUFFER_POOL))
@ -66,9 +67,12 @@ struct _GstGLBufferPoolClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstBufferPool *gst_gl_buffer_pool_new (GstGLContext * context); GstBufferPool *gst_gl_buffer_pool_new (GstGLContext * context);
GST_EXPORT
GstGLAllocationParams * gst_buffer_pool_config_get_gl_allocation_params (GstStructure * config); GstGLAllocationParams * gst_buffer_pool_config_get_gl_allocation_params (GstStructure * config);
GST_EXPORT
void gst_buffer_pool_config_set_gl_allocation_params (GstStructure * config, void gst_buffer_pool_config_set_gl_allocation_params (GstStructure * config,
GstGLAllocationParams * params); GstGLAllocationParams * params);

View file

@ -28,6 +28,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_color_convert_get_type (void); GType gst_gl_color_convert_get_type (void);
#define GST_TYPE_GL_COLOR_CONVERT (gst_gl_color_convert_get_type()) #define GST_TYPE_GL_COLOR_CONVERT (gst_gl_color_convert_get_type())
#define GST_GL_COLOR_CONVERT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_COLOR_CONVERT,GstGLColorConvert)) #define GST_GL_COLOR_CONVERT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_COLOR_CONVERT,GstGLColorConvert))
@ -112,22 +113,28 @@ struct _GstGLColorConvertClass
"framerate = " GST_VIDEO_FPS_RANGE ", " \ "framerate = " GST_VIDEO_FPS_RANGE ", " \
"texture-target = (string) { 2D, rectangle, external-oes }" "texture-target = (string) { 2D, rectangle, external-oes }"
GST_EXPORT
GstGLColorConvert * gst_gl_color_convert_new (GstGLContext * context); GstGLColorConvert * gst_gl_color_convert_new (GstGLContext * context);
GST_EXPORT
GstCaps * gst_gl_color_convert_transform_caps (GstGLContext * convert, GstCaps * gst_gl_color_convert_transform_caps (GstGLContext * convert,
GstPadDirection direction, GstPadDirection direction,
GstCaps * caps, GstCaps * caps,
GstCaps * filter); GstCaps * filter);
GST_EXPORT
GstCaps * gst_gl_color_convert_fixate_caps (GstGLContext * convert, GstCaps * gst_gl_color_convert_fixate_caps (GstGLContext * convert,
GstPadDirection direction, GstPadDirection direction,
GstCaps * caps, GstCaps * caps,
GstCaps * other); GstCaps * other);
GST_EXPORT
gboolean gst_gl_color_convert_set_caps (GstGLColorConvert * convert, gboolean gst_gl_color_convert_set_caps (GstGLColorConvert * convert,
GstCaps * in_caps, GstCaps * in_caps,
GstCaps * out_caps); GstCaps * out_caps);
GST_EXPORT
gboolean gst_gl_color_convert_decide_allocation (GstGLColorConvert * convert, gboolean gst_gl_color_convert_decide_allocation (GstGLColorConvert * convert,
GstQuery * query); GstQuery * query);
GST_EXPORT
GstBuffer * gst_gl_color_convert_perform (GstGLColorConvert * convert, GstBuffer * inbuf); GstBuffer * gst_gl_color_convert_perform (GstGLColorConvert * convert, GstBuffer * inbuf);
G_END_DECLS G_END_DECLS

View file

@ -33,9 +33,11 @@ G_BEGIN_DECLS
#define GST_IS_GL_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GST_GL_TYPE_CONTEXT)) #define GST_IS_GL_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GST_GL_TYPE_CONTEXT))
#define GST_IS_GL_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), GST_GL_TYPE_CONTEXT)) #define GST_IS_GL_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), GST_GL_TYPE_CONTEXT))
#define GST_GL_CONTEXT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GST_GL_TYPE_CONTEXT, GstGLContextClass)) #define GST_GL_CONTEXT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GST_GL_TYPE_CONTEXT, GstGLContextClass))
GST_EXPORT
GType gst_gl_context_get_type (void); GType gst_gl_context_get_type (void);
#define GST_GL_CONTEXT_ERROR (gst_gl_context_error_quark ()) #define GST_GL_CONTEXT_ERROR (gst_gl_context_error_quark ())
GST_EXPORT
GQuark gst_gl_context_error_quark (void); GQuark gst_gl_context_error_quark (void);
/** /**
@ -115,45 +117,71 @@ struct _GstGLContextClass {
/* methods */ /* methods */
GST_EXPORT
GstGLContext * gst_gl_context_new (GstGLDisplay *display); GstGLContext * gst_gl_context_new (GstGLDisplay *display);
GST_EXPORT
GstGLContext * gst_gl_context_new_wrapped (GstGLDisplay *display, GstGLContext * gst_gl_context_new_wrapped (GstGLDisplay *display,
guintptr handle, guintptr handle,
GstGLPlatform context_type, GstGLPlatform context_type,
GstGLAPI available_apis); GstGLAPI available_apis);
GST_EXPORT
gboolean gst_gl_context_activate (GstGLContext *context, gboolean activate); gboolean gst_gl_context_activate (GstGLContext *context, gboolean activate);
GST_EXPORT
GThread * gst_gl_context_get_thread (GstGLContext *context); GThread * gst_gl_context_get_thread (GstGLContext *context);
GST_EXPORT
GstGLContext * gst_gl_context_get_current (void); GstGLContext * gst_gl_context_get_current (void);
GST_EXPORT
GstGLDisplay * gst_gl_context_get_display (GstGLContext *context); GstGLDisplay * gst_gl_context_get_display (GstGLContext *context);
GST_EXPORT
gpointer gst_gl_context_get_proc_address (GstGLContext *context, const gchar *name); gpointer gst_gl_context_get_proc_address (GstGLContext *context, const gchar *name);
GST_EXPORT
GstGLPlatform gst_gl_context_get_gl_platform (GstGLContext *context); GstGLPlatform gst_gl_context_get_gl_platform (GstGLContext *context);
GST_EXPORT
GstGLAPI gst_gl_context_get_gl_api (GstGLContext *context); GstGLAPI gst_gl_context_get_gl_api (GstGLContext *context);
GST_EXPORT
guintptr gst_gl_context_get_gl_context (GstGLContext *context); guintptr gst_gl_context_get_gl_context (GstGLContext *context);
GST_EXPORT
gboolean gst_gl_context_can_share (GstGLContext * context, GstGLContext *other_context); gboolean gst_gl_context_can_share (GstGLContext * context, GstGLContext *other_context);
GST_EXPORT
gboolean gst_gl_context_create (GstGLContext *context, GstGLContext *other_context, GError ** error); gboolean gst_gl_context_create (GstGLContext *context, GstGLContext *other_context, GError ** error);
GST_EXPORT
void gst_gl_context_destroy (GstGLContext *context); void gst_gl_context_destroy (GstGLContext *context);
GST_EXPORT
gpointer gst_gl_context_default_get_proc_address (GstGLAPI gl_api, const gchar *name); gpointer gst_gl_context_default_get_proc_address (GstGLAPI gl_api, const gchar *name);
GST_EXPORT
gpointer gst_gl_context_get_proc_address_with_platform (GstGLPlatform context_type, GstGLAPI gl_api, const gchar *name); gpointer gst_gl_context_get_proc_address_with_platform (GstGLPlatform context_type, GstGLAPI gl_api, const gchar *name);
GST_EXPORT
gboolean gst_gl_context_set_window (GstGLContext *context, GstGLWindow *window); gboolean gst_gl_context_set_window (GstGLContext *context, GstGLWindow *window);
GST_EXPORT
GstGLWindow * gst_gl_context_get_window (GstGLContext *context); GstGLWindow * gst_gl_context_get_window (GstGLContext *context);
GST_EXPORT
void gst_gl_context_get_gl_version (GstGLContext *context, gint *maj, gint *min); void gst_gl_context_get_gl_version (GstGLContext *context, gint *maj, gint *min);
GST_EXPORT
gboolean gst_gl_context_check_gl_version (GstGLContext * context, GstGLAPI api, gint maj, gint min); gboolean gst_gl_context_check_gl_version (GstGLContext * context, GstGLAPI api, gint maj, gint min);
GST_EXPORT
gboolean gst_gl_context_check_feature (GstGLContext *context, const gchar *feature); gboolean gst_gl_context_check_feature (GstGLContext *context, const gchar *feature);
GST_EXPORT
guintptr gst_gl_context_get_current_gl_context (GstGLPlatform context_type); guintptr gst_gl_context_get_current_gl_context (GstGLPlatform context_type);
GST_EXPORT
GstGLAPI gst_gl_context_get_current_gl_api (GstGLPlatform platform, guint *major, guint *minor); GstGLAPI gst_gl_context_get_current_gl_api (GstGLPlatform platform, guint *major, guint *minor);
GST_EXPORT
gboolean gst_gl_context_is_shared (GstGLContext * context); gboolean gst_gl_context_is_shared (GstGLContext * context);
GST_EXPORT
void gst_gl_context_set_shared_with (GstGLContext * context, GstGLContext * share); void gst_gl_context_set_shared_with (GstGLContext * context, GstGLContext * share);
GST_EXPORT
gboolean gst_gl_context_fill_info (GstGLContext * context, GError ** error); gboolean gst_gl_context_fill_info (GstGLContext * context, GError ** error);
/* FIXME: remove */ /* FIXME: remove */
GST_EXPORT
void gst_gl_context_thread_add (GstGLContext * context, void gst_gl_context_thread_add (GstGLContext * context,
GstGLContextThreadFunc func, gpointer data); GstGLContextThreadFunc func, gpointer data);

View file

@ -25,6 +25,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_control_binding_proxy_get_type (void); GType gst_gl_control_binding_proxy_get_type (void);
#define GST_TYPE_GL_CONTROL_BINDING_PROXY (gst_gl_control_binding_proxy_get_type()) #define GST_TYPE_GL_CONTROL_BINDING_PROXY (gst_gl_control_binding_proxy_get_type())
@ -44,11 +45,13 @@ struct _GstGLControlBindingProxyClass
GstControlBindingClass parent_class; GstControlBindingClass parent_class;
}; };
GST_EXPORT
GstControlBinding * gst_gl_control_binding_proxy_new (GstObject * object, GstControlBinding * gst_gl_control_binding_proxy_new (GstObject * object,
const gchar * property_name, const gchar * property_name,
GstObject * ref_object, GstObject * ref_object,
const gchar * ref_property_name); const gchar * ref_property_name);
GST_EXPORT
void gst_gl_object_add_control_binding_proxy (GstObject * object, void gst_gl_object_add_control_binding_proxy (GstObject * object,
GstObject * ref_object, GstObject * ref_object,
const gchar * prop); const gchar * prop);

View file

@ -55,11 +55,17 @@ struct _GstGLAsyncDebug
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstGLAsyncDebug * gst_gl_async_debug_new (void); GstGLAsyncDebug * gst_gl_async_debug_new (void);
GST_EXPORT
void gst_gl_async_debug_free (GstGLAsyncDebug * ad); void gst_gl_async_debug_free (GstGLAsyncDebug * ad);
GST_EXPORT
void gst_gl_async_debug_init (GstGLAsyncDebug * ad); void gst_gl_async_debug_init (GstGLAsyncDebug * ad);
GST_EXPORT
void gst_gl_async_debug_unset (GstGLAsyncDebug * ad); void gst_gl_async_debug_unset (GstGLAsyncDebug * ad);
GST_EXPORT
void gst_gl_async_debug_freeze (GstGLAsyncDebug * ad); void gst_gl_async_debug_freeze (GstGLAsyncDebug * ad);
GST_EXPORT
void gst_gl_async_debug_thaw (GstGLAsyncDebug * ad); void gst_gl_async_debug_thaw (GstGLAsyncDebug * ad);
/** /**
@ -113,9 +119,12 @@ GST_GL_ASYNC_CAT_LEVEL_LOG(GstGLAsyncDebug * ad, GstDebugCategory * cat,
#if !defined(GST_DISABLE_GST_DEBUG) #if !defined(GST_DISABLE_GST_DEBUG)
GST_EXPORT
void gst_gl_insert_debug_marker (GstGLContext * context, void gst_gl_insert_debug_marker (GstGLContext * context,
const gchar * format, ...) G_GNUC_PRINTF (2, 3); const gchar * format, ...) G_GNUC_PRINTF (2, 3);
GST_EXPORT
void gst_gl_async_debug_output_log_msg (GstGLAsyncDebug * ad); void gst_gl_async_debug_output_log_msg (GstGLAsyncDebug * ad);
GST_EXPORT
void gst_gl_async_debug_store_log_msg (GstGLAsyncDebug * ad, void gst_gl_async_debug_store_log_msg (GstGLAsyncDebug * ad,
GstDebugCategory * cat, GstDebugCategory * cat,
GstDebugLevel level, GstDebugLevel level,
@ -124,6 +133,7 @@ void gst_gl_async_debug_store_log_msg (GstGLAsyncDebug * ad,
gint line, gint line,
GObject * object, GObject * object,
const gchar * format, ...) G_GNUC_PRINTF (8, 9); const gchar * format, ...) G_GNUC_PRINTF (8, 9);
GST_EXPORT
void gst_gl_async_debug_store_log_msg_valist (GstGLAsyncDebug * ad, void gst_gl_async_debug_store_log_msg_valist (GstGLAsyncDebug * ad,
GstDebugCategory * cat, GstDebugCategory * cat,
GstDebugLevel level, GstDebugLevel level,

View file

@ -30,6 +30,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_display_get_type (void); GType gst_gl_display_get_type (void);
#define GST_TYPE_GL_DISPLAY (gst_gl_display_get_type()) #define GST_TYPE_GL_DISPLAY (gst_gl_display_get_type())
@ -90,26 +91,37 @@ struct _GstGLDisplayClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstGLDisplay *gst_gl_display_new (void); GstGLDisplay *gst_gl_display_new (void);
#define gst_gl_display_lock(display) GST_OBJECT_LOCK (display) #define gst_gl_display_lock(display) GST_OBJECT_LOCK (display)
#define gst_gl_display_unlock(display) GST_OBJECT_UNLOCK (display) #define gst_gl_display_unlock(display) GST_OBJECT_UNLOCK (display)
GST_EXPORT
guintptr gst_gl_display_get_handle (GstGLDisplay * display); guintptr gst_gl_display_get_handle (GstGLDisplay * display);
GST_EXPORT
GstGLDisplayType gst_gl_display_get_handle_type (GstGLDisplay * display); GstGLDisplayType gst_gl_display_get_handle_type (GstGLDisplay * display);
GST_EXPORT
void gst_gl_display_filter_gl_api (GstGLDisplay * display, void gst_gl_display_filter_gl_api (GstGLDisplay * display,
GstGLAPI gl_api); GstGLAPI gl_api);
GST_EXPORT
GstGLAPI gst_gl_display_get_gl_api (GstGLDisplay * display); GstGLAPI gst_gl_display_get_gl_api (GstGLDisplay * display);
GST_EXPORT
GstGLAPI gst_gl_display_get_gl_api_unlocked (GstGLDisplay * display); GstGLAPI gst_gl_display_get_gl_api_unlocked (GstGLDisplay * display);
#define GST_GL_DISPLAY_CONTEXT_TYPE "gst.gl.GLDisplay" #define GST_GL_DISPLAY_CONTEXT_TYPE "gst.gl.GLDisplay"
GST_EXPORT
void gst_context_set_gl_display (GstContext * context, GstGLDisplay * display); void gst_context_set_gl_display (GstContext * context, GstGLDisplay * display);
GST_EXPORT
gboolean gst_context_get_gl_display (GstContext * context, GstGLDisplay ** display); gboolean gst_context_get_gl_display (GstContext * context, GstGLDisplay ** display);
GST_EXPORT
gboolean gst_gl_display_create_context (GstGLDisplay * display, gboolean gst_gl_display_create_context (GstGLDisplay * display,
GstGLContext * other_context, GstGLContext ** p_context, GError **error); GstGLContext * other_context, GstGLContext ** p_context, GError **error);
GST_EXPORT
GstGLContext * gst_gl_display_get_gl_context_for_thread (GstGLDisplay * display, GstGLContext * gst_gl_display_get_gl_context_for_thread (GstGLDisplay * display,
GThread * thread); GThread * thread);
GST_EXPORT
gboolean gst_gl_display_add_context (GstGLDisplay * display, gboolean gst_gl_display_add_context (GstGLDisplay * display,
GstGLContext * context); GstGLContext * context);

View file

@ -94,7 +94,7 @@ struct _GstGLFeatureData
const GstGLFeatureFunction *functions; const GstGLFeatureFunction *functions;
}; };
gboolean GST_EXPORT gboolean
gst_gl_check_extension (const char *name, const gchar * ext); gst_gl_check_extension (const char *name, const gchar * ext);
G_GNUC_INTERNAL gboolean G_GNUC_INTERNAL gboolean

View file

@ -30,6 +30,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_filter_get_type(void); GType gst_gl_filter_get_type(void);
#define GST_TYPE_GL_FILTER (gst_gl_filter_get_type()) #define GST_TYPE_GL_FILTER (gst_gl_filter_get_type())
#define GST_GL_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_FILTER,GstGLFilter)) #define GST_GL_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_FILTER,GstGLFilter))
@ -120,16 +121,20 @@ struct _GstGLFilterClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
gboolean gst_gl_filter_filter_texture (GstGLFilter * filter, GstBuffer * inbuf, gboolean gst_gl_filter_filter_texture (GstGLFilter * filter, GstBuffer * inbuf,
GstBuffer * outbuf); GstBuffer * outbuf);
GST_EXPORT
gboolean gst_gl_filter_render_to_target (GstGLFilter *filter, gboolean gst_gl_filter_render_to_target (GstGLFilter *filter,
GstGLMemory * input, GstGLMemory * input,
GstGLMemory * output, GstGLMemory * output,
GstGLFilterRenderFunc func, GstGLFilterRenderFunc func,
gpointer data); gpointer data);
GST_EXPORT
void gst_gl_filter_draw_fullscreen_quad (GstGLFilter *filter); void gst_gl_filter_draw_fullscreen_quad (GstGLFilter *filter);
GST_EXPORT
void gst_gl_filter_render_to_target_with_shader (GstGLFilter * filter, void gst_gl_filter_render_to_target_with_shader (GstGLFilter * filter,
GstGLMemory * input, GstGLMemory * input,
GstGLMemory * output, GstGLMemory * output,

View file

@ -97,21 +97,31 @@ typedef enum
GST_GL_DEPTH24_STENCIL8 = 0x88F0, GST_GL_DEPTH24_STENCIL8 = 0x88F0,
} GstGLFormat; } GstGLFormat;
GST_EXPORT
guint gst_gl_format_type_n_bytes (guint format, guint gst_gl_format_type_n_bytes (guint format,
guint type); guint type);
GST_EXPORT
guint gst_gl_texture_type_n_bytes (GstVideoGLTextureType tex_format); guint gst_gl_texture_type_n_bytes (GstVideoGLTextureType tex_format);
GST_EXPORT
guint gst_gl_format_from_gl_texture_type (GstVideoGLTextureType tex_format); guint gst_gl_format_from_gl_texture_type (GstVideoGLTextureType tex_format);
GST_EXPORT
GstVideoGLTextureType gst_gl_texture_type_from_format (GstGLContext * context, GstVideoGLTextureType gst_gl_texture_type_from_format (GstGLContext * context,
GstVideoFormat v_format, GstVideoFormat v_format,
guint plane); guint plane);
GST_EXPORT
guint gst_gl_sized_gl_format_from_gl_format_type (GstGLContext * context, guint gst_gl_sized_gl_format_from_gl_format_type (GstGLContext * context,
guint format, guint format,
guint type); guint type);
GST_EXPORT
GstGLTextureTarget gst_gl_texture_target_from_string (const gchar * str); GstGLTextureTarget gst_gl_texture_target_from_string (const gchar * str);
GST_EXPORT
const gchar * gst_gl_texture_target_to_string (GstGLTextureTarget target); const gchar * gst_gl_texture_target_to_string (GstGLTextureTarget target);
GST_EXPORT
guint gst_gl_texture_target_to_gl (GstGLTextureTarget target); guint gst_gl_texture_target_to_gl (GstGLTextureTarget target);
GST_EXPORT
GstGLTextureTarget gst_gl_texture_target_from_gl (guint target); GstGLTextureTarget gst_gl_texture_target_from_gl (guint target);
GST_EXPORT
const gchar * gst_gl_texture_target_to_buffer_pool_option (GstGLTextureTarget target); const gchar * gst_gl_texture_target_to_buffer_pool_option (GstGLTextureTarget target);
G_END_DECLS G_END_DECLS

View file

@ -25,6 +25,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_framebuffer_get_type (void); GType gst_gl_framebuffer_get_type (void);
#define GST_TYPE_GL_FRAMEBUFFER (gst_gl_framebuffer_get_type()) #define GST_TYPE_GL_FRAMEBUFFER (gst_gl_framebuffer_get_type())
@ -67,25 +68,34 @@ struct _GstGLFramebufferClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstGLFramebuffer * gst_gl_framebuffer_new (GstGLContext *context); GstGLFramebuffer * gst_gl_framebuffer_new (GstGLContext *context);
GST_EXPORT
GstGLFramebuffer * gst_gl_framebuffer_new_with_default_depth (GstGLContext *context, GstGLFramebuffer * gst_gl_framebuffer_new_with_default_depth (GstGLContext *context,
guint width, guint width,
guint height); guint height);
GST_EXPORT
guint gst_gl_framebuffer_get_id (GstGLFramebuffer * fb); guint gst_gl_framebuffer_get_id (GstGLFramebuffer * fb);
GST_EXPORT
void gst_gl_framebuffer_attach (GstGLFramebuffer * fb, void gst_gl_framebuffer_attach (GstGLFramebuffer * fb,
guint attachment_point, guint attachment_point,
GstGLBaseMemory * mem); GstGLBaseMemory * mem);
GST_EXPORT
void gst_gl_framebuffer_bind (GstGLFramebuffer * fb); void gst_gl_framebuffer_bind (GstGLFramebuffer * fb);
GST_EXPORT
void gst_gl_context_clear_framebuffer (GstGLContext * context); void gst_gl_context_clear_framebuffer (GstGLContext * context);
GST_EXPORT
void gst_gl_framebuffer_get_effective_dimensions (GstGLFramebuffer * fb, void gst_gl_framebuffer_get_effective_dimensions (GstGLFramebuffer * fb,
guint * width, guint * width,
guint * height); guint * height);
GST_EXPORT
gboolean gst_gl_context_check_framebuffer_status (GstGLContext * context); gboolean gst_gl_context_check_framebuffer_status (GstGLContext * context);
GST_EXPORT
gboolean gst_gl_framebuffer_draw_to_texture (GstGLFramebuffer * fb, gboolean gst_gl_framebuffer_draw_to_texture (GstGLFramebuffer * fb,
GstGLMemory * mem, GstGLMemory * mem,
GstGLFramebufferFunc cb, GstGLFramebufferFunc cb,

View file

@ -31,6 +31,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define GST_TYPE_GL_MEMORY_ALLOCATOR (gst_gl_memory_allocator_get_type()) #define GST_TYPE_GL_MEMORY_ALLOCATOR (gst_gl_memory_allocator_get_type())
GST_EXPORT
GType gst_gl_memory_allocator_get_type(void); GType gst_gl_memory_allocator_get_type(void);
#define GST_IS_GL_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_MEMORY_ALLOCATOR)) #define GST_IS_GL_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_MEMORY_ALLOCATOR))
@ -101,6 +102,7 @@ struct _GstGLVideoAllocationParams
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
gboolean gst_gl_video_allocation_params_init_full (GstGLVideoAllocationParams * params, gboolean gst_gl_video_allocation_params_init_full (GstGLVideoAllocationParams * params,
gsize struct_size, gsize struct_size,
guint alloc_flags, guint alloc_flags,
@ -117,6 +119,7 @@ gboolean gst_gl_video_allocation_params_init_full (GstGLVideoAlloc
gpointer gl_handle, gpointer gl_handle,
gpointer user_data, gpointer user_data,
GDestroyNotify notify); GDestroyNotify notify);
GST_EXPORT
GstGLVideoAllocationParams * gst_gl_video_allocation_params_new (GstGLContext * context, GstGLVideoAllocationParams * gst_gl_video_allocation_params_new (GstGLContext * context,
GstAllocationParams * alloc_params, GstAllocationParams * alloc_params,
GstVideoInfo * v_info, GstVideoInfo * v_info,
@ -124,6 +127,7 @@ GstGLVideoAllocationParams * gst_gl_video_allocation_params_new (GstGLContext *
GstVideoAlignment * valign, GstVideoAlignment * valign,
GstGLTextureTarget target, GstGLTextureTarget target,
GstVideoGLTextureType tex_type); GstVideoGLTextureType tex_type);
GST_EXPORT
GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_data (GstGLContext * context, GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_data (GstGLContext * context,
GstAllocationParams * alloc_params, GstAllocationParams * alloc_params,
GstVideoInfo * v_info, GstVideoInfo * v_info,
@ -135,6 +139,7 @@ GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_data
gpointer user_data, gpointer user_data,
GDestroyNotify notify); GDestroyNotify notify);
GST_EXPORT
GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_texture (GstGLContext * context, GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_texture (GstGLContext * context,
GstAllocationParams * alloc_params, GstAllocationParams * alloc_params,
GstVideoInfo * v_info, GstVideoInfo * v_info,
@ -146,6 +151,7 @@ GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_texture
gpointer user_data, gpointer user_data,
GDestroyNotify notify); GDestroyNotify notify);
GST_EXPORT
GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_gl_handle (GstGLContext * context, GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_gl_handle (GstGLContext * context,
GstAllocationParams * alloc_params, GstAllocationParams * alloc_params,
GstVideoInfo * v_info, GstVideoInfo * v_info,
@ -158,8 +164,10 @@ GstGLVideoAllocationParams * gst_gl_video_allocation_params_new_wrapped_gl_handl
GDestroyNotify notify); GDestroyNotify notify);
/* subclass usage */ /* subclass usage */
GST_EXPORT
void gst_gl_video_allocation_params_free_data (GstGLVideoAllocationParams * params); void gst_gl_video_allocation_params_free_data (GstGLVideoAllocationParams * params);
/* subclass usage */ /* subclass usage */
GST_EXPORT
void gst_gl_video_allocation_params_copy_data (GstGLVideoAllocationParams * src_vid, void gst_gl_video_allocation_params_copy_data (GstGLVideoAllocationParams * src_vid,
GstGLVideoAllocationParams * dest_vid); GstGLVideoAllocationParams * dest_vid);
@ -202,9 +210,12 @@ struct _GstGLMemoryAllocatorClass
*/ */
#define GST_GL_MEMORY_ALLOCATOR_NAME "GLMemory" #define GST_GL_MEMORY_ALLOCATOR_NAME "GLMemory"
GST_EXPORT
void gst_gl_memory_init_once (void); void gst_gl_memory_init_once (void);
GST_EXPORT
gboolean gst_is_gl_memory (GstMemory * mem); gboolean gst_is_gl_memory (GstMemory * mem);
GST_EXPORT
void gst_gl_memory_init (GstGLMemory * mem, void gst_gl_memory_init (GstGLMemory * mem,
GstAllocator * allocator, GstAllocator * allocator,
GstMemory * parent, GstMemory * parent,
@ -218,12 +229,14 @@ void gst_gl_memory_init (GstGLMemory * mem,
gpointer user_data, gpointer user_data,
GDestroyNotify notify); GDestroyNotify notify);
GST_EXPORT
gboolean gst_gl_memory_copy_into (GstGLMemory *gl_mem, gboolean gst_gl_memory_copy_into (GstGLMemory *gl_mem,
guint tex_id, guint tex_id,
GstGLTextureTarget target, GstGLTextureTarget target,
GstVideoGLTextureType tex_type, GstVideoGLTextureType tex_type,
gint width, gint width,
gint height); gint height);
GST_EXPORT
gboolean gst_gl_memory_copy_teximage (GstGLMemory * src, gboolean gst_gl_memory_copy_teximage (GstGLMemory * src,
guint tex_id, guint tex_id,
GstGLTextureTarget out_target, GstGLTextureTarget out_target,
@ -231,18 +244,26 @@ gboolean gst_gl_memory_copy_teximage (GstGLMemory * src,
gint width, gint width,
gint height); gint height);
GST_EXPORT
gboolean gst_gl_memory_read_pixels (GstGLMemory * gl_mem, gboolean gst_gl_memory_read_pixels (GstGLMemory * gl_mem,
gpointer read_pointer); gpointer read_pointer);
GST_EXPORT
void gst_gl_memory_texsubimage (GstGLMemory * gl_mem, void gst_gl_memory_texsubimage (GstGLMemory * gl_mem,
gpointer read_pointer); gpointer read_pointer);
/* accessors */ /* accessors */
GST_EXPORT
gint gst_gl_memory_get_texture_width (GstGLMemory * gl_mem); gint gst_gl_memory_get_texture_width (GstGLMemory * gl_mem);
GST_EXPORT
gint gst_gl_memory_get_texture_height (GstGLMemory * gl_mem); gint gst_gl_memory_get_texture_height (GstGLMemory * gl_mem);
GST_EXPORT
GstVideoGLTextureType gst_gl_memory_get_texture_type (GstGLMemory * gl_mem); GstVideoGLTextureType gst_gl_memory_get_texture_type (GstGLMemory * gl_mem);
GST_EXPORT
GstGLTextureTarget gst_gl_memory_get_texture_target (GstGLMemory * gl_mem); GstGLTextureTarget gst_gl_memory_get_texture_target (GstGLMemory * gl_mem);
GST_EXPORT
guint gst_gl_memory_get_texture_id (GstGLMemory * gl_mem); guint gst_gl_memory_get_texture_id (GstGLMemory * gl_mem);
GST_EXPORT
gboolean gst_gl_memory_setup_buffer (GstGLMemoryAllocator * allocator, gboolean gst_gl_memory_setup_buffer (GstGLMemoryAllocator * allocator,
GstBuffer * buffer, GstBuffer * buffer,
GstGLVideoAllocationParams * params, GstGLVideoAllocationParams * params,
@ -250,6 +271,7 @@ gboolean gst_gl_memory_setup_buffer (GstGLMemoryAllocato
gpointer *wrapped_data, gpointer *wrapped_data,
gsize n_wrapped_pointers); gsize n_wrapped_pointers);
GST_EXPORT
GstGLMemoryAllocator * gst_gl_memory_allocator_get_default (GstGLContext *context); GstGLMemoryAllocator * gst_gl_memory_allocator_get_default (GstGLContext *context);
G_END_DECLS G_END_DECLS

View file

@ -32,6 +32,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define GST_TYPE_GL_MEMORY_PBO_ALLOCATOR (gst_gl_memory_pbo_allocator_get_type()) #define GST_TYPE_GL_MEMORY_PBO_ALLOCATOR (gst_gl_memory_pbo_allocator_get_type())
GST_EXPORT
GType gst_gl_memory_pbo_allocator_get_type(void); GType gst_gl_memory_pbo_allocator_get_type(void);
#define GST_IS_GL_MEMORY_PBO_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_MEMORY_PBO_ALLOCATOR)) #define GST_IS_GL_MEMORY_PBO_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_MEMORY_PBO_ALLOCATOR))
@ -64,12 +65,17 @@ struct _GstGLMemoryPBO
*/ */
#define GST_GL_MEMORY_PBO_ALLOCATOR_NAME "GLMemoryPBO" #define GST_GL_MEMORY_PBO_ALLOCATOR_NAME "GLMemoryPBO"
GST_EXPORT
void gst_gl_memory_pbo_init_once (void); void gst_gl_memory_pbo_init_once (void);
GST_EXPORT
gboolean gst_is_gl_memory_pbo (GstMemory * mem); gboolean gst_is_gl_memory_pbo (GstMemory * mem);
GST_EXPORT
void gst_gl_memory_pbo_download_transfer (GstGLMemoryPBO * gl_mem); void gst_gl_memory_pbo_download_transfer (GstGLMemoryPBO * gl_mem);
GST_EXPORT
void gst_gl_memory_pbo_upload_transfer (GstGLMemoryPBO * gl_mem); void gst_gl_memory_pbo_upload_transfer (GstGLMemoryPBO * gl_mem);
GST_EXPORT
gboolean gst_gl_memory_pbo_copy_into_texture (GstGLMemoryPBO *gl_mem, gboolean gst_gl_memory_pbo_copy_into_texture (GstGLMemoryPBO *gl_mem,
guint tex_id, guint tex_id,
GstGLTextureTarget target, GstGLTextureTarget target,

View file

@ -33,6 +33,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_overlay_compositor_get_type (void); GType gst_gl_overlay_compositor_get_type (void);
/** /**
@ -71,15 +72,20 @@ struct _GstGLOverlayCompositorClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstGLOverlayCompositor *gst_gl_overlay_compositor_new (GstGLContext * context); GstGLOverlayCompositor *gst_gl_overlay_compositor_new (GstGLContext * context);
GST_EXPORT
void gst_gl_overlay_compositor_free_overlays (GstGLOverlayCompositor * compositor); void gst_gl_overlay_compositor_free_overlays (GstGLOverlayCompositor * compositor);
GST_EXPORT
void gst_gl_overlay_compositor_upload_overlays (GstGLOverlayCompositor * compositor, void gst_gl_overlay_compositor_upload_overlays (GstGLOverlayCompositor * compositor,
GstBuffer * buf); GstBuffer * buf);
GST_EXPORT
void gst_gl_overlay_compositor_draw_overlays (GstGLOverlayCompositor * compositor); void gst_gl_overlay_compositor_draw_overlays (GstGLOverlayCompositor * compositor);
GST_EXPORT
GstCaps * gst_gl_overlay_compositor_add_caps(GstCaps * caps); GstCaps * gst_gl_overlay_compositor_add_caps(GstCaps * caps);
G_END_DECLS G_END_DECLS

View file

@ -47,17 +47,25 @@ struct _GstGLQuery
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
void gst_gl_query_init (GstGLQuery * query, void gst_gl_query_init (GstGLQuery * query,
GstGLContext * context, GstGLContext * context,
GstGLQueryType query_type); GstGLQueryType query_type);
GST_EXPORT
void gst_gl_query_unset (GstGLQuery * query); void gst_gl_query_unset (GstGLQuery * query);
GST_EXPORT
GstGLQuery * gst_gl_query_new (GstGLContext * context, GstGLQuery * gst_gl_query_new (GstGLContext * context,
GstGLQueryType query_type); GstGLQueryType query_type);
GST_EXPORT
void gst_gl_query_free (GstGLQuery * query); void gst_gl_query_free (GstGLQuery * query);
GST_EXPORT
void gst_gl_query_start (GstGLQuery * query); void gst_gl_query_start (GstGLQuery * query);
GST_EXPORT
void gst_gl_query_end (GstGLQuery * query); void gst_gl_query_end (GstGLQuery * query);
GST_EXPORT
void gst_gl_query_counter (GstGLQuery * query); void gst_gl_query_counter (GstGLQuery * query);
GST_EXPORT
guint64 gst_gl_query_result (GstGLQuery * query); guint64 gst_gl_query_result (GstGLQuery * query);
#define gst_gl_query_start_log_valist(query,cat,level,object,format,varargs) \ #define gst_gl_query_start_log_valist(query,cat,level,object,format,varargs) \

View file

@ -26,6 +26,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_shader_get_type (void); GType gst_gl_shader_get_type (void);
#define GST_GL_TYPE_SHADER (gst_gl_shader_get_type()) #define GST_GL_TYPE_SHADER (gst_gl_shader_get_type())
#define GST_GL_SHADER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GST_GL_TYPE_SHADER, GstGLShader)) #define GST_GL_SHADER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GST_GL_TYPE_SHADER, GstGLShader))
@ -51,60 +52,104 @@ struct _GstGLShaderClass {
GstObjectClass parent_class; GstObjectClass parent_class;
}; };
GST_EXPORT
GstGLShader * gst_gl_shader_new (GstGLContext *context); GstGLShader * gst_gl_shader_new (GstGLContext *context);
GST_EXPORT
GstGLShader * gst_gl_shader_new_with_stages (GstGLContext * context, GError ** error, ...); GstGLShader * gst_gl_shader_new_with_stages (GstGLContext * context, GError ** error, ...);
GST_EXPORT
GstGLShader * gst_gl_shader_new_link_with_stages (GstGLContext * context, GError ** error, ...); GstGLShader * gst_gl_shader_new_link_with_stages (GstGLContext * context, GError ** error, ...);
GST_EXPORT
GstGLShader * gst_gl_shader_new_default (GstGLContext * context, GError ** error); GstGLShader * gst_gl_shader_new_default (GstGLContext * context, GError ** error);
GST_EXPORT
gboolean gst_gl_shader_attach (GstGLShader * shader, GstGLSLStage * stage); gboolean gst_gl_shader_attach (GstGLShader * shader, GstGLSLStage * stage);
GST_EXPORT
gboolean gst_gl_shader_attach_unlocked (GstGLShader * shader, GstGLSLStage * stage); gboolean gst_gl_shader_attach_unlocked (GstGLShader * shader, GstGLSLStage * stage);
GST_EXPORT
void gst_gl_shader_detach (GstGLShader * shader, GstGLSLStage * stage); void gst_gl_shader_detach (GstGLShader * shader, GstGLSLStage * stage);
GST_EXPORT
void gst_gl_shader_detach_unlocked (GstGLShader * shader, GstGLSLStage * stage); void gst_gl_shader_detach_unlocked (GstGLShader * shader, GstGLSLStage * stage);
GST_EXPORT
gboolean gst_gl_shader_compile_attach_stage (GstGLShader * shader, gboolean gst_gl_shader_compile_attach_stage (GstGLShader * shader,
GstGLSLStage *stage, GstGLSLStage *stage,
GError ** error); GError ** error);
GST_EXPORT
gboolean gst_gl_shader_link (GstGLShader * shader, GError ** error); gboolean gst_gl_shader_link (GstGLShader * shader, GError ** error);
GST_EXPORT
gboolean gst_gl_shader_is_linked (GstGLShader *shader); gboolean gst_gl_shader_is_linked (GstGLShader *shader);
GST_EXPORT
int gst_gl_shader_get_program_handle (GstGLShader * shader); int gst_gl_shader_get_program_handle (GstGLShader * shader);
GST_EXPORT
void gst_gl_shader_release (GstGLShader *shader); void gst_gl_shader_release (GstGLShader *shader);
GST_EXPORT
void gst_gl_shader_release_unlocked (GstGLShader * shader); void gst_gl_shader_release_unlocked (GstGLShader * shader);
GST_EXPORT
void gst_gl_shader_use (GstGLShader *shader); void gst_gl_shader_use (GstGLShader *shader);
GST_EXPORT
void gst_gl_context_clear_shader (GstGLContext *context); void gst_gl_context_clear_shader (GstGLContext *context);
GST_EXPORT
void gst_gl_shader_set_uniform_1i (GstGLShader *shader, const gchar *name, gint value); void gst_gl_shader_set_uniform_1i (GstGLShader *shader, const gchar *name, gint value);
GST_EXPORT
void gst_gl_shader_set_uniform_1iv (GstGLShader *shader, const gchar *name, guint count, gint *value); void gst_gl_shader_set_uniform_1iv (GstGLShader *shader, const gchar *name, guint count, gint *value);
GST_EXPORT
void gst_gl_shader_set_uniform_1f (GstGLShader *shader, const gchar *name, gfloat value); void gst_gl_shader_set_uniform_1f (GstGLShader *shader, const gchar *name, gfloat value);
GST_EXPORT
void gst_gl_shader_set_uniform_1fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value); void gst_gl_shader_set_uniform_1fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value);
GST_EXPORT
void gst_gl_shader_set_uniform_2i (GstGLShader *shader, const gchar *name, gint v0, gint v1); void gst_gl_shader_set_uniform_2i (GstGLShader *shader, const gchar *name, gint v0, gint v1);
GST_EXPORT
void gst_gl_shader_set_uniform_2iv (GstGLShader *shader, const gchar *name, guint count, gint *value); void gst_gl_shader_set_uniform_2iv (GstGLShader *shader, const gchar *name, guint count, gint *value);
GST_EXPORT
void gst_gl_shader_set_uniform_2f (GstGLShader *shader, const gchar *name, gfloat v0, gfloat v1); void gst_gl_shader_set_uniform_2f (GstGLShader *shader, const gchar *name, gfloat v0, gfloat v1);
GST_EXPORT
void gst_gl_shader_set_uniform_2fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value); void gst_gl_shader_set_uniform_2fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value);
GST_EXPORT
void gst_gl_shader_set_uniform_3i (GstGLShader *shader, const gchar *name, gint v0, gint v1, gint v2); void gst_gl_shader_set_uniform_3i (GstGLShader *shader, const gchar *name, gint v0, gint v1, gint v2);
GST_EXPORT
void gst_gl_shader_set_uniform_3iv (GstGLShader *shader, const gchar *name, guint count, gint * value); void gst_gl_shader_set_uniform_3iv (GstGLShader *shader, const gchar *name, guint count, gint * value);
GST_EXPORT
void gst_gl_shader_set_uniform_3f (GstGLShader *shader, const gchar *name, gfloat v0, gfloat v1, gfloat v2); void gst_gl_shader_set_uniform_3f (GstGLShader *shader, const gchar *name, gfloat v0, gfloat v1, gfloat v2);
GST_EXPORT
void gst_gl_shader_set_uniform_3fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value); void gst_gl_shader_set_uniform_3fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value);
GST_EXPORT
void gst_gl_shader_set_uniform_4i (GstGLShader *shader, const gchar *name, gint v0, gint v1, gint v2, gint v3); void gst_gl_shader_set_uniform_4i (GstGLShader *shader, const gchar *name, gint v0, gint v1, gint v2, gint v3);
GST_EXPORT
void gst_gl_shader_set_uniform_4iv (GstGLShader *shader, const gchar *name, guint count, gint *value); void gst_gl_shader_set_uniform_4iv (GstGLShader *shader, const gchar *name, guint count, gint *value);
GST_EXPORT
void gst_gl_shader_set_uniform_4f (GstGLShader *shader, const gchar *name, gfloat v0, gfloat v1, gfloat v2, gfloat v3); void gst_gl_shader_set_uniform_4f (GstGLShader *shader, const gchar *name, gfloat v0, gfloat v1, gfloat v2, gfloat v3);
GST_EXPORT
void gst_gl_shader_set_uniform_4fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value); void gst_gl_shader_set_uniform_4fv (GstGLShader *shader, const gchar *name, guint count, gfloat *value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_2fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_2fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_3fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_3fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_4fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_4fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
#if GST_GL_HAVE_OPENGL #if GST_GL_HAVE_OPENGL
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_2x3fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_2x3fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_2x4fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_2x4fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_3x2fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_3x2fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_3x4fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_3x4fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_4x2fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_4x2fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
GST_EXPORT
void gst_gl_shader_set_uniform_matrix_4x3fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value); void gst_gl_shader_set_uniform_matrix_4x3fv (GstGLShader *shader, const gchar *name, gint count, gboolean transpose, const gfloat* value);
#endif #endif
GST_EXPORT
gint gst_gl_shader_get_attribute_location (GstGLShader *shader, const gchar *name); gint gst_gl_shader_get_attribute_location (GstGLShader *shader, const gchar *name);
GST_EXPORT
void gst_gl_shader_bind_attribute_location (GstGLShader * shader, guint index, const gchar * name); void gst_gl_shader_bind_attribute_location (GstGLShader * shader, guint index, const gchar * name);
GST_EXPORT
void gst_gl_shader_bind_frag_data_location (GstGLShader * shader, guint index, const gchar * name); void gst_gl_shader_bind_frag_data_location (GstGLShader * shader, guint index, const gchar * name);
G_END_DECLS G_END_DECLS

View file

@ -25,12 +25,17 @@
G_BEGIN_DECLS G_BEGIN_DECLS
extern const gchar *gst_gl_shader_string_vertex_default; GST_EXPORT
extern const gchar *gst_gl_shader_string_fragment_default; const gchar *gst_gl_shader_string_vertex_default;
GST_EXPORT
const gchar *gst_gl_shader_string_fragment_default;
extern const gchar *gst_gl_shader_string_vertex_mat4_texture_transform; GST_EXPORT
extern const gchar *gst_gl_shader_string_vertex_mat4_vertex_transform; const gchar *gst_gl_shader_string_vertex_mat4_texture_transform;
extern const gchar *gst_gl_shader_string_fragment_external_oes_default; GST_EXPORT
const gchar *gst_gl_shader_string_vertex_mat4_vertex_transform;
GST_EXPORT
const gchar *gst_gl_shader_string_fragment_external_oes_default;
G_END_DECLS G_END_DECLS

View file

@ -25,6 +25,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GQuark gst_glsl_error_quark (void); GQuark gst_glsl_error_quark (void);
#define GST_GLSL_ERROR (gst_glsl_error_quark ()) #define GST_GLSL_ERROR (gst_glsl_error_quark ())
@ -70,23 +71,32 @@ typedef enum
GST_GLSL_PROFILE_ANY = -1, GST_GLSL_PROFILE_ANY = -1,
} GstGLSLProfile; } GstGLSLProfile;
GST_EXPORT
GstGLSLVersion gst_glsl_version_from_string (const gchar * string); GstGLSLVersion gst_glsl_version_from_string (const gchar * string);
GST_EXPORT
const gchar * gst_glsl_version_to_string (GstGLSLVersion version); const gchar * gst_glsl_version_to_string (GstGLSLVersion version);
GST_EXPORT
GstGLSLProfile gst_glsl_profile_from_string (const gchar * string); GstGLSLProfile gst_glsl_profile_from_string (const gchar * string);
GST_EXPORT
const gchar * gst_glsl_profile_to_string (GstGLSLProfile profile); const gchar * gst_glsl_profile_to_string (GstGLSLProfile profile);
GST_EXPORT
gchar * gst_glsl_version_profile_to_string (GstGLSLVersion version, gchar * gst_glsl_version_profile_to_string (GstGLSLVersion version,
GstGLSLProfile profile); GstGLSLProfile profile);
GST_EXPORT
gboolean gst_glsl_version_profile_from_string (const gchar * string, gboolean gst_glsl_version_profile_from_string (const gchar * string,
GstGLSLVersion * version, GstGLSLVersion * version,
GstGLSLProfile * profile); GstGLSLProfile * profile);
GST_EXPORT
gboolean gst_glsl_string_get_version_profile (const gchar *s, gboolean gst_glsl_string_get_version_profile (const gchar *s,
GstGLSLVersion * version, GstGLSLVersion * version,
GstGLSLProfile * profile); GstGLSLProfile * profile);
GST_EXPORT
GstGLSLVersion gst_gl_version_to_glsl_version (GstGLAPI gl_api, gint maj, gint min); GstGLSLVersion gst_gl_version_to_glsl_version (GstGLAPI gl_api, gint maj, gint min);
GST_EXPORT
gboolean gst_gl_context_supports_glsl_profile_version (GstGLContext * context, gboolean gst_gl_context_supports_glsl_profile_version (GstGLContext * context,
GstGLSLVersion version, GstGLSLVersion version,
GstGLSLProfile profile); GstGLSLProfile profile);

View file

@ -62,13 +62,17 @@ struct _GstGLSLStageClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GType gst_glsl_stage_get_type (void); GType gst_glsl_stage_get_type (void);
GST_EXPORT
GstGLSLStage * gst_glsl_stage_new (GstGLContext * context, guint type); GstGLSLStage * gst_glsl_stage_new (GstGLContext * context, guint type);
GST_EXPORT
GstGLSLStage * gst_glsl_stage_new_with_string (GstGLContext * context, GstGLSLStage * gst_glsl_stage_new_with_string (GstGLContext * context,
guint type, guint type,
GstGLSLVersion version, GstGLSLVersion version,
GstGLSLProfile profile, GstGLSLProfile profile,
const gchar * str); const gchar * str);
GST_EXPORT
GstGLSLStage * gst_glsl_stage_new_with_strings (GstGLContext * context, GstGLSLStage * gst_glsl_stage_new_with_strings (GstGLContext * context,
guint type, guint type,
GstGLSLVersion version, GstGLSLVersion version,
@ -76,18 +80,26 @@ GstGLSLStage * gst_glsl_stage_new_with_strings (GstGLContext * context,
gint n_strings, gint n_strings,
const gchar ** str); const gchar ** str);
GST_EXPORT
GstGLSLStage * gst_glsl_stage_new_default_fragment (GstGLContext * context); GstGLSLStage * gst_glsl_stage_new_default_fragment (GstGLContext * context);
GST_EXPORT
GstGLSLStage * gst_glsl_stage_new_default_vertex (GstGLContext * context); GstGLSLStage * gst_glsl_stage_new_default_vertex (GstGLContext * context);
GST_EXPORT
guint gst_glsl_stage_get_handle (GstGLSLStage * stage); guint gst_glsl_stage_get_handle (GstGLSLStage * stage);
GST_EXPORT
GstGLSLProfile gst_glsl_stage_get_profile (GstGLSLStage * stage); GstGLSLProfile gst_glsl_stage_get_profile (GstGLSLStage * stage);
GST_EXPORT
GstGLSLVersion gst_glsl_stage_get_version (GstGLSLStage * stage); GstGLSLVersion gst_glsl_stage_get_version (GstGLSLStage * stage);
GST_EXPORT
guint gst_glsl_stage_get_shader_type (GstGLSLStage * stage); guint gst_glsl_stage_get_shader_type (GstGLSLStage * stage);
GST_EXPORT
gboolean gst_glsl_stage_set_strings (GstGLSLStage * stage, gboolean gst_glsl_stage_set_strings (GstGLSLStage * stage,
GstGLSLVersion version, GstGLSLVersion version,
GstGLSLProfile profile, GstGLSLProfile profile,
gint n_strings, gint n_strings,
const gchar ** str); const gchar ** str);
GST_EXPORT
gboolean gst_glsl_stage_compile (GstGLSLStage * stage, gboolean gst_glsl_stage_compile (GstGLSLStage * stage,
GError ** error); GError ** error);

View file

@ -49,16 +49,23 @@ struct _GstGLSyncMeta {
void (*free_gl) (GstGLSyncMeta * sync, GstGLContext * context); void (*free_gl) (GstGLSyncMeta * sync, GstGLContext * context);
}; };
GST_EXPORT
GType gst_gl_sync_meta_api_get_type (void); GType gst_gl_sync_meta_api_get_type (void);
GST_EXPORT
const GstMetaInfo * gst_gl_sync_meta_get_info (void); const GstMetaInfo * gst_gl_sync_meta_get_info (void);
#define gst_buffer_get_gl_sync_meta(b) ((GstGLSyncMeta*)gst_buffer_get_meta((b),GST_GL_SYNC_META_API_TYPE)) #define gst_buffer_get_gl_sync_meta(b) ((GstGLSyncMeta*)gst_buffer_get_meta((b),GST_GL_SYNC_META_API_TYPE))
GST_EXPORT
GstGLSyncMeta * gst_buffer_add_gl_sync_meta (GstGLContext * context, GstBuffer *buffer); GstGLSyncMeta * gst_buffer_add_gl_sync_meta (GstGLContext * context, GstBuffer *buffer);
GST_EXPORT
GstGLSyncMeta * gst_buffer_add_gl_sync_meta_full (GstGLContext * context, GstBuffer * buffer, GstGLSyncMeta * gst_buffer_add_gl_sync_meta_full (GstGLContext * context, GstBuffer * buffer,
gpointer data); gpointer data);
GST_EXPORT
void gst_gl_sync_meta_set_sync_point (GstGLSyncMeta * sync, GstGLContext * context); void gst_gl_sync_meta_set_sync_point (GstGLSyncMeta * sync, GstGLContext * context);
GST_EXPORT
void gst_gl_sync_meta_wait (GstGLSyncMeta * sync, GstGLContext * context); void gst_gl_sync_meta_wait (GstGLSyncMeta * sync, GstGLContext * context);
GST_EXPORT
void gst_gl_sync_meta_wait_cpu (GstGLSyncMeta * sync, GstGLContext * context); void gst_gl_sync_meta_wait_cpu (GstGLSyncMeta * sync, GstGLContext * context);
G_END_DECLS G_END_DECLS

View file

@ -27,6 +27,7 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
GType gst_gl_upload_get_type (void); GType gst_gl_upload_get_type (void);
#define GST_TYPE_GL_UPLOAD (gst_gl_upload_get_type()) #define GST_TYPE_GL_UPLOAD (gst_gl_upload_get_type())
#define GST_GL_UPLOAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_UPLOAD,GstGLUpload)) #define GST_GL_UPLOAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_UPLOAD,GstGLUpload))
@ -82,28 +83,36 @@ struct _GstGLUploadClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GstCaps * gst_gl_upload_get_input_template_caps (void); GstCaps * gst_gl_upload_get_input_template_caps (void);
GST_EXPORT
GstGLUpload * gst_gl_upload_new (GstGLContext * context); GstGLUpload * gst_gl_upload_new (GstGLContext * context);
GST_EXPORT
void gst_gl_upload_set_context (GstGLUpload * upload, void gst_gl_upload_set_context (GstGLUpload * upload,
GstGLContext * context); GstGLContext * context);
GST_EXPORT
GstCaps * gst_gl_upload_transform_caps (GstGLUpload * upload, GstCaps * gst_gl_upload_transform_caps (GstGLUpload * upload,
GstGLContext * context, GstGLContext * context,
GstPadDirection direction, GstPadDirection direction,
GstCaps * caps, GstCaps * caps,
GstCaps * filter); GstCaps * filter);
GST_EXPORT
gboolean gst_gl_upload_set_caps (GstGLUpload * upload, gboolean gst_gl_upload_set_caps (GstGLUpload * upload,
GstCaps * in_caps, GstCaps * in_caps,
GstCaps * out_caps); GstCaps * out_caps);
GST_EXPORT
void gst_gl_upload_get_caps (GstGLUpload * upload, void gst_gl_upload_get_caps (GstGLUpload * upload,
GstCaps ** in_caps, GstCaps ** in_caps,
GstCaps ** out_caps); GstCaps ** out_caps);
GST_EXPORT
void gst_gl_upload_propose_allocation (GstGLUpload * upload, void gst_gl_upload_propose_allocation (GstGLUpload * upload,
GstQuery * decide_query, GstQuery * decide_query,
GstQuery * query); GstQuery * query);
GST_EXPORT
GstGLUploadReturn gst_gl_upload_perform_with_buffer (GstGLUpload * upload, GstGLUploadReturn gst_gl_upload_perform_with_buffer (GstGLUpload * upload,
GstBuffer * buffer, GstBuffer * buffer,
GstBuffer ** outbuf_ptr); GstBuffer ** outbuf_ptr);

View file

@ -28,33 +28,47 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GST_EXPORT
gboolean gst_gl_context_gen_shader (GstGLContext * context, gboolean gst_gl_context_gen_shader (GstGLContext * context,
const gchar * shader_vertex_source, const gchar * shader_vertex_source,
const gchar * shader_fragment_source, GstGLShader ** shader); const gchar * shader_fragment_source, GstGLShader ** shader);
GST_EXPORT
void gst_gl_context_del_shader (GstGLContext * context, GstGLShader * shader); void gst_gl_context_del_shader (GstGLContext * context, GstGLShader * shader);
GST_EXPORT
gboolean gst_gl_ensure_element_data (gpointer element, gboolean gst_gl_ensure_element_data (gpointer element,
GstGLDisplay **display_ptr, GstGLContext ** other_context_ptr); GstGLDisplay **display_ptr, GstGLContext ** other_context_ptr);
GST_EXPORT
gboolean gst_gl_handle_set_context (GstElement * element, GstContext * context, gboolean gst_gl_handle_set_context (GstElement * element, GstContext * context,
GstGLDisplay ** display, GstGLContext ** other_context); GstGLDisplay ** display, GstGLContext ** other_context);
GST_EXPORT
gboolean gst_gl_handle_context_query (GstElement * element, GstQuery * query, gboolean gst_gl_handle_context_query (GstElement * element, GstQuery * query,
GstGLDisplay ** display, GstGLContext ** other_context); GstGLDisplay ** display, GstGLContext ** other_context);
GST_EXPORT
gboolean gst_gl_run_query (GstElement * element, gboolean gst_gl_run_query (GstElement * element,
GstQuery * query, GstPadDirection direction); GstQuery * query, GstPadDirection direction);
GST_EXPORT
gsize gst_gl_get_plane_data_size (GstVideoInfo * info, GstVideoAlignment * align, gsize gst_gl_get_plane_data_size (GstVideoInfo * info, GstVideoAlignment * align,
guint plane); guint plane);
GST_EXPORT
gsize gst_gl_get_plane_start (GstVideoInfo * info, GstVideoAlignment * valign, gsize gst_gl_get_plane_start (GstVideoInfo * info, GstVideoAlignment * valign,
guint plane); guint plane);
GST_EXPORT
GstCaps * gst_gl_caps_replace_all_caps_features (const GstCaps * caps, GstCaps * gst_gl_caps_replace_all_caps_features (const GstCaps * caps,
const gchar * feature_name); const gchar * feature_name);
GST_EXPORT
gboolean gst_gl_value_set_texture_target_from_mask (GValue * value, gboolean gst_gl_value_set_texture_target_from_mask (GValue * value,
GstGLTextureTarget target_mask); GstGLTextureTarget target_mask);
GST_EXPORT
gboolean gst_gl_value_set_texture_target (GValue * value, GstGLTextureTarget target); gboolean gst_gl_value_set_texture_target (GValue * value, GstGLTextureTarget target);
GST_EXPORT
GstGLTextureTarget gst_gl_value_get_texture_target_mask (const GValue * value); GstGLTextureTarget gst_gl_value_get_texture_target_mask (const GValue * value);
GST_EXPORT
void gst_gl_multiply_matrix4 (const gfloat * a, const gfloat * b, gfloat * result); void gst_gl_multiply_matrix4 (const gfloat * a, const gfloat * b, gfloat * result);
GST_EXPORT
void gst_gl_get_affine_transformation_meta_as_ndc (GstVideoAffineTransformationMeta * void gst_gl_get_affine_transformation_meta_as_ndc (GstVideoAffineTransformationMeta *
meta, gfloat * matrix); meta, gfloat * matrix);

View file

@ -33,6 +33,7 @@ G_BEGIN_DECLS
#define GST_GL_VIEW_CONVERT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_GL_VIEW_CONVERT,GstGLViewConvertClass)) #define GST_GL_VIEW_CONVERT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_GL_VIEW_CONVERT,GstGLViewConvertClass))
#define GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE gst_gl_stereo_downmix_mode_get_type() #define GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE gst_gl_stereo_downmix_mode_get_type()
GST_EXPORT
GType gst_gl_stereo_downmix_mode_get_type (void); GType gst_gl_stereo_downmix_mode_get_type (void);
enum _GstGLStereoDownmix { enum _GstGLStereoDownmix {
@ -84,21 +85,31 @@ struct _GstGLViewConvertClass
gpointer _padding[GST_PADDING]; gpointer _padding[GST_PADDING];
}; };
GST_EXPORT
GType gst_gl_view_convert_get_type (void); GType gst_gl_view_convert_get_type (void);
GST_EXPORT
GstGLViewConvert * gst_gl_view_convert_new (void); GstGLViewConvert * gst_gl_view_convert_new (void);
GST_EXPORT
gboolean gst_gl_view_convert_set_caps (GstGLViewConvert * viewconvert, GstCaps * in_caps, GstCaps * out_caps); gboolean gst_gl_view_convert_set_caps (GstGLViewConvert * viewconvert, GstCaps * in_caps, GstCaps * out_caps);
GST_EXPORT
GstCaps * gst_gl_view_convert_transform_caps (GstGLViewConvert * viewconvert, GstCaps * gst_gl_view_convert_transform_caps (GstGLViewConvert * viewconvert,
GstPadDirection direction, GstCaps * caps, GstCaps * filter); GstPadDirection direction, GstCaps * caps, GstCaps * filter);
GST_EXPORT
GstCaps * gst_gl_view_convert_fixate_caps (GstGLViewConvert *viewconvert, GstCaps * gst_gl_view_convert_fixate_caps (GstGLViewConvert *viewconvert,
GstPadDirection direction, GstCaps * caps, GstCaps * othercaps); GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
GST_EXPORT
GstFlowReturn gst_gl_view_convert_submit_input_buffer (GstGLViewConvert *viewconvert, GstFlowReturn gst_gl_view_convert_submit_input_buffer (GstGLViewConvert *viewconvert,
gboolean is_discont, GstBuffer * input); gboolean is_discont, GstBuffer * input);
GST_EXPORT
GstFlowReturn gst_gl_view_convert_get_output (GstGLViewConvert *viewconvert, GstFlowReturn gst_gl_view_convert_get_output (GstGLViewConvert *viewconvert,
GstBuffer ** outbuf_ptr); GstBuffer ** outbuf_ptr);
GST_EXPORT
GstBuffer * gst_gl_view_convert_perform (GstGLViewConvert * viewconvert, GstBuffer *inbuf); GstBuffer * gst_gl_view_convert_perform (GstGLViewConvert * viewconvert, GstBuffer *inbuf);
GST_EXPORT
void gst_gl_view_convert_reset (GstGLViewConvert * viewconvert); void gst_gl_view_convert_reset (GstGLViewConvert * viewconvert);
GST_EXPORT
void gst_gl_view_convert_set_context (GstGLViewConvert *viewconvert, GstGLContext * context); void gst_gl_view_convert_set_context (GstGLViewConvert *viewconvert, GstGLContext * context);
G_END_DECLS G_END_DECLS

View file

@ -140,55 +140,73 @@ struct _GstGLWindowClass {
gpointer _reserved[GST_PADDING]; gpointer _reserved[GST_PADDING];
}; };
GST_EXPORT
GQuark gst_gl_window_error_quark (void); GQuark gst_gl_window_error_quark (void);
GST_EXPORT
GType gst_gl_window_get_type (void); GType gst_gl_window_get_type (void);
GST_EXPORT
GstGLWindow * gst_gl_window_new (GstGLDisplay *display); GstGLWindow * gst_gl_window_new (GstGLDisplay *display);
/* callbacks */ /* callbacks */
GST_EXPORT
void gst_gl_window_set_draw_callback (GstGLWindow *window, void gst_gl_window_set_draw_callback (GstGLWindow *window,
GstGLWindowCB callback, GstGLWindowCB callback,
gpointer data, gpointer data,
GDestroyNotify destroy_notify); GDestroyNotify destroy_notify);
GST_EXPORT
void gst_gl_window_set_resize_callback (GstGLWindow *window, void gst_gl_window_set_resize_callback (GstGLWindow *window,
GstGLWindowResizeCB callback, GstGLWindowResizeCB callback,
gpointer data, gpointer data,
GDestroyNotify destroy_notify); GDestroyNotify destroy_notify);
GST_EXPORT
void gst_gl_window_set_close_callback (GstGLWindow *window, void gst_gl_window_set_close_callback (GstGLWindow *window,
GstGLWindowCB callback, GstGLWindowCB callback,
gpointer data, gpointer data,
GDestroyNotify destroy_notify); GDestroyNotify destroy_notify);
GST_EXPORT
void gst_gl_window_set_window_handle (GstGLWindow *window, guintptr handle); void gst_gl_window_set_window_handle (GstGLWindow *window, guintptr handle);
GST_EXPORT
guintptr gst_gl_window_get_window_handle (GstGLWindow *window); guintptr gst_gl_window_get_window_handle (GstGLWindow *window);
/* loop/events */ /* loop/events */
GST_EXPORT
void gst_gl_window_run (GstGLWindow *window); void gst_gl_window_run (GstGLWindow *window);
GST_EXPORT
void gst_gl_window_quit (GstGLWindow *window); void gst_gl_window_quit (GstGLWindow *window);
GST_EXPORT
gboolean gst_gl_window_is_running (GstGLWindow *window); gboolean gst_gl_window_is_running (GstGLWindow *window);
GST_EXPORT
void gst_gl_window_send_message (GstGLWindow *window, void gst_gl_window_send_message (GstGLWindow *window,
GstGLWindowCB callback, GstGLWindowCB callback,
gpointer data); gpointer data);
GST_EXPORT
void gst_gl_window_send_message_async (GstGLWindow *window, void gst_gl_window_send_message_async (GstGLWindow *window,
GstGLWindowCB callback, GstGLWindowCB callback,
gpointer data, gpointer data,
GDestroyNotify destroy); GDestroyNotify destroy);
/* navigation */ /* navigation */
GST_EXPORT
void gst_gl_window_handle_events (GstGLWindow * window, void gst_gl_window_handle_events (GstGLWindow * window,
gboolean handle_events); gboolean handle_events);
GST_EXPORT
void gst_gl_window_send_key_event (GstGLWindow * window, void gst_gl_window_send_key_event (GstGLWindow * window,
const char * event_type, const char * event_type,
const char * key_str); const char * key_str);
GST_EXPORT
void gst_gl_window_send_key_event_async (GstGLWindow * window, void gst_gl_window_send_key_event_async (GstGLWindow * window,
const char * event_type, const char * event_type,
const char * key_str); const char * key_str);
GST_EXPORT
void gst_gl_window_send_mouse_event (GstGLWindow * window, void gst_gl_window_send_mouse_event (GstGLWindow * window,
const char * event_type, const char * event_type,
int button, int button,
double posx, double posx,
double posy); double posy);
GST_EXPORT
void gst_gl_window_send_mouse_event_async (GstGLWindow * window, void gst_gl_window_send_mouse_event_async (GstGLWindow * window,
const char * event_type, const char * event_type,
int button, int button,
@ -196,15 +214,21 @@ void gst_gl_window_send_mouse_event_async (GstGLWindow * window,
double posy); double posy);
/* surfaces/rendering */ /* surfaces/rendering */
GST_EXPORT
void gst_gl_window_queue_resize (GstGLWindow *window); void gst_gl_window_queue_resize (GstGLWindow *window);
GST_EXPORT
void gst_gl_window_draw (GstGLWindow *window); void gst_gl_window_draw (GstGLWindow *window);
GST_EXPORT
void gst_gl_window_show (GstGLWindow *window); void gst_gl_window_show (GstGLWindow *window);
GST_EXPORT
void gst_gl_window_set_preferred_size (GstGLWindow * window, void gst_gl_window_set_preferred_size (GstGLWindow * window,
gint width, gint width,
gint height); gint height);
GST_EXPORT
void gst_gl_window_get_surface_dimensions (GstGLWindow * window, void gst_gl_window_get_surface_dimensions (GstGLWindow * window,
guint * width, guint * width,
guint * height); guint * height);
GST_EXPORT
gboolean gst_gl_window_set_render_rectangle (GstGLWindow * window, gboolean gst_gl_window_set_render_rectangle (GstGLWindow * window,
gint x, gint x,
gint y, gint y,
@ -212,9 +236,12 @@ gboolean gst_gl_window_set_render_rectangle (GstGLWindow * window,
gint height); gint height);
/* subclass usage only */ /* subclass usage only */
GST_EXPORT
void gst_gl_window_resize (GstGLWindow *window, guint width, guint height); void gst_gl_window_resize (GstGLWindow *window, guint width, guint height);
GST_EXPORT
GstGLContext * gst_gl_window_get_context (GstGLWindow *window); GstGLContext * gst_gl_window_get_context (GstGLWindow *window);
GST_EXPORT
guintptr gst_gl_window_get_display (GstGLWindow *window); guintptr gst_gl_window_get_display (GstGLWindow *window);
GST_DEBUG_CATEGORY_EXTERN (gst_gl_window_debug); GST_DEBUG_CATEGORY_EXTERN (gst_gl_window_debug);