latency: Dot not override already stored events
[platform/upstream/gstreamer.git] / gst / gstregistrybinary.h
index 8a1cf3f..22e56d1 100644 (file)
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* SUGGESTIONS AND TODO :
 ** ====================
 ** - Use a compressed registry, but would induce performance loss
 ** - Encrypt the registry, for security purpose, but would also reduce performances
-** - Also have a non-mmap based cache reading (work with file descriptors)
 */
 
 #ifndef __GST_REGISTRYBINARY_H__
 #include <gst/gstpad.h>
 #include <gst/gstregistry.h>
 
+G_BEGIN_DECLS
+
 /*
  * GST_MAGIC_BINARY_REGISTRY_STR:
  *
  * A tag, written at the beginning of the file
- */ 
+ */
 #define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d"
 /*
  * GST_MAGIC_BINARY_REGISTRY_LEN:
  *
  * length of the header tag.
- */ 
-#define GST_MAGIC_BINARY_REGISTRY_LEN (4)
-/*
- * GST_MAGIC_BINARY_VERSION_LEN:
- *
- * length of the version string.
- */ 
-#define GST_MAGIC_BINARY_VERSION_LEN (64)
-
-typedef struct _GstBinaryRegistryMagic
-{
-  gchar magic[GST_MAGIC_BINARY_REGISTRY_LEN];
-  gchar version[GST_MAGIC_BINARY_VERSION_LEN];
-} GstBinaryRegistryMagic;
-
-/*
- * we reference strings directly from the plugins and in this case set CONST to
- * avoid freeing them
  */
-enum {
-  GST_BINARY_REGISTRY_FLAG_NONE = 0,
-  GST_BINARY_REGISTRY_FLAG_CONST = 1
-};
-
-/*
- * GstBinaryChunk:
- *
- * Header for binary blobs
- */
-typedef struct _GstBinaryChunk
-{
-  gpointer data;
-  guint size;
-  guint flags;
-  gboolean align;
-} GstBinaryChunk;
+#define GST_MAGIC_BINARY_REGISTRY_LEN (4)
 
 /*
- * GstBinaryPluginElement:
- *
- * @nfeatures: says how many GstBinaryPluginFeature structures we will have
- * right after the structure itself.
+ * GST_MAGIC_BINARY_VERSION_STR:
  *
- * A structure containing (staticely) every information needed for a plugin
+ * The current version of the binary registry format.
+ * This _must_ be updated whenever the registry format changes,
+ * we currently use the core version where this change happened.
  */
-
-typedef struct _GstBinaryPluginElement
-{
-  gulong file_size;
-  gulong file_mtime;
-
-  guint nfeatures;
-} GstBinaryPluginElement;
-
+#define GST_MAGIC_BINARY_VERSION_STR "1.3.0"
 
 /*
- * GstBinaryPluginFeature:
- * @npadtemplates: stores the number of GstBinaryPadTemplate structures
- * following the structure
- * @ninterfaces: stores the number of interface names following the structure
- * @nuriprotocols: stores the number of protocol strings following the structure
+ * GST_MAGIC_BINARY_VERSION_LEN:
  *
- * A structure containing the plugin features
+ * Maximum length of the version string in the header.
  */
-typedef struct _GstBinaryPluginFeature
-{
-  gulong rank;
-
-  guint npadtemplates;
-  guint ninterfaces;
-  guint nuriprotocols;
-} GstBinaryPluginFeature;
-
+#define GST_MAGIC_BINARY_VERSION_LEN (64)
 
-/*
- * GstBinaryPadTemplate:
- *
- * A structure containing the static pad templates of a plugin feature 
- */
-typedef struct _GstBinaryPadTemplate
+typedef struct _GstBinaryRegistryMagic
 {
-  guint direction;                    /* Either 0:"sink" or 1:"src" */
-  GstPadPresence presence;
-} GstBinaryPadTemplate;
-
+  gchar magic[GST_MAGIC_BINARY_REGISTRY_LEN];
+  gchar version[GST_MAGIC_BINARY_VERSION_LEN];
+} GstBinaryRegistryMagic;
 
-/* Function prototypes */
-gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location);
-gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location);
+G_END_DECLS
 
 #endif /* !__GST_REGISTRYBINARY_H__ */