Blame gst/gst_private.h

Packit f546b1
/* GStreamer
Packit f546b1
 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
Packit f546b1
 *                    2000 Wim Taymans <wtay@chello.be>
Packit f546b1
 *
Packit f546b1
 * gst_private.h: Private header for within libgst
Packit f546b1
 *
Packit f546b1
 * This library is free software; you can redistribute it and/or
Packit f546b1
 * modify it under the terms of the GNU Library General Public
Packit f546b1
 * License as published by the Free Software Foundation; either
Packit f546b1
 * version 2 of the License, or (at your option) any later version.
Packit f546b1
 *
Packit f546b1
 * This library is distributed in the hope that it will be useful,
Packit f546b1
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit f546b1
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit f546b1
 * Library General Public License for more details.
Packit f546b1
 *
Packit f546b1
 * You should have received a copy of the GNU Library General Public
Packit f546b1
 * License along with this library; if not, write to the
Packit f546b1
 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Packit f546b1
 * Boston, MA 02110-1301, USA.
Packit f546b1
 */
Packit f546b1
Packit f546b1
#ifndef __GST_PRIVATE_H__
Packit f546b1
#define __GST_PRIVATE_H__
Packit f546b1
Packit f546b1
#ifdef HAVE_CONFIG_H
Packit f546b1
# ifndef GST_LICENSE   /* don't include config.h twice, it has no guards */
Packit f546b1
#  include "config.h"
Packit f546b1
# endif
Packit f546b1
#endif
Packit f546b1
Packit f546b1
/* This needs to be before glib.h, since it might be used in inline
Packit f546b1
 * functions */
Packit f546b1
extern const char             g_log_domain_gstreamer[];
Packit f546b1
Packit f546b1
#include <glib.h>
Packit f546b1
Packit f546b1
#include <stdlib.h>
Packit f546b1
#include <string.h>
Packit f546b1
Packit f546b1
/* Needed for GST_API */
Packit f546b1
#include "gst/gstconfig.h"
Packit f546b1
Packit f546b1
/* Needed for GstRegistry * */
Packit f546b1
#include "gstregistry.h"
Packit f546b1
#include "gststructure.h"
Packit f546b1
Packit f546b1
/* we need this in pretty much all files */
Packit f546b1
#include "gstinfo.h"
Packit f546b1
Packit f546b1
/* for the flags in the GstPluginDep structure below */
Packit f546b1
#include "gstplugin.h"
Packit f546b1
Packit f546b1
/* for the pad cache */
Packit f546b1
#include "gstpad.h"
Packit f546b1
Packit f546b1
/* for GstElement */
Packit f546b1
#include "gstelement.h"
Packit f546b1
Packit f546b1
/* for GstDeviceProvider */
Packit f546b1
#include "gstdeviceprovider.h"
Packit f546b1
Packit f546b1
/* for GstToc */
Packit f546b1
#include "gsttoc.h"
Packit f546b1
Packit f546b1
#include "gstdatetime.h"
Packit f546b1
Packit f546b1
#include "gsttracerutils.h"
Packit f546b1
Packit f546b1
G_BEGIN_DECLS
Packit f546b1
Packit f546b1
/* used by gstparse.c and grammar.y */
Packit f546b1
struct _GstParseContext {
Packit f546b1
  GList * missing_elements;
Packit f546b1
};
Packit f546b1
Packit f546b1
/* used by gstplugin.c and gstregistrybinary.c */
Packit f546b1
typedef struct {
Packit f546b1
  /* details registered via gst_plugin_add_dependency() */
Packit f546b1
  GstPluginDependencyFlags  flags;
Packit f546b1
  gchar **env_vars;
Packit f546b1
  gchar **paths;
Packit f546b1
  gchar **names;
Packit f546b1
Packit f546b1
  /* information saved from the last time the plugin was loaded (-1 = unset) */
Packit f546b1
  guint   env_hash;  /* hash of content of environment variables in env_vars */
Packit f546b1
  guint   stat_hash; /* hash of stat() on all relevant files and directories */
Packit f546b1
} GstPluginDep;
Packit f546b1
Packit f546b1
struct _GstPluginPrivate {
Packit f546b1
  GList *deps;    /* list of GstPluginDep structures */
Packit f546b1
  GstStructure *cache_data;
Packit f546b1
};
Packit f546b1
Packit f546b1
/* FIXME: could rename all priv_gst_* functions to __gst_* now */
Packit f546b1
G_GNUC_INTERNAL  gboolean priv_gst_plugin_loading_have_whitelist (void);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  guint32  priv_gst_plugin_loading_get_whitelist_hash (void);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  gboolean priv_gst_plugin_desc_is_whitelisted (const GstPluginDesc * desc,
Packit f546b1
                                                               const gchar   * filename);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  gboolean _priv_gst_in_valgrind (void);
Packit f546b1
Packit f546b1
/* init functions called from gst_init(). */
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_quarks_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_mini_object_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_memory_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_allocator_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_buffer_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_buffer_list_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_structure_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_caps_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_caps_features_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_event_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_format_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_message_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_meta_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_plugin_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_query_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_sample_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_tag_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_value_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_debug_init (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_context_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_toc_initialize (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_date_time_initialize (void);
Packit f546b1
Packit f546b1
/* cleanup functions called from gst_deinit(). */
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_allocator_cleanup (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_caps_features_cleanup (void);
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_caps_cleanup (void);
Packit f546b1
Packit f546b1
/* called from gst_task_cleanup_all(). */
Packit f546b1
G_GNUC_INTERNAL  void  _priv_gst_element_cleanup (void);
Packit f546b1
Packit f546b1
/* Private registry functions */
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean _priv_gst_registry_remove_cache_plugins (GstRegistry *registry);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  void _priv_gst_registry_cleanup (void);
Packit f546b1
Packit f546b1
GST_API
Packit f546b1
gboolean _gst_plugin_loader_client_run (void);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL  GstPlugin * _priv_gst_plugin_load_file_for_registry (const gchar *filename,
Packit f546b1
                                                                      GstRegistry * registry,
Packit f546b1
                                                                      GError** error);
Packit f546b1
Packit f546b1
/* GValue serialization/deserialization */
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL const char * _priv_gst_value_gtype_to_abbr (GType type);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL gboolean _priv_gst_value_parse_string (gchar * s, gchar ** end, gchar ** next, gboolean unescape);
Packit f546b1
G_GNUC_INTERNAL gboolean _priv_gst_value_parse_simple_string (gchar * str, gchar ** end);
Packit f546b1
G_GNUC_INTERNAL gboolean _priv_gst_value_parse_value (gchar * str, gchar ** after, GValue * value, GType default_type);
Packit f546b1
G_GNUC_INTERNAL gchar * _priv_gst_value_serialize_any_list (const GValue * value, const gchar * begin, const gchar * end, gboolean print_type);
Packit f546b1
Packit f546b1
/* Used in GstBin for manual state handling */
Packit f546b1
G_GNUC_INTERNAL  void _priv_gst_element_state_changed (GstElement *element,
Packit f546b1
                      GstState oldstate, GstState newstate, GstState pending);
Packit f546b1
Packit f546b1
/* used in both gststructure.c and gstcaps.c; numbers are completely made up */
Packit f546b1
#define STRUCTURE_ESTIMATED_STRING_LEN(s) (16 + gst_structure_n_fields(s) * 22)
Packit f546b1
#define FEATURES_ESTIMATED_STRING_LEN(s) (16 + gst_caps_features_get_size(s) * 14)
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean  priv_gst_structure_append_to_gstring (const GstStructure * structure,
Packit f546b1
                                                GString            * s);
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean priv__gst_structure_append_template_to_gstring (GQuark field_id,
Packit f546b1
                                                        const GValue *value,
Packit f546b1
                                                        gpointer user_data);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
void priv_gst_caps_features_append_to_gstring (const GstCapsFeatures * features, GString *s);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean priv_gst_structure_parse_name (gchar * str, gchar **start, gchar ** end, gchar ** next);
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean priv_gst_structure_parse_fields (gchar *str, gchar ** end, GstStructure *structure);
Packit f546b1
Packit f546b1
/* used in gstvalue.c and gststructure.c */
Packit f546b1
Packit f546b1
#define GST_WRAPPED_PTR_FORMAT     "p\aa"
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gchar *priv_gst_string_take_and_wrap (gchar * s);
Packit f546b1
Packit f546b1
/* registry cache backends */
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean		priv_gst_registry_binary_read_cache	(GstRegistry * registry, const char *location);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gboolean		priv_gst_registry_binary_write_cache	(GstRegistry * registry, GList * plugins, const char *location);
Packit f546b1
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
void      __gst_element_factory_add_static_pad_template (GstElementFactory    * elementfactory,
Packit f546b1
                                                         GstStaticPadTemplate * templ);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
void      __gst_element_factory_add_interface           (GstElementFactory    * elementfactory,
Packit f546b1
                                                         const gchar          * interfacename);
Packit f546b1
Packit f546b1
/* used in gstvalue.c and gststructure.c */
Packit f546b1
#define GST_ASCII_IS_STRING(c) (g_ascii_isalnum((c)) || ((c) == '_') || \
Packit f546b1
    ((c) == '-') || ((c) == '+') || ((c) == '/') || ((c) == ':') || \
Packit f546b1
    ((c) == '.'))
Packit f546b1
Packit f546b1
/* This is only meant for internal uses */
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gint __gst_date_time_compare (const GstDateTime * dt1, const GstDateTime * dt2);
Packit f546b1
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
gchar * __gst_date_time_serialize (GstDateTime * datetime, gboolean with_usecs);
Packit f546b1
Packit f546b1
/* For use in gstdebugutils */
Packit f546b1
G_GNUC_INTERNAL
Packit f546b1
GstCapsFeatures * __gst_caps_get_features_unchecked (const GstCaps * caps, guint idx);
Packit f546b1
Packit f546b1
#ifndef GST_DISABLE_REGISTRY
Packit f546b1
/* Secret variable to initialise gst without registry cache */
Packit f546b1
Packit f546b1
GST_API gboolean _gst_disable_registry_cache;
Packit f546b1
#endif
Packit f546b1
Packit f546b1
/* Secret variable to let the plugin scanner use the same base path
Packit f546b1
 * as the main application in order to determine dependencies */
Packit f546b1
GST_API gchar *_gst_executable_path;
Packit f546b1
Packit f546b1
/* provide inline gst_g_value_get_foo_unchecked(), used in gststructure.c */
Packit f546b1
#define DEFINE_INLINE_G_VALUE_GET_UNCHECKED(ret_type,name_type,v_field) \
Packit f546b1
static inline ret_type                                                  \
Packit f546b1
gst_g_value_get_##name_type##_unchecked (const GValue *value)           \
Packit f546b1
{                                                                       \
Packit f546b1
  return value->data[0].v_field;                                        \
Packit f546b1
}
Packit f546b1
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(gboolean,boolean,v_int)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(gint,int,v_int)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(guint,uint,v_uint)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(gint64,int64,v_int64)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(guint64,uint64,v_uint64)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(gfloat,float,v_float)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(gdouble,double,v_double)
Packit f546b1
DEFINE_INLINE_G_VALUE_GET_UNCHECKED(const gchar *,string,v_pointer)
Packit f546b1
Packit f546b1
Packit f546b1
/*** debugging categories *****************************************************/
Packit f546b1
Packit f546b1
#ifndef GST_REMOVE_GST_DEBUG
Packit f546b1
Packit f546b1
GST_API GstDebugCategory *GST_CAT_GST_INIT;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_MEMORY;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PARENTAGE;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_STATES;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_SCHEDULING;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_BUFFER;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_BUFFER_LIST;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_BUS;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_CAPS;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_CLOCK;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_ELEMENT_PADS;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PADS;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PERFORMANCE;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PIPELINE;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PLUGIN_LOADING;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PLUGIN_INFO;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PROPERTIES;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_NEGOTIATION;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_REFCOUNTING;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_ERROR_SYSTEM;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_EVENT;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_MESSAGE;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PARAMS;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_CALL_TRACE;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_SIGNAL;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_PROBE;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_REGISTRY;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_QOS;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_META;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_LOCKING;
Packit f546b1
GST_API GstDebugCategory *GST_CAT_CONTEXT;
Packit f546b1
Packit f546b1
/* Categories that should be completely private to
Packit f546b1
 * libgstreamer should be done like this: */
Packit f546b1
#define GST_CAT_POLL _priv_GST_CAT_POLL
Packit f546b1
extern GstDebugCategory *_priv_GST_CAT_POLL;
Packit f546b1
Packit f546b1
#define GST_CAT_PROTECTION _priv_GST_CAT_PROTECTION
Packit f546b1
extern GstDebugCategory *_priv_GST_CAT_PROTECTION;
Packit f546b1
Packit f546b1
extern GstClockTime _priv_gst_start_time;
Packit f546b1
Packit f546b1
#else
Packit f546b1
Packit f546b1
#define GST_CAT_GST_INIT         NULL
Packit f546b1
#define GST_CAT_AUTOPLUG         NULL
Packit f546b1
#define GST_CAT_AUTOPLUG_ATTEMPT NULL
Packit f546b1
#define GST_CAT_PARENTAGE        NULL
Packit f546b1
#define GST_CAT_STATES           NULL
Packit f546b1
#define GST_CAT_SCHEDULING       NULL
Packit f546b1
#define GST_CAT_DATAFLOW         NULL
Packit f546b1
#define GST_CAT_BUFFER           NULL
Packit f546b1
#define GST_CAT_BUFFER_LIST      NULL
Packit f546b1
#define GST_CAT_BUS              NULL
Packit f546b1
#define GST_CAT_CAPS             NULL
Packit f546b1
#define GST_CAT_CLOCK            NULL
Packit f546b1
#define GST_CAT_ELEMENT_PADS     NULL
Packit f546b1
#define GST_CAT_PADS             NULL
Packit f546b1
#define GST_CAT_PERFORMANCE      NULL
Packit f546b1
#define GST_CAT_PIPELINE         NULL
Packit f546b1
#define GST_CAT_PLUGIN_LOADING   NULL
Packit f546b1
#define GST_CAT_PLUGIN_INFO      NULL
Packit f546b1
#define GST_CAT_PROPERTIES       NULL
Packit f546b1
#define GST_CAT_NEGOTIATION      NULL
Packit f546b1
#define GST_CAT_REFCOUNTING      NULL
Packit f546b1
#define GST_CAT_ERROR_SYSTEM     NULL
Packit f546b1
#define GST_CAT_EVENT            NULL
Packit f546b1
#define GST_CAT_MESSAGE          NULL
Packit f546b1
#define GST_CAT_PARAMS           NULL
Packit f546b1
#define GST_CAT_CALL_TRACE       NULL
Packit f546b1
#define GST_CAT_SIGNAL           NULL
Packit f546b1
#define GST_CAT_PROBE            NULL
Packit f546b1
#define GST_CAT_REGISTRY         NULL
Packit f546b1
#define GST_CAT_QOS              NULL
Packit f546b1
#define GST_CAT_TYPES            NULL
Packit f546b1
#define GST_CAT_POLL             NULL
Packit f546b1
#define GST_CAT_META             NULL
Packit f546b1
#define GST_CAT_LOCKING          NULL
Packit f546b1
#define GST_CAT_CONTEXT          NULL
Packit f546b1
#define GST_CAT_PROTECTION       NULL
Packit f546b1
Packit f546b1
#endif
Packit f546b1
Packit f546b1
#ifdef GST_DISABLE_GST_DEBUG
Packit f546b1
/* for _gst_element_error_printf */
Packit f546b1
#define __gst_vasprintf __gst_info_fallback_vasprintf
Packit f546b1
int __gst_vasprintf (char **result, char const *format, va_list args);
Packit f546b1
#endif
Packit f546b1
Packit f546b1
/**** objects made opaque until the private bits have been made private ****/
Packit f546b1
Packit f546b1
#include <gmodule.h>
Packit f546b1
#include <time.h> /* time_t */
Packit f546b1
#include <sys/types.h> /* off_t */
Packit f546b1
#include <sys/stat.h> /* off_t */
Packit f546b1
Packit f546b1
typedef struct _GstPluginPrivate GstPluginPrivate;
Packit f546b1
Packit f546b1
struct _GstPlugin {
Packit f546b1
  GstObject       object;
Packit f546b1
Packit f546b1
  /*< private >*/
Packit f546b1
  GstPluginDesc	desc;
Packit f546b1
Packit f546b1
  gchar *	filename;
Packit f546b1
  gchar *	basename;       /* base name (non-dir part) of plugin path */
Packit f546b1
Packit f546b1
  GModule *	module;		/* contains the module if plugin is loaded */
Packit f546b1
Packit f546b1
  off_t         file_size;
Packit f546b1
  time_t        file_mtime;
Packit f546b1
  gboolean      registered;     /* TRUE when the registry has seen a filename
Packit f546b1
                                 * that matches the plugin's basename */
Packit f546b1
Packit f546b1
  GstPluginPrivate *priv;
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstPluginClass {
Packit f546b1
  GstObjectClass  object_class;
Packit f546b1
Packit f546b1
  /*< private >*/
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstPluginFeature {
Packit f546b1
  GstObject      object;
Packit f546b1
Packit f546b1
  /*< private >*/
Packit f546b1
  gboolean       loaded;
Packit f546b1
  guint          rank;
Packit f546b1
Packit f546b1
  const gchar   *plugin_name;
Packit f546b1
  GstPlugin     *plugin;      /* weak ref */
Packit f546b1
Packit f546b1
  /*< private >*/
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstPluginFeatureClass {
Packit f546b1
  GstObjectClass        parent_class;
Packit f546b1
Packit f546b1
  /*< private >*/
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
#include "gsttypefind.h"
Packit f546b1
Packit f546b1
struct _GstTypeFindFactory {
Packit f546b1
  GstPluginFeature              feature;
Packit f546b1
  /* <private> */
Packit f546b1
Packit f546b1
  GstTypeFindFunction           function;
Packit f546b1
  gchar **                      extensions;
Packit f546b1
  GstCaps *                     caps;
Packit f546b1
Packit f546b1
  gpointer                      user_data;
Packit f546b1
  GDestroyNotify                user_data_notify;
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstTypeFindFactoryClass {
Packit f546b1
  GstPluginFeatureClass         parent;
Packit f546b1
  /* <private> */
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstTracerFactory {
Packit f546b1
  GstPluginFeature              feature;
Packit f546b1
  /* <private> */
Packit f546b1
Packit f546b1
  GType                         type;
Packit f546b1
Packit f546b1
  /*
Packit f546b1
  gpointer                      user_data;
Packit f546b1
  GDestroyNotify                user_data_notify;
Packit f546b1
  */
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstTracerFactoryClass {
Packit f546b1
  GstPluginFeatureClass         parent;
Packit f546b1
  /* <private> */
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstElementFactory {
Packit f546b1
  GstPluginFeature      parent;
Packit f546b1
Packit f546b1
  GType                 type;                   /* unique GType of element or 0 if not loaded */
Packit f546b1
Packit f546b1
  gpointer              metadata;
Packit f546b1
Packit f546b1
  GList *               staticpadtemplates;     /* GstStaticPadTemplate list */
Packit f546b1
  guint                 numpadtemplates;
Packit f546b1
Packit f546b1
  /* URI interface stuff */
Packit f546b1
  GstURIType            uri_type;
Packit f546b1
  gchar **              uri_protocols;
Packit f546b1
Packit f546b1
  GList *               interfaces;             /* interface type names this element implements */
Packit f546b1
Packit f546b1
  /*< private >*/
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstElementFactoryClass {
Packit f546b1
  GstPluginFeatureClass parent_class;
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstDeviceProviderFactory {
Packit f546b1
  GstPluginFeature           feature;
Packit f546b1
  /* <private> */
Packit f546b1
Packit f546b1
  GType                      type;              /* unique GType the device factory or 0 if not loaded */
Packit f546b1
Packit f546b1
  volatile GstDeviceProvider *provider;
Packit f546b1
  gpointer                   metadata;
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstDeviceProviderFactoryClass {
Packit f546b1
  GstPluginFeatureClass         parent;
Packit f546b1
  /* <private> */
Packit f546b1
Packit f546b1
  gpointer _gst_reserved[GST_PADDING];
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstDynamicTypeFactory {
Packit f546b1
  GstPluginFeature           feature;
Packit f546b1
Packit f546b1
  GType                      type; /* GType of the type, when loaded. 0 if not */
Packit f546b1
};
Packit f546b1
Packit f546b1
struct _GstDynamicTypeFactoryClass {
Packit f546b1
  GstPluginFeatureClass      parent;
Packit f546b1
};
Packit f546b1
Packit f546b1
/* privat flag used by GstBus / GstMessage */
Packit f546b1
#define GST_MESSAGE_FLAG_ASYNC_DELIVERY (GST_MINI_OBJECT_FLAG_LAST << 0)
Packit f546b1
Packit f546b1
G_END_DECLS
Packit f546b1
#endif /* __GST_PRIVATE_H__ */