2 * Copyright (C) 2006 Josep Torra <josep@fluendo.com>
3 * Copyright (C) 2006 Mathieu Garcia <matthieu@fluendo.com>
4 * Copyright (C) 2006 Stefan Kost <ensonic@sonicpulse.de>
6 * gstregistrybinary.h: Header for registry handling
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
23 #ifndef __GST_REGISTRYCHUNKS_H__
24 #define __GST_REGISTRYCHUNKS_H__
26 #include <gst/gstpad.h>
27 #include <gst/gstregistry.h>
30 * we reference strings directly from the plugins and in this case set CONST to
34 GST_REGISTRY_CHUNK_FLAG_NONE = 0,
35 GST_REGISTRY_CHUNK_FLAG_CONST = 1
41 * Header for binary blobs
43 typedef struct _GstRegistryChunk
52 * GstRegistryChunkPluginElement:
54 * @n_deps: Says how many dependency structures follows.
56 * @nfeatures: says how many binary plugin feature structures we will have
57 * right after the structure itself.
59 * A structure containing (staticely) every information needed for a plugin
62 typedef struct _GstRegistryChunkPluginElement
70 } GstRegistryChunkPluginElement;
72 /* GstRegistryChunkDep:
74 typedef struct _GstRegistryChunkDep
83 } GstRegistryChunkDep;
86 * GstRegistryChunkPluginFeature:
87 * @rank: rank of the feature
89 * A structure containing the plugin features
91 typedef struct _GstRegistryChunkPluginFeature
94 } GstRegistryChunkPluginFeature;
97 * GstRegistryChunkElementFactory:
98 * @npadtemplates: stores the number of GstRegistryChunkPadTemplate structures
99 * following the structure
100 * @ninterfaces: stores the number of interface names following the structure
101 * @nuriprotocols: stores the number of protocol strings following the structure
103 * A structure containing the element factory fields
105 typedef struct _GstRegistryChunkElementFactory
107 GstRegistryChunkPluginFeature plugin_feature;
112 } GstRegistryChunkElementFactory;
115 * GstRegistryChunkTypeFindFactory:
116 * @nextensions: stores the number of typefind extensions
118 * A structure containing the element factory fields
120 typedef struct _GstRegistryChunkTypeFindFactory
122 GstRegistryChunkPluginFeature plugin_feature;
125 } GstRegistryChunkTypeFindFactory;
128 * GstRegistryChunkPadTemplate:
130 * A structure containing the static pad templates of a plugin feature
132 typedef struct _GstRegistryChunkPadTemplate
134 guint direction; /* Either 0:"sink" or 1:"src" */
135 GstPadPresence presence;
136 } GstRegistryChunkPadTemplate;
141 _priv_gst_registry_chunks_save_plugin (GList ** list, GstRegistry * registry,
145 _priv_gst_registry_chunks_load_plugin (GstRegistry * registry, gchar ** in,
146 gchar *end, GstPlugin **out_plugin);
150 #endif /* __GST_REGISTRYCHUNKS_H__ */