diff --git a/gst/Makefile.am b/gst/Makefile.am index 7a7ecdad5a..b74d047d88 100644 --- a/gst/Makefile.am +++ b/gst/Makefile.am @@ -252,9 +252,9 @@ noinst_HEADERS = \ gstenumtypes.h: $(gst_headers) $(AM_V_GEN)$(GLIB_MKENUMS) \ - --fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include \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" \ + --vhead "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_ENUM_TYPES_H__ */" \ $^ > gstenumtypes.h diff --git a/gst/gst.h b/gst/gst.h index e104d4e929..5c51d69cdb 100644 --- a/gst/gst.h +++ b/gst/gst.h @@ -96,23 +96,40 @@ G_BEGIN_DECLS +GST_EXPORT void gst_init (int *argc, char **argv[]); + +GST_EXPORT gboolean gst_init_check (int *argc, char **argv[], GError ** err); +GST_EXPORT gboolean gst_is_initialized (void); + +GST_EXPORT GOptionGroup * gst_init_get_option_group (void); + +GST_EXPORT void gst_deinit (void); +GST_EXPORT void gst_version (guint *major, guint *minor, guint *micro, guint *nano); +GST_EXPORT gchar * gst_version_string (void); +GST_EXPORT gboolean gst_segtrap_is_enabled (void); + +GST_EXPORT void gst_segtrap_set_enabled (gboolean enabled); +GST_EXPORT gboolean gst_registry_fork_is_enabled (void); + +GST_EXPORT void gst_registry_fork_set_enabled (gboolean enabled); +GST_EXPORT gboolean gst_update_registry (void); G_END_DECLS diff --git a/gst/gst_private.h b/gst/gst_private.h index 5cf993a1ed..e88bb60f5d 100644 --- a/gst/gst_private.h +++ b/gst/gst_private.h @@ -144,6 +144,7 @@ gboolean _priv_gst_registry_remove_cache_plugins (GstRegistry *registry); G_GNUC_INTERNAL void _priv_gst_registry_cleanup (void); +GST_EXPORT gboolean _gst_plugin_loader_client_run (void); G_GNUC_INTERNAL GstPlugin * _priv_gst_plugin_load_file_for_registry (const gchar *filename, @@ -224,6 +225,7 @@ GstCapsFeatures * __gst_caps_get_features_unchecked (const GstCaps * caps, guint #ifndef GST_DISABLE_REGISTRY /* Secret variable to initialise gst without registry cache */ + GST_EXPORT gboolean _gst_disable_registry_cache; #endif diff --git a/gst/gstallocator.h b/gst/gstallocator.h index 82936209ab..5a9fa37e55 100644 --- a/gst/gstallocator.h +++ b/gst/gstallocator.h @@ -40,6 +40,8 @@ typedef struct _GstAllocatorClass GstAllocatorClass; #define GST_ALLOCATOR_CAST(obj) ((GstAllocator *)(obj)) #define GST_TYPE_ALLOCATION_PARAMS (gst_allocation_params_get_type()) + +GST_EXPORT GType gst_allocation_params_get_type(void); typedef struct _GstAllocationParams GstAllocationParams; @@ -50,6 +52,7 @@ typedef struct _GstAllocationParams GstAllocationParams; * The default memory alignment in bytes - 1 * an alignment of 7 would be the same as what malloc() guarantees. */ + GST_EXPORT gsize gst_memory_alignment; /** @@ -148,24 +151,42 @@ struct _GstAllocatorClass { gpointer _gst_reserved[GST_PADDING]; }; -GType gst_allocator_get_type(void); +GST_EXPORT +GType gst_allocator_get_type (void); /* allocators */ + +GST_EXPORT void gst_allocator_register (const gchar *name, GstAllocator *allocator); + +GST_EXPORT GstAllocator * gst_allocator_find (const gchar *name); + +GST_EXPORT void gst_allocator_set_default (GstAllocator * allocator); /* allocation parameters */ + +GST_EXPORT void gst_allocation_params_init (GstAllocationParams *params); + +GST_EXPORT GstAllocationParams * gst_allocation_params_copy (const GstAllocationParams *params) G_GNUC_MALLOC; + +GST_EXPORT void gst_allocation_params_free (GstAllocationParams *params); /* allocating memory blocks */ + +GST_EXPORT GstMemory * gst_allocator_alloc (GstAllocator * allocator, gsize size, GstAllocationParams *params); + +GST_EXPORT void gst_allocator_free (GstAllocator * allocator, GstMemory *memory); +GST_EXPORT GstMemory * gst_memory_new_wrapped (GstMemoryFlags flags, gpointer data, gsize maxsize, gsize offset, gsize size, gpointer user_data, GDestroyNotify notify); diff --git a/gst/gstatomicqueue.h b/gst/gstatomicqueue.h index a46e6ec9cc..b09a722b57 100644 --- a/gst/gstatomicqueue.h +++ b/gst/gstatomicqueue.h @@ -22,6 +22,7 @@ #include #include +#include #ifndef __GST_ATOMIC_QUEUE_H__ #define __GST_ATOMIC_QUEUE_H__ @@ -40,17 +41,28 @@ G_BEGIN_DECLS typedef struct _GstAtomicQueue GstAtomicQueue; +GST_EXPORT GType gst_atomic_queue_get_type (void); +GST_EXPORT GstAtomicQueue * gst_atomic_queue_new (guint initial_size) G_GNUC_MALLOC; +GST_EXPORT void gst_atomic_queue_ref (GstAtomicQueue * queue); + +GST_EXPORT void gst_atomic_queue_unref (GstAtomicQueue * queue); +GST_EXPORT void gst_atomic_queue_push (GstAtomicQueue* queue, gpointer data); + +GST_EXPORT gpointer gst_atomic_queue_pop (GstAtomicQueue* queue); + +GST_EXPORT gpointer gst_atomic_queue_peek (GstAtomicQueue* queue); +GST_EXPORT guint gst_atomic_queue_length (GstAtomicQueue * queue); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstbin.h b/gst/gstbin.h index 391e51a978..237a1b132c 100644 --- a/gst/gstbin.h +++ b/gst/gstbin.h @@ -192,32 +192,62 @@ struct _GstBinClass { gpointer _gst_reserved[GST_PADDING-2]; }; +GST_EXPORT GType gst_bin_get_type (void); + +GST_EXPORT GstElement* gst_bin_new (const gchar *name); /* add and remove elements from the bin */ + +GST_EXPORT gboolean gst_bin_add (GstBin *bin, GstElement *element); + +GST_EXPORT gboolean gst_bin_remove (GstBin *bin, GstElement *element); /* retrieve a single child */ + +GST_EXPORT GstElement* gst_bin_get_by_name (GstBin *bin, const gchar *name); + +GST_EXPORT GstElement* gst_bin_get_by_name_recurse_up (GstBin *bin, const gchar *name); + +GST_EXPORT GstElement* gst_bin_get_by_interface (GstBin *bin, GType iface); /* retrieve multiple children */ + +GST_EXPORT GstIterator* gst_bin_iterate_elements (GstBin *bin); + +GST_EXPORT GstIterator* gst_bin_iterate_sorted (GstBin *bin); + +GST_EXPORT GstIterator* gst_bin_iterate_recurse (GstBin *bin); +GST_EXPORT GstIterator* gst_bin_iterate_sinks (GstBin *bin); + +GST_EXPORT GstIterator* gst_bin_iterate_sources (GstBin *bin); + +GST_EXPORT GstIterator* gst_bin_iterate_all_by_interface (GstBin *bin, GType iface); /* latency */ + +GST_EXPORT gboolean gst_bin_recalculate_latency (GstBin * bin); /* set and get suppressed flags */ + +GST_EXPORT void gst_bin_set_suppressed_flags (GstBin * bin, GstElementFlags flags); + +GST_EXPORT GstElementFlags gst_bin_get_suppressed_flags (GstBin * bin); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h index 40aaa12bde..d380a9c7e6 100644 --- a/gst/gstbuffer.h +++ b/gst/gstbuffer.h @@ -271,73 +271,133 @@ struct _GstBuffer { guint64 offset_end; }; +GST_EXPORT GType gst_buffer_get_type (void); +GST_EXPORT guint gst_buffer_get_max_memory (void); /* allocation */ + +GST_EXPORT GstBuffer * gst_buffer_new (void); + +GST_EXPORT GstBuffer * gst_buffer_new_allocate (GstAllocator * allocator, gsize size, GstAllocationParams * params); +GST_EXPORT GstBuffer * gst_buffer_new_wrapped_full (GstMemoryFlags flags, gpointer data, gsize maxsize, gsize offset, gsize size, gpointer user_data, GDestroyNotify notify); +GST_EXPORT GstBuffer * gst_buffer_new_wrapped (gpointer data, gsize size); /* memory blocks */ + +GST_EXPORT guint gst_buffer_n_memory (GstBuffer *buffer); + +GST_EXPORT void gst_buffer_insert_memory (GstBuffer *buffer, gint idx, GstMemory *mem); + +GST_EXPORT void gst_buffer_replace_memory_range (GstBuffer *buffer, guint idx, gint length, GstMemory *mem); + +GST_EXPORT GstMemory * gst_buffer_peek_memory (GstBuffer *buffer, guint idx); + +GST_EXPORT GstMemory * gst_buffer_get_memory_range (GstBuffer *buffer, guint idx, gint length); + +GST_EXPORT void gst_buffer_remove_memory_range (GstBuffer *buffer, guint idx, gint length); +GST_EXPORT void gst_buffer_prepend_memory (GstBuffer *buffer, GstMemory *mem); + +GST_EXPORT void gst_buffer_append_memory (GstBuffer *buffer, GstMemory *mem); + +GST_EXPORT void gst_buffer_replace_memory (GstBuffer *buffer, guint idx, GstMemory *mem); + +GST_EXPORT void gst_buffer_replace_all_memory (GstBuffer *buffer, GstMemory *mem); + +GST_EXPORT GstMemory * gst_buffer_get_memory (GstBuffer *buffer, guint idx); + +GST_EXPORT GstMemory * gst_buffer_get_all_memory (GstBuffer *buffer); + +GST_EXPORT void gst_buffer_remove_memory (GstBuffer *buffer, guint idx); + +GST_EXPORT void gst_buffer_remove_all_memory (GstBuffer *buffer); +GST_EXPORT gboolean gst_buffer_find_memory (GstBuffer *buffer, gsize offset, gsize size, guint *idx, guint *length, gsize *skip); - +GST_EXPORT gboolean gst_buffer_is_memory_range_writable (GstBuffer *buffer, guint idx, gint length); + +GST_EXPORT gboolean gst_buffer_is_all_memory_writable (GstBuffer *buffer); +GST_EXPORT gsize gst_buffer_fill (GstBuffer *buffer, gsize offset, gconstpointer src, gsize size); +GST_EXPORT gsize gst_buffer_extract (GstBuffer *buffer, gsize offset, gpointer dest, gsize size); +GST_EXPORT gint gst_buffer_memcmp (GstBuffer *buffer, gsize offset, gconstpointer mem, gsize size); +GST_EXPORT gsize gst_buffer_memset (GstBuffer *buffer, gsize offset, guint8 val, gsize size); - +GST_EXPORT gsize gst_buffer_get_sizes_range (GstBuffer *buffer, guint idx, gint length, gsize *offset, gsize *maxsize); +GST_EXPORT gboolean gst_buffer_resize_range (GstBuffer *buffer, guint idx, gint length, gssize offset, gssize size); - +GST_EXPORT gsize gst_buffer_get_sizes (GstBuffer *buffer, gsize *offset, gsize *maxsize); + +GST_EXPORT gsize gst_buffer_get_size (GstBuffer *buffer); + +GST_EXPORT void gst_buffer_resize (GstBuffer *buffer, gssize offset, gssize size); + +GST_EXPORT void gst_buffer_set_size (GstBuffer *buffer, gssize size); +GST_EXPORT gboolean gst_buffer_map_range (GstBuffer *buffer, guint idx, gint length, GstMapInfo *info, GstMapFlags flags); +GST_EXPORT gboolean gst_buffer_map (GstBuffer *buffer, GstMapInfo *info, GstMapFlags flags); +GST_EXPORT void gst_buffer_unmap (GstBuffer *buffer, GstMapInfo *info); + +GST_EXPORT void gst_buffer_extract_dup (GstBuffer *buffer, gsize offset, gsize size, gpointer *dest, gsize *dest_size); - +GST_EXPORT GstBufferFlags gst_buffer_get_flags (GstBuffer * buffer); + +GST_EXPORT gboolean gst_buffer_has_flags (GstBuffer * buffer, GstBufferFlags flags); + +GST_EXPORT gboolean gst_buffer_set_flags (GstBuffer * buffer, GstBufferFlags flags); + +GST_EXPORT gboolean gst_buffer_unset_flags (GstBuffer * buffer, GstBufferFlags flags); @@ -395,6 +455,7 @@ gst_buffer_copy (const GstBuffer * buf) return GST_BUFFER (gst_mini_object_copy (GST_MINI_OBJECT_CONST_CAST (buf))); } +GST_EXPORT GstBuffer * gst_buffer_copy_deep (const GstBuffer * buf); /** @@ -445,6 +506,8 @@ typedef enum { #define GST_BUFFER_COPY_ALL ((GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY)) /* copies memory or metadata into newly allocated buffer */ + +GST_EXPORT gboolean gst_buffer_copy_into (GstBuffer *dest, GstBuffer *src, GstBufferCopyFlags flags, gsize offset, gsize size); @@ -509,12 +572,17 @@ gst_buffer_replace (GstBuffer **obuf, GstBuffer *nbuf) } /* creating a region */ + +GST_EXPORT GstBuffer* gst_buffer_copy_region (GstBuffer *parent, GstBufferCopyFlags flags, gsize offset, gsize size); /* append two buffers */ + +GST_EXPORT GstBuffer* gst_buffer_append_region (GstBuffer *buf1, GstBuffer *buf2, gssize offset, gssize size); +GST_EXPORT GstBuffer* gst_buffer_append (GstBuffer *buf1, GstBuffer *buf2); /* metadata */ @@ -541,17 +609,23 @@ GstBuffer* gst_buffer_append (GstBuffer *buf1, GstBuffer *buf typedef gboolean (*GstBufferForeachMetaFunc) (GstBuffer *buffer, GstMeta **meta, gpointer user_data); +GST_EXPORT GstMeta * gst_buffer_get_meta (GstBuffer *buffer, GType api); + +GST_EXPORT GstMeta * gst_buffer_add_meta (GstBuffer *buffer, const GstMetaInfo *info, gpointer params); +GST_EXPORT gboolean gst_buffer_remove_meta (GstBuffer *buffer, GstMeta *meta); +GST_EXPORT GstMeta * gst_buffer_iterate_meta (GstBuffer *buffer, gpointer *state); +GST_EXPORT GstMeta * gst_buffer_iterate_meta_filtered (GstBuffer * buffer, gpointer * state, GType meta_api_type); - +GST_EXPORT gboolean gst_buffer_foreach_meta (GstBuffer *buffer, GstBufferForeachMetaFunc func, gpointer user_data); @@ -610,6 +684,7 @@ struct _GstParentBufferMeta GstBuffer *buffer; }; +GST_EXPORT GType gst_parent_buffer_meta_api_get_type (void); #ifndef GST_DISABLE_DEPRECATED #define GST_TYPE_PARENT_BUFFER_META_API_TYPE GST_PARENT_BUFFER_META_API_TYPE @@ -626,10 +701,13 @@ GType gst_parent_buffer_meta_api_get_type (void); #define gst_buffer_get_parent_buffer_meta(b) \ ((GstParentBufferMeta*)gst_buffer_get_meta((b),GST_PARENT_BUFFER_META_API_TYPE)) +GST_EXPORT const GstMetaInfo *gst_parent_buffer_meta_get_info (void); #define GST_PARENT_BUFFER_META_INFO (gst_parent_buffer_meta_get_info()) /* implementation */ + +GST_EXPORT GstParentBufferMeta *gst_buffer_add_parent_buffer_meta (GstBuffer *buffer, GstBuffer *ref); @@ -664,16 +742,25 @@ struct _GstReferenceTimestampMeta GstClockTime timestamp, duration; }; +GST_EXPORT GType gst_reference_timestamp_meta_api_get_type (void); #define GST_REFERENCE_TIMESTAMP_META_API_TYPE (gst_reference_timestamp_meta_api_get_type()) +GST_EXPORT const GstMetaInfo *gst_reference_timestamp_meta_get_info (void); #define GST_REFERENCE_TIMESTAMP_META_INFO (gst_reference_timestamp_meta_get_info()) /* implementation */ -GstReferenceTimestampMeta *gst_buffer_add_reference_timestamp_meta (GstBuffer *buffer, - GstCaps *reference, GstClockTime timestamp, GstClockTime duration); -GstReferenceTimestampMeta *gst_buffer_get_reference_timestamp_meta (GstBuffer * buffer, GstCaps * reference); + +GST_EXPORT +GstReferenceTimestampMeta * gst_buffer_add_reference_timestamp_meta (GstBuffer * buffer, + GstCaps * reference, + GstClockTime timestamp, + GstClockTime duration); + +GST_EXPORT +GstReferenceTimestampMeta * gst_buffer_get_reference_timestamp_meta (GstBuffer * buffer, + GstCaps * reference); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstBuffer, gst_buffer_unref) diff --git a/gst/gstbufferlist.h b/gst/gstbufferlist.h index 0d3315bc12..b5dcdbaa56 100644 --- a/gst/gstbufferlist.h +++ b/gst/gstbufferlist.h @@ -131,21 +131,34 @@ gst_buffer_list_copy (const GstBufferList * list) */ #define gst_buffer_list_make_writable(list) GST_BUFFER_LIST_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (list))) +GST_EXPORT GType gst_buffer_list_get_type (void); /* allocation */ + +GST_EXPORT GstBufferList * gst_buffer_list_new (void) G_GNUC_MALLOC; + +GST_EXPORT GstBufferList * gst_buffer_list_new_sized (guint size) G_GNUC_MALLOC; +GST_EXPORT guint gst_buffer_list_length (GstBufferList *list); +GST_EXPORT GstBuffer * gst_buffer_list_get (GstBufferList *list, guint idx); + +GST_EXPORT void gst_buffer_list_insert (GstBufferList *list, gint idx, GstBuffer *buffer); + +GST_EXPORT void gst_buffer_list_remove (GstBufferList *list, guint idx, guint length); +GST_EXPORT gboolean gst_buffer_list_foreach (GstBufferList *list, GstBufferListFunc func, gpointer user_data); +GST_EXPORT GstBufferList * gst_buffer_list_copy_deep (const GstBufferList * list); #define gst_buffer_list_add(l,b) gst_buffer_list_insert((l),-1,(b)); diff --git a/gst/gstbufferpool.h b/gst/gstbufferpool.h index 2c277ad230..6b279912c5 100644 --- a/gst/gstbufferpool.h +++ b/gst/gstbufferpool.h @@ -175,44 +175,80 @@ struct _GstBufferPoolClass { gpointer _gst_reserved[GST_PADDING - 2]; }; +GST_EXPORT GType gst_buffer_pool_get_type (void); /* allocation */ + +GST_EXPORT GstBufferPool * gst_buffer_pool_new (void); /* state management */ + +GST_EXPORT gboolean gst_buffer_pool_set_active (GstBufferPool *pool, gboolean active); + +GST_EXPORT gboolean gst_buffer_pool_is_active (GstBufferPool *pool); +GST_EXPORT gboolean gst_buffer_pool_set_config (GstBufferPool *pool, GstStructure *config); + +GST_EXPORT GstStructure * gst_buffer_pool_get_config (GstBufferPool *pool); +GST_EXPORT const gchar ** gst_buffer_pool_get_options (GstBufferPool *pool); + +GST_EXPORT gboolean gst_buffer_pool_has_option (GstBufferPool *pool, const gchar *option); +GST_EXPORT void gst_buffer_pool_set_flushing (GstBufferPool *pool, gboolean flushing); /* helpers for configuring the config structure */ + +GST_EXPORT void gst_buffer_pool_config_set_params (GstStructure *config, GstCaps *caps, guint size, guint min_buffers, guint max_buffers); + +GST_EXPORT gboolean gst_buffer_pool_config_get_params (GstStructure *config, GstCaps **caps, guint *size, guint *min_buffers, guint *max_buffers); + +GST_EXPORT void gst_buffer_pool_config_set_allocator (GstStructure *config, GstAllocator *allocator, const GstAllocationParams *params); + +GST_EXPORT gboolean gst_buffer_pool_config_get_allocator (GstStructure *config, GstAllocator **allocator, GstAllocationParams *params); /* options */ + +GST_EXPORT guint gst_buffer_pool_config_n_options (GstStructure *config); + +GST_EXPORT void gst_buffer_pool_config_add_option (GstStructure *config, const gchar *option); + +GST_EXPORT const gchar * gst_buffer_pool_config_get_option (GstStructure *config, guint index); + +GST_EXPORT gboolean gst_buffer_pool_config_has_option (GstStructure *config, const gchar *option); + +GST_EXPORT gboolean gst_buffer_pool_config_validate_params (GstStructure *config, GstCaps *caps, guint size, guint min_buffers, guint max_buffers); /* buffer management */ + +GST_EXPORT GstFlowReturn gst_buffer_pool_acquire_buffer (GstBufferPool *pool, GstBuffer **buffer, GstBufferPoolAcquireParams *params); + +GST_EXPORT void gst_buffer_pool_release_buffer (GstBufferPool *pool, GstBuffer *buffer); G_END_DECLS diff --git a/gst/gstbus.h b/gst/gstbus.h index fbacf7b2de..a0f311d531 100644 --- a/gst/gstbus.h +++ b/gst/gstbus.h @@ -132,55 +132,95 @@ struct _GstBusClass gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_bus_get_type (void); +GST_EXPORT GstBus* gst_bus_new (void); +GST_EXPORT gboolean gst_bus_post (GstBus * bus, GstMessage * message); +GST_EXPORT gboolean gst_bus_have_pending (GstBus * bus); + +GST_EXPORT GstMessage * gst_bus_peek (GstBus * bus); + +GST_EXPORT GstMessage * gst_bus_pop (GstBus * bus); + +GST_EXPORT GstMessage * gst_bus_pop_filtered (GstBus * bus, GstMessageType types); + +GST_EXPORT GstMessage * gst_bus_timed_pop (GstBus * bus, GstClockTime timeout); + +GST_EXPORT GstMessage * gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout, GstMessageType types); + +GST_EXPORT void gst_bus_set_flushing (GstBus * bus, gboolean flushing); /* synchronous dispatching */ + +GST_EXPORT void gst_bus_set_sync_handler (GstBus * bus, GstBusSyncHandler func, gpointer user_data, GDestroyNotify notify); /* asynchronous message notifications */ + +GST_EXPORT void gst_bus_get_pollfd (GstBus * bus, GPollFD *fd); /* GSource based dispatching */ + +GST_EXPORT GSource * gst_bus_create_watch (GstBus * bus); + +GST_EXPORT guint gst_bus_add_watch_full (GstBus * bus, gint priority, GstBusFunc func, gpointer user_data, GDestroyNotify notify); +GST_EXPORT guint gst_bus_add_watch (GstBus * bus, GstBusFunc func, gpointer user_data); +GST_EXPORT gboolean gst_bus_remove_watch (GstBus * bus); /* polling the bus */ + +GST_EXPORT GstMessage* gst_bus_poll (GstBus *bus, GstMessageType events, GstClockTime timeout); /* signal based dispatching helper functions. */ + +GST_EXPORT gboolean gst_bus_async_signal_func (GstBus *bus, GstMessage *message, gpointer data); +GST_EXPORT GstBusSyncReply gst_bus_sync_signal_handler (GstBus *bus, GstMessage *message, gpointer data); /* convenience api to add/remove a gsource that emits the async signals */ + +GST_EXPORT void gst_bus_add_signal_watch (GstBus * bus); + +GST_EXPORT void gst_bus_add_signal_watch_full (GstBus * bus, gint priority); + +GST_EXPORT void gst_bus_remove_signal_watch (GstBus * bus); +GST_EXPORT void gst_bus_enable_sync_message_emission (GstBus * bus); + +GST_EXPORT void gst_bus_disable_sync_message_emission (GstBus * bus); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstcaps.h b/gst/gstcaps.h index b9d00ddcfd..d1add83ce7 100644 --- a/gst/gstcaps.h +++ b/gst/gstcaps.h @@ -137,6 +137,7 @@ typedef struct _GstCaps GstCaps; typedef struct _GstStaticCaps GstStaticCaps; GST_EXPORT GstCaps * _gst_caps_any; + GST_EXPORT GstCaps * _gst_caps_none; /** * GST_CAPS_FLAGS: @@ -395,110 +396,174 @@ typedef gboolean (*GstCapsFilterMapFunc) (GstCapsFeatures *features, gpointer user_data); +GST_EXPORT GType gst_caps_get_type (void); +GST_EXPORT GstCaps * gst_caps_new_empty (void); + +GST_EXPORT GstCaps * gst_caps_new_any (void); + +GST_EXPORT GstCaps * gst_caps_new_empty_simple (const char *media_type) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT GstCaps * gst_caps_new_simple (const char *media_type, const char *fieldname, ...) G_GNUC_NULL_TERMINATED G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_new_full (GstStructure *struct1, ...) G_GNUC_NULL_TERMINATED G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_new_full_valist (GstStructure *structure, va_list var_args) G_GNUC_WARN_UNUSED_RESULT; - +GST_EXPORT GType gst_static_caps_get_type (void); + +GST_EXPORT GstCaps * gst_static_caps_get (GstStaticCaps *static_caps); + +GST_EXPORT void gst_static_caps_cleanup (GstStaticCaps *static_caps); /* manipulation */ + +GST_EXPORT void gst_caps_append (GstCaps *caps1, GstCaps *caps2); +GST_EXPORT void gst_caps_append_structure (GstCaps *caps, GstStructure *structure); +GST_EXPORT void gst_caps_append_structure_full (GstCaps *caps, GstStructure *structure, GstCapsFeatures *features); +GST_EXPORT void gst_caps_remove_structure (GstCaps *caps, guint idx); + +GST_EXPORT GstCaps * gst_caps_merge (GstCaps *caps1, GstCaps *caps2) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_merge_structure (GstCaps *caps, GstStructure *structure) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_merge_structure_full (GstCaps *caps, GstStructure *structure, GstCapsFeatures *features) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT guint gst_caps_get_size (const GstCaps *caps); + +GST_EXPORT GstStructure * gst_caps_get_structure (const GstCaps *caps, guint index); +GST_EXPORT GstStructure * gst_caps_steal_structure (GstCaps *caps, guint index) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT void gst_caps_set_features (GstCaps *caps, guint index, GstCapsFeatures * features); +GST_EXPORT GstCapsFeatures * gst_caps_get_features (const GstCaps *caps, guint index); +GST_EXPORT GstCaps * gst_caps_copy_nth (const GstCaps *caps, guint nth) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT GstCaps * gst_caps_truncate (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT void gst_caps_set_value (GstCaps *caps, const char *field, const GValue *value); +GST_EXPORT void gst_caps_set_simple (GstCaps *caps, const char *field, ...) G_GNUC_NULL_TERMINATED; +GST_EXPORT void gst_caps_set_simple_valist (GstCaps *caps, const char *field, va_list varargs); - +GST_EXPORT gboolean gst_caps_foreach (const GstCaps *caps, GstCapsForeachFunc func, gpointer user_data); - +GST_EXPORT gboolean gst_caps_map_in_place (GstCaps *caps, GstCapsMapFunc func, gpointer user_data); - +GST_EXPORT void gst_caps_filter_and_map_in_place (GstCaps *caps, GstCapsFilterMapFunc func, gpointer user_data); /* tests */ + +GST_EXPORT gboolean gst_caps_is_any (const GstCaps *caps); + +GST_EXPORT gboolean gst_caps_is_empty (const GstCaps *caps); + +GST_EXPORT gboolean gst_caps_is_fixed (const GstCaps *caps); + +GST_EXPORT gboolean gst_caps_is_always_compatible (const GstCaps *caps1, const GstCaps *caps2); +GST_EXPORT gboolean gst_caps_is_subset (const GstCaps *subset, const GstCaps *superset); +GST_EXPORT gboolean gst_caps_is_subset_structure (const GstCaps *caps, const GstStructure *structure); +GST_EXPORT gboolean gst_caps_is_subset_structure_full (const GstCaps *caps, const GstStructure *structure, const GstCapsFeatures *features); +GST_EXPORT gboolean gst_caps_is_equal (const GstCaps *caps1, const GstCaps *caps2); +GST_EXPORT gboolean gst_caps_is_equal_fixed (const GstCaps *caps1, const GstCaps *caps2); +GST_EXPORT gboolean gst_caps_can_intersect (const GstCaps * caps1, const GstCaps * caps2); +GST_EXPORT gboolean gst_caps_is_strictly_equal (const GstCaps *caps1, const GstCaps *caps2); /* operations */ + +GST_EXPORT GstCaps * gst_caps_intersect (GstCaps *caps1, GstCaps *caps2) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_intersect_full (GstCaps *caps1, GstCaps *caps2, GstCapsIntersectMode mode) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_subtract (GstCaps *minuend, GstCaps *subtrahend) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_normalize (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT GstCaps * gst_caps_simplify (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT GstCaps * gst_caps_fixate (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT; /* utility */ + +GST_EXPORT gchar * gst_caps_to_string (const GstCaps *caps) G_GNUC_MALLOC; + +GST_EXPORT GstCaps * gst_caps_from_string (const gchar *string) G_GNUC_WARN_UNUSED_RESULT; #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstcapsfeatures.h b/gst/gstcapsfeatures.h index ba1e5c55ec..b8f21a7390 100644 --- a/gst/gstcapsfeatures.h +++ b/gst/gstcapsfeatures.h @@ -45,38 +45,76 @@ GST_EXPORT GstCapsFeatures *_gst_caps_features_any; GST_EXPORT GstCapsFeatures *_gst_caps_features_memory_system_memory; #define GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY (_gst_caps_features_memory_system_memory) +GST_EXPORT GType gst_caps_features_get_type (void); + +GST_EXPORT gboolean gst_is_caps_features (gconstpointer obj); +GST_EXPORT GstCapsFeatures * gst_caps_features_new_empty (void); + +GST_EXPORT GstCapsFeatures * gst_caps_features_new_any (void); + +GST_EXPORT GstCapsFeatures * gst_caps_features_new (const gchar *feature1, ...); + +GST_EXPORT GstCapsFeatures * gst_caps_features_new_valist (const gchar *feature1, va_list varargs); + +GST_EXPORT GstCapsFeatures * gst_caps_features_new_id (GQuark feature1, ...); + +GST_EXPORT GstCapsFeatures * gst_caps_features_new_id_valist (GQuark feature1, va_list varargs); +GST_EXPORT gboolean gst_caps_features_set_parent_refcount (GstCapsFeatures *features, gint * refcount); +GST_EXPORT GstCapsFeatures * gst_caps_features_copy (const GstCapsFeatures * features); + +GST_EXPORT void gst_caps_features_free (GstCapsFeatures * features); +GST_EXPORT gchar * gst_caps_features_to_string (const GstCapsFeatures * features); + +GST_EXPORT GstCapsFeatures * gst_caps_features_from_string (const gchar * features); +GST_EXPORT guint gst_caps_features_get_size (const GstCapsFeatures * features); + +GST_EXPORT const gchar * gst_caps_features_get_nth (const GstCapsFeatures * features, guint i); + +GST_EXPORT GQuark gst_caps_features_get_nth_id (const GstCapsFeatures * features, guint i); +GST_EXPORT gboolean gst_caps_features_contains (const GstCapsFeatures * features, const gchar * feature); + +GST_EXPORT gboolean gst_caps_features_contains_id (const GstCapsFeatures * features, GQuark feature); + +GST_EXPORT gboolean gst_caps_features_is_equal (const GstCapsFeatures * features1, const GstCapsFeatures * features2); +GST_EXPORT gboolean gst_caps_features_is_any (const GstCapsFeatures * features); +GST_EXPORT void gst_caps_features_add (GstCapsFeatures * features, const gchar * feature); + +GST_EXPORT void gst_caps_features_add_id ( GstCapsFeatures * features, GQuark feature); +GST_EXPORT void gst_caps_features_remove (GstCapsFeatures * features, const gchar * feature); + +GST_EXPORT void gst_caps_features_remove_id (GstCapsFeatures * features, GQuark feature); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstchildproxy.h b/gst/gstchildproxy.h index 065ba7518d..88d200fb05 100644 --- a/gst/gstchildproxy.h +++ b/gst/gstchildproxy.h @@ -67,36 +67,48 @@ struct _GstChildProxyInterface gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_child_proxy_get_type (void); +GST_EXPORT GObject * gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name); +GST_EXPORT guint gst_child_proxy_get_children_count (GstChildProxy * parent); + +GST_EXPORT GObject * gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint index); +GST_EXPORT gboolean gst_child_proxy_lookup (GstChildProxy *object, const gchar *name, GObject **target, GParamSpec **pspec); - +GST_EXPORT void gst_child_proxy_get_property (GstChildProxy * object, const gchar *name, GValue *value); +GST_EXPORT void gst_child_proxy_get_valist (GstChildProxy * object, const gchar * first_property_name, va_list var_args); +GST_EXPORT void gst_child_proxy_get (GstChildProxy * object, const gchar * first_property_name, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_child_proxy_set_property (GstChildProxy * object, const gchar *name, const GValue *value); + +GST_EXPORT void gst_child_proxy_set_valist (GstChildProxy* object, const gchar * first_property_name, va_list var_args); +GST_EXPORT void gst_child_proxy_set (GstChildProxy * object, const gchar * first_property_name, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_child_proxy_child_added (GstChildProxy * parent, GObject * child, const gchar *name); +GST_EXPORT void gst_child_proxy_child_removed (GstChildProxy * parent, GObject * child, const gchar *name); diff --git a/gst/gstclock.h b/gst/gstclock.h index 7bd7604e7d..505b8b2715 100644 --- a/gst/gstclock.h +++ b/gst/gstclock.h @@ -491,33 +491,47 @@ struct _GstClockClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_clock_get_type (void); +GST_EXPORT GstClockTime gst_clock_set_resolution (GstClock *clock, GstClockTime resolution); +GST_EXPORT GstClockTime gst_clock_get_resolution (GstClock *clock); +GST_EXPORT GstClockTime gst_clock_get_time (GstClock *clock); + +GST_EXPORT void gst_clock_set_calibration (GstClock *clock, GstClockTime internal, GstClockTime external, GstClockTime rate_num, GstClockTime rate_denom); +GST_EXPORT void gst_clock_get_calibration (GstClock *clock, GstClockTime *internal, GstClockTime *external, GstClockTime *rate_num, GstClockTime *rate_denom); /* master/slave clocks */ + +GST_EXPORT gboolean gst_clock_set_master (GstClock *clock, GstClock *master); + +GST_EXPORT GstClock* gst_clock_get_master (GstClock *clock); +GST_EXPORT void gst_clock_set_timeout (GstClock *clock, GstClockTime timeout); +GST_EXPORT GstClockTime gst_clock_get_timeout (GstClock *clock); +GST_EXPORT gboolean gst_clock_add_observation (GstClock *clock, GstClockTime slave, GstClockTime master, gdouble *r_squared); - +GST_EXPORT gboolean gst_clock_add_observation_unapplied (GstClock *clock, GstClockTime slave, GstClockTime master, gdouble *r_squared, GstClockTime *internal, @@ -526,55 +540,85 @@ gboolean gst_clock_add_observation_unapplied (GstClock *clock, Gs GstClockTime *rate_denom); /* getting and adjusting internal/external time */ + +GST_EXPORT GstClockTime gst_clock_get_internal_time (GstClock *clock); + +GST_EXPORT GstClockTime gst_clock_adjust_unlocked (GstClock *clock, GstClockTime internal); + +GST_EXPORT GstClockTime gst_clock_adjust_with_calibration (GstClock *clock, GstClockTime internal_target, GstClockTime cinternal, GstClockTime cexternal, GstClockTime cnum, GstClockTime cdenom); +GST_EXPORT GstClockTime gst_clock_unadjust_with_calibration (GstClock *clock, GstClockTime external_target, GstClockTime cinternal, GstClockTime cexternal, GstClockTime cnum, GstClockTime cdenom); +GST_EXPORT GstClockTime gst_clock_unadjust_unlocked (GstClock * clock, GstClockTime external); /* waiting for, signalling and checking for synchronization */ + +GST_EXPORT gboolean gst_clock_wait_for_sync (GstClock * clock, GstClockTime timeout); + +GST_EXPORT gboolean gst_clock_is_synced (GstClock * clock); /* to be used by subclasses only */ + +GST_EXPORT void gst_clock_set_synced (GstClock * clock, gboolean synced); /* creating IDs that can be used to get notifications */ + +GST_EXPORT GstClockID gst_clock_new_single_shot_id (GstClock *clock, GstClockTime time); +GST_EXPORT GstClockID gst_clock_new_periodic_id (GstClock *clock, GstClockTime start_time, GstClockTime interval); /* reference counting */ + +GST_EXPORT GstClockID gst_clock_id_ref (GstClockID id); + +GST_EXPORT void gst_clock_id_unref (GstClockID id); /* operations on IDs */ + +GST_EXPORT gint gst_clock_id_compare_func (gconstpointer id1, gconstpointer id2); +GST_EXPORT GstClockTime gst_clock_id_get_time (GstClockID id); + +GST_EXPORT GstClockReturn gst_clock_id_wait (GstClockID id, GstClockTimeDiff *jitter); +GST_EXPORT GstClockReturn gst_clock_id_wait_async (GstClockID id, GstClockCallback func, gpointer user_data, GDestroyNotify destroy_data); +GST_EXPORT void gst_clock_id_unschedule (GstClockID id); +GST_EXPORT gboolean gst_clock_single_shot_id_reinit (GstClock * clock, GstClockID id, GstClockTime time); +GST_EXPORT gboolean gst_clock_periodic_id_reinit (GstClock * clock, GstClockID id, GstClockTime start_time, diff --git a/gst/gstcontext.h b/gst/gstcontext.h index d8a126c94f..39778e79c3 100644 --- a/gst/gstcontext.h +++ b/gst/gstcontext.h @@ -42,6 +42,7 @@ GST_EXPORT GType _gst_context_type; +GST_EXPORT GType gst_context_get_type (void); @@ -132,14 +133,22 @@ gst_context_replace (GstContext **old_context, GstContext *new_context) return gst_mini_object_replace ((GstMiniObject **) old_context, (GstMiniObject *) new_context); } +GST_EXPORT GstContext * gst_context_new (const gchar * context_type, gboolean persistent) G_GNUC_MALLOC; - +GST_EXPORT const gchar * gst_context_get_context_type (const GstContext * context); + +GST_EXPORT gboolean gst_context_has_context_type (const GstContext * context, const gchar * context_type); + +GST_EXPORT const GstStructure * gst_context_get_structure (const GstContext * context); + +GST_EXPORT GstStructure * gst_context_writable_structure (GstContext * context); +GST_EXPORT gboolean gst_context_is_persistent (const GstContext * context); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstcontrolbinding.h b/gst/gstcontrolbinding.h index 8d69b93843..360bfd726c 100644 --- a/gst/gstcontrolbinding.h +++ b/gst/gstcontrolbinding.h @@ -110,21 +110,29 @@ struct _GstControlBindingClass #define GST_CONTROL_BINDING_PSPEC(cb) (((GstControlBinding *) cb)->pspec) -GType gst_control_binding_get_type (void); +GST_EXPORT +GType gst_control_binding_get_type (void); /* Functions */ +GST_EXPORT gboolean gst_control_binding_sync_values (GstControlBinding * binding, GstObject *object, GstClockTime timestamp, GstClockTime last_sync); +GST_EXPORT GValue * gst_control_binding_get_value (GstControlBinding *binding, GstClockTime timestamp); +GST_EXPORT gboolean gst_control_binding_get_value_array (GstControlBinding *binding, GstClockTime timestamp, GstClockTime interval, guint n_values, gpointer values); +GST_EXPORT gboolean gst_control_binding_get_g_value_array (GstControlBinding *binding, GstClockTime timestamp, GstClockTime interval, guint n_values, GValue *values); - +GST_EXPORT void gst_control_binding_set_disabled (GstControlBinding * binding, gboolean disabled); + +GST_EXPORT gboolean gst_control_binding_is_disabled (GstControlBinding * binding); + #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstControlBinding, gst_object_unref) #endif diff --git a/gst/gstcontrolsource.h b/gst/gstcontrolsource.h index 4bd9f5c99f..c65870b3aa 100644 --- a/gst/gstcontrolsource.h +++ b/gst/gstcontrolsource.h @@ -125,11 +125,15 @@ struct _GstControlSourceClass gpointer _gst_reserved[GST_PADDING]; }; -GType gst_control_source_get_type (void); +GST_EXPORT +GType gst_control_source_get_type (void); /* Functions */ + +GST_EXPORT gboolean gst_control_source_get_value (GstControlSource *self, GstClockTime timestamp, gdouble *value); +GST_EXPORT gboolean gst_control_source_get_value_array (GstControlSource *self, GstClockTime timestamp, GstClockTime interval, guint n_values, gdouble *values); diff --git a/gst/gstdatetime.h b/gst/gstdatetime.h index 2d579b9f51..280eabb301 100644 --- a/gst/gstdatetime.h +++ b/gst/gstdatetime.h @@ -51,71 +51,107 @@ GST_EXPORT GType _gst_date_time_type; #define GST_TYPE_DATE_TIME (_gst_date_time_type) +GST_EXPORT GType gst_date_time_get_type (void); /* query which fields are set */ +GST_EXPORT gboolean gst_date_time_has_year (const GstDateTime * datetime); + +GST_EXPORT gboolean gst_date_time_has_month (const GstDateTime * datetime); + +GST_EXPORT gboolean gst_date_time_has_day (const GstDateTime * datetime); + +GST_EXPORT gboolean gst_date_time_has_time (const GstDateTime * datetime); + +GST_EXPORT gboolean gst_date_time_has_second (const GstDateTime * datetime); /* field getters */ +GST_EXPORT gint gst_date_time_get_year (const GstDateTime * datetime); + +GST_EXPORT gint gst_date_time_get_month (const GstDateTime * datetime); + +GST_EXPORT gint gst_date_time_get_day (const GstDateTime * datetime); + +GST_EXPORT gint gst_date_time_get_hour (const GstDateTime * datetime); + +GST_EXPORT gint gst_date_time_get_minute (const GstDateTime * datetime); + +GST_EXPORT gint gst_date_time_get_second (const GstDateTime * datetime); + +GST_EXPORT gint gst_date_time_get_microsecond (const GstDateTime * datetime); + +GST_EXPORT gfloat gst_date_time_get_time_zone_offset (const GstDateTime * datetime); /* constructors */ +GST_EXPORT GstDateTime * gst_date_time_new_from_unix_epoch_local_time (gint64 secs) G_GNUC_MALLOC; +GST_EXPORT GstDateTime * gst_date_time_new_from_unix_epoch_utc (gint64 secs) G_GNUC_MALLOC; +GST_EXPORT GstDateTime * gst_date_time_new_local_time (gint year, gint month, gint day, gint hour, gint minute, gdouble seconds) G_GNUC_MALLOC; - +GST_EXPORT GstDateTime * gst_date_time_new_y (gint year) G_GNUC_MALLOC; +GST_EXPORT GstDateTime * gst_date_time_new_ym (gint year, gint month) G_GNUC_MALLOC; - +GST_EXPORT GstDateTime * gst_date_time_new_ymd (gint year, gint month, gint day) G_GNUC_MALLOC; - +GST_EXPORT GstDateTime * gst_date_time_new (gfloat tzoffset, gint year, gint month, gint day, gint hour, gint minute, gdouble seconds) G_GNUC_MALLOC; - +GST_EXPORT GstDateTime * gst_date_time_new_now_local_time (void) G_GNUC_MALLOC; +GST_EXPORT GstDateTime * gst_date_time_new_now_utc (void) G_GNUC_MALLOC; - +GST_EXPORT gchar * gst_date_time_to_iso8601_string (GstDateTime * datetime) G_GNUC_MALLOC; + +GST_EXPORT GstDateTime * gst_date_time_new_from_iso8601_string (const gchar * string) G_GNUC_MALLOC; +GST_EXPORT GDateTime * gst_date_time_to_g_date_time (GstDateTime * datetime); +GST_EXPORT GstDateTime * gst_date_time_new_from_g_date_time (GDateTime * dt); /* refcounting */ +GST_EXPORT GstDateTime * gst_date_time_ref (GstDateTime * datetime); +GST_EXPORT void gst_date_time_unref (GstDateTime * datetime); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstdebugutils.h b/gst/gstdebugutils.h index 8a1534261e..3b007bdcf2 100644 --- a/gst/gstdebugutils.h +++ b/gst/gstdebugutils.h @@ -58,8 +58,13 @@ typedef enum { /********** pipeline graphs **********/ +GST_EXPORT gchar * gst_debug_bin_to_dot_data (GstBin *bin, GstDebugGraphDetails details); + +GST_EXPORT void gst_debug_bin_to_dot_file (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name); + +GST_EXPORT void gst_debug_bin_to_dot_file_with_ts (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name); #ifndef GST_DISABLE_GST_DEBUG diff --git a/gst/gstdevice.h b/gst/gstdevice.h index f50efe2b85..ebbd642c56 100644 --- a/gst/gstdevice.h +++ b/gst/gstdevice.h @@ -84,20 +84,31 @@ struct _GstDeviceClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_device_get_type (void); +GST_EXPORT GstElement * gst_device_create_element (GstDevice * device, const gchar * name); +GST_EXPORT GstCaps * gst_device_get_caps (GstDevice * device); + +GST_EXPORT gchar * gst_device_get_display_name (GstDevice * device); + +GST_EXPORT gchar * gst_device_get_device_class (GstDevice * device); + +GST_EXPORT GstStructure * gst_device_get_properties (GstDevice * device); + +GST_EXPORT gboolean gst_device_reconfigure_element (GstDevice * device, GstElement * element); - +GST_EXPORT gboolean gst_device_has_classesv (GstDevice * device, gchar ** classes); - +GST_EXPORT gboolean gst_device_has_classes (GstDevice * device, const gchar * classes); diff --git a/gst/gstdevicemonitor.h b/gst/gstdevicemonitor.h index 55641309ff..d21da4140e 100644 --- a/gst/gstdevicemonitor.h +++ b/gst/gstdevicemonitor.h @@ -75,29 +75,40 @@ struct _GstDeviceMonitorClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_device_monitor_get_type (void); +GST_EXPORT GstDeviceMonitor * gst_device_monitor_new (void); +GST_EXPORT GstBus * gst_device_monitor_get_bus (GstDeviceMonitor * monitor); +GST_EXPORT GList * gst_device_monitor_get_devices (GstDeviceMonitor * monitor); +GST_EXPORT gboolean gst_device_monitor_start (GstDeviceMonitor * monitor); +GST_EXPORT void gst_device_monitor_stop (GstDeviceMonitor * monitor); +GST_EXPORT guint gst_device_monitor_add_filter (GstDeviceMonitor * monitor, const gchar * classes, GstCaps * caps); +GST_EXPORT gboolean gst_device_monitor_remove_filter (GstDeviceMonitor * monitor, guint filter_id); - +GST_EXPORT gchar ** gst_device_monitor_get_providers (GstDeviceMonitor * monitor); +GST_EXPORT void gst_device_monitor_set_show_all_devices (GstDeviceMonitor * monitor, gboolean show_all); + +GST_EXPORT gboolean gst_device_monitor_get_show_all_devices (GstDeviceMonitor * monitor); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstdeviceprovider.h b/gst/gstdeviceprovider.h index a83447db3d..5b32c576bf 100644 --- a/gst/gstdeviceprovider.h +++ b/gst/gstdeviceprovider.h @@ -99,49 +99,69 @@ struct _GstDeviceProviderClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_device_provider_get_type (void); +GST_EXPORT GList * gst_device_provider_get_devices (GstDeviceProvider * provider); +GST_EXPORT gboolean gst_device_provider_start (GstDeviceProvider * provider); + +GST_EXPORT void gst_device_provider_stop (GstDeviceProvider * provider); +GST_EXPORT gboolean gst_device_provider_can_monitor (GstDeviceProvider * provider); +GST_EXPORT GstBus * gst_device_provider_get_bus (GstDeviceProvider * provider); +GST_EXPORT void gst_device_provider_device_add (GstDeviceProvider * provider, GstDevice * device); +GST_EXPORT void gst_device_provider_device_remove (GstDeviceProvider * provider, GstDevice * device); - +GST_EXPORT gchar ** gst_device_provider_get_hidden_providers (GstDeviceProvider * provider); + +GST_EXPORT void gst_device_provider_hide_provider (GstDeviceProvider * provider, const gchar * name); +GST_EXPORT void gst_device_provider_unhide_provider (GstDeviceProvider * provider, const gchar * name); /* device provider class meta data */ + +GST_EXPORT void gst_device_provider_class_set_metadata (GstDeviceProviderClass *klass, const gchar *longname, const gchar *classification, const gchar *description, const gchar *author); +GST_EXPORT void gst_device_provider_class_set_static_metadata (GstDeviceProviderClass *klass, const gchar *longname, const gchar *classification, const gchar *description, const gchar *author); +GST_EXPORT void gst_device_provider_class_add_metadata (GstDeviceProviderClass * klass, const gchar * key, const gchar * value); +GST_EXPORT void gst_device_provider_class_add_static_metadata (GstDeviceProviderClass * klass, const gchar * key, const gchar * value); +GST_EXPORT const gchar * gst_device_provider_class_get_metadata (GstDeviceProviderClass * klass, const gchar * key); /* factory management */ + +GST_EXPORT GstDeviceProviderFactory * gst_device_provider_get_factory (GstDeviceProvider * provider); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstdeviceproviderfactory.h b/gst/gstdeviceproviderfactory.h index 8c7e24fb92..67a5669ef7 100644 --- a/gst/gstdeviceproviderfactory.h +++ b/gst/gstdeviceproviderfactory.h @@ -60,28 +60,38 @@ G_BEGIN_DECLS #define GST_IS_DEVICE_PROVIDER_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DEVICE_PROVIDER_FACTORY)) #define GST_DEVICE_PROVIDER_FACTORY_CAST(obj) ((GstDeviceProviderFactory *)(obj)) +GST_EXPORT GType gst_device_provider_factory_get_type (void); +GST_EXPORT GstDeviceProviderFactory * gst_device_provider_factory_find (const gchar *name); +GST_EXPORT GType gst_device_provider_factory_get_device_provider_type (GstDeviceProviderFactory *factory); +GST_EXPORT const gchar * gst_device_provider_factory_get_metadata (GstDeviceProviderFactory *factory, const gchar *key); + +GST_EXPORT gchar ** gst_device_provider_factory_get_metadata_keys (GstDeviceProviderFactory *factory); +GST_EXPORT GstDeviceProvider* gst_device_provider_factory_get (GstDeviceProviderFactory *factory) G_GNUC_MALLOC; + +GST_EXPORT GstDeviceProvider* gst_device_provider_factory_get_by_name (const gchar *factoryname) G_GNUC_MALLOC; +GST_EXPORT gboolean gst_device_provider_register (GstPlugin *plugin, const gchar *name, guint rank, GType type); - +GST_EXPORT gboolean gst_device_provider_factory_has_classesv (GstDeviceProviderFactory * factory, gchar ** classes); - +GST_EXPORT gboolean gst_device_provider_factory_has_classes (GstDeviceProviderFactory *factory, const gchar * classes); - +GST_EXPORT GList * gst_device_provider_factory_list_get_device_providers ( GstRank minrank) G_GNUC_MALLOC; diff --git a/gst/gstdynamictypefactory.h b/gst/gstdynamictypefactory.h index 42ec4e026b..50795d5484 100644 --- a/gst/gstdynamictypefactory.h +++ b/gst/gstdynamictypefactory.h @@ -45,10 +45,13 @@ G_BEGIN_DECLS #define GST_IS_DYNAMIC_TYPE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DYNAMIC_TYPE_FACTORY)) #define GST_DYNAMIC_TYPE_FACTORY_CAST(obj) ((GstDynamicTypeFactory *)(obj)) +GST_EXPORT GType gst_dynamic_type_factory_get_type (void); +GST_EXPORT GType gst_dynamic_type_factory_load (const gchar *factoryname); +GST_EXPORT gboolean gst_dynamic_type_register (GstPlugin *plugin, GType type); G_END_DECLS diff --git a/gst/gstelement.h b/gst/gstelement.h index a1c1ad5c66..85ffed3192 100644 --- a/gst/gstelement.h +++ b/gst/gstelement.h @@ -335,7 +335,9 @@ typedef enum */ #define GST_ELEMENT_START_TIME(elem) (GST_ELEMENT_CAST(elem)->start_time) +GST_EXPORT GstStructure *gst_make_element_message_details (const char *name, ...); + #define GST_ELEMENT_MESSAGE_MAKE_DETAILS(args) gst_make_element_message_details args /** @@ -730,33 +732,47 @@ struct _GstElementClass }; /* element class pad templates */ + +GST_EXPORT void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *templ); +GST_EXPORT void gst_element_class_add_static_pad_template (GstElementClass *klass, GstStaticPadTemplate *static_templ); +GST_EXPORT GstPadTemplate* gst_element_class_get_pad_template (GstElementClass *element_class, const gchar *name); + +GST_EXPORT GList* gst_element_class_get_pad_template_list (GstElementClass *element_class); /* element class meta data */ + +GST_EXPORT void gst_element_class_set_metadata (GstElementClass *klass, const gchar *longname, const gchar *classification, const gchar *description, const gchar *author); +GST_EXPORT void gst_element_class_set_static_metadata (GstElementClass *klass, const gchar *longname, const gchar *classification, const gchar *description, const gchar *author); +GST_EXPORT void gst_element_class_add_metadata (GstElementClass * klass, const gchar * key, const gchar * value); +GST_EXPORT void gst_element_class_add_static_metadata (GstElementClass * klass, const gchar * key, const gchar * value); +GST_EXPORT const gchar * gst_element_class_get_metadata (GstElementClass * klass, const gchar * key); /* element instance */ + +GST_EXPORT GType gst_element_get_type (void); /* basic name and parentage stuff from GstObject */ @@ -805,62 +821,116 @@ GType gst_element_get_type (void); #define gst_element_set_parent(elem,parent) gst_object_set_parent(GST_OBJECT_CAST(elem),parent) /* clocking */ + +GST_EXPORT GstClock* gst_element_provide_clock (GstElement *element); + +GST_EXPORT GstClock* gst_element_get_clock (GstElement *element); + +GST_EXPORT gboolean gst_element_set_clock (GstElement *element, GstClock *clock); + +GST_EXPORT void gst_element_set_base_time (GstElement *element, GstClockTime time); + +GST_EXPORT GstClockTime gst_element_get_base_time (GstElement *element); + +GST_EXPORT void gst_element_set_start_time (GstElement *element, GstClockTime time); + +GST_EXPORT GstClockTime gst_element_get_start_time (GstElement *element); /* bus */ + +GST_EXPORT void gst_element_set_bus (GstElement * element, GstBus * bus); + +GST_EXPORT GstBus * gst_element_get_bus (GstElement * element); /* context */ + +GST_EXPORT void gst_element_set_context (GstElement * element, GstContext * context); + +GST_EXPORT GList * gst_element_get_contexts (GstElement * element); + +GST_EXPORT GstContext * gst_element_get_context (GstElement * element, const gchar * context_type); + +GST_EXPORT GstContext * gst_element_get_context_unlocked (GstElement * element, const gchar * context_type); /* pad management */ + +GST_EXPORT gboolean gst_element_add_pad (GstElement *element, GstPad *pad); + +GST_EXPORT gboolean gst_element_remove_pad (GstElement *element, GstPad *pad); + +GST_EXPORT void gst_element_no_more_pads (GstElement *element); +GST_EXPORT GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name); + +GST_EXPORT GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name); + +GST_EXPORT GstPad* gst_element_request_pad (GstElement *element, GstPadTemplate *templ, const gchar * name, const GstCaps *caps); +GST_EXPORT void gst_element_release_request_pad (GstElement *element, GstPad *pad); +GST_EXPORT GstIterator * gst_element_iterate_pads (GstElement * element); + +GST_EXPORT GstIterator * gst_element_iterate_src_pads (GstElement * element); + +GST_EXPORT GstIterator * gst_element_iterate_sink_pads (GstElement * element); /* event/query/format stuff */ + +GST_EXPORT gboolean gst_element_send_event (GstElement *element, GstEvent *event); + +GST_EXPORT gboolean gst_element_seek (GstElement *element, gdouble rate, GstFormat format, GstSeekFlags flags, GstSeekType start_type, gint64 start, GstSeekType stop_type, gint64 stop); +GST_EXPORT gboolean gst_element_query (GstElement *element, GstQuery *query); /* messages */ + +GST_EXPORT gboolean gst_element_post_message (GstElement * element, GstMessage * message); /* error handling */ /* gcc versions < 3.3 warn about NULL being passed as format to printf */ #if (!defined(__GNUC__) || (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3)) +GST_EXPORT gchar * _gst_element_error_printf (const gchar *format, ...); #else +GST_EXPORT gchar * _gst_element_error_printf (const gchar *format, ...) G_GNUC_PRINTF (1, 2); #endif + +GST_EXPORT void gst_element_message_full (GstElement * element, GstMessageType type, GQuark domain, gint code, gchar * text, gchar * debug, const gchar * file, const gchar * function, gint line); - +GST_EXPORT void gst_element_message_full_with_details (GstElement * element, GstMessageType type, GQuark domain, gint code, gchar * text, gchar * debug, const gchar * file, @@ -868,42 +938,61 @@ void gst_element_message_full_with_details (GstElement * elem GstStructure * structure); /* state management */ + +GST_EXPORT gboolean gst_element_is_locked_state (GstElement *element); + +GST_EXPORT gboolean gst_element_set_locked_state (GstElement *element, gboolean locked_state); + +GST_EXPORT gboolean gst_element_sync_state_with_parent (GstElement *element); +GST_EXPORT GstStateChangeReturn gst_element_get_state (GstElement * element, GstState * state, GstState * pending, GstClockTime timeout); +GST_EXPORT GstStateChangeReturn gst_element_set_state (GstElement *element, GstState state); +GST_EXPORT void gst_element_abort_state (GstElement * element); + +GST_EXPORT GstStateChangeReturn gst_element_change_state (GstElement * element, GstStateChange transition); + +GST_EXPORT GstStateChangeReturn gst_element_continue_state (GstElement * element, GstStateChangeReturn ret); +GST_EXPORT void gst_element_lost_state (GstElement * element); + typedef void (*GstElementCallAsyncFunc) (GstElement * element, gpointer user_data); - +GST_EXPORT void gst_element_call_async (GstElement * element, GstElementCallAsyncFunc func, gpointer user_data, GDestroyNotify destroy_notify); /* factory management */ + +GST_EXPORT GstElementFactory* gst_element_get_factory (GstElement *element); /* utility functions */ + +GST_EXPORT gulong gst_element_add_property_notify_watch (GstElement * element, const gchar * property_name, gboolean include_value); - +GST_EXPORT gulong gst_element_add_property_deep_notify_watch (GstElement * element, const gchar * property_name, gboolean include_value); - +GST_EXPORT void gst_element_remove_property_notify_watch (GstElement * element, gulong watch_id); diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h index 5aaad32b42..cd6b28b521 100644 --- a/gst/gstelementfactory.h +++ b/gst/gstelementfactory.h @@ -50,28 +50,43 @@ G_BEGIN_DECLS #define GST_IS_ELEMENT_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT_FACTORY)) #define GST_ELEMENT_FACTORY_CAST(obj) ((GstElementFactory *)(obj)) +GST_EXPORT GType gst_element_factory_get_type (void); +GST_EXPORT GstElementFactory * gst_element_factory_find (const gchar *name); +GST_EXPORT GType gst_element_factory_get_element_type (GstElementFactory *factory); +GST_EXPORT const gchar * gst_element_factory_get_metadata (GstElementFactory *factory, const gchar *key); + +GST_EXPORT gchar ** gst_element_factory_get_metadata_keys (GstElementFactory *factory); +GST_EXPORT guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory); + +GST_EXPORT const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory); +GST_EXPORT GstURIType gst_element_factory_get_uri_type (GstElementFactory *factory); + +GST_EXPORT const gchar * const * gst_element_factory_get_uri_protocols (GstElementFactory *factory); +GST_EXPORT gboolean gst_element_factory_has_interface (GstElementFactory *factory, const gchar *interfacename); - +GST_EXPORT GstElement* gst_element_factory_create (GstElementFactory *factory, const gchar *name) G_GNUC_MALLOC; +GST_EXPORT GstElement* gst_element_factory_make (const gchar *factoryname, const gchar *name) G_GNUC_MALLOC; +GST_EXPORT gboolean gst_element_register (GstPlugin *plugin, const gchar *name, guint rank, GType type); @@ -195,13 +210,16 @@ typedef guint64 GstElementFactoryListType; #define GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE "Subtitle" #define GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA "Metadata" +GST_EXPORT gboolean gst_element_factory_list_is_type (GstElementFactory *factory, GstElementFactoryListType type); +GST_EXPORT GList * gst_element_factory_list_get_elements (GstElementFactoryListType type, GstRank minrank) G_GNUC_MALLOC; +GST_EXPORT GList * gst_element_factory_list_filter (GList *list, const GstCaps *caps, GstPadDirection direction, gboolean subsetonly) G_GNUC_MALLOC; diff --git a/gst/gstenumtypes.h.template b/gst/gstenumtypes.h.template index aa4c7979a8..339af65c52 100644 --- a/gst/gstenumtypes.h.template +++ b/gst/gstenumtypes.h.template @@ -3,6 +3,7 @@ #define __GST_ENUM_TYPES_H__ #include +#include G_BEGIN_DECLS /*** END file-header ***/ @@ -13,7 +14,7 @@ G_BEGIN_DECLS /*** END file-production ***/ /*** BEGIN value-header ***/ -GType @enum_name@_get_type (void); +GST_EXPORT GType @enum_name@_get_type (void); #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) /*** END value-header ***/ diff --git a/gst/gsterror.h b/gst/gsterror.h index 8918149922..91238dc07e 100644 --- a/gst/gsterror.h +++ b/gst/gsterror.h @@ -242,10 +242,19 @@ typedef enum */ #define GST_ERROR_SYSTEM ("system error: %s", g_strerror (errno)) +GST_EXPORT gchar *gst_error_get_message (GQuark domain, gint code); + +GST_EXPORT GQuark gst_stream_error_quark (void); + +GST_EXPORT GQuark gst_core_error_quark (void); + +GST_EXPORT GQuark gst_resource_error_quark (void); + +GST_EXPORT GQuark gst_library_error_quark (void); G_END_DECLS diff --git a/gst/gstevent.h b/gst/gstevent.h index d78764696a..56f920a87b 100644 --- a/gst/gstevent.h +++ b/gst/gstevent.h @@ -410,8 +410,13 @@ struct _GstEvent { guint32 seqnum; }; +GST_EXPORT const gchar* gst_event_type_get_name (GstEventType type); + +GST_EXPORT GQuark gst_event_type_to_quark (GstEventType type); + +GST_EXPORT GstEventTypeFlags gst_event_type_get_flags (GstEventType type); @@ -458,136 +463,239 @@ gst_event_copy (const GstEvent * event) return GST_EVENT_CAST (gst_mini_object_copy (GST_MINI_OBJECT_CONST_CAST (event))); } +GST_EXPORT GType gst_event_get_type (void); /* custom event */ + +GST_EXPORT GstEvent* gst_event_new_custom (GstEventType type, GstStructure *structure) G_GNUC_MALLOC; +GST_EXPORT const GstStructure * gst_event_get_structure (GstEvent *event); + +GST_EXPORT GstStructure * gst_event_writable_structure (GstEvent *event); +GST_EXPORT gboolean gst_event_has_name (GstEvent *event, const gchar *name); /* identifiers for events and messages */ + +GST_EXPORT guint32 gst_event_get_seqnum (GstEvent *event); + +GST_EXPORT void gst_event_set_seqnum (GstEvent *event, guint32 seqnum); /* accumulated pad offsets for the event */ + +GST_EXPORT gint64 gst_event_get_running_time_offset (GstEvent *event); + +GST_EXPORT void gst_event_set_running_time_offset (GstEvent *event, gint64 offset); /* Stream start event */ + +GST_EXPORT GstEvent * gst_event_new_stream_start (const gchar *stream_id) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_stream_start (GstEvent *event, const gchar **stream_id); + +GST_EXPORT void gst_event_set_stream (GstEvent *event, GstStream *stream); + +GST_EXPORT void gst_event_parse_stream (GstEvent *event, GstStream **stream); +GST_EXPORT void gst_event_set_stream_flags (GstEvent *event, GstStreamFlags flags); + +GST_EXPORT void gst_event_parse_stream_flags (GstEvent *event, GstStreamFlags *flags); +GST_EXPORT void gst_event_set_group_id (GstEvent *event, guint group_id); + +GST_EXPORT gboolean gst_event_parse_group_id (GstEvent *event, guint *group_id); /* flush events */ + +GST_EXPORT GstEvent * gst_event_new_flush_start (void) G_GNUC_MALLOC; +GST_EXPORT GstEvent * gst_event_new_flush_stop (gboolean reset_time) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_flush_stop (GstEvent *event, gboolean *reset_time); /* Stream collection event */ + +GST_EXPORT GstEvent * gst_event_new_stream_collection (GstStreamCollection *collection) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_stream_collection (GstEvent *event, GstStreamCollection **collection); /* select streams event */ + +GST_EXPORT GstEvent * gst_event_new_select_streams (GList *streams); + +GST_EXPORT void gst_event_parse_select_streams (GstEvent *event, GList **streams); /* stream-group-done event */ + +GST_EXPORT GstEvent * gst_event_new_stream_group_done (guint group_id) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_stream_group_done (GstEvent *event, guint *group_id); /* EOS event */ + +GST_EXPORT GstEvent * gst_event_new_eos (void) G_GNUC_MALLOC; /* GAP event */ + +GST_EXPORT GstEvent * gst_event_new_gap (GstClockTime timestamp, GstClockTime duration) G_GNUC_MALLOC; - +GST_EXPORT void gst_event_parse_gap (GstEvent * event, GstClockTime * timestamp, GstClockTime * duration); /* Caps events */ + +GST_EXPORT GstEvent * gst_event_new_caps (GstCaps *caps) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_caps (GstEvent *event, GstCaps **caps); /* segment event */ + +GST_EXPORT GstEvent* gst_event_new_segment (const GstSegment *segment) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_segment (GstEvent *event, const GstSegment **segment); + +GST_EXPORT void gst_event_copy_segment (GstEvent *event, GstSegment *segment); /* tag event */ + +GST_EXPORT GstEvent* gst_event_new_tag (GstTagList *taglist) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_tag (GstEvent *event, GstTagList **taglist); /* TOC event */ + +GST_EXPORT GstEvent* gst_event_new_toc (GstToc *toc, gboolean updated); + +GST_EXPORT void gst_event_parse_toc (GstEvent *event, GstToc **toc, gboolean *updated); /* Protection event */ + +GST_EXPORT GstEvent * gst_event_new_protection (const gchar * system_id, GstBuffer * data, const gchar * origin); +GST_EXPORT void gst_event_parse_protection (GstEvent * event, const gchar ** system_id, GstBuffer ** data, const gchar ** origin); /* buffer */ + +GST_EXPORT GstEvent * gst_event_new_buffer_size (GstFormat format, gint64 minsize, gint64 maxsize, gboolean async) G_GNUC_MALLOC; +GST_EXPORT void gst_event_parse_buffer_size (GstEvent *event, GstFormat *format, gint64 *minsize, gint64 *maxsize, gboolean *async); /* sink message */ + +GST_EXPORT GstEvent* gst_event_new_sink_message (const gchar *name, GstMessage *msg) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_sink_message (GstEvent *event, GstMessage **msg); /* QOS events */ + +GST_EXPORT GstEvent* gst_event_new_qos (GstQOSType type, gdouble proportion, GstClockTimeDiff diff, GstClockTime timestamp) G_GNUC_MALLOC; +GST_EXPORT void gst_event_parse_qos (GstEvent *event, GstQOSType *type, gdouble *proportion, GstClockTimeDiff *diff, GstClockTime *timestamp); /* seek event */ + +GST_EXPORT GstEvent* gst_event_new_seek (gdouble rate, GstFormat format, GstSeekFlags flags, GstSeekType start_type, gint64 start, GstSeekType stop_type, gint64 stop) G_GNUC_MALLOC; +GST_EXPORT void gst_event_parse_seek (GstEvent *event, gdouble *rate, GstFormat *format, GstSeekFlags *flags, GstSeekType *start_type, gint64 *start, GstSeekType *stop_type, gint64 *stop); /* navigation event */ + +GST_EXPORT GstEvent* gst_event_new_navigation (GstStructure *structure) G_GNUC_MALLOC; /* latency event */ + +GST_EXPORT GstEvent* gst_event_new_latency (GstClockTime latency) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_latency (GstEvent *event, GstClockTime *latency); /* step event */ + +GST_EXPORT GstEvent* gst_event_new_step (GstFormat format, guint64 amount, gdouble rate, gboolean flush, gboolean intermediate) G_GNUC_MALLOC; +GST_EXPORT void gst_event_parse_step (GstEvent *event, GstFormat *format, guint64 *amount, gdouble *rate, gboolean *flush, gboolean *intermediate); /* renegotiate event */ + +GST_EXPORT GstEvent* gst_event_new_reconfigure (void) G_GNUC_MALLOC; /* TOC select event */ + +GST_EXPORT GstEvent* gst_event_new_toc_select (const gchar *uid) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_toc_select (GstEvent *event, gchar **uid); /* segment-done event */ + +GST_EXPORT GstEvent* gst_event_new_segment_done (GstFormat format, gint64 position) G_GNUC_MALLOC; + +GST_EXPORT void gst_event_parse_segment_done (GstEvent *event, GstFormat *format, gint64 *position); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstformat.h b/gst/gstformat.h index d158ea1175..1d2cc4cdae 100644 --- a/gst/gstformat.h +++ b/gst/gstformat.h @@ -92,20 +92,33 @@ struct _GstFormatDefinition GQuark quark; }; +GST_EXPORT const gchar* gst_format_get_name (GstFormat format); + +GST_EXPORT GQuark gst_format_to_quark (GstFormat format); /* register a new format */ + +GST_EXPORT GstFormat gst_format_register (const gchar *nick, const gchar *description); + +GST_EXPORT GstFormat gst_format_get_by_nick (const gchar *nick); /* check if a format is in an array of formats */ + +GST_EXPORT gboolean gst_formats_contains (const GstFormat *formats, GstFormat format); /* query for format details */ + +GST_EXPORT const GstFormatDefinition* gst_format_get_details (GstFormat format); + +GST_EXPORT GstIterator* gst_format_iterate_definitions (void); G_END_DECLS diff --git a/gst/gstghostpad.h b/gst/gstghostpad.h index 4e59ec0c3c..e56e183939 100644 --- a/gst/gstghostpad.h +++ b/gst/gstghostpad.h @@ -57,16 +57,23 @@ struct _GstProxyPadClass gpointer _gst_reserved[1]; }; -GType gst_proxy_pad_get_type (void); +GST_EXPORT +GType gst_proxy_pad_get_type (void); -GstProxyPad* gst_proxy_pad_get_internal (GstProxyPad *pad); +GST_EXPORT +GstProxyPad * gst_proxy_pad_get_internal (GstProxyPad *pad); +GST_EXPORT GstIterator* gst_proxy_pad_iterate_internal_links_default (GstPad *pad, GstObject *parent) G_GNUC_MALLOC; + +GST_EXPORT GstFlowReturn gst_proxy_pad_chain_default (GstPad *pad, GstObject *parent, GstBuffer *buffer); +GST_EXPORT GstFlowReturn gst_proxy_pad_chain_list_default (GstPad *pad, GstObject *parent, GstBufferList *list); +GST_EXPORT GstFlowReturn gst_proxy_pad_getrange_default (GstPad *pad, GstObject *parent, guint64 offset, guint size, GstBuffer **buffer); @@ -104,22 +111,34 @@ struct _GstGhostPadClass }; +GST_EXPORT GType gst_ghost_pad_get_type (void); +GST_EXPORT GstPad* gst_ghost_pad_new (const gchar *name, GstPad *target) G_GNUC_MALLOC; + +GST_EXPORT GstPad* gst_ghost_pad_new_no_target (const gchar *name, GstPadDirection dir) G_GNUC_MALLOC; +GST_EXPORT GstPad* gst_ghost_pad_new_from_template (const gchar *name, GstPad * target, GstPadTemplate * templ) G_GNUC_MALLOC; + +GST_EXPORT GstPad* gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate * templ) G_GNUC_MALLOC; +GST_EXPORT GstPad* gst_ghost_pad_get_target (GstGhostPad *gpad); + +GST_EXPORT gboolean gst_ghost_pad_set_target (GstGhostPad *gpad, GstPad *newtarget); +GST_EXPORT gboolean gst_ghost_pad_construct (GstGhostPad *gpad); +GST_EXPORT gboolean gst_ghost_pad_activate_mode_default (GstPad * pad, GstObject * parent, GstPadMode mode, gboolean active); - +GST_EXPORT gboolean gst_ghost_pad_internal_activate_mode_default (GstPad * pad, GstObject * parent, GstPadMode mode, gboolean active); diff --git a/gst/gstinfo.h b/gst/gstinfo.h index de17cf9a3f..2370c826c7 100644 --- a/gst/gstinfo.h +++ b/gst/gstinfo.h @@ -321,6 +321,7 @@ typedef void (*GstLogFunction) (GstDebugCategory * category, GstDebugMessage * message, gpointer user_data); +GST_EXPORT void gst_debug_log (GstDebugCategory * category, GstDebugLevel level, const gchar * file, @@ -329,7 +330,7 @@ void gst_debug_log (GstDebugCategory * category, GObject * object, const gchar * format, ...) G_GNUC_PRINTF (7, 8) G_GNUC_NO_INSTRUMENT; - +GST_EXPORT void gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level, const gchar * file, @@ -340,14 +341,21 @@ void gst_debug_log_valist (GstDebugCategory * category, va_list args) G_GNUC_NO_INSTRUMENT; /* do not use this function, use the GST_DEBUG_CATEGORY_INIT macro */ + +GST_EXPORT GstDebugCategory *_gst_debug_category_new (const gchar * name, guint color, const gchar * description); + /* do not use this function, use the GST_DEBUG_CATEGORY_GET macro */ + +GST_EXPORT GstDebugCategory *_gst_debug_get_category (const gchar *name); /* do not use this function, use the GST_CAT_MEMDUMP_* macros */ + +GST_EXPORT void _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file, const gchar * func, gint line, GObject * obj, const gchar * msg, const guint8 * data, guint length); @@ -359,14 +367,19 @@ void _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file, typedef void (* GstDebugFuncPtr) (void); /* do no use these functions, use the GST_DEBUG*_FUNCPTR macros */ + +GST_EXPORT void _gst_debug_register_funcptr (GstDebugFuncPtr func, const gchar * ptrname); +GST_EXPORT const gchar * _gst_debug_nameof_funcptr (GstDebugFuncPtr func) G_GNUC_NO_INSTRUMENT; +GST_EXPORT const gchar * gst_debug_message_get (GstDebugMessage * message); +GST_EXPORT void gst_debug_log_default (GstDebugCategory * category, GstDebugLevel level, const gchar * file, @@ -375,57 +388,108 @@ void gst_debug_log_default (GstDebugCategory * category, GObject * object, GstDebugMessage * message, gpointer user_data) G_GNUC_NO_INSTRUMENT; - +GST_EXPORT const gchar * gst_debug_level_get_name (GstDebugLevel level); +GST_EXPORT void gst_debug_add_log_function (GstLogFunction func, gpointer user_data, GDestroyNotify notify); - +GST_EXPORT guint gst_debug_remove_log_function (GstLogFunction func); + +GST_EXPORT guint gst_debug_remove_log_function_by_data (gpointer data); +GST_EXPORT void gst_debug_set_active (gboolean active); + +GST_EXPORT gboolean gst_debug_is_active (void); +GST_EXPORT void gst_debug_set_colored (gboolean colored); + +GST_EXPORT void gst_debug_set_color_mode (GstDebugColorMode mode); + +GST_EXPORT void gst_debug_set_color_mode_from_string (const gchar * mode); + +GST_EXPORT gboolean gst_debug_is_colored (void); + +GST_EXPORT GstDebugColorMode gst_debug_get_color_mode (void); +GST_EXPORT void gst_debug_set_default_threshold (GstDebugLevel level); + +GST_EXPORT GstDebugLevel gst_debug_get_default_threshold (void); + +GST_EXPORT void gst_debug_set_threshold_for_name (const gchar * name, GstDebugLevel level); +GST_EXPORT void gst_debug_set_threshold_from_string (const gchar * list, gboolean reset); + +GST_EXPORT void gst_debug_unset_threshold_for_name (const gchar * name); +GST_EXPORT void gst_debug_category_free (GstDebugCategory * category); -void gst_debug_category_set_threshold (GstDebugCategory * category, + +GST_EXPORT +void gst_debug_category_set_threshold (GstDebugCategory * category, GstDebugLevel level); + +GST_EXPORT void gst_debug_category_reset_threshold (GstDebugCategory * category); + +GST_EXPORT GstDebugLevel gst_debug_category_get_threshold (GstDebugCategory * category); + +GST_EXPORT const gchar * gst_debug_category_get_name (GstDebugCategory * category); + +GST_EXPORT guint gst_debug_category_get_color (GstDebugCategory * category); + +GST_EXPORT const gchar * gst_debug_category_get_description (GstDebugCategory * category); + +GST_EXPORT GSList * gst_debug_get_all_categories (void); +GST_EXPORT gchar * gst_debug_construct_term_color (guint colorinfo); + +GST_EXPORT gint gst_debug_construct_win_color (guint colorinfo); +GST_EXPORT gint gst_info_vasprintf (gchar ** result, const gchar * format, va_list args) G_GNUC_PRINTF (2, 0); +GST_EXPORT gchar * gst_info_strdup_vprintf (const gchar *format, va_list args) G_GNUC_PRINTF (1, 0); + +GST_EXPORT gchar * gst_info_strdup_printf (const gchar *format, ...) G_GNUC_PRINTF (1, 2); +GST_EXPORT void gst_print (const gchar * format, ...) G_GNUC_PRINTF (1, 2); + +GST_EXPORT void gst_println (const gchar * format, ...) G_GNUC_PRINTF (1, 2); +GST_EXPORT void gst_printerr (const gchar * format, ...) G_GNUC_PRINTF (1, 2); + +GST_EXPORT void gst_printerrln (const gchar * format, ...) G_GNUC_PRINTF (1, 2); #ifndef GST_DISABLE_GST_DEBUG @@ -542,12 +606,15 @@ G_STMT_START{ \ * * Default gstreamer core debug log category. Please define your own. */ + GST_EXPORT GstDebugCategory * GST_CAT_DEFAULT; /* this symbol may not be used */ -GST_EXPORT gboolean _gst_debug_enabled; + +GST_EXPORT gboolean _gst_debug_enabled; /* the min debug level, used for quickly discarding debug * messages that fall under the threshold. */ + GST_EXPORT GstDebugLevel _gst_debug_min; /** @@ -1671,7 +1738,10 @@ GST_TRACE (const char *format, ...) #endif /* GST_DISABLE_GST_DEBUG */ +GST_EXPORT void gst_debug_print_stack_trace (void); + +GST_EXPORT gchar * gst_debug_get_stack_trace (GstStackTraceFlags flags); G_END_DECLS diff --git a/gst/gstiterator.h b/gst/gstiterator.h index 6785672f3d..9910fc810f 100644 --- a/gst/gstiterator.h +++ b/gst/gstiterator.h @@ -225,9 +225,12 @@ struct _GstIterator { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_iterator_get_type (void); /* creating iterators */ + +GST_EXPORT GstIterator* gst_iterator_new (guint size, GType type, GMutex *lock, @@ -237,34 +240,46 @@ GstIterator* gst_iterator_new (guint size, GstIteratorItemFunction item, GstIteratorResyncFunction resync, GstIteratorFreeFunction free) G_GNUC_MALLOC; - +GST_EXPORT GstIterator* gst_iterator_new_list (GType type, GMutex *lock, guint32 *master_cookie, GList **list, GObject * owner, GstIteratorItemFunction item) G_GNUC_MALLOC; - +GST_EXPORT GstIterator* gst_iterator_new_single (GType type, const GValue * object) G_GNUC_MALLOC; - +GST_EXPORT GstIterator* gst_iterator_copy (const GstIterator *it) G_GNUC_MALLOC; /* using iterators */ + +GST_EXPORT GstIteratorResult gst_iterator_next (GstIterator *it, GValue * elem); + +GST_EXPORT void gst_iterator_resync (GstIterator *it); + +GST_EXPORT void gst_iterator_free (GstIterator *it); +GST_EXPORT void gst_iterator_push (GstIterator *it, GstIterator *other); /* higher-order functions that operate on iterators */ + +GST_EXPORT GstIterator* gst_iterator_filter (GstIterator *it, GCompareFunc func, const GValue * user_data) G_GNUC_MALLOC; +GST_EXPORT GstIteratorResult gst_iterator_fold (GstIterator *it, GstIteratorFoldFunction func, GValue *ret, gpointer user_data); +GST_EXPORT GstIteratorResult gst_iterator_foreach (GstIterator *it, GstIteratorForeachFunction func, gpointer user_data); +GST_EXPORT gboolean gst_iterator_find_custom (GstIterator *it, GCompareFunc func, GValue *elem, gpointer user_data); diff --git a/gst/gstmemory.h b/gst/gstmemory.h index a69dd968d6..43e93af854 100644 --- a/gst/gstmemory.h +++ b/gst/gstmemory.h @@ -33,6 +33,8 @@ G_BEGIN_DECLS GST_EXPORT GType _gst_memory_type; #define GST_TYPE_MEMORY (_gst_memory_type) + +GST_EXPORT GType gst_memory_get_type(void); typedef struct _GstMemory GstMemory; @@ -308,11 +310,12 @@ typedef GstMemory * (*GstMemoryShareFunction) (GstMemory *mem, gssize offset */ typedef gboolean (*GstMemoryIsSpanFunction) (GstMemory *mem1, GstMemory *mem2, gsize *offset); +GST_EXPORT void gst_memory_init (GstMemory *mem, GstMemoryFlags flags, GstAllocator *allocator, GstMemory *parent, gsize maxsize, gsize align, gsize offset, gsize size); - +GST_EXPORT gboolean gst_memory_is_type (GstMemory *mem, const gchar *mem_type); /* refcounting */ @@ -343,7 +346,11 @@ gst_memory_unref (GstMemory * memory) } /* getting/setting memory properties */ + +GST_EXPORT gsize gst_memory_get_sizes (GstMemory *mem, gsize *offset, gsize *maxsize); + +GST_EXPORT void gst_memory_resize (GstMemory *mem, gssize offset, gsize size); #define gst_memory_lock(m,f) gst_mini_object_lock (GST_MINI_OBJECT_CAST (m), (f)) @@ -352,15 +359,27 @@ void gst_memory_resize (GstMemory *mem, gssize offset, gsize siz #define gst_memory_make_writable(m) GST_MEMORY_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (m))) /* retrieving data */ + +GST_EXPORT GstMemory * gst_memory_make_mapped (GstMemory *mem, GstMapInfo *info, GstMapFlags flags) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT gboolean gst_memory_map (GstMemory *mem, GstMapInfo *info, GstMapFlags flags); + +GST_EXPORT void gst_memory_unmap (GstMemory *mem, GstMapInfo *info); /* copy and subregions */ + +GST_EXPORT GstMemory * gst_memory_copy (GstMemory *mem, gssize offset, gssize size) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT GstMemory * gst_memory_share (GstMemory *mem, gssize offset, gssize size) G_GNUC_WARN_UNUSED_RESULT; /* span memory */ + +GST_EXPORT gboolean gst_memory_is_span (GstMemory *mem1, GstMemory *mem2, gsize *offset); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstmessage.h b/gst/gstmessage.h index 735dd8017a..67f4367445 100644 --- a/gst/gstmessage.h +++ b/gst/gstmessage.h @@ -342,9 +342,13 @@ struct _GstMessage #include +GST_EXPORT GType gst_message_get_type (void); +GST_EXPORT const gchar* gst_message_type_get_name (GstMessageType type); + +GST_EXPORT GQuark gst_message_type_to_quark (GstMessageType type); /* refcounting */ @@ -436,206 +440,373 @@ gst_message_replace (GstMessage **old_message, GstMessage *new_message) /* custom messages */ + +GST_EXPORT GstMessage * gst_message_new_custom (GstMessageType type, GstObject * src, GstStructure * structure) G_GNUC_MALLOC; +GST_EXPORT const GstStructure * gst_message_get_structure (GstMessage *message); +GST_EXPORT gboolean gst_message_has_name (GstMessage *message, const gchar *name); /* identifiers for events and messages */ + +GST_EXPORT guint32 gst_message_get_seqnum (GstMessage *message); + +GST_EXPORT void gst_message_set_seqnum (GstMessage *message, guint32 seqnum); /* EOS */ + +GST_EXPORT GstMessage * gst_message_new_eos (GstObject * src) G_GNUC_MALLOC; /* ERROR */ +GST_EXPORT GstMessage * gst_message_new_error (GstObject * src, GError * error, const gchar * debug) G_GNUC_MALLOC; + +GST_EXPORT GstMessage * gst_message_new_error_with_details (GstObject * src, GError * error, const gchar * debug, GstStructure * details) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_error (GstMessage *message, GError **gerror, gchar **debug); + +GST_EXPORT void gst_message_parse_error_details (GstMessage *message, const GstStructure **structure); /* WARNING */ + +GST_EXPORT GstMessage * gst_message_new_warning (GstObject * src, GError * error, const gchar * debug) G_GNUC_MALLOC; + +GST_EXPORT GstMessage * gst_message_new_warning_with_details (GstObject * src, GError * error, const gchar * debug, GstStructure * details) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_warning (GstMessage *message, GError **gerror, gchar **debug); + +GST_EXPORT void gst_message_parse_warning_details (GstMessage *message, const GstStructure **structure); /* INFO */ + +GST_EXPORT GstMessage * gst_message_new_info (GstObject * src, GError * error, const gchar * debug) G_GNUC_MALLOC; + +GST_EXPORT GstMessage * gst_message_new_info_with_details (GstObject * src, GError * error, const gchar * debug, GstStructure * details) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_info (GstMessage *message, GError **gerror, gchar **debug); + +GST_EXPORT void gst_message_parse_info_details (GstMessage *message, const GstStructure **structure); /* TAG */ + +GST_EXPORT GstMessage * gst_message_new_tag (GstObject * src, GstTagList * tag_list) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_tag (GstMessage *message, GstTagList **tag_list); /* BUFFERING */ + +GST_EXPORT GstMessage * gst_message_new_buffering (GstObject * src, gint percent) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_buffering (GstMessage *message, gint *percent); + +GST_EXPORT void gst_message_set_buffering_stats (GstMessage *message, GstBufferingMode mode, gint avg_in, gint avg_out, gint64 buffering_left); +GST_EXPORT void gst_message_parse_buffering_stats (GstMessage *message, GstBufferingMode *mode, gint *avg_in, gint *avg_out, gint64 *buffering_left); /* STATE_CHANGED */ + +GST_EXPORT GstMessage * gst_message_new_state_changed (GstObject * src, GstState oldstate, GstState newstate, GstState pending) G_GNUC_MALLOC; +GST_EXPORT void gst_message_parse_state_changed (GstMessage *message, GstState *oldstate, GstState *newstate, GstState *pending); /* STATE_DIRTY */ + +GST_EXPORT GstMessage * gst_message_new_state_dirty (GstObject * src) G_GNUC_MALLOC; /* STEP_DONE */ + +GST_EXPORT GstMessage * gst_message_new_step_done (GstObject * src, GstFormat format, guint64 amount, gdouble rate, gboolean flush, gboolean intermediate, guint64 duration, gboolean eos) G_GNUC_MALLOC; +GST_EXPORT void gst_message_parse_step_done (GstMessage * message, GstFormat *format, guint64 *amount, gdouble *rate, gboolean *flush, gboolean *intermediate, guint64 *duration, gboolean *eos); /* CLOCK_PROVIDE */ + +GST_EXPORT GstMessage * gst_message_new_clock_provide (GstObject * src, GstClock *clock, gboolean ready) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_clock_provide (GstMessage *message, GstClock **clock, gboolean *ready); /* CLOCK_LOST */ + +GST_EXPORT GstMessage * gst_message_new_clock_lost (GstObject * src, GstClock *clock) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_clock_lost (GstMessage *message, GstClock **clock); /* NEW_CLOCK */ + +GST_EXPORT GstMessage * gst_message_new_new_clock (GstObject * src, GstClock *clock) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_new_clock (GstMessage *message, GstClock **clock); /* APPLICATION */ + +GST_EXPORT GstMessage * gst_message_new_application (GstObject * src, GstStructure * structure) G_GNUC_MALLOC; /* ELEMENT */ + +GST_EXPORT GstMessage * gst_message_new_element (GstObject * src, GstStructure * structure) G_GNUC_MALLOC; /* SEGMENT_START */ + +GST_EXPORT GstMessage * gst_message_new_segment_start (GstObject * src, GstFormat format, gint64 position) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_segment_start (GstMessage *message, GstFormat *format, gint64 *position); /* SEGMENT_DONE */ + +GST_EXPORT GstMessage * gst_message_new_segment_done (GstObject * src, GstFormat format, gint64 position) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_segment_done (GstMessage *message, GstFormat *format, gint64 *position); /* DURATION_CHANGED */ + +GST_EXPORT GstMessage * gst_message_new_duration_changed (GstObject * src) G_GNUC_MALLOC; /* LATENCY */ + +GST_EXPORT GstMessage * gst_message_new_latency (GstObject * src) G_GNUC_MALLOC; /* ASYNC_START */ + +GST_EXPORT GstMessage * gst_message_new_async_start (GstObject * src) G_GNUC_MALLOC; /* ASYNC_DONE */ + +GST_EXPORT GstMessage * gst_message_new_async_done (GstObject * src, GstClockTime running_time) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_async_done (GstMessage *message, GstClockTime *running_time); /* STRUCTURE CHANGE */ + +GST_EXPORT GstMessage * gst_message_new_structure_change (GstObject * src, GstStructureChangeType type, GstElement *owner, gboolean busy) G_GNUC_MALLOC; +GST_EXPORT void gst_message_parse_structure_change (GstMessage *message, GstStructureChangeType *type, GstElement **owner, gboolean *busy); /* STREAM STATUS */ + +GST_EXPORT GstMessage * gst_message_new_stream_status (GstObject * src, GstStreamStatusType type, GstElement *owner) G_GNUC_MALLOC; +GST_EXPORT void gst_message_parse_stream_status (GstMessage *message, GstStreamStatusType *type, GstElement **owner); +GST_EXPORT void gst_message_set_stream_status_object (GstMessage *message, const GValue *object); + +GST_EXPORT const GValue * gst_message_get_stream_status_object (GstMessage *message); /* REQUEST_STATE */ + +GST_EXPORT GstMessage * gst_message_new_request_state (GstObject * src, GstState state) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_request_state (GstMessage * message, GstState *state); /* STEP_START */ + +GST_EXPORT GstMessage * gst_message_new_step_start (GstObject * src, gboolean active, GstFormat format, guint64 amount, gdouble rate, gboolean flush, gboolean intermediate) G_GNUC_MALLOC; +GST_EXPORT void gst_message_parse_step_start (GstMessage * message, gboolean *active, GstFormat *format, guint64 *amount, gdouble *rate, gboolean *flush, gboolean *intermediate); /* QOS */ + +GST_EXPORT GstMessage * gst_message_new_qos (GstObject * src, gboolean live, guint64 running_time, guint64 stream_time, guint64 timestamp, guint64 duration) G_GNUC_MALLOC; +GST_EXPORT void gst_message_set_qos_values (GstMessage * message, gint64 jitter, gdouble proportion, gint quality); +GST_EXPORT void gst_message_set_qos_stats (GstMessage * message, GstFormat format, guint64 processed, guint64 dropped); +GST_EXPORT void gst_message_parse_qos (GstMessage * message, gboolean * live, guint64 * running_time, guint64 * stream_time, guint64 * timestamp, guint64 * duration); +GST_EXPORT void gst_message_parse_qos_values (GstMessage * message, gint64 * jitter, gdouble * proportion, gint * quality); +GST_EXPORT void gst_message_parse_qos_stats (GstMessage * message, GstFormat * format, guint64 * processed, guint64 * dropped); /* PROGRESS */ + +GST_EXPORT GstMessage * gst_message_new_progress (GstObject * src, GstProgressType type, const gchar *code, const gchar *text) G_GNUC_MALLOC; +GST_EXPORT void gst_message_parse_progress (GstMessage * message, GstProgressType * type, gchar ** code, gchar ** text); /* TOC */ + +GST_EXPORT GstMessage * gst_message_new_toc (GstObject *src, GstToc *toc, gboolean updated); + +GST_EXPORT void gst_message_parse_toc (GstMessage *message, GstToc **toc, gboolean *updated); /* RESET_TIME */ + +GST_EXPORT GstMessage * gst_message_new_reset_time (GstObject * src, GstClockTime running_time) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_reset_time (GstMessage *message, GstClockTime *running_time); /* STREAM_START */ + +GST_EXPORT GstMessage * gst_message_new_stream_start (GstObject * src) G_GNUC_MALLOC; +GST_EXPORT void gst_message_set_group_id (GstMessage *message, guint group_id); + +GST_EXPORT gboolean gst_message_parse_group_id (GstMessage *message, guint *group_id); /* NEED_CONTEXT */ + +GST_EXPORT GstMessage * gst_message_new_need_context (GstObject * src, const gchar * context_type) G_GNUC_MALLOC; + +GST_EXPORT gboolean gst_message_parse_context_type (GstMessage * message, const gchar ** context_type); /* HAVE_CONTEXT */ + +GST_EXPORT GstMessage * gst_message_new_have_context (GstObject * src, GstContext *context) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_have_context (GstMessage *message, GstContext **context); /* DEVICE_ADDED */ + +GST_EXPORT GstMessage * gst_message_new_device_added (GstObject * src, GstDevice * device) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_device_added (GstMessage * message, GstDevice ** device); /* DEVICE_REMOVED */ + +GST_EXPORT GstMessage * gst_message_new_device_removed (GstObject * src, GstDevice * device) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_device_removed (GstMessage * message, GstDevice ** device); /* PROPERTY_NOTIFY */ + +GST_EXPORT GstMessage * gst_message_new_property_notify (GstObject * src, const gchar * property_name, GValue * val) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_property_notify (GstMessage * message, GstObject ** object, const gchar ** property_name, const GValue ** property_value); /* STREAM_COLLECTION */ + +GST_EXPORT GstMessage * gst_message_new_stream_collection (GstObject * src, GstStreamCollection * collection) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_parse_stream_collection (GstMessage *message, GstStreamCollection **collection); /* STREAMS_SELECTED */ + +GST_EXPORT GstMessage * gst_message_new_streams_selected (GstObject *src, GstStreamCollection *collection); + +GST_EXPORT void gst_message_streams_selected_add (GstMessage *message, GstStream *stream); + +GST_EXPORT void gst_message_parse_streams_selected (GstMessage * message, GstStreamCollection **collection); + +GST_EXPORT guint gst_message_streams_selected_get_size (GstMessage * message); + +GST_EXPORT GstStream *gst_message_streams_selected_get_stream (GstMessage *message, guint idx); /* REDIRECT */ + +GST_EXPORT GstMessage * gst_message_new_redirect (GstObject * src, const gchar * location, GstTagList * tag_list, const GstStructure * entry_struct) G_GNUC_MALLOC; + +GST_EXPORT void gst_message_add_redirect_entry (GstMessage * message, const gchar * location, GstTagList * tag_list, const GstStructure * entry_struct); + +GST_EXPORT void gst_message_parse_redirect_entry (GstMessage * message, gsize entry_index, const gchar ** location, GstTagList ** tag_list, const GstStructure ** entry_struct); + +GST_EXPORT gsize gst_message_get_num_redirect_entries (GstMessage * message); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstmeta.h b/gst/gstmeta.h index 166599d1e4..03fca63785 100644 --- a/gst/gstmeta.h +++ b/gst/gstmeta.h @@ -131,6 +131,7 @@ typedef void (*GstMetaFreeFunction) (GstMeta *meta, GstBuffer *buffer); * * GQuark for the "gst-copy" transform. */ + GST_EXPORT GQuark _gst_meta_transform_copy; /** @@ -203,19 +204,26 @@ struct _GstMetaInfo { * just like interfaces */ }; +GST_EXPORT GType gst_meta_api_type_register (const gchar *api, const gchar **tags); +GST_EXPORT gboolean gst_meta_api_type_has_tag (GType api, GQuark tag); +GST_EXPORT const GstMetaInfo * gst_meta_register (GType api, const gchar *impl, gsize size, GstMetaInitFunction init_func, GstMetaFreeFunction free_func, GstMetaTransformFunction transform_func); +GST_EXPORT const GstMetaInfo * gst_meta_get_info (const gchar * impl); + +GST_EXPORT const gchar* const* gst_meta_api_type_get_tags (GType api); /* some default tags */ + GST_EXPORT GQuark _gst_meta_tag_memory; /** diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h index b8af1c779f..eaa3acc601 100644 --- a/gst/gstminiobject.h +++ b/gst/gstminiobject.h @@ -218,6 +218,7 @@ struct _GstMiniObject { gpointer qdata; }; +GST_EXPORT void gst_mini_object_init (GstMiniObject *mini_object, guint flags, GType type, GstMiniObjectCopyFunction copy_func, @@ -226,35 +227,58 @@ void gst_mini_object_init (GstMiniObject *mini_object, /* refcounting */ + +GST_EXPORT GstMiniObject * gst_mini_object_ref (GstMiniObject *mini_object); + +GST_EXPORT void gst_mini_object_unref (GstMiniObject *mini_object); +GST_EXPORT void gst_mini_object_weak_ref (GstMiniObject *object, GstMiniObjectNotify notify, gpointer data); +GST_EXPORT void gst_mini_object_weak_unref (GstMiniObject *object, GstMiniObjectNotify notify, gpointer data); /* locking */ + +GST_EXPORT gboolean gst_mini_object_lock (GstMiniObject *object, GstLockFlags flags); + +GST_EXPORT void gst_mini_object_unlock (GstMiniObject *object, GstLockFlags flags); +GST_EXPORT gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object); + +GST_EXPORT GstMiniObject * gst_mini_object_make_writable (GstMiniObject *mini_object) G_GNUC_WARN_UNUSED_RESULT; /* copy */ + +GST_EXPORT GstMiniObject * gst_mini_object_copy (const GstMiniObject *mini_object) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT void gst_mini_object_set_qdata (GstMiniObject *object, GQuark quark, gpointer data, GDestroyNotify destroy); +GST_EXPORT gpointer gst_mini_object_get_qdata (GstMiniObject *object, GQuark quark); + +GST_EXPORT gpointer gst_mini_object_steal_qdata (GstMiniObject *object, GQuark quark); - +GST_EXPORT gboolean gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata); + +GST_EXPORT gboolean gst_mini_object_take (GstMiniObject **olddata, GstMiniObject *newdata); + +GST_EXPORT GstMiniObject * gst_mini_object_steal (GstMiniObject **olddata) G_GNUC_WARN_UNUSED_RESULT; /** diff --git a/gst/gstobject.h b/gst/gstobject.h index 1ca60635bf..76a6800334 100644 --- a/gst/gstobject.h +++ b/gst/gstobject.h @@ -210,67 +210,116 @@ struct _GstObjectClass { }; /* normal GObject stuff */ + +GST_EXPORT GType gst_object_get_type (void); /* name routines */ + +GST_EXPORT gboolean gst_object_set_name (GstObject *object, const gchar *name); + +GST_EXPORT gchar* gst_object_get_name (GstObject *object); /* parentage routines */ + +GST_EXPORT gboolean gst_object_set_parent (GstObject *object, GstObject *parent); + +GST_EXPORT GstObject* gst_object_get_parent (GstObject *object); + +GST_EXPORT void gst_object_unparent (GstObject *object); + +GST_EXPORT gboolean gst_object_has_as_parent (GstObject *object, GstObject *parent); + +GST_EXPORT gboolean gst_object_has_as_ancestor (GstObject *object, GstObject *ancestor); + #ifndef GST_DISABLE_DEPRECATED +GST_EXPORT gboolean gst_object_has_ancestor (GstObject *object, GstObject *ancestor); #endif +GST_EXPORT void gst_object_default_deep_notify (GObject *object, GstObject *orig, GParamSpec *pspec, gchar **excluded_props); /* refcounting + life cycle */ + +GST_EXPORT gpointer gst_object_ref (gpointer object); + +GST_EXPORT void gst_object_unref (gpointer object); + +GST_EXPORT gpointer gst_object_ref_sink (gpointer object); /* replace object pointer */ + +GST_EXPORT gboolean gst_object_replace (GstObject **oldobj, GstObject *newobj); /* printing out the 'path' of the object */ + +GST_EXPORT gchar * gst_object_get_path_string (GstObject *object); /* misc utils */ + +GST_EXPORT gboolean gst_object_check_uniqueness (GList *list, const gchar *name); /* controller functions */ #include #include +GST_EXPORT GstClockTime gst_object_suggest_next_sync (GstObject * object); + +GST_EXPORT gboolean gst_object_sync_values (GstObject * object, GstClockTime timestamp); +GST_EXPORT gboolean gst_object_has_active_control_bindings (GstObject *object); + +GST_EXPORT void gst_object_set_control_bindings_disabled (GstObject *object, gboolean disabled); + +GST_EXPORT void gst_object_set_control_binding_disabled (GstObject *object, const gchar * property_name, gboolean disabled); +GST_EXPORT gboolean gst_object_add_control_binding (GstObject * object, GstControlBinding * binding); + +GST_EXPORT GstControlBinding * gst_object_get_control_binding (GstObject *object, const gchar * property_name); + +GST_EXPORT gboolean gst_object_remove_control_binding (GstObject * object, GstControlBinding * binding); +GST_EXPORT GValue * gst_object_get_value (GstObject * object, const gchar * property_name, GstClockTime timestamp); +GST_EXPORT gboolean gst_object_get_value_array (GstObject * object, const gchar * property_name, GstClockTime timestamp, GstClockTime interval, guint n_values, gpointer values); +GST_EXPORT gboolean gst_object_get_g_value_array (GstObject * object, const gchar * property_name, GstClockTime timestamp, GstClockTime interval, guint n_values, GValue *values); - +GST_EXPORT GstClockTime gst_object_get_control_rate (GstObject * object); + +GST_EXPORT void gst_object_set_control_rate (GstObject * object, GstClockTime control_rate); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstpad.h b/gst/gstpad.h index 2893ae0a78..1a4cedc8a3 100644 --- a/gst/gstpad.h +++ b/gst/gstpad.h @@ -63,6 +63,7 @@ typedef enum { #include +GST_EXPORT const gchar * gst_pad_mode_get_name (GstPadMode mode); #include @@ -181,9 +182,14 @@ typedef enum { GST_FLOW_CUSTOM_ERROR_2 = -102 } GstFlowReturn; -const gchar* gst_flow_get_name (GstFlowReturn ret); -GQuark gst_flow_to_quark (GstFlowReturn ret); -const gchar* gst_pad_link_get_name (GstPadLinkReturn ret); +GST_EXPORT +const gchar * gst_flow_get_name (GstFlowReturn ret); + +GST_EXPORT +GQuark gst_flow_to_quark (GstFlowReturn ret); + +GST_EXPORT +const gchar * gst_pad_link_get_name (GstPadLinkReturn ret); /** * GstPadLinkCheck: @@ -606,9 +612,16 @@ struct _GstPadProbeInfo #define GST_PAD_PROBE_INFO_OFFSET(d) ((d)->offset) #define GST_PAD_PROBE_INFO_SIZE(d) ((d)->size) +GST_EXPORT GstEvent* gst_pad_probe_info_get_event (GstPadProbeInfo * info); + +GST_EXPORT GstQuery* gst_pad_probe_info_get_query (GstPadProbeInfo * info); + +GST_EXPORT GstBuffer* gst_pad_probe_info_get_buffer (GstPadProbeInfo * info); + +GST_EXPORT GstBufferList* gst_pad_probe_info_get_buffer_list (GstPadProbeInfo * info); /** @@ -1260,11 +1273,18 @@ struct _GstPadClass { #define GST_PAD_BLOCK_SIGNAL(pad) (g_cond_signal(GST_PAD_BLOCK_GET_COND (pad))) #define GST_PAD_BLOCK_BROADCAST(pad) (g_cond_broadcast(GST_PAD_BLOCK_GET_COND (pad))) +GST_EXPORT GType gst_pad_get_type (void); /* creating pads */ + +GST_EXPORT GstPad* gst_pad_new (const gchar *name, GstPadDirection direction); + +GST_EXPORT GstPad* gst_pad_new_from_template (GstPadTemplate *templ, const gchar *name); + +GST_EXPORT GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const gchar *name); @@ -1291,63 +1311,96 @@ GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const g */ #define gst_pad_get_parent(pad) gst_object_get_parent (GST_OBJECT_CAST (pad)) +GST_EXPORT GstPadDirection gst_pad_get_direction (GstPad *pad); +GST_EXPORT gboolean gst_pad_set_active (GstPad *pad, gboolean active); + +GST_EXPORT gboolean gst_pad_is_active (GstPad *pad); + +GST_EXPORT gboolean gst_pad_activate_mode (GstPad *pad, GstPadMode mode, gboolean active); - +GST_EXPORT gulong gst_pad_add_probe (GstPad *pad, GstPadProbeType mask, GstPadProbeCallback callback, gpointer user_data, GDestroyNotify destroy_data); +GST_EXPORT void gst_pad_remove_probe (GstPad *pad, gulong id); +GST_EXPORT gboolean gst_pad_is_blocked (GstPad *pad); + +GST_EXPORT gboolean gst_pad_is_blocking (GstPad *pad); +GST_EXPORT void gst_pad_mark_reconfigure (GstPad *pad); + +GST_EXPORT gboolean gst_pad_needs_reconfigure (GstPad *pad); + +GST_EXPORT gboolean gst_pad_check_reconfigure (GstPad *pad); +GST_EXPORT void gst_pad_set_element_private (GstPad *pad, gpointer priv); + +GST_EXPORT gpointer gst_pad_get_element_private (GstPad *pad); +GST_EXPORT GstPadTemplate* gst_pad_get_pad_template (GstPad *pad); +GST_EXPORT GstFlowReturn gst_pad_store_sticky_event (GstPad *pad, GstEvent *event); + +GST_EXPORT GstEvent* gst_pad_get_sticky_event (GstPad *pad, GstEventType event_type, guint idx); + +GST_EXPORT void gst_pad_sticky_events_foreach (GstPad *pad, GstPadStickyEventsForeachFunction foreach_func, gpointer user_data); /* data passing setup functions */ + +GST_EXPORT void gst_pad_set_activate_function_full (GstPad *pad, GstPadActivateFunction activate, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_pad_set_activatemode_function_full (GstPad *pad, GstPadActivateModeFunction activatemode, gpointer user_data, GDestroyNotify notify); /* data passing functions */ + +GST_EXPORT void gst_pad_set_chain_function_full (GstPad *pad, GstPadChainFunction chain, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_pad_set_chain_list_function_full (GstPad *pad, GstPadChainListFunction chainlist, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_pad_set_getrange_function_full (GstPad *pad, GstPadGetRangeFunction get, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_pad_set_event_function_full (GstPad *pad, GstPadEventFunction event, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_pad_set_event_full_function_full (GstPad *pad, GstPadEventFullFunction event, gpointer user_data, @@ -1362,10 +1415,13 @@ void gst_pad_set_event_full_function_full (GstPad *pad, #define gst_pad_set_event_full_function(p,f) gst_pad_set_event_full_function_full((p),(f),NULL,NULL) /* pad links */ + +GST_EXPORT void gst_pad_set_link_function_full (GstPad *pad, GstPadLinkFunction link, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_pad_set_unlink_function_full (GstPad *pad, GstPadUnlinkFunction unlink, gpointer user_data, @@ -1374,73 +1430,133 @@ void gst_pad_set_unlink_function_full (GstPad *pad, #define gst_pad_set_link_function(p,f) gst_pad_set_link_function_full((p),(f),NULL,NULL) #define gst_pad_set_unlink_function(p,f) gst_pad_set_unlink_function_full((p),(f),NULL,NULL) +GST_EXPORT gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad); + +GST_EXPORT GstPadLinkReturn gst_pad_link (GstPad *srcpad, GstPad *sinkpad); + +GST_EXPORT GstPadLinkReturn gst_pad_link_full (GstPad *srcpad, GstPad *sinkpad, GstPadLinkCheck flags); + +GST_EXPORT gboolean gst_pad_unlink (GstPad *srcpad, GstPad *sinkpad); + +GST_EXPORT gboolean gst_pad_is_linked (GstPad *pad); +GST_EXPORT GstPad* gst_pad_get_peer (GstPad *pad); +GST_EXPORT GstCaps* gst_pad_get_pad_template_caps (GstPad *pad); /* capsnego function for linked/unlinked pads */ + +GST_EXPORT GstCaps * gst_pad_get_current_caps (GstPad * pad); + +GST_EXPORT gboolean gst_pad_has_current_caps (GstPad * pad); /* capsnego for linked pads */ + +GST_EXPORT GstCaps * gst_pad_get_allowed_caps (GstPad * pad); /* pad offsets */ + +GST_EXPORT gint64 gst_pad_get_offset (GstPad *pad); + +GST_EXPORT void gst_pad_set_offset (GstPad *pad, gint64 offset); /* data passing functions to peer */ + +GST_EXPORT GstFlowReturn gst_pad_push (GstPad *pad, GstBuffer *buffer); + +GST_EXPORT GstFlowReturn gst_pad_push_list (GstPad *pad, GstBufferList *list); + +GST_EXPORT GstFlowReturn gst_pad_pull_range (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer); +GST_EXPORT gboolean gst_pad_push_event (GstPad *pad, GstEvent *event); + +GST_EXPORT gboolean gst_pad_event_default (GstPad *pad, GstObject *parent, GstEvent *event); +GST_EXPORT GstFlowReturn gst_pad_get_last_flow_return (GstPad *pad); /* data passing functions on pad */ + +GST_EXPORT GstFlowReturn gst_pad_chain (GstPad *pad, GstBuffer *buffer); + +GST_EXPORT GstFlowReturn gst_pad_chain_list (GstPad *pad, GstBufferList *list); + +GST_EXPORT GstFlowReturn gst_pad_get_range (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer); +GST_EXPORT gboolean gst_pad_send_event (GstPad *pad, GstEvent *event); /* pad tasks */ + +GST_EXPORT gboolean gst_pad_start_task (GstPad *pad, GstTaskFunction func, gpointer user_data, GDestroyNotify notify); +GST_EXPORT gboolean gst_pad_pause_task (GstPad *pad); + +GST_EXPORT gboolean gst_pad_stop_task (GstPad *pad); + +GST_EXPORT GstTaskState gst_pad_get_task_state (GstPad *pad); /* internal links */ + +GST_EXPORT void gst_pad_set_iterate_internal_links_function_full (GstPad * pad, GstPadIterIntLinkFunction iterintlink, gpointer user_data, GDestroyNotify notify); + +GST_EXPORT GstIterator * gst_pad_iterate_internal_links (GstPad * pad); + +GST_EXPORT GstIterator * gst_pad_iterate_internal_links_default (GstPad * pad, GstObject *parent); #define gst_pad_set_iterate_internal_links_function(p,f) gst_pad_set_iterate_internal_links_function_full((p),(f),NULL,NULL) /* generic query function */ + +GST_EXPORT gboolean gst_pad_query (GstPad *pad, GstQuery *query); + +GST_EXPORT gboolean gst_pad_peer_query (GstPad *pad, GstQuery *query); + +GST_EXPORT void gst_pad_set_query_function_full (GstPad *pad, GstPadQueryFunction query, gpointer user_data, GDestroyNotify notify); +GST_EXPORT gboolean gst_pad_query_default (GstPad *pad, GstObject *parent, GstQuery *query); #define gst_pad_set_query_function(p,f) gst_pad_set_query_function_full((p),(f),NULL,NULL) /* misc helper functions */ + +GST_EXPORT gboolean gst_pad_forward (GstPad *pad, GstPadForwardFunction forward, gpointer user_data); diff --git a/gst/gstpadtemplate.h b/gst/gstpadtemplate.h index 94916475fd..f07dbd8826 100644 --- a/gst/gstpadtemplate.h +++ b/gst/gstpadtemplate.h @@ -175,17 +175,27 @@ struct _GstStaticPadTemplate { } /* templates and factories */ + +GST_EXPORT GType gst_pad_template_get_type (void); + +GST_EXPORT GType gst_static_pad_template_get_type (void); +GST_EXPORT GstPadTemplate* gst_pad_template_new (const gchar *name_template, GstPadDirection direction, GstPadPresence presence, GstCaps *caps) G_GNUC_MALLOC; - +GST_EXPORT GstPadTemplate * gst_static_pad_template_get (GstStaticPadTemplate *pad_template); + +GST_EXPORT GstCaps* gst_static_pad_template_get_caps (GstStaticPadTemplate *templ); + +GST_EXPORT GstCaps* gst_pad_template_get_caps (GstPadTemplate *templ); +GST_EXPORT void gst_pad_template_pad_created (GstPadTemplate * templ, GstPad * pad); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstparamspecs.h b/gst/gstparamspecs.h index 8a326c0662..0c843e6aae 100644 --- a/gst/gstparamspecs.h +++ b/gst/gstparamspecs.h @@ -82,8 +82,10 @@ G_BEGIN_DECLS /* --- get_type functions --- */ +GST_EXPORT GType gst_param_spec_fraction_get_type (void); +GST_EXPORT GType gst_param_spec_array_get_type (void); @@ -130,6 +132,7 @@ struct _GstParamSpecArray { /* --- GParamSpec prototypes --- */ +GST_EXPORT GParamSpec * gst_param_spec_fraction (const gchar * name, const gchar * nick, const gchar * blurb, @@ -137,7 +140,7 @@ GParamSpec * gst_param_spec_fraction (const gchar * name, gint max_num, gint max_denom, gint default_num, gint default_denom, GParamFlags flags) G_GNUC_MALLOC; - +GST_EXPORT GParamSpec * gst_param_spec_array (const gchar * name, const gchar * nick, const gchar * blurb, diff --git a/gst/gstparse.h b/gst/gstparse.h index 55f28ebd70..2d80f86d2a 100644 --- a/gst/gstparse.h +++ b/gst/gstparse.h @@ -27,6 +27,7 @@ G_BEGIN_DECLS +GST_EXPORT GQuark gst_parse_error_quark (void); /** * GST_PARSE_ERROR: @@ -95,27 +96,33 @@ typedef struct _GstParseContext GstParseContext; /* create, process and free a parse context */ +GST_EXPORT GType gst_parse_context_get_type (void); + +GST_EXPORT GstParseContext * gst_parse_context_new (void) G_GNUC_MALLOC; +GST_EXPORT gchar ** gst_parse_context_get_missing_elements (GstParseContext * context) G_GNUC_MALLOC; +GST_EXPORT void gst_parse_context_free (GstParseContext * context); /* parse functions */ +GST_EXPORT GstElement * gst_parse_launch (const gchar * pipeline_description, GError ** error) G_GNUC_MALLOC; - +GST_EXPORT GstElement * gst_parse_launchv (const gchar ** argv, GError ** error) G_GNUC_MALLOC; - +GST_EXPORT GstElement * gst_parse_launch_full (const gchar * pipeline_description, GstParseContext * context, GstParseFlags flags, GError ** error) G_GNUC_MALLOC; - +GST_EXPORT GstElement * gst_parse_launchv_full (const gchar ** argv, GstParseContext * context, GstParseFlags flags, diff --git a/gst/gstpipeline.h b/gst/gstpipeline.h index ee0efe0d47..82316ac197 100644 --- a/gst/gstpipeline.h +++ b/gst/gstpipeline.h @@ -88,24 +88,46 @@ struct _GstPipelineClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_pipeline_get_type (void); + +GST_EXPORT GstElement* gst_pipeline_new (const gchar *name) G_GNUC_MALLOC; +GST_EXPORT GstBus* gst_pipeline_get_bus (GstPipeline *pipeline); +GST_EXPORT void gst_pipeline_use_clock (GstPipeline *pipeline, GstClock *clock); + +GST_EXPORT gboolean gst_pipeline_set_clock (GstPipeline *pipeline, GstClock *clock); + +GST_EXPORT GstClock* gst_pipeline_get_clock (GstPipeline *pipeline); + +GST_EXPORT GstClock* gst_pipeline_get_pipeline_clock (GstPipeline *pipeline); + +GST_EXPORT void gst_pipeline_auto_clock (GstPipeline *pipeline); +GST_EXPORT void gst_pipeline_set_delay (GstPipeline *pipeline, GstClockTime delay); + +GST_EXPORT GstClockTime gst_pipeline_get_delay (GstPipeline *pipeline); +GST_EXPORT void gst_pipeline_set_latency (GstPipeline *pipeline, GstClockTime latency); + +GST_EXPORT GstClockTime gst_pipeline_get_latency (GstPipeline *pipeline); +GST_EXPORT void gst_pipeline_set_auto_flush_bus (GstPipeline *pipeline, gboolean auto_flush); + +GST_EXPORT gboolean gst_pipeline_get_auto_flush_bus (GstPipeline *pipeline); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstplugin.h b/gst/gstplugin.h index b6eefd92c5..7258388aba 100644 --- a/gst/gstplugin.h +++ b/gst/gstplugin.h @@ -48,6 +48,8 @@ typedef struct _GstPluginDesc GstPluginDesc; * * Returns: The error quark used in GError messages */ + +GST_EXPORT GQuark gst_plugin_error_quark (void); /** * GST_PLUGIN_ERROR: @@ -303,8 +305,10 @@ G_END_DECLS typedef gboolean (*GstPluginFilter) (GstPlugin *plugin, gpointer user_data); +GST_EXPORT GType gst_plugin_get_type (void); +GST_EXPORT gboolean gst_plugin_register_static (gint major_version, gint minor_version, const gchar *name, @@ -315,7 +319,7 @@ gboolean gst_plugin_register_static (gint major_version, const gchar *source, const gchar *package, const gchar *origin); - +GST_EXPORT gboolean gst_plugin_register_static_full (gint major_version, gint minor_version, const gchar *name, @@ -327,38 +331,65 @@ gboolean gst_plugin_register_static_full (gint major_version, const gchar *package, const gchar *origin, gpointer user_data); - +GST_EXPORT const gchar* gst_plugin_get_name (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_description (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_filename (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_version (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_license (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_source (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_package (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_origin (GstPlugin *plugin); + +GST_EXPORT const gchar* gst_plugin_get_release_date_string (GstPlugin *plugin); + +GST_EXPORT const GstStructure* gst_plugin_get_cache_data (GstPlugin * plugin); + +GST_EXPORT void gst_plugin_set_cache_data (GstPlugin * plugin, GstStructure *cache_data); +GST_EXPORT gboolean gst_plugin_is_loaded (GstPlugin *plugin); +GST_EXPORT GstPlugin * gst_plugin_load_file (const gchar *filename, GError** error); +GST_EXPORT GstPlugin * gst_plugin_load (GstPlugin *plugin); + +GST_EXPORT GstPlugin * gst_plugin_load_by_name (const gchar *name); +GST_EXPORT void gst_plugin_add_dependency (GstPlugin * plugin, const gchar ** env_vars, const gchar ** paths, const gchar ** names, GstPluginDependencyFlags flags); +GST_EXPORT void gst_plugin_add_dependency_simple (GstPlugin * plugin, const gchar * env_vars, const gchar * paths, const gchar * names, GstPluginDependencyFlags flags); - -void gst_plugin_list_free (GList *list); +GST_EXPORT +void gst_plugin_list_free (GList *list); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstPlugin, gst_object_unref) diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h index 38a489db85..1358afb91b 100644 --- a/gst/gstpluginfeature.h +++ b/gst/gstpluginfeature.h @@ -104,19 +104,33 @@ typedef gboolean (*GstPluginFeatureFilter) (GstPluginFeature *featu gpointer user_data); /* normal GObject stuff */ + +GST_EXPORT GType gst_plugin_feature_get_type (void); +GST_EXPORT GstPluginFeature * gst_plugin_feature_load (GstPluginFeature *feature); +GST_EXPORT void gst_plugin_feature_set_rank (GstPluginFeature *feature, guint rank); + +GST_EXPORT guint gst_plugin_feature_get_rank (GstPluginFeature *feature); +GST_EXPORT GstPlugin * gst_plugin_feature_get_plugin (GstPluginFeature *feature); + +GST_EXPORT const gchar * gst_plugin_feature_get_plugin_name (GstPluginFeature *feature); +GST_EXPORT void gst_plugin_feature_list_free (GList *list); + +GST_EXPORT GList *gst_plugin_feature_list_copy (GList *list) G_GNUC_MALLOC; + +GST_EXPORT void gst_plugin_feature_list_debug (GList *list); /** @@ -132,10 +146,12 @@ void gst_plugin_feature_list_debug (GList *list); #define GST_PLUGIN_FEATURE_LIST_DEBUG(list) #endif +GST_EXPORT gboolean gst_plugin_feature_check_version (GstPluginFeature *feature, guint min_major, guint min_minor, guint min_micro); +GST_EXPORT gint gst_plugin_feature_rank_compare_func (gconstpointer p1, gconstpointer p2); diff --git a/gst/gstpoll.h b/gst/gstpoll.h index ef6dceaf2c..f29067723d 100644 --- a/gst/gstpoll.h +++ b/gst/gstpoll.h @@ -61,33 +61,64 @@ typedef struct { */ #define GST_POLL_FD_INIT { -1, -1 } +GST_EXPORT GstPoll* gst_poll_new (gboolean controllable) G_GNUC_MALLOC; + +GST_EXPORT GstPoll* gst_poll_new_timer (void) G_GNUC_MALLOC; + +GST_EXPORT void gst_poll_free (GstPoll *set); +GST_EXPORT void gst_poll_get_read_gpollfd (GstPoll *set, GPollFD *fd); +GST_EXPORT void gst_poll_fd_init (GstPollFD *fd); +GST_EXPORT gboolean gst_poll_add_fd (GstPoll *set, GstPollFD *fd); + +GST_EXPORT gboolean gst_poll_remove_fd (GstPoll *set, GstPollFD *fd); +GST_EXPORT gboolean gst_poll_fd_ctl_write (GstPoll *set, GstPollFD *fd, gboolean active); + +GST_EXPORT gboolean gst_poll_fd_ctl_read (GstPoll *set, GstPollFD *fd, gboolean active); + +GST_EXPORT void gst_poll_fd_ignored (GstPoll *set, GstPollFD *fd); +GST_EXPORT gboolean gst_poll_fd_has_closed (const GstPoll *set, GstPollFD *fd); + +GST_EXPORT gboolean gst_poll_fd_has_error (const GstPoll *set, GstPollFD *fd); + +GST_EXPORT gboolean gst_poll_fd_can_read (const GstPoll *set, GstPollFD *fd); + +GST_EXPORT gboolean gst_poll_fd_can_write (const GstPoll *set, GstPollFD *fd); +GST_EXPORT gint gst_poll_wait (GstPoll *set, GstClockTime timeout); +GST_EXPORT gboolean gst_poll_set_controllable (GstPoll *set, gboolean controllable); + +GST_EXPORT void gst_poll_restart (GstPoll *set); + +GST_EXPORT void gst_poll_set_flushing (GstPoll *set, gboolean flushing); +GST_EXPORT gboolean gst_poll_write_control (GstPoll *set); + +GST_EXPORT gboolean gst_poll_read_control (GstPoll *set) G_GNUC_WARN_UNUSED_RESULT; G_END_DECLS diff --git a/gst/gstpreset.h b/gst/gstpreset.h index 178eccd245..9a08191321 100644 --- a/gst/gstpreset.h +++ b/gst/gstpreset.h @@ -77,27 +77,42 @@ struct _GstPresetInterface gpointer _gst_reserved[GST_PADDING]; }; -GType gst_preset_get_type(void); +GST_EXPORT +GType gst_preset_get_type (void); +GST_EXPORT gchar** gst_preset_get_preset_names (GstPreset *preset) G_GNUC_MALLOC; +GST_EXPORT gchar** gst_preset_get_property_names (GstPreset *preset) G_GNUC_MALLOC; +GST_EXPORT gboolean gst_preset_load_preset (GstPreset *preset, const gchar *name); + +GST_EXPORT gboolean gst_preset_save_preset (GstPreset *preset, const gchar *name); + +GST_EXPORT gboolean gst_preset_rename_preset (GstPreset *preset, const gchar *old_name, const gchar *new_name); +GST_EXPORT gboolean gst_preset_delete_preset (GstPreset *preset, const gchar *name); +GST_EXPORT gboolean gst_preset_set_meta (GstPreset *preset, const gchar *name, const gchar *tag, const gchar *value); +GST_EXPORT gboolean gst_preset_get_meta (GstPreset *preset, const gchar *name, const gchar *tag, gchar **value); - +GST_EXPORT gboolean gst_preset_set_app_dir (const gchar *app_dir); + +GST_EXPORT const gchar *gst_preset_get_app_dir (void); +GST_EXPORT gboolean gst_preset_is_editable (GstPreset *preset); + G_END_DECLS #endif /* __GST_PRESET_H__ */ diff --git a/gst/gstprotection.h b/gst/gstprotection.h index f2f54c4025..39b83c7000 100644 --- a/gst/gstprotection.h +++ b/gst/gstprotection.h @@ -52,7 +52,9 @@ struct _GstProtectionMeta GstStructure *info; }; +GST_EXPORT GType gst_protection_meta_api_get_type (void); + #define GST_PROTECTION_META_API_TYPE (gst_protection_meta_api_get_type()) #define gst_buffer_get_protection_meta(b) \ @@ -60,12 +62,14 @@ GType gst_protection_meta_api_get_type (void); #define GST_PROTECTION_META_INFO (gst_protection_meta_get_info()) -const GstMetaInfo *gst_protection_meta_get_info (void); +GST_EXPORT +const GstMetaInfo * gst_protection_meta_get_info (void); -GstProtectionMeta *gst_buffer_add_protection_meta (GstBuffer * buffer, - GstStructure * info); - -const gchar *gst_protection_select_system (const gchar ** system_identifiers); +GST_EXPORT +GstProtectionMeta * gst_buffer_add_protection_meta (GstBuffer * buffer, + GstStructure * info); +GST_EXPORT +const gchar * gst_protection_select_system (const gchar ** system_identifiers); G_END_DECLS #endif /* __GST_PROTECTION_META_H__ */ diff --git a/gst/gstquery.h b/gst/gstquery.h index fcc4bad5da..977fad5b0a 100644 --- a/gst/gstquery.h +++ b/gst/gstquery.h @@ -212,12 +212,18 @@ typedef enum { #include #include +GST_EXPORT const gchar* gst_query_type_get_name (GstQueryType type); + +GST_EXPORT GQuark gst_query_type_to_quark (GstQueryType type); + +GST_EXPORT GstQueryTypeFlags gst_query_type_get_flags (GstQueryType type); +GST_EXPORT GType gst_query_get_type (void); /* refcounting */ @@ -304,130 +310,247 @@ gst_query_replace (GstQuery **old_query, GstQuery *new_query) } /* application specific query */ + +GST_EXPORT GstQuery * gst_query_new_custom (GstQueryType type, GstStructure *structure) G_GNUC_MALLOC; + +GST_EXPORT const GstStructure * gst_query_get_structure (GstQuery *query); + +GST_EXPORT GstStructure * gst_query_writable_structure (GstQuery *query); /* position query */ + +GST_EXPORT GstQuery* gst_query_new_position (GstFormat format) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_position (GstQuery *query, GstFormat format, gint64 cur); + +GST_EXPORT void gst_query_parse_position (GstQuery *query, GstFormat *format, gint64 *cur); /* duration query */ + +GST_EXPORT GstQuery* gst_query_new_duration (GstFormat format) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_duration (GstQuery *query, GstFormat format, gint64 duration); + +GST_EXPORT void gst_query_parse_duration (GstQuery *query, GstFormat *format, gint64 *duration); /* latency query */ + +GST_EXPORT GstQuery* gst_query_new_latency (void) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_latency (GstQuery *query, gboolean live, GstClockTime min_latency, GstClockTime max_latency); + +GST_EXPORT void gst_query_parse_latency (GstQuery *query, gboolean *live, GstClockTime *min_latency, GstClockTime *max_latency); /* convert query */ + +GST_EXPORT GstQuery* gst_query_new_convert (GstFormat src_format, gint64 value, GstFormat dest_format) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_convert (GstQuery *query, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 dest_value); + +GST_EXPORT void gst_query_parse_convert (GstQuery *query, GstFormat *src_format, gint64 *src_value, GstFormat *dest_format, gint64 *dest_value); /* segment query */ + +GST_EXPORT GstQuery* gst_query_new_segment (GstFormat format) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_segment (GstQuery *query, gdouble rate, GstFormat format, gint64 start_value, gint64 stop_value); + +GST_EXPORT void gst_query_parse_segment (GstQuery *query, gdouble *rate, GstFormat *format, gint64 *start_value, gint64 *stop_value); /* seeking query */ + +GST_EXPORT GstQuery* gst_query_new_seeking (GstFormat format) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_seeking (GstQuery *query, GstFormat format, gboolean seekable, gint64 segment_start, gint64 segment_end); + +GST_EXPORT void gst_query_parse_seeking (GstQuery *query, GstFormat *format, gboolean *seekable, gint64 *segment_start, gint64 *segment_end); /* formats query */ + +GST_EXPORT GstQuery* gst_query_new_formats (void) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_formats (GstQuery *query, gint n_formats, ...); + +GST_EXPORT void gst_query_set_formatsv (GstQuery *query, gint n_formats, const GstFormat *formats); + +GST_EXPORT void gst_query_parse_n_formats (GstQuery *query, guint *n_formats); + +GST_EXPORT void gst_query_parse_nth_format (GstQuery *query, guint nth, GstFormat *format); /* buffering query */ + +GST_EXPORT GstQuery* gst_query_new_buffering (GstFormat format) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_set_buffering_percent (GstQuery *query, gboolean busy, gint percent); + +GST_EXPORT void gst_query_parse_buffering_percent (GstQuery *query, gboolean *busy, gint *percent); +GST_EXPORT void gst_query_set_buffering_stats (GstQuery *query, GstBufferingMode mode, gint avg_in, gint avg_out, gint64 buffering_left); + +GST_EXPORT void gst_query_parse_buffering_stats (GstQuery *query, GstBufferingMode *mode, gint *avg_in, gint *avg_out, gint64 *buffering_left); +GST_EXPORT void gst_query_set_buffering_range (GstQuery *query, GstFormat format, gint64 start, gint64 stop, gint64 estimated_total); + +GST_EXPORT void gst_query_parse_buffering_range (GstQuery *query, GstFormat *format, gint64 *start, gint64 *stop, gint64 *estimated_total); +GST_EXPORT gboolean gst_query_add_buffering_range (GstQuery *query, gint64 start, gint64 stop); + +GST_EXPORT guint gst_query_get_n_buffering_ranges (GstQuery *query); + +GST_EXPORT gboolean gst_query_parse_nth_buffering_range (GstQuery *query, guint index, gint64 *start, gint64 *stop); /* URI query */ + +GST_EXPORT GstQuery * gst_query_new_uri (void) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_parse_uri (GstQuery *query, gchar **uri); + +GST_EXPORT void gst_query_set_uri (GstQuery *query, const gchar *uri); + +GST_EXPORT void gst_query_parse_uri_redirection (GstQuery *query, gchar **uri); + +GST_EXPORT void gst_query_set_uri_redirection (GstQuery *query, const gchar *uri); + +GST_EXPORT void gst_query_parse_uri_redirection_permanent (GstQuery *query, gboolean * permanent); + +GST_EXPORT void gst_query_set_uri_redirection_permanent (GstQuery *query, gboolean permanent); /* allocation query */ + +GST_EXPORT GstQuery * gst_query_new_allocation (GstCaps *caps, gboolean need_pool) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_parse_allocation (GstQuery *query, GstCaps **caps, gboolean *need_pool); /* pools */ + +GST_EXPORT void gst_query_add_allocation_pool (GstQuery *query, GstBufferPool *pool, guint size, guint min_buffers, guint max_buffers); + +GST_EXPORT guint gst_query_get_n_allocation_pools (GstQuery *query); + +GST_EXPORT void gst_query_parse_nth_allocation_pool (GstQuery *query, guint index, GstBufferPool **pool, guint *size, guint *min_buffers, guint *max_buffers); + +GST_EXPORT void gst_query_set_nth_allocation_pool (GstQuery *query, guint index, GstBufferPool *pool, guint size, guint min_buffers, guint max_buffers); + +GST_EXPORT void gst_query_remove_nth_allocation_pool (GstQuery *query, guint index); /* allocators */ + +GST_EXPORT void gst_query_add_allocation_param (GstQuery *query, GstAllocator *allocator, const GstAllocationParams *params); + +GST_EXPORT guint gst_query_get_n_allocation_params (GstQuery *query); + +GST_EXPORT void gst_query_parse_nth_allocation_param (GstQuery *query, guint index, GstAllocator **allocator, GstAllocationParams *params); + +GST_EXPORT void gst_query_set_nth_allocation_param (GstQuery *query, guint index, GstAllocator *allocator, const GstAllocationParams *params); + +GST_EXPORT void gst_query_remove_nth_allocation_param (GstQuery *query, guint index); /* metadata */ + +GST_EXPORT void gst_query_add_allocation_meta (GstQuery *query, GType api, const GstStructure *params); + +GST_EXPORT guint gst_query_get_n_allocation_metas (GstQuery *query); + +GST_EXPORT GType gst_query_parse_nth_allocation_meta (GstQuery *query, guint index, const GstStructure **params); + +GST_EXPORT void gst_query_remove_nth_allocation_meta (GstQuery *query, guint index); + +GST_EXPORT gboolean gst_query_find_allocation_meta (GstQuery *query, GType api, guint *index); @@ -446,40 +569,78 @@ typedef enum { GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED = (1 << 2) } GstSchedulingFlags; +GST_EXPORT GstQuery * gst_query_new_scheduling (void) G_GNUC_MALLOC; +GST_EXPORT void gst_query_set_scheduling (GstQuery *query, GstSchedulingFlags flags, gint minsize, gint maxsize, gint align); + +GST_EXPORT void gst_query_parse_scheduling (GstQuery *query, GstSchedulingFlags *flags, gint *minsize, gint *maxsize, gint *align); +GST_EXPORT void gst_query_add_scheduling_mode (GstQuery *query, GstPadMode mode); + +GST_EXPORT guint gst_query_get_n_scheduling_modes (GstQuery *query); + +GST_EXPORT GstPadMode gst_query_parse_nth_scheduling_mode (GstQuery *query, guint index); + +GST_EXPORT gboolean gst_query_has_scheduling_mode (GstQuery *query, GstPadMode mode); + +GST_EXPORT gboolean gst_query_has_scheduling_mode_with_flags (GstQuery * query, GstPadMode mode, GstSchedulingFlags flags); /* accept-caps query */ + +GST_EXPORT GstQuery * gst_query_new_accept_caps (GstCaps *caps) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_parse_accept_caps (GstQuery *query, GstCaps **caps); + +GST_EXPORT void gst_query_set_accept_caps_result (GstQuery *query, gboolean result); + +GST_EXPORT void gst_query_parse_accept_caps_result (GstQuery *query, gboolean *result); /* caps query */ + +GST_EXPORT GstQuery * gst_query_new_caps (GstCaps *filter) G_GNUC_MALLOC; + +GST_EXPORT void gst_query_parse_caps (GstQuery *query, GstCaps **filter); +GST_EXPORT void gst_query_set_caps_result (GstQuery *query, GstCaps *caps); + +GST_EXPORT void gst_query_parse_caps_result (GstQuery *query, GstCaps **caps); /* drain query */ + +GST_EXPORT GstQuery * gst_query_new_drain (void) G_GNUC_MALLOC; /* context query */ + +GST_EXPORT GstQuery * gst_query_new_context (const gchar * context_type) G_GNUC_MALLOC; + +GST_EXPORT gboolean gst_query_parse_context_type (GstQuery * query, const gchar ** context_type); + +GST_EXPORT void gst_query_set_context (GstQuery *query, GstContext *context); + +GST_EXPORT void gst_query_parse_context (GstQuery *query, GstContext **context); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gstregistry.h b/gst/gstregistry.h index d72f497a38..7abddb936c 100644 --- a/gst/gstregistry.h +++ b/gst/gstregistry.h @@ -57,10 +57,13 @@ struct _GstRegistryClass { GstObjectClass parent_class; }; +GST_EXPORT GType gst_registry_get_type (void); +GST_EXPORT GstRegistry * gst_registry_get (void); +GST_EXPORT gboolean gst_registry_scan_path (GstRegistry *registry, const gchar *path); #if 0 @@ -68,31 +71,53 @@ void gst_registry_add_path (GstRegistry * registry, GList* gst_registry_get_path_list (GstRegistry *registry); #endif +GST_EXPORT gboolean gst_registry_add_plugin (GstRegistry *registry, GstPlugin *plugin); + +GST_EXPORT void gst_registry_remove_plugin (GstRegistry *registry, GstPlugin *plugin); + +GST_EXPORT gboolean gst_registry_add_feature (GstRegistry * registry, GstPluginFeature * feature); + +GST_EXPORT void gst_registry_remove_feature (GstRegistry * registry, GstPluginFeature * feature); +GST_EXPORT GList* gst_registry_get_plugin_list (GstRegistry *registry); + +GST_EXPORT GList* gst_registry_plugin_filter (GstRegistry *registry, GstPluginFilter filter, gboolean first, gpointer user_data); +GST_EXPORT GList* gst_registry_feature_filter (GstRegistry *registry, GstPluginFeatureFilter filter, gboolean first, gpointer user_data); +GST_EXPORT GList * gst_registry_get_feature_list (GstRegistry *registry, GType type); +GST_EXPORT GList * gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name); + +GST_EXPORT guint32 gst_registry_get_feature_list_cookie (GstRegistry *registry); +GST_EXPORT GstPlugin* gst_registry_find_plugin (GstRegistry *registry, const gchar *name); + +GST_EXPORT GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar *name, GType type); +GST_EXPORT GstPlugin * gst_registry_lookup (GstRegistry *registry, const char *filename); + +GST_EXPORT GstPluginFeature * gst_registry_lookup_feature (GstRegistry *registry, const char *name); +GST_EXPORT gboolean gst_registry_check_feature_version (GstRegistry *registry, const gchar *feature_name, guint min_major, diff --git a/gst/gstsample.h b/gst/gstsample.h index 6637fa3b22..662240aba4 100644 --- a/gst/gstsample.h +++ b/gst/gstsample.h @@ -47,19 +47,32 @@ GST_EXPORT GType _gst_sample_type; */ typedef struct _GstSample GstSample; -GType gst_sample_get_type (void); +GST_EXPORT +GType gst_sample_get_type (void); /* allocation */ + +GST_EXPORT GstSample * gst_sample_new (GstBuffer *buffer, GstCaps *caps, const GstSegment *segment, GstStructure *info); - +GST_EXPORT GstBuffer * gst_sample_get_buffer (GstSample *sample); + +GST_EXPORT GstCaps * gst_sample_get_caps (GstSample *sample); + +GST_EXPORT GstSegment * gst_sample_get_segment (GstSample *sample); + +GST_EXPORT const GstStructure * gst_sample_get_info (GstSample *sample); + +GST_EXPORT GstBufferList * gst_sample_get_buffer_list (GstSample *sample); + +GST_EXPORT void gst_sample_set_buffer_list (GstSample *sample, GstBufferList *buffer_list); /* refcounting */ diff --git a/gst/gstsegment.h b/gst/gstsegment.h index 1fcfd4acf3..fef6108194 100644 --- a/gst/gstsegment.h +++ b/gst/gstsegment.h @@ -209,41 +209,67 @@ struct _GstSegment { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_segment_get_type (void); +GST_EXPORT GstSegment * gst_segment_new (void) G_GNUC_MALLOC; + +GST_EXPORT GstSegment * gst_segment_copy (const GstSegment *segment) G_GNUC_MALLOC; + +GST_EXPORT void gst_segment_copy_into (const GstSegment *src, GstSegment *dest); + +GST_EXPORT void gst_segment_free (GstSegment *segment); +GST_EXPORT void gst_segment_init (GstSegment *segment, GstFormat format); +GST_EXPORT gint gst_segment_to_stream_time_full (const GstSegment *segment, GstFormat format, guint64 position, guint64 * stream_time); + +GST_EXPORT guint64 gst_segment_to_stream_time (const GstSegment *segment, GstFormat format, guint64 position); + +GST_EXPORT gint gst_segment_position_from_stream_time_full (const GstSegment * segment, GstFormat format, guint64 stream_time, guint64 * position); + +GST_EXPORT guint64 gst_segment_position_from_stream_time (const GstSegment * segment, GstFormat format, guint64 stream_time); + +GST_EXPORT guint64 gst_segment_to_running_time (const GstSegment *segment, GstFormat format, guint64 position); +GST_EXPORT gint gst_segment_to_running_time_full (const GstSegment *segment, GstFormat format, guint64 position, guint64 * running_time); #ifndef GST_DISABLE_DEPRECATED +GST_EXPORT guint64 gst_segment_to_position (const GstSegment *segment, GstFormat format, guint64 running_time); #endif +GST_EXPORT gint gst_segment_position_from_running_time_full (const GstSegment *segment, GstFormat format, guint64 running_time, guint64 * position); + +GST_EXPORT guint64 gst_segment_position_from_running_time (const GstSegment *segment, GstFormat format, guint64 running_time); +GST_EXPORT gboolean gst_segment_set_running_time (GstSegment *segment, GstFormat format, guint64 running_time); +GST_EXPORT gboolean gst_segment_offset_running_time (GstSegment *segment, GstFormat format, gint64 offset); +GST_EXPORT gboolean gst_segment_clip (const GstSegment *segment, GstFormat format, guint64 start, guint64 stop, guint64 *clip_start, guint64 *clip_stop); - - +GST_EXPORT gboolean gst_segment_do_seek (GstSegment * segment, gdouble rate, GstFormat format, GstSeekFlags flags, GstSeekType start_type, guint64 start, GstSeekType stop_type, guint64 stop, gboolean * update); +GST_EXPORT gboolean gst_segment_is_equal (const GstSegment * s0, const GstSegment * s1); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gststreamcollection.h b/gst/gststreamcollection.h index 1428a13916..98018453a5 100644 --- a/gst/gststreamcollection.h +++ b/gst/gststreamcollection.h @@ -93,15 +93,22 @@ struct _GstStreamCollectionClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_stream_collection_get_type (void); +GST_EXPORT GstStreamCollection *gst_stream_collection_new (const gchar *upstream_id); +GST_EXPORT const gchar *gst_stream_collection_get_upstream_id (GstStreamCollection *collection); +GST_EXPORT guint gst_stream_collection_get_size (GstStreamCollection *collection); + +GST_EXPORT GstStream *gst_stream_collection_get_stream (GstStreamCollection *collection, guint index); +GST_EXPORT gboolean gst_stream_collection_add_stream (GstStreamCollection *collection, GstStream *stream); diff --git a/gst/gststreams.h b/gst/gststreams.h index dc31ad04f2..6e4760e3e2 100644 --- a/gst/gststreams.h +++ b/gst/gststreams.h @@ -107,30 +107,45 @@ struct _GstStreamClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_stream_get_type (void); #include +GST_EXPORT GstStream *gst_stream_new (const gchar *stream_id, GstCaps *caps, GstStreamType type, GstStreamFlags flags); +GST_EXPORT +const gchar * gst_stream_get_stream_id (GstStream *stream); -const gchar *gst_stream_get_stream_id (GstStream *stream); - +GST_EXPORT void gst_stream_set_stream_flags (GstStream *stream, GstStreamFlags flags); + +GST_EXPORT GstStreamFlags gst_stream_get_stream_flags (GstStream *stream); -void gst_stream_set_stream_type (GstStream *stream, GstStreamType stream_type); -GstStreamType gst_stream_get_stream_type (GstStream *stream); +GST_EXPORT +void gst_stream_set_stream_type (GstStream *stream, GstStreamType stream_type); -void gst_stream_set_tags (GstStream *stream, GstTagList *tags); -GstTagList *gst_stream_get_tags (GstStream *stream); +GST_EXPORT +GstStreamType gst_stream_get_stream_type (GstStream *stream); -void gst_stream_set_caps (GstStream *stream, GstCaps *caps); -GstCaps *gst_stream_get_caps (GstStream *stream); +GST_EXPORT +void gst_stream_set_tags (GstStream *stream, GstTagList *tags); -const gchar *gst_stream_type_get_name (GstStreamType stype); +GST_EXPORT +GstTagList * gst_stream_get_tags (GstStream *stream); + +GST_EXPORT +void gst_stream_set_caps (GstStream *stream, GstCaps *caps); + +GST_EXPORT +GstCaps * gst_stream_get_caps (GstStream *stream); + +GST_EXPORT +const gchar * gst_stream_type_get_name (GstStreamType stype); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstStream, gst_object_unref) diff --git a/gst/gststructure.h b/gst/gststructure.h index 6af9c8383d..f4e60fa6da 100644 --- a/gst/gststructure.h +++ b/gst/gststructure.h @@ -100,255 +100,270 @@ struct _GstStructure { GQuark name; }; +GST_EXPORT GType gst_structure_get_type (void); +GST_EXPORT GstStructure * gst_structure_new_empty (const gchar * name) G_GNUC_MALLOC; +GST_EXPORT GstStructure * gst_structure_new_id_empty (GQuark quark) G_GNUC_MALLOC; +GST_EXPORT GstStructure * gst_structure_new (const gchar * name, const gchar * firstfield, ...) G_GNUC_NULL_TERMINATED G_GNUC_MALLOC; - +GST_EXPORT GstStructure * gst_structure_new_valist (const gchar * name, const gchar * firstfield, va_list varargs) G_GNUC_MALLOC; - +GST_EXPORT GstStructure * gst_structure_new_id (GQuark name_quark, GQuark field_quark, ...) G_GNUC_MALLOC; - +GST_EXPORT GstStructure * gst_structure_new_from_string (const gchar * string); +GST_EXPORT GstStructure * gst_structure_copy (const GstStructure * structure) G_GNUC_MALLOC; +GST_EXPORT gboolean gst_structure_set_parent_refcount (GstStructure * structure, - gint * refcount); - + gint * refcount); +GST_EXPORT void gst_structure_free (GstStructure * structure); +GST_EXPORT const gchar * gst_structure_get_name (const GstStructure * structure); +GST_EXPORT GQuark gst_structure_get_name_id (const GstStructure * structure); +GST_EXPORT gboolean gst_structure_has_name (const GstStructure * structure, const gchar * name); - +GST_EXPORT void gst_structure_set_name (GstStructure * structure, const gchar * name); - +GST_EXPORT void gst_structure_id_set_value (GstStructure * structure, GQuark field, const GValue * value); - +GST_EXPORT void gst_structure_set_value (GstStructure * structure, const gchar * fieldname, const GValue * value); - +GST_EXPORT void gst_structure_set_array (GstStructure * structure, const gchar * fieldname, const GValueArray * array); - +GST_EXPORT void gst_structure_set_list (GstStructure * structure, const gchar * fieldname, const GValueArray * array); - +GST_EXPORT void gst_structure_id_take_value (GstStructure * structure, GQuark field, GValue * value); - +GST_EXPORT void gst_structure_take_value (GstStructure * structure, const gchar * fieldname, GValue * value); - +GST_EXPORT void gst_structure_set (GstStructure * structure, const gchar * fieldname, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_structure_set_valist (GstStructure * structure, const gchar * fieldname, va_list varargs); - +GST_EXPORT void gst_structure_id_set (GstStructure * structure, GQuark fieldname, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_structure_id_set_valist (GstStructure * structure, GQuark fieldname, va_list varargs); - +GST_EXPORT gboolean gst_structure_get_valist (const GstStructure * structure, const char * first_fieldname, va_list args); - +GST_EXPORT gboolean gst_structure_get (const GstStructure * structure, const char * first_fieldname, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT gboolean gst_structure_id_get_valist (const GstStructure * structure, GQuark first_field_id, va_list args); - +GST_EXPORT gboolean gst_structure_id_get (const GstStructure * structure, GQuark first_field_id, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT const GValue * gst_structure_id_get_value (const GstStructure * structure, GQuark field); - +GST_EXPORT const GValue * gst_structure_get_value (const GstStructure * structure, const gchar * fieldname); - +GST_EXPORT void gst_structure_remove_field (GstStructure * structure, - const gchar * fieldname); - + const gchar * fieldname); +GST_EXPORT void gst_structure_remove_fields (GstStructure * structure, const gchar * fieldname, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_structure_remove_fields_valist (GstStructure * structure, const gchar * fieldname, va_list varargs); - +GST_EXPORT void gst_structure_remove_all_fields (GstStructure * structure); +GST_EXPORT GType gst_structure_get_field_type (const GstStructure * structure, const gchar * fieldname); - +GST_EXPORT gboolean gst_structure_foreach (const GstStructure * structure, GstStructureForeachFunc func, gpointer user_data); - +GST_EXPORT gboolean gst_structure_map_in_place (GstStructure * structure, GstStructureMapFunc func, gpointer user_data); - +GST_EXPORT void gst_structure_filter_and_map_in_place (GstStructure * structure, GstStructureFilterMapFunc func, gpointer user_data); - +GST_EXPORT gint gst_structure_n_fields (const GstStructure * structure); +GST_EXPORT const gchar * gst_structure_nth_field_name (const GstStructure * structure, guint index); - +GST_EXPORT gboolean gst_structure_id_has_field (const GstStructure * structure, GQuark field); - +GST_EXPORT gboolean gst_structure_id_has_field_typed (const GstStructure * structure, GQuark field, GType type); - +GST_EXPORT gboolean gst_structure_has_field (const GstStructure * structure, const gchar * fieldname); - +GST_EXPORT gboolean gst_structure_has_field_typed (const GstStructure * structure, const gchar * fieldname, GType type); /* utility functions */ + +GST_EXPORT gboolean gst_structure_get_boolean (const GstStructure * structure, const gchar * fieldname, gboolean * value); - +GST_EXPORT gboolean gst_structure_get_int (const GstStructure * structure, const gchar * fieldname, gint * value); - +GST_EXPORT gboolean gst_structure_get_uint (const GstStructure * structure, const gchar * fieldname, guint * value); - +GST_EXPORT gboolean gst_structure_get_int64 (const GstStructure * structure, const gchar * fieldname, gint64 * value); - +GST_EXPORT gboolean gst_structure_get_uint64 (const GstStructure * structure, const gchar * fieldname, guint64 * value); - +GST_EXPORT gboolean gst_structure_get_double (const GstStructure * structure, const gchar * fieldname, gdouble * value); - +GST_EXPORT gboolean gst_structure_get_date (const GstStructure * structure, const gchar * fieldname, GDate ** value); - +GST_EXPORT gboolean gst_structure_get_date_time (const GstStructure * structure, const gchar * fieldname, GstDateTime ** value); - +GST_EXPORT gboolean gst_structure_get_clock_time (const GstStructure * structure, const gchar * fieldname, GstClockTime * value); - +GST_EXPORT const gchar * gst_structure_get_string (const GstStructure * structure, const gchar * fieldname); - +GST_EXPORT gboolean gst_structure_get_enum (const GstStructure * structure, const gchar * fieldname, GType enumtype, gint * value); - +GST_EXPORT gboolean gst_structure_get_fraction (const GstStructure * structure, const gchar * fieldname, gint * value_numerator, gint * value_denominator); - +GST_EXPORT gboolean gst_structure_get_flagset (const GstStructure * structure, const gchar * fieldname, guint * value_flags, guint * value_mask); - +GST_EXPORT gboolean gst_structure_get_array (GstStructure * structure, const gchar * fieldname, GValueArray ** array); - +GST_EXPORT gboolean gst_structure_get_list (GstStructure * structure, const gchar * fieldname, GValueArray ** array); - +GST_EXPORT gchar * gst_structure_to_string (const GstStructure * structure) G_GNUC_MALLOC; +GST_EXPORT GstStructure * gst_structure_from_string (const gchar * string, gchar ** end) G_GNUC_MALLOC; - +GST_EXPORT gboolean gst_structure_fixate_field_nearest_int (GstStructure * structure, const char * field_name, int target); - +GST_EXPORT gboolean gst_structure_fixate_field_nearest_double (GstStructure * structure, const char * field_name, double target); - +GST_EXPORT gboolean gst_structure_fixate_field_boolean (GstStructure * structure, const char * field_name, gboolean target); - +GST_EXPORT gboolean gst_structure_fixate_field_string (GstStructure * structure, const char * field_name, const gchar * target); - +GST_EXPORT gboolean gst_structure_fixate_field_nearest_fraction (GstStructure * structure, const char * field_name, const gint target_numerator, const gint target_denominator); - +GST_EXPORT gboolean gst_structure_fixate_field (GstStructure * structure, const char * field_name); - +GST_EXPORT void gst_structure_fixate (GstStructure * structure); +GST_EXPORT gboolean gst_structure_is_equal (const GstStructure * structure1, const GstStructure * structure2); - +GST_EXPORT gboolean gst_structure_is_subset (const GstStructure * subset, const GstStructure * superset); - +GST_EXPORT gboolean gst_structure_can_intersect (const GstStructure * struct1, const GstStructure * struct2); - +GST_EXPORT GstStructure * gst_structure_intersect (const GstStructure * struct1, const GstStructure * struct2) G_GNUC_MALLOC; diff --git a/gst/gstsystemclock.h b/gst/gstsystemclock.h index 02105ee32b..02623ff310 100644 --- a/gst/gstsystemclock.h +++ b/gst/gstsystemclock.h @@ -78,9 +78,13 @@ struct _GstSystemClockClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_system_clock_get_type (void); +GST_EXPORT GstClock* gst_system_clock_obtain (void); + +GST_EXPORT void gst_system_clock_set_default (GstClock *new_clock); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h index 4dc544be3d..da1d1ba87f 100644 --- a/gst/gsttaglist.h +++ b/gst/gsttaglist.h @@ -183,16 +183,19 @@ typedef void (*GstTagForeachFunc) (const GstTagList * list, */ typedef void (* GstTagMergeFunc) (GValue *dest, const GValue *src); +GST_EXPORT GType gst_tag_list_get_type (void); /* tag registration */ + +GST_EXPORT void gst_tag_register (const gchar * name, GstTagFlag flag, GType type, const gchar * nick, const gchar * blurb, GstTagMergeFunc func); - +GST_EXPORT void gst_tag_register_static (const gchar * name, GstTagFlag flag, GType type, @@ -201,15 +204,31 @@ void gst_tag_register_static (const gchar * name, GstTagMergeFunc func); /* some default merging functions */ + +GST_EXPORT void gst_tag_merge_use_first (GValue * dest, const GValue * src); + +GST_EXPORT void gst_tag_merge_strings_with_comma (GValue * dest, const GValue * src); /* basic tag support */ + +GST_EXPORT gboolean gst_tag_exists (const gchar * tag); + +GST_EXPORT GType gst_tag_get_type (const gchar * tag); + +GST_EXPORT const gchar * gst_tag_get_nick (const gchar * tag); + +GST_EXPORT const gchar * gst_tag_get_description (const gchar * tag); + +GST_EXPORT GstTagFlag gst_tag_get_flag (const gchar * tag); + +GST_EXPORT gboolean gst_tag_is_fixed (const gchar * tag); /* tag lists */ @@ -227,148 +246,203 @@ typedef enum { GST_TAG_SCOPE_GLOBAL } GstTagScope; +GST_EXPORT GstTagList * gst_tag_list_new_empty (void) G_GNUC_MALLOC; + +GST_EXPORT GstTagList * gst_tag_list_new (const gchar * tag, ...) G_GNUC_MALLOC; + +GST_EXPORT GstTagList * gst_tag_list_new_valist (va_list var_args) G_GNUC_MALLOC; +GST_EXPORT void gst_tag_list_set_scope (GstTagList * list, GstTagScope scope); + +GST_EXPORT GstTagScope gst_tag_list_get_scope (const GstTagList * list); +GST_EXPORT gchar * gst_tag_list_to_string (const GstTagList * list) G_GNUC_MALLOC; + +GST_EXPORT GstTagList * gst_tag_list_new_from_string (const gchar * str) G_GNUC_MALLOC; +GST_EXPORT gint gst_tag_list_n_tags (const GstTagList * list); + +GST_EXPORT const gchar* gst_tag_list_nth_tag_name (const GstTagList * list, guint index); + +GST_EXPORT gboolean gst_tag_list_is_empty (const GstTagList * list); + +GST_EXPORT gboolean gst_tag_list_is_equal (const GstTagList * list1, const GstTagList * list2); +GST_EXPORT void gst_tag_list_insert (GstTagList * into, const GstTagList * from, GstTagMergeMode mode); +GST_EXPORT GstTagList * gst_tag_list_merge (const GstTagList * list1, const GstTagList * list2, GstTagMergeMode mode) G_GNUC_MALLOC; +GST_EXPORT guint gst_tag_list_get_tag_size (const GstTagList * list, const gchar * tag); +GST_EXPORT void gst_tag_list_add (GstTagList * list, GstTagMergeMode mode, const gchar * tag, ...) G_GNUC_NULL_TERMINATED; +GST_EXPORT void gst_tag_list_add_values (GstTagList * list, GstTagMergeMode mode, const gchar * tag, ...) G_GNUC_NULL_TERMINATED; +GST_EXPORT void gst_tag_list_add_valist (GstTagList * list, GstTagMergeMode mode, const gchar * tag, va_list var_args); +GST_EXPORT void gst_tag_list_add_valist_values (GstTagList * list, GstTagMergeMode mode, const gchar * tag, va_list var_args); +GST_EXPORT void gst_tag_list_add_value (GstTagList * list, GstTagMergeMode mode, const gchar * tag, const GValue * value); +GST_EXPORT void gst_tag_list_remove_tag (GstTagList * list, const gchar * tag); +GST_EXPORT void gst_tag_list_foreach (const GstTagList * list, GstTagForeachFunc func, gpointer user_data); - +GST_EXPORT const GValue * gst_tag_list_get_value_index (const GstTagList * list, const gchar * tag, guint index); +GST_EXPORT gboolean gst_tag_list_copy_value (GValue * dest, const GstTagList * list, const gchar * tag); /* simplifications (FIXME: do we want them?) */ + +GST_EXPORT gboolean gst_tag_list_get_boolean (const GstTagList * list, const gchar * tag, gboolean * value); +GST_EXPORT gboolean gst_tag_list_get_boolean_index (const GstTagList * list, const gchar * tag, guint index, gboolean * value); +GST_EXPORT gboolean gst_tag_list_get_int (const GstTagList * list, const gchar * tag, gint * value); +GST_EXPORT gboolean gst_tag_list_get_int_index (const GstTagList * list, const gchar * tag, guint index, gint * value); +GST_EXPORT gboolean gst_tag_list_get_uint (const GstTagList * list, const gchar * tag, guint * value); +GST_EXPORT gboolean gst_tag_list_get_uint_index (const GstTagList * list, const gchar * tag, guint index, guint * value); +GST_EXPORT gboolean gst_tag_list_get_int64 (const GstTagList * list, const gchar * tag, gint64 * value); +GST_EXPORT gboolean gst_tag_list_get_int64_index (const GstTagList * list, const gchar * tag, guint index, gint64 * value); +GST_EXPORT gboolean gst_tag_list_get_uint64 (const GstTagList * list, const gchar * tag, guint64 * value); +GST_EXPORT gboolean gst_tag_list_get_uint64_index (const GstTagList * list, const gchar * tag, guint index, guint64 * value); +GST_EXPORT gboolean gst_tag_list_get_float (const GstTagList * list, const gchar * tag, gfloat * value); +GST_EXPORT gboolean gst_tag_list_get_float_index (const GstTagList * list, const gchar * tag, guint index, gfloat * value); +GST_EXPORT gboolean gst_tag_list_get_double (const GstTagList * list, const gchar * tag, gdouble * value); +GST_EXPORT gboolean gst_tag_list_get_double_index (const GstTagList * list, const gchar * tag, guint index, gdouble * value); +GST_EXPORT gboolean gst_tag_list_get_string (const GstTagList * list, const gchar * tag, gchar ** value); +GST_EXPORT gboolean gst_tag_list_get_string_index (const GstTagList * list, const gchar * tag, guint index, gchar ** value); +GST_EXPORT gboolean gst_tag_list_peek_string_index (const GstTagList * list, const gchar * tag, guint index, const gchar ** value); +GST_EXPORT gboolean gst_tag_list_get_pointer (const GstTagList * list, const gchar * tag, gpointer * value); +GST_EXPORT gboolean gst_tag_list_get_pointer_index (const GstTagList * list, const gchar * tag, guint index, gpointer * value); +GST_EXPORT gboolean gst_tag_list_get_date (const GstTagList * list, const gchar * tag, GDate ** value); +GST_EXPORT gboolean gst_tag_list_get_date_index (const GstTagList * list, const gchar * tag, guint index, GDate ** value); +GST_EXPORT gboolean gst_tag_list_get_date_time (const GstTagList * list, const gchar * tag, GstDateTime ** value); +GST_EXPORT gboolean gst_tag_list_get_date_time_index (const GstTagList * list, const gchar * tag, guint index, GstDateTime ** value); +GST_EXPORT gboolean gst_tag_list_get_sample (const GstTagList * list, const gchar * tag, GstSample ** sample); +GST_EXPORT gboolean gst_tag_list_get_sample_index (const GstTagList * list, const gchar * tag, guint index, diff --git a/gst/gsttagsetter.h b/gst/gsttagsetter.h index 509fc50e3b..a73c1782a0 100644 --- a/gst/gsttagsetter.h +++ b/gst/gsttagsetter.h @@ -56,43 +56,49 @@ struct _GstTagSetterInterface /* virtual table */ }; +GST_EXPORT GType gst_tag_setter_get_type (void); +GST_EXPORT void gst_tag_setter_reset_tags (GstTagSetter * setter); +GST_EXPORT void gst_tag_setter_merge_tags (GstTagSetter * setter, const GstTagList * list, GstTagMergeMode mode); +GST_EXPORT void gst_tag_setter_add_tags (GstTagSetter * setter, GstTagMergeMode mode, const gchar * tag, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_tag_setter_add_tag_values (GstTagSetter * setter, GstTagMergeMode mode, const gchar * tag, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT void gst_tag_setter_add_tag_valist (GstTagSetter * setter, GstTagMergeMode mode, const gchar * tag, va_list var_args); - +GST_EXPORT void gst_tag_setter_add_tag_valist_values(GstTagSetter * setter, GstTagMergeMode mode, const gchar * tag, va_list var_args); - +GST_EXPORT void gst_tag_setter_add_tag_value (GstTagSetter * setter, GstTagMergeMode mode, const gchar * tag, const GValue * value); - +GST_EXPORT const GstTagList * gst_tag_setter_get_tag_list (GstTagSetter * setter); +GST_EXPORT void gst_tag_setter_set_tag_merge_mode (GstTagSetter * setter, GstTagMergeMode mode); +GST_EXPORT GstTagMergeMode gst_tag_setter_get_tag_merge_mode (GstTagSetter * setter); G_END_DECLS diff --git a/gst/gsttask.h b/gst/gsttask.h index c56cf5eee2..ce14913add 100644 --- a/gst/gsttask.h +++ b/gst/gsttask.h @@ -164,34 +164,50 @@ struct _GstTaskClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT void gst_task_cleanup_all (void); +GST_EXPORT GType gst_task_get_type (void); +GST_EXPORT GstTask* gst_task_new (GstTaskFunction func, gpointer user_data, GDestroyNotify notify); - +GST_EXPORT void gst_task_set_lock (GstTask *task, GRecMutex *mutex); +GST_EXPORT GstTaskPool * gst_task_get_pool (GstTask *task); + +GST_EXPORT void gst_task_set_pool (GstTask *task, GstTaskPool *pool); +GST_EXPORT void gst_task_set_enter_callback (GstTask *task, GstTaskThreadFunc enter_func, gpointer user_data, GDestroyNotify notify); +GST_EXPORT void gst_task_set_leave_callback (GstTask *task, GstTaskThreadFunc leave_func, gpointer user_data, GDestroyNotify notify); - +GST_EXPORT GstTaskState gst_task_get_state (GstTask *task); + +GST_EXPORT gboolean gst_task_set_state (GstTask *task, GstTaskState state); +GST_EXPORT gboolean gst_task_start (GstTask *task); + +GST_EXPORT gboolean gst_task_stop (GstTask *task); + +GST_EXPORT gboolean gst_task_pause (GstTask *task); +GST_EXPORT gboolean gst_task_join (GstTask *task); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gsttaskpool.h b/gst/gsttaskpool.h index f8927c5239..32baa4946f 100644 --- a/gst/gsttaskpool.h +++ b/gst/gsttaskpool.h @@ -85,15 +85,22 @@ struct _GstTaskPoolClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_task_pool_get_type (void); +GST_EXPORT GstTaskPool * gst_task_pool_new (void); + +GST_EXPORT void gst_task_pool_prepare (GstTaskPool *pool, GError **error); +GST_EXPORT gpointer gst_task_pool_push (GstTaskPool *pool, GstTaskPoolFunction func, gpointer user_data, GError **error); +GST_EXPORT void gst_task_pool_join (GstTaskPool *pool, gpointer id); +GST_EXPORT void gst_task_pool_cleanup (GstTaskPool *pool); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gsttoc.h b/gst/gsttoc.h index 68f3a3514a..cfe62d0617 100644 --- a/gst/gsttoc.h +++ b/gst/gsttoc.h @@ -31,6 +31,7 @@ G_BEGIN_DECLS GST_EXPORT GType _gst_toc_type; + GST_EXPORT GType _gst_toc_entry_type; #define GST_TYPE_TOC (_gst_toc_type) @@ -127,21 +128,37 @@ typedef enum { #define GST_TOC_REPEAT_COUNT_INFINITE (-1) /* functions to return type structures */ + +GST_EXPORT GType gst_toc_get_type (void); + +GST_EXPORT GType gst_toc_entry_get_type (void); /* functions to create, ref and unref/free TOCs */ + +GST_EXPORT GstToc * gst_toc_new (GstTocScope scope); +GST_EXPORT GstTocScope gst_toc_get_scope (const GstToc *toc); +GST_EXPORT void gst_toc_set_tags (GstToc *toc, GstTagList * tags); + +GST_EXPORT void gst_toc_merge_tags (GstToc *toc, GstTagList *tags, GstTagMergeMode mode); + +GST_EXPORT GstTagList * gst_toc_get_tags (const GstToc *toc); -void gst_toc_append_entry (GstToc *toc, GstTocEntry *entry); +GST_EXPORT +void gst_toc_append_entry (GstToc *toc, GstTocEntry *entry); + +GST_EXPORT GList * gst_toc_get_entries (const GstToc *toc); +GST_EXPORT void gst_toc_dump (GstToc *toc); #define gst_toc_ref(toc) (GstToc*)gst_mini_object_ref(GST_MINI_OBJECT_CAST(toc)) @@ -150,6 +167,8 @@ void gst_toc_dump (GstToc *toc); #define gst_toc_make_writable(toc) (GstToc*)gst_mini_object_make_writable(GST_MINI_OBJECT_CAST(toc)) /* functions to create, ref and unref/free TOC entries */ + +GST_EXPORT GstTocEntry * gst_toc_entry_new (GstTocEntryType type, const gchar *uid); #define gst_toc_entry_ref(entry) (GstTocEntry*)gst_mini_object_ref(GST_MINI_OBJECT_CAST(entry)) @@ -157,31 +176,56 @@ GstTocEntry * gst_toc_entry_new (GstTocEntryType type, const gch #define gst_toc_entry_copy(entry) (GstTocEntry*)gst_mini_object_copy(GST_MINI_OBJECT_CAST(entry)) #define gst_toc_entry_make_writable(entry) (GstTocEntry*)gst_mini_object_make_writable(GST_MINI_OBJECT_CAST(entry)) +GST_EXPORT GstTocEntry * gst_toc_find_entry (const GstToc *toc, const gchar *uid); +GST_EXPORT GstTocEntryType gst_toc_entry_get_entry_type (const GstTocEntry *entry); + +GST_EXPORT const gchar * gst_toc_entry_get_uid (const GstTocEntry *entry); -void gst_toc_entry_append_sub_entry (GstTocEntry *entry, GstTocEntry *subentry); +GST_EXPORT +void gst_toc_entry_append_sub_entry (GstTocEntry *entry, GstTocEntry *subentry); + +GST_EXPORT GList * gst_toc_entry_get_sub_entries (const GstTocEntry *entry); +GST_EXPORT void gst_toc_entry_set_tags (GstTocEntry *entry, GstTagList *tags); + +GST_EXPORT void gst_toc_entry_merge_tags (GstTocEntry *entry, GstTagList *tags, GstTagMergeMode mode); + +GST_EXPORT GstTagList * gst_toc_entry_get_tags (const GstTocEntry *entry); +GST_EXPORT gboolean gst_toc_entry_is_alternative (const GstTocEntry *entry); + +GST_EXPORT gboolean gst_toc_entry_is_sequence (const GstTocEntry *entry); +GST_EXPORT void gst_toc_entry_set_start_stop_times (GstTocEntry *entry, gint64 start, gint64 stop); + +GST_EXPORT gboolean gst_toc_entry_get_start_stop_times (const GstTocEntry *entry, gint64 *start, gint64 *stop); +GST_EXPORT void gst_toc_entry_set_loop (GstTocEntry *entry, GstTocLoopType loop_type, gint repeat_count); + +GST_EXPORT gboolean gst_toc_entry_get_loop (const GstTocEntry *entry, GstTocLoopType *loop_type, gint *repeat_count); +GST_EXPORT GstToc * gst_toc_entry_get_toc (GstTocEntry *entry); + +GST_EXPORT GstTocEntry * gst_toc_entry_get_parent (GstTocEntry *entry); +GST_EXPORT const gchar * gst_toc_entry_type_get_nick (GstTocEntryType type); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC diff --git a/gst/gsttocsetter.h b/gst/gsttocsetter.h index 885525cf45..fbf160f212 100644 --- a/gst/gsttocsetter.h +++ b/gst/gsttocsetter.h @@ -54,12 +54,16 @@ struct _GstTocSetterInterface /* virtual table */ }; +GST_EXPORT GType gst_toc_setter_get_type (void); +GST_EXPORT void gst_toc_setter_reset (GstTocSetter *setter); +GST_EXPORT GstToc * gst_toc_setter_get_toc (GstTocSetter *setter); +GST_EXPORT void gst_toc_setter_set_toc (GstTocSetter *setter, GstToc *toc); G_END_DECLS diff --git a/gst/gsttracer.h b/gst/gsttracer.h index b77af068d4..58ad03f026 100644 --- a/gst/gsttracer.h +++ b/gst/gsttracer.h @@ -55,14 +55,18 @@ struct _GstTracerClass { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_tracer_get_type (void); #ifdef GST_USE_UNSTABLE_API +GST_EXPORT void gst_tracing_register_hook (GstTracer *tracer, const gchar *detail, GCallback func); /* tracing modules */ + +GST_EXPORT gboolean gst_tracer_register (GstPlugin * plugin, const gchar * name, GType type); #endif diff --git a/gst/gsttracerfactory.h b/gst/gsttracerfactory.h index aa0963530e..a08f22fa4d 100644 --- a/gst/gsttracerfactory.h +++ b/gst/gsttracerfactory.h @@ -48,7 +48,10 @@ typedef struct _GstTracerFactoryClass GstTracerFactoryClass; /* tracering interface */ +GST_EXPORT GType gst_tracer_factory_get_type (void); + +GST_EXPORT GList * gst_tracer_factory_get_list (void); diff --git a/gst/gsttracerrecord.h b/gst/gsttracerrecord.h index e7df578292..56d1b7ac35 100644 --- a/gst/gsttracerrecord.h +++ b/gst/gsttracerrecord.h @@ -37,6 +37,7 @@ typedef struct _GstTracerRecordClass GstTracerRecordClass; #define GST_TRACER_RECORD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_TRACER_RECORD,GstTracerRecordClass)) #define GST_TRACER_RECORD_CAST(obj) ((GstTracerRecord *)(obj)) +GST_EXPORT GType gst_tracer_record_get_type (void); #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC @@ -87,9 +88,11 @@ typedef enum #ifdef GST_USE_UNSTABLE_API +GST_EXPORT GstTracerRecord * gst_tracer_record_new (const gchar * name, const gchar * firstfield, ...); #ifndef GST_DISABLE_GST_DEBUG +GST_EXPORT void gst_tracer_record_log (GstTracerRecord *self, ...); #else #define gst_tracer_record_log(...) G_STMT_START {} G_STMT_END diff --git a/gst/gsttypefind.h b/gst/gsttypefind.h index 4431b1c398..80ae4dfe20 100644 --- a/gst/gsttypefind.h +++ b/gst/gsttypefind.h @@ -91,25 +91,30 @@ struct _GstTypeFind { gpointer _gst_reserved[GST_PADDING]; }; +GST_EXPORT GType gst_type_find_get_type (void); /* typefind function interface */ + +GST_EXPORT const guint8 * gst_type_find_peek (GstTypeFind * find, gint64 offset, guint size); - +GST_EXPORT void gst_type_find_suggest (GstTypeFind * find, guint probability, GstCaps * caps); - +GST_EXPORT void gst_type_find_suggest_simple (GstTypeFind * find, guint probability, const char * media_type, const char * fieldname, ...); - +GST_EXPORT guint64 gst_type_find_get_length (GstTypeFind * find); /* registration interface */ + +GST_EXPORT gboolean gst_type_find_register (GstPlugin * plugin, const gchar * name, guint rank, diff --git a/gst/gsttypefindfactory.h b/gst/gsttypefindfactory.h index 02573f70b9..a124829321 100644 --- a/gst/gsttypefindfactory.h +++ b/gst/gsttypefindfactory.h @@ -46,14 +46,22 @@ typedef struct _GstTypeFindFactoryClass GstTypeFindFactoryClass; /* typefinding interface */ +GST_EXPORT GType gst_type_find_factory_get_type (void); +GST_EXPORT GList * gst_type_find_factory_get_list (void); +GST_EXPORT const gchar * const * gst_type_find_factory_get_extensions (GstTypeFindFactory *factory); +GST_EXPORT GstCaps * gst_type_find_factory_get_caps (GstTypeFindFactory *factory); + +GST_EXPORT gboolean gst_type_find_factory_has_function (GstTypeFindFactory *factory); + +GST_EXPORT void gst_type_find_factory_call_function (GstTypeFindFactory *factory, GstTypeFind *find); diff --git a/gst/gsturi.h b/gst/gsturi.h index 0ed3baa131..c58c43af9c 100644 --- a/gst/gsturi.h +++ b/gst/gsturi.h @@ -31,6 +31,7 @@ G_BEGIN_DECLS +GST_EXPORT GQuark gst_uri_error_quark (void); /** @@ -128,31 +129,51 @@ struct _GstURIHandlerInterface { /* general URI functions */ +GST_EXPORT gboolean gst_uri_protocol_is_valid (const gchar * protocol); + +GST_EXPORT gboolean gst_uri_protocol_is_supported (const GstURIType type, const gchar *protocol); +GST_EXPORT gboolean gst_uri_is_valid (const gchar * uri); + +GST_EXPORT gchar * gst_uri_get_protocol (const gchar * uri) G_GNUC_MALLOC; + +GST_EXPORT gboolean gst_uri_has_protocol (const gchar * uri, const gchar * protocol); +GST_EXPORT gchar * gst_uri_get_location (const gchar * uri) G_GNUC_MALLOC; + +GST_EXPORT gchar * gst_uri_construct (const gchar * protocol, const gchar * location) G_GNUC_MALLOC; - +GST_EXPORT gchar * gst_filename_to_uri (const gchar * filename, GError ** error) G_GNUC_MALLOC; - +GST_EXPORT GstElement * gst_element_make_from_uri (const GstURIType type, const gchar * uri, const gchar * elementname, GError ** error) G_GNUC_MALLOC; /* accessing the interface */ + +GST_EXPORT GType gst_uri_handler_get_type (void); +GST_EXPORT GstURIType gst_uri_handler_get_uri_type (GstURIHandler * handler); + +GST_EXPORT const gchar * const * gst_uri_handler_get_protocols (GstURIHandler * handler); + +GST_EXPORT gchar * gst_uri_handler_get_uri (GstURIHandler * handler) G_GNUC_MALLOC; + +GST_EXPORT gboolean gst_uri_handler_set_uri (GstURIHandler * handler, const gchar * uri, GError ** error); @@ -182,12 +203,15 @@ typedef struct _GstUri GstUri; #define GST_URI_NO_PORT 0 /* used by GST_TYPE_URI */ + +GST_EXPORT GType gst_uri_get_type (void); /* * Method definitions. */ +GST_EXPORT GstUri * gst_uri_new (const gchar * scheme, const gchar * userinfo, const gchar * host, @@ -195,6 +219,7 @@ GstUri * gst_uri_new (const gchar * scheme, const gchar * path, const gchar * query, const gchar * fragment) G_GNUC_MALLOC; +GST_EXPORT GstUri * gst_uri_new_with_base (GstUri * base, const gchar * scheme, const gchar * userinfo, @@ -203,53 +228,120 @@ GstUri * gst_uri_new_with_base (GstUri * base, const gchar * path, const gchar * query, const gchar * fragment) G_GNUC_MALLOC; +GST_EXPORT GstUri * gst_uri_from_string (const gchar * uri) G_GNUC_MALLOC; + +GST_EXPORT GstUri * gst_uri_from_string_with_base (GstUri * base, const gchar * uri) G_GNUC_MALLOC; +GST_EXPORT gboolean gst_uri_equal (const GstUri * first, const GstUri * second); +GST_EXPORT GstUri * gst_uri_join (GstUri * base_uri, GstUri * ref_uri) G_GNUC_WARN_UNUSED_RESULT; +GST_EXPORT gchar * gst_uri_join_strings (const gchar * base_uri, const gchar * ref_uri) G_GNUC_MALLOC; +GST_EXPORT gboolean gst_uri_is_writable (const GstUri * uri); + +GST_EXPORT GstUri * gst_uri_make_writable (GstUri * uri) G_GNUC_WARN_UNUSED_RESULT; + +GST_EXPORT gchar * gst_uri_to_string (const GstUri * uri) G_GNUC_MALLOC; + +GST_EXPORT gboolean gst_uri_is_normalized (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_normalize (GstUri * uri); + +GST_EXPORT const gchar * gst_uri_get_scheme (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_scheme (GstUri * uri, const gchar * scheme); + +GST_EXPORT const gchar * gst_uri_get_userinfo (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_userinfo (GstUri * uri, const gchar * userinfo); + +GST_EXPORT const gchar * gst_uri_get_host (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_host (GstUri * uri, const gchar * host); + +GST_EXPORT guint gst_uri_get_port (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_port (GstUri * uri, guint port); + +GST_EXPORT gchar * gst_uri_get_path (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_path (GstUri * uri, const gchar * path); + +GST_EXPORT gchar * gst_uri_get_path_string (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_path_string (GstUri * uri, const gchar * path); + +GST_EXPORT GList * gst_uri_get_path_segments (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_path_segments (GstUri * uri, GList * path_segments); + +GST_EXPORT gboolean gst_uri_append_path (GstUri * uri, const gchar * relative_path); +GST_EXPORT gboolean gst_uri_append_path_segment (GstUri * uri, const gchar * path_segment); +GST_EXPORT gchar * gst_uri_get_query_string (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_query_string (GstUri * uri, const gchar * query); + +GST_EXPORT GHashTable * gst_uri_get_query_table (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_query_table (GstUri * uri, GHashTable * query_table); +GST_EXPORT gboolean gst_uri_set_query_value (GstUri * uri, const gchar * query_key, const gchar * query_value); +GST_EXPORT gboolean gst_uri_remove_query_key (GstUri * uri, const gchar * query_key); + +GST_EXPORT gboolean gst_uri_query_has_key (const GstUri * uri, const gchar * query_key); + +GST_EXPORT const gchar * gst_uri_get_query_value (const GstUri * uri, const gchar * query_key); + +GST_EXPORT GList * gst_uri_get_query_keys (const GstUri * uri); + +GST_EXPORT const gchar * gst_uri_get_fragment (const GstUri * uri); + +GST_EXPORT gboolean gst_uri_set_fragment (GstUri * uri, const gchar * fragment); + +GST_EXPORT GHashTable * gst_uri_get_media_fragment_table (const GstUri * uri); /** diff --git a/gst/gstutils.h b/gst/gstutils.h index b56ad093c3..ae72c4a54e 100644 --- a/gst/gstutils.h +++ b/gst/gstutils.h @@ -32,15 +32,25 @@ G_BEGIN_DECLS +GST_EXPORT void gst_util_set_value_from_string (GValue *value, const gchar *value_str); + +GST_EXPORT void gst_util_set_object_arg (GObject *object, const gchar *name, const gchar *value); + +GST_EXPORT gboolean gst_util_set_object_array (GObject * object, const gchar * name, const GValueArray * array); +GST_EXPORT gboolean gst_util_get_object_array (GObject * object, const gchar * name, GValueArray ** array); +GST_EXPORT void gst_util_dump_mem (const guchar *mem, guint size); +GST_EXPORT guint64 gst_util_gdouble_to_guint64 (gdouble value) G_GNUC_CONST; + +GST_EXPORT gdouble gst_util_guint64_to_gdouble (guint64 value) G_GNUC_CONST; /** @@ -68,17 +78,31 @@ gdouble gst_util_guint64_to_gdouble (guint64 value) G_GNUC_CONST; #define gst_guint64_to_gdouble(value) ((gdouble) (value)) #endif +GST_EXPORT guint64 gst_util_uint64_scale (guint64 val, guint64 num, guint64 denom); + +GST_EXPORT guint64 gst_util_uint64_scale_round (guint64 val, guint64 num, guint64 denom); + +GST_EXPORT guint64 gst_util_uint64_scale_ceil (guint64 val, guint64 num, guint64 denom); +GST_EXPORT guint64 gst_util_uint64_scale_int (guint64 val, gint num, gint denom); + +GST_EXPORT guint64 gst_util_uint64_scale_int_round (guint64 val, gint num, gint denom); + +GST_EXPORT guint64 gst_util_uint64_scale_int_ceil (guint64 val, gint num, gint denom); +GST_EXPORT guint32 gst_util_seqnum_next (void); + +GST_EXPORT gint32 gst_util_seqnum_compare (guint32 s1, guint32 s2); +GST_EXPORT guint gst_util_group_id_next (void); /** @@ -919,112 +943,185 @@ GST_WRITE_DOUBLE_BE(guint8 *data, gdouble num) #define GST_ROUND_DOWN_N(num,align) (((num) & ~((align) - 1))) +GST_EXPORT void gst_object_default_error (GstObject * source, const GError * error, const gchar * debug); /* element functions */ + +GST_EXPORT void gst_element_create_all_pads (GstElement *element); + +GST_EXPORT GstPad* gst_element_get_compatible_pad (GstElement *element, GstPad *pad, GstCaps *caps); - +GST_EXPORT GstPadTemplate* gst_element_get_compatible_pad_template (GstElement *element, GstPadTemplate *compattempl); +GST_EXPORT const gchar* gst_element_state_get_name (GstState state); + +GST_EXPORT const gchar * gst_element_state_change_return_get_name (GstStateChangeReturn state_ret); +GST_EXPORT gboolean gst_element_link (GstElement *src, GstElement *dest); + +GST_EXPORT gboolean gst_element_link_many (GstElement *element_1, GstElement *element_2, ...) G_GNUC_NULL_TERMINATED; +GST_EXPORT gboolean gst_element_link_filtered (GstElement * src, GstElement * dest, GstCaps *filter); +GST_EXPORT void gst_element_unlink (GstElement *src, GstElement *dest); + +GST_EXPORT void gst_element_unlink_many (GstElement *element_1, GstElement *element_2, ...) G_GNUC_NULL_TERMINATED; - +GST_EXPORT gboolean gst_element_link_pads (GstElement *src, const gchar *srcpadname, GstElement *dest, const gchar *destpadname); +GST_EXPORT gboolean gst_element_link_pads_full (GstElement *src, const gchar *srcpadname, GstElement *dest, const gchar *destpadname, GstPadLinkCheck flags); +GST_EXPORT void gst_element_unlink_pads (GstElement *src, const gchar *srcpadname, GstElement *dest, const gchar *destpadname); - +GST_EXPORT gboolean gst_element_link_pads_filtered (GstElement * src, const gchar * srcpadname, GstElement * dest, const gchar * destpadname, GstCaps *filter); - +GST_EXPORT gboolean gst_element_seek_simple (GstElement *element, GstFormat format, GstSeekFlags seek_flags, gint64 seek_pos); /* util elementfactory functions */ + +GST_EXPORT gboolean gst_element_factory_can_sink_all_caps (GstElementFactory *factory, const GstCaps *caps); + +GST_EXPORT gboolean gst_element_factory_can_src_all_caps (GstElementFactory *factory, const GstCaps *caps); + +GST_EXPORT gboolean gst_element_factory_can_sink_any_caps (GstElementFactory *factory, const GstCaps *caps); + +GST_EXPORT gboolean gst_element_factory_can_src_any_caps (GstElementFactory *factory, const GstCaps *caps); /* util query functions */ + +GST_EXPORT gboolean gst_element_query_position (GstElement *element, GstFormat format, gint64 *cur); + +GST_EXPORT gboolean gst_element_query_duration (GstElement *element, GstFormat format, gint64 *duration); + +GST_EXPORT gboolean gst_element_query_convert (GstElement *element, GstFormat src_format, gint64 src_val, GstFormat dest_format, gint64 *dest_val); /* pad functions */ + +GST_EXPORT void gst_pad_use_fixed_caps (GstPad *pad); + +GST_EXPORT GstElement* gst_pad_get_parent_element (GstPad *pad); /* util query functions */ + +GST_EXPORT gboolean gst_pad_proxy_query_accept_caps (GstPad *pad, GstQuery *query); + +GST_EXPORT gboolean gst_pad_proxy_query_caps (GstPad *pad, GstQuery *query); +GST_EXPORT gboolean gst_pad_query_position (GstPad *pad, GstFormat format, gint64 *cur); + +GST_EXPORT gboolean gst_pad_query_duration (GstPad *pad, GstFormat format, gint64 *duration); + +GST_EXPORT gboolean gst_pad_query_convert (GstPad *pad, GstFormat src_format, gint64 src_val, GstFormat dest_format, gint64 *dest_val); +GST_EXPORT GstCaps * gst_pad_query_caps (GstPad *pad, GstCaps *filter); + +GST_EXPORT gboolean gst_pad_query_accept_caps (GstPad *pad, GstCaps *caps); +GST_EXPORT gboolean gst_pad_link_maybe_ghosting (GstPad *src, GstPad *sink); +GST_EXPORT gboolean gst_pad_link_maybe_ghosting_full (GstPad *src, GstPad *sink, GstPadLinkCheck flags); - +GST_EXPORT gboolean gst_pad_peer_query_position (GstPad *pad, GstFormat format, gint64 *cur); + +GST_EXPORT gboolean gst_pad_peer_query_duration (GstPad *pad, GstFormat format, gint64 *duration); + +GST_EXPORT gboolean gst_pad_peer_query_convert (GstPad *pad, GstFormat src_format, gint64 src_val, GstFormat dest_format, gint64 *dest_val); +GST_EXPORT GstCaps * gst_pad_peer_query_caps (GstPad * pad, GstCaps *filter); + +GST_EXPORT gboolean gst_pad_peer_query_accept_caps (GstPad * pad, GstCaps *caps); +GST_EXPORT gchar * gst_pad_create_stream_id (GstPad * pad, GstElement * parent, const gchar *stream_id) G_GNUC_MALLOC; + +GST_EXPORT gchar * gst_pad_create_stream_id_printf (GstPad * pad, GstElement * parent, const gchar *stream_id, ...) G_GNUC_PRINTF (3, 4) G_GNUC_MALLOC; + +GST_EXPORT gchar * gst_pad_create_stream_id_printf_valist (GstPad * pad, GstElement * parent, const gchar *stream_id, va_list var_args) G_GNUC_PRINTF (3, 0) G_GNUC_MALLOC; +GST_EXPORT gchar * gst_pad_get_stream_id (GstPad * pad); + +GST_EXPORT GstStream * gst_pad_get_stream (GstPad * pad); /* bin functions */ + +GST_EXPORT void gst_bin_add_many (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED; + +GST_EXPORT void gst_bin_remove_many (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED; + +GST_EXPORT GstPad * gst_bin_find_unlinked_pad (GstBin *bin, GstPadDirection direction); +GST_EXPORT gboolean gst_bin_sync_children_states (GstBin *bin); /* parse utility functions */ + +GST_EXPORT GstElement * gst_parse_bin_from_description (const gchar * bin_description, gboolean ghost_unlinked_pads, GError ** err); - +GST_EXPORT GstElement * gst_parse_bin_from_description_full (const gchar * bin_description, gboolean ghost_unlinked_pads, GstParseContext * context, GstParseFlags flags, GError ** err); - +GST_EXPORT GstClockTime gst_util_get_timestamp (void); /** @@ -1041,24 +1138,36 @@ typedef enum { GST_SEARCH_MODE_AFTER } GstSearchMode; +GST_EXPORT gpointer gst_util_array_binary_search (gpointer array, guint num_elements, gsize element_size, GCompareDataFunc search_func, GstSearchMode mode, gconstpointer search_data, gpointer user_data); /* fraction operations */ + +GST_EXPORT gint gst_util_greatest_common_divisor (gint a, gint b); + +GST_EXPORT gint64 gst_util_greatest_common_divisor_int64 (gint64 a, gint64 b); +GST_EXPORT void gst_util_fraction_to_double (gint src_n, gint src_d, gdouble *dest); + +GST_EXPORT void gst_util_double_to_fraction (gdouble src, gint *dest_n, gint *dest_d); +GST_EXPORT gboolean gst_util_fraction_multiply (gint a_n, gint a_d, gint b_n, gint b_d, gint *res_n, gint *res_d); +GST_EXPORT gboolean gst_util_fraction_add (gint a_n, gint a_d, gint b_n, gint b_d, gint *res_n, gint *res_d); +GST_EXPORT gint gst_util_fraction_compare (gint a_n, gint a_d, gint b_n, gint b_d); +GST_EXPORT gboolean gst_calculate_linear_regression (const GstClockTime * xy, GstClockTime * temp, guint n, GstClockTime * m_num, GstClockTime * m_denom, diff --git a/gst/gstvalue.h b/gst/gstvalue.h index 90bb4d9aec..1c8b460657 100644 --- a/gst/gstvalue.h +++ b/gst/gstvalue.h @@ -435,174 +435,289 @@ struct _GstValueTable { gpointer _gst_reserved [GST_PADDING]; }; +GST_EXPORT GType gst_int_range_get_type (void); + +GST_EXPORT GType gst_int64_range_get_type (void); + +GST_EXPORT GType gst_double_range_get_type (void); + +GST_EXPORT GType gst_fraction_range_get_type (void); + +GST_EXPORT GType gst_fraction_get_type (void); + +GST_EXPORT GType gst_value_list_get_type (void); + +GST_EXPORT GType gst_value_array_get_type (void); + +GST_EXPORT GType gst_bitmask_get_type (void); + +GST_EXPORT GType gst_flagset_get_type (void); /* Hide this compatibility type from introspection */ #ifndef __GI_SCANNER__ +GST_EXPORT GType gst_g_thread_get_type (void); #endif +GST_EXPORT void gst_value_register (const GstValueTable *table); + +GST_EXPORT void gst_value_init_and_copy (GValue *dest, const GValue *src); - +GST_EXPORT gchar * gst_value_serialize (const GValue *value) G_GNUC_MALLOC; + +GST_EXPORT gboolean gst_value_deserialize (GValue *dest, const gchar *src); /* list */ + +GST_EXPORT void gst_value_list_append_value (GValue *value, const GValue *append_value); +GST_EXPORT void gst_value_list_append_and_take_value (GValue *value, GValue *append_value); +GST_EXPORT void gst_value_list_prepend_value (GValue *value, const GValue *prepend_value); +GST_EXPORT void gst_value_list_concat (GValue *dest, const GValue *value1, const GValue *value2); +GST_EXPORT void gst_value_list_merge (GValue *dest, const GValue *value1, const GValue *value2); +GST_EXPORT guint gst_value_list_get_size (const GValue *value); + +GST_EXPORT const GValue * gst_value_list_get_value (const GValue *value, guint index); /* array */ + +GST_EXPORT void gst_value_array_append_value (GValue *value, const GValue *append_value); +GST_EXPORT void gst_value_array_append_and_take_value (GValue *value, GValue *append_value); +GST_EXPORT void gst_value_array_prepend_value (GValue *value, const GValue *prepend_value); +GST_EXPORT guint gst_value_array_get_size (const GValue *value); + +GST_EXPORT const GValue * gst_value_array_get_value (const GValue *value, guint index); /* int range */ + +GST_EXPORT void gst_value_set_int_range (GValue *value, gint start, gint end); +GST_EXPORT void gst_value_set_int_range_step (GValue *value, gint start, gint end, gint step); +GST_EXPORT gint gst_value_get_int_range_min (const GValue *value); + +GST_EXPORT gint gst_value_get_int_range_max (const GValue *value); + +GST_EXPORT gint gst_value_get_int_range_step (const GValue *value); /* int64 range */ + +GST_EXPORT void gst_value_set_int64_range (GValue *value, gint64 start, gint64 end); +GST_EXPORT void gst_value_set_int64_range_step (GValue *value, gint64 start, gint64 end, gint64 step); +GST_EXPORT gint64 gst_value_get_int64_range_min (const GValue *value); + +GST_EXPORT gint64 gst_value_get_int64_range_max (const GValue *value); + +GST_EXPORT gint64 gst_value_get_int64_range_step (const GValue *value); /* double range */ + +GST_EXPORT void gst_value_set_double_range (GValue *value, gdouble start, gdouble end); +GST_EXPORT gdouble gst_value_get_double_range_min (const GValue *value); + +GST_EXPORT gdouble gst_value_get_double_range_max (const GValue *value); /* caps */ + +GST_EXPORT const GstCaps * gst_value_get_caps (const GValue *value); + +GST_EXPORT void gst_value_set_caps (GValue *value, const GstCaps *caps); /* structure */ + +GST_EXPORT const GstStructure * gst_value_get_structure (const GValue *value); + +GST_EXPORT void gst_value_set_structure (GValue *value, const GstStructure *structure); /* caps features */ + +GST_EXPORT const GstCapsFeatures * gst_value_get_caps_features (const GValue *value); + +GST_EXPORT void gst_value_set_caps_features (GValue *value, const GstCapsFeatures *features); /* fraction */ + +GST_EXPORT void gst_value_set_fraction (GValue *value, gint numerator, gint denominator); +GST_EXPORT gint gst_value_get_fraction_numerator (const GValue *value); + +GST_EXPORT gint gst_value_get_fraction_denominator (const GValue *value); + +GST_EXPORT gboolean gst_value_fraction_multiply (GValue *product, const GValue *factor1, const GValue *factor2); +GST_EXPORT gboolean gst_value_fraction_subtract (GValue * dest, const GValue * minuend, const GValue * subtrahend); /* fraction range */ + +GST_EXPORT void gst_value_set_fraction_range (GValue *value, const GValue *start, const GValue *end); +GST_EXPORT void gst_value_set_fraction_range_full (GValue *value, gint numerator_start, gint denominator_start, gint numerator_end, gint denominator_end); +GST_EXPORT const GValue *gst_value_get_fraction_range_min (const GValue *value); + +GST_EXPORT const GValue *gst_value_get_fraction_range_max (const GValue *value); /* bitmask */ + +GST_EXPORT guint64 gst_value_get_bitmask (const GValue *value); + +GST_EXPORT void gst_value_set_bitmask (GValue *value, guint64 bitmask); /* flagset */ + +GST_EXPORT void gst_value_set_flagset (GValue * value, guint flags, guint mask); + +GST_EXPORT guint gst_value_get_flagset_flags (const GValue * value); + +GST_EXPORT guint gst_value_get_flagset_mask (const GValue * value); /* compare */ + +GST_EXPORT gint gst_value_compare (const GValue *value1, const GValue *value2); +GST_EXPORT gboolean gst_value_can_compare (const GValue *value1, const GValue *value2); +GST_EXPORT gboolean gst_value_is_subset (const GValue *value1, const GValue *value2); /* union */ + +GST_EXPORT gboolean gst_value_union (GValue *dest, const GValue *value1, const GValue *value2); +GST_EXPORT gboolean gst_value_can_union (const GValue *value1, const GValue *value2); /* intersection */ + +GST_EXPORT gboolean gst_value_intersect (GValue *dest, const GValue *value1, const GValue *value2); +GST_EXPORT gboolean gst_value_can_intersect (const GValue *value1, const GValue *value2); /* subtraction */ + +GST_EXPORT gboolean gst_value_subtract (GValue *dest, const GValue *minuend, const GValue *subtrahend); +GST_EXPORT gboolean gst_value_can_subtract (const GValue *minuend, const GValue *subtrahend); /* fixation */ + +GST_EXPORT gboolean gst_value_is_fixed (const GValue *value); + +GST_EXPORT gboolean gst_value_fixate (GValue *dest, const GValue *src); /* Flagset registration wrapper */ + +GST_EXPORT GType gst_flagset_register (GType flags_type); G_END_DECLS