renamed gsttag -> gsttaglist, gsttaginterface -> gsttagsetter inlined docs for gsttrace, gsttrashstack
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/tmpl/.cvsignore:
* docs/gst/tmpl/gsttrace.sgml:
* docs/gst/tmpl/gsttrashstack.sgml:
* gst/Makefile.am:
* gst/gst.h:
* gst/gstelement.h:
* gst/gstevent.h:
* gst/gstmessage.c:
* gst/gstmessage.h:
* gst/gsttag.c:
* gst/gsttag.h:
* gst/gsttaginterface.c:
* gst/gsttaginterface.h:
* gst/gsttaglist.c:
* gst/gsttaglist.h:
* gst/gsttagsetter.c:
* gst/gsttagsetter.h:
* gst/gsttrace.c:
* gst/gsttrace.h:
* gst/gsttrashstack.c:
renamed gsttag -> gsttaglist, gsttaginterface -> gsttagsetter
inlined docs for gsttrace, gsttrashstack
diff --git a/ChangeLog b/ChangeLog
index 83a90ca..0f5687f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,31 @@
2005-09-07 Stefan Kost <ensonic@users.sf.net>
+ * docs/gst/gstreamer-docs.sgml:
+ * docs/gst/tmpl/.cvsignore:
+ * docs/gst/tmpl/gsttrace.sgml:
+ * docs/gst/tmpl/gsttrashstack.sgml:
+ * gst/Makefile.am:
+ * gst/gst.h:
+ * gst/gstelement.h:
+ * gst/gstevent.h:
+ * gst/gstmessage.c:
+ * gst/gstmessage.h:
+ * gst/gsttag.c:
+ * gst/gsttag.h:
+ * gst/gsttaginterface.c:
+ * gst/gsttaginterface.h:
+ * gst/gsttaglist.c:
+ * gst/gsttaglist.h:
+ * gst/gsttagsetter.c:
+ * gst/gsttagsetter.h:
+ * gst/gsttrace.c:
+ * gst/gsttrace.h:
+ * gst/gsttrashstack.c:
+ renamed gsttag -> gsttaglist, gsttaginterface -> gsttagsetter
+ inlined docs for gsttrace, gsttrashstack
+
+2005-09-07 Stefan Kost <ensonic@users.sf.net>
+
* gst/Makefile.am:
* gst/elements/gstbufferstore.h:
* gst/elements/gsttypefindelement.c:
diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml
index 2154dc6..e84fe9f 100644
--- a/docs/gst/gstreamer-docs.sgml
+++ b/docs/gst/gstreamer-docs.sgml
@@ -165,6 +165,7 @@
&GstMacros;
&GstMemChunk;
&GstTrace;
+ &GstTrashStack;
</chapter>
@@ -213,19 +214,20 @@
</chapter>
<chapter id="gstreamer-base">
- <title>GStreamer Base Classes</title>
+ <title>GStreamer Base and Utillity Classes</title>
<para>
libgstbase-&GST_MAJORMINOR;.so provides some base classes to be extended
- by elements.
+ by elements and utillity classes that are most useful for plugin developers.
</para>
- &GstAdapter;
&GstBaseSrc;
&GstBaseSink;
&GstBaseTransform;
- &GstCollectPads;
&GstPushSrc;
+ &GstAdapter;
+ &GstCollectPads;
+
</chapter>
diff --git a/docs/gst/tmpl/.gitignore b/docs/gst/tmpl/.gitignore
index 500d16b..037375c 100644
--- a/docs/gst/tmpl/.gitignore
+++ b/docs/gst/tmpl/.gitignore
@@ -44,6 +44,8 @@
gsttaglist.sgml
gsttagsetter.sgml
gsttask.sgml
+gsttrace.sgml
+gsttrashstack.sgml
gsttypefind.sgml
gsttypefindfactory.sgml
gsturihandler.sgml
diff --git a/docs/gst/tmpl/gsttrace.sgml b/docs/gst/tmpl/gsttrace.sgml
deleted file mode 100644
index 0f69f42..0000000
--- a/docs/gst/tmpl/gsttrace.sgml
+++ /dev/null
@@ -1,241 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-GstTrace
-
-<!-- ##### SECTION Short_Description ##### -->
-Tracing functionality
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-Tracing functionality
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT GstTrace ##### -->
-<para>
-
-</para>
-
-@filename:
-@fd:
-@buf:
-@bufsize:
-@bufoffset:
-
-<!-- ##### STRUCT GstTraceEntry ##### -->
-<para>
-
-</para>
-
-@timestamp:
-@sequence:
-@data:
-@message:
-
-<!-- ##### FUNCTION gst_trace_new ##### -->
-<para>
-
-</para>
-
-@filename:
-@size:
-@Returns:
-
-
-<!-- ##### FUNCTION gst_trace_destroy ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### FUNCTION gst_trace_flush ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### FUNCTION gst_trace_text_flush ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### MACRO gst_trace_get_size ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### MACRO gst_trace_get_offset ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### MACRO gst_trace_get_remaining ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### FUNCTION gst_trace_set_default ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### FUNCTION gst_trace_read_tsc ##### -->
-<para>
-
-</para>
-
-@dst:
-
-
-<!-- ##### ENUM GstAllocTraceFlags ##### -->
-<para>
-Flags indicating which tracing feature to enable.
-</para>
-
-@GST_ALLOC_TRACE_LIVE: Trace number of non-freed memory
-@GST_ALLOC_TRACE_MEM_LIVE: trace pointers of unfreed memory
-
-<!-- ##### STRUCT GstAllocTrace ##### -->
-<para>
-The main tracing object
-</para>
-
-@name: The name of the tracing object
-@flags: Flags for this object
-@live: counter for live memory
-@mem_live: list with pointers to unfreed memory
-
-<!-- ##### FUNCTION gst_alloc_trace_available ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gst_alloc_trace_list ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gst_alloc_trace_live_all ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gst_alloc_trace_print_all ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION gst_alloc_trace_set_flags_all ##### -->
-<para>
-
-</para>
-
-@flags:
-
-
-<!-- ##### FUNCTION gst_alloc_trace_get ##### -->
-<para>
-
-</para>
-
-@name:
-@Returns:
-
-
-<!-- ##### FUNCTION gst_alloc_trace_print ##### -->
-<para>
-
-</para>
-
-@trace:
-
-
-<!-- ##### FUNCTION gst_alloc_trace_print_live ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION gst_alloc_trace_set_flags ##### -->
-<para>
-
-</para>
-
-@trace:
-@flags:
-
-
-<!-- ##### MACRO gst_alloc_trace_register ##### -->
-<para>
-Register a new alloc tracer with the given name
-</para>
-
-@name: The name of the tracer object
-
-
-<!-- ##### MACRO gst_alloc_trace_new ##### -->
-<para>
-Use the tracer to trace a new memory allocation
-</para>
-
-@trace: The tracer to use
-@mem: The memory allocated
-
-
-<!-- ##### MACRO gst_alloc_trace_free ##### -->
-<para>
-Trace a memory free operation
-</para>
-
-@trace: The tracer to use
-@mem: The memory that is freed
-
-
-<!-- ##### MACRO gst_trace_add_entry ##### -->
-<para>
-
-</para>
-
-@trace:
-@seq:
-@data:
-@msg:
-
-
diff --git a/docs/gst/tmpl/gsttrashstack.sgml b/docs/gst/tmpl/gsttrashstack.sgml
deleted file mode 100644
index 27eeeeb..0000000
--- a/docs/gst/tmpl/gsttrashstack.sgml
+++ /dev/null
@@ -1,54 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-gsttrashstack
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT GstTrashStack ##### -->
-<para>
-
-</para>
-
-@head:
-@count:
-@lock:
-
-<!-- ##### STRUCT GstTrashStackElement ##### -->
-<para>
-
-</para>
-
-@next:
-
-<!-- ##### TYPEDEF gst_vgpointer ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF gst_vgulong ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO SMP_LOCK ##### -->
-<para>
-
-</para>
-
-
-
diff --git a/gst/Makefile.am b/gst/Makefile.am
index b4c1d48..b71b32b 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -109,8 +109,8 @@
gstqueue.c \
gststructure.c \
gstsystemclock.c \
- gsttag.c \
- gsttaginterface.c \
+ gsttaglist.c \
+ gsttagsetter.c \
gsttask.c \
$(GST_TRACE_SRC) \
gsttrashstack.c \
@@ -186,8 +186,8 @@
gstqueue.h \
gststructure.h \
gstsystemclock.h \
- gsttag.h \
- gsttaginterface.h \
+ gsttaglist.h \
+ gsttagsetter.h \
gsttask.h \
gsttrace.h \
gsttrashstack.h \
diff --git a/gst/gst.h b/gst/gst.h
index 715291d..1d0eb47 100644
--- a/gst/gst.h
+++ b/gst/gst.h
@@ -53,8 +53,8 @@
#include <gst/gstqueryutils.h>
#include <gst/gststructure.h>
#include <gst/gstsystemclock.h>
-#include <gst/gsttag.h>
-#include <gst/gsttaginterface.h>
+#include <gst/gsttaglist.h>
+#include <gst/gsttagsetter.h>
#include <gst/gsttask.h>
#include <gst/gsttrace.h>
#include <gst/gsttypefind.h>
diff --git a/gst/gstelement.h b/gst/gstelement.h
index e6c7dfa..22f9794 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -50,7 +50,7 @@
#include <gst/gstindex.h>
#include <gst/gstiterator.h>
#include <gst/gstmessage.h>
-#include <gst/gsttag.h>
+#include <gst/gsttaglist.h>
G_BEGIN_DECLS
diff --git a/gst/gstevent.h b/gst/gstevent.h
index 5c99ce2..d235266 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -30,7 +30,7 @@
#include <gst/gstobject.h>
#include <gst/gstclock.h>
#include <gst/gststructure.h>
-#include <gst/gsttag.h>
+#include <gst/gsttaglist.h>
G_BEGIN_DECLS
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 86c6179..29a267d 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -39,7 +39,7 @@
#include "gstinfo.h"
#include "gstmemchunk.h"
#include "gstmessage.h"
-#include "gsttag.h"
+#include "gsttaglist.h"
#include "gstutils.h"
diff --git a/gst/gstmessage.h b/gst/gstmessage.h
index ac6ebbc..6325a5e 100644
--- a/gst/gstmessage.h
+++ b/gst/gstmessage.h
@@ -71,7 +71,7 @@
#include <gst/gstminiobject.h>
#include <gst/gstobject.h>
#include <gst/gstelement.h>
-#include <gst/gsttag.h>
+#include <gst/gsttaglist.h>
#include <gst/gststructure.h>
#define GST_MESSAGE_TRACE_NAME "GstMessage"
diff --git a/gst/gsttag.c b/gst/gsttag.c
deleted file mode 100644
index 3e54176..0000000
--- a/gst/gsttag.c
+++ /dev/null
@@ -1,949 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *
- * gsttag.c: tag support (aka metadata)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * 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.
- */
-/**
- * SECTION:gsttaglist
- * @short_description: List of tags and values used to describe media metadata
- *
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "gst_private.h"
-#include "gst-i18n-lib.h"
-#include "gsttag.h"
-#include "gstinfo.h"
-#include "gstvalue.h"
-
-#include <gobject/gvaluecollector.h>
-#include <string.h>
-
-#define GST_TAG_IS_VALID(tag) (gst_tag_get_info (tag) != NULL)
-
-typedef struct
-{
- GType type; /* type the data is in */
-
- gchar *nick; /* translated name */
- gchar *blurb; /* translated description of type */
-
- GstTagMergeFunc merge_func; /* functions to merge the values */
- GstTagFlag flag; /* type of tag */
-}
-GstTagInfo;
-
-#define TAGLIST "taglist"
-static GQuark gst_tag_list_quark;
-static GMutex *__tag_mutex;
-static GHashTable *__tags;
-
-#define TAG_LOCK g_mutex_lock (__tag_mutex)
-#define TAG_UNLOCK g_mutex_unlock (__tag_mutex)
-
-GType
-gst_tag_list_get_type (void)
-{
- static GType _gst_tag_list_type;
-
- if (_gst_tag_list_type == 0) {
- _gst_tag_list_type = g_boxed_type_register_static ("GstTagList",
- (GBoxedCopyFunc) gst_tag_list_copy, (GBoxedFreeFunc) gst_tag_list_free);
-
-#if 0
- g_value_register_transform_func (_gst_tag_list_type, G_TYPE_STRING,
- _gst_structure_transform_to_string);
-#endif
- }
-
- return _gst_tag_list_type;
-}
-
-void
-_gst_tag_initialize (void)
-{
- gst_tag_list_quark = g_quark_from_static_string (TAGLIST);
- __tag_mutex = g_mutex_new ();
- __tags = g_hash_table_new (g_direct_hash, g_direct_equal);
- gst_tag_register (GST_TAG_TITLE, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("title"), _("commonly used title"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_ARTIST, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("artist"),
- _("person(s) responsible for the recording"),
- gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_ALBUM, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("album"),
- _("album containing this data"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_DATE, GST_TAG_FLAG_META, G_TYPE_UINT, /* FIXME: own data type for dates? */
- _("date"),
- _("date the data was created (in Julian calendar days)"), NULL);
- gst_tag_register (GST_TAG_GENRE, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("genre"),
- _("genre this data belongs to"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_COMMENT, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("comment"),
- _("free text commenting the data"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_TRACK_NUMBER, GST_TAG_FLAG_META,
- G_TYPE_UINT,
- _("track number"),
- _("track number inside a collection"), gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_TRACK_COUNT, GST_TAG_FLAG_META,
- G_TYPE_UINT,
- _("track count"),
- _("count of tracks inside collection this track belongs to"),
- gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_ALBUM_VOLUME_NUMBER, GST_TAG_FLAG_META,
- G_TYPE_UINT,
- _("disc number"),
- _("disc number inside a collection"), gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_ALBUM_VOLUME_COUNT, GST_TAG_FLAG_META,
- G_TYPE_UINT,
- _("disc count"),
- _("count of discs inside collection this disc belongs to"),
- gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_LOCATION, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("location"),
- _("original location of file as a URI"),
- gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_DESCRIPTION, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("description"),
- _("short text describing the content of the data"),
- gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_VERSION, GST_TAG_FLAG_META,
- G_TYPE_STRING, _("version"), _("version of this data"), NULL);
- gst_tag_register (GST_TAG_ISRC, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("ISRC"),
- _
- ("International Standard Recording Code - see http://www.ifpi.org/isrc/"),
- NULL);
- gst_tag_register (GST_TAG_ORGANIZATION, GST_TAG_FLAG_META, G_TYPE_STRING, _("organization"), _("organization"), /* FIXME */
- gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_COPYRIGHT, GST_TAG_FLAG_META,
- G_TYPE_STRING, _("copyright"), _("copyright notice of the data"), NULL);
- gst_tag_register (GST_TAG_CONTACT, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("contact"), _("contact information"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_LICENSE, GST_TAG_FLAG_META,
- G_TYPE_STRING, _("license"), _("license of data"), NULL);
- gst_tag_register (GST_TAG_PERFORMER, GST_TAG_FLAG_META,
- G_TYPE_STRING,
- _("performer"),
- _("person(s) performing"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_DURATION, GST_TAG_FLAG_DECODED,
- G_TYPE_UINT64,
- _("duration"), _("length in GStreamer time units (nanoseconds)"), NULL);
- gst_tag_register (GST_TAG_CODEC, GST_TAG_FLAG_ENCODED,
- G_TYPE_STRING,
- _("codec"),
- _("codec the data is stored in"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_VIDEO_CODEC, GST_TAG_FLAG_ENCODED,
- G_TYPE_STRING,
- _("video codec"), _("codec the video data is stored in"), NULL);
- gst_tag_register (GST_TAG_AUDIO_CODEC, GST_TAG_FLAG_ENCODED,
- G_TYPE_STRING,
- _("audio codec"), _("codec the audio data is stored in"), NULL);
- gst_tag_register (GST_TAG_BITRATE, GST_TAG_FLAG_ENCODED,
- G_TYPE_UINT, _("bitrate"), _("exact or average bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_NOMINAL_BITRATE, GST_TAG_FLAG_ENCODED,
- G_TYPE_UINT, _("nominal bitrate"), _("nominal bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_MINIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
- G_TYPE_UINT, _("minimum bitrate"), _("minimum bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_MAXIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
- G_TYPE_UINT, _("maximum bitrate"), _("maximum bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_ENCODER, GST_TAG_FLAG_ENCODED,
- G_TYPE_STRING,
- _("encoder"), _("encoder used to encode this stream"), NULL);
- gst_tag_register (GST_TAG_ENCODER_VERSION, GST_TAG_FLAG_ENCODED,
- G_TYPE_UINT,
- _("encoder version"),
- _("version of the encoder used to encode this stream"), NULL);
- gst_tag_register (GST_TAG_SERIAL, GST_TAG_FLAG_ENCODED,
- G_TYPE_UINT, _("serial"), _("serial number of track"), NULL);
- gst_tag_register (GST_TAG_TRACK_GAIN, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("replaygain track gain"), _("track gain in db"), NULL);
- gst_tag_register (GST_TAG_TRACK_PEAK, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("replaygain track peak"), _("peak of the track"), NULL);
- gst_tag_register (GST_TAG_ALBUM_GAIN, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("replaygain album gain"), _("album gain in db"), NULL);
- gst_tag_register (GST_TAG_ALBUM_PEAK, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("replaygain album peak"), _("peak of the album"), NULL);
- gst_tag_register (GST_TAG_LANGUAGE_CODE, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("language code"),
- _("language code for this stream, conforming to ISO-639-1"), NULL);
-}
-
-/**
- * gst_tag_merge_use_first:
- * @dest: uninitialized GValue to store result in
- * @src: GValue to copy from
- *
- * This is a convenience function for the func argument of gst_tag_register().
- * It creates a copy of the first value from the list.
- */
-void
-gst_tag_merge_use_first (GValue * dest, const GValue * src)
-{
- const GValue *ret = gst_value_list_get_value (src, 0);
-
- g_value_init (dest, G_VALUE_TYPE (ret));
- g_value_copy (ret, dest);
-}
-
-/**
- * gst_tag_merge_strings_with_comma:
- * @dest: uninitialized GValue to store result in
- * @src: GValue to copy from
- *
- * This is a convenience function for the func argument of gst_tag_register().
- * It concatenates all given strings using a comma. The tag must be registered
- * as a G_TYPE_STRING or this function will fail.
- */
-void
-gst_tag_merge_strings_with_comma (GValue * dest, const GValue * src)
-{
- GString *str;
- gint i, count;
-
- count = gst_value_list_get_size (src);
- str = g_string_new (g_value_get_string (gst_value_list_get_value (src, 0)));
- for (i = 1; i < count; i++) {
- /* seperator between two string */
- str = g_string_append (str, _(", "));
- str =
- g_string_append (str, g_value_get_string (gst_value_list_get_value (src,
- 1)));
- }
-
- g_value_init (dest, G_TYPE_STRING);
- g_value_set_string_take_ownership (dest, str->str);
- g_string_free (str, FALSE);
-}
-static GstTagInfo *
-gst_tag_lookup (GQuark entry)
-{
- GstTagInfo *ret;
-
- TAG_LOCK;
- ret = g_hash_table_lookup (__tags, GUINT_TO_POINTER (entry));
- TAG_UNLOCK;
-
- return ret;
-}
-
-/**
- * gst_tag_register:
- * @name: the name or identifier string
- * @flag: a flag describing the type of tag info
- * @type: the type this data is in
- * @nick: human-readable name
- * @blurb: a human-readable description about this tag
- * @func: function for merging multiple values of this tag
- *
- * Registers a new tag type for the use with GStreamer's type system. If a type
- * with that name is already registered, that one is used.
- * The old registration may have used a different type however. So don't rely
- * on your supplied values.
- * This function takes ownership of all supplied variables.
- */
-void
-gst_tag_register (const gchar * name, GstTagFlag flag, GType type,
- const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
-{
- GQuark key;
- GstTagInfo *info;
-
- g_return_if_fail (name != NULL);
- g_return_if_fail (nick != NULL);
- g_return_if_fail (blurb != NULL);
- g_return_if_fail (type != 0 && type != GST_TYPE_LIST);
-
- key = g_quark_from_string (name);
- info = gst_tag_lookup (key);
-
- if (info) {
- g_return_if_fail (info->type == type);
- return;
- }
-
- info = g_new (GstTagInfo, 1);
- info->flag = flag;
- info->type = type;
- info->nick = g_strdup (nick);
- info->blurb = g_strdup (blurb);
- info->merge_func = func;
-
- TAG_LOCK;
- g_hash_table_insert (__tags, GUINT_TO_POINTER (key), info);
- TAG_UNLOCK;
-}
-
-/**
- * gst_tag_exists:
- * @tag: name of the tag
- *
- * Checks if the given type is already registered.
- *
- * Returns: TRUE if the type is already registered
- */
-gboolean
-gst_tag_exists (const gchar * tag)
-{
- g_return_val_if_fail (tag != NULL, FALSE);
-
- return gst_tag_lookup (g_quark_from_string (tag)) != NULL;
-}
-
-/**
- * gst_tag_get_type:
- * @tag: the tag
- *
- * Gets the #GType used for this tag.
- *
- * Returns: the #GType of this tag
- */
-GType
-gst_tag_get_type (const gchar * tag)
-{
- GstTagInfo *info;
-
- g_return_val_if_fail (tag != NULL, 0);
- info = gst_tag_lookup (g_quark_from_string (tag));
- g_return_val_if_fail (info != NULL, 0);
-
- return info->type;
-}
-
-/**
- * gst_tag_get_nick
- * @tag: the tag
- *
- * Returns the human-readable name of this tag, You must not change or free
- * this string.
- *
- * Returns: the human-readable name of this tag
- */
-const gchar *
-gst_tag_get_nick (const gchar * tag)
-{
- GstTagInfo *info;
-
- g_return_val_if_fail (tag != NULL, NULL);
- info = gst_tag_lookup (g_quark_from_string (tag));
- g_return_val_if_fail (info != NULL, NULL);
-
- return info->nick;
-}
-
-/**
- * gst_tag_get_description:
- * @tag: the tag
- *
- * Returns the human-readable description of this tag, You must not change or
- * free this string.
- *
- * Returns: the human-readable description of this tag
- */
-const gchar *
-gst_tag_get_description (const gchar * tag)
-{
- GstTagInfo *info;
-
- g_return_val_if_fail (tag != NULL, NULL);
- info = gst_tag_lookup (g_quark_from_string (tag));
- g_return_val_if_fail (info != NULL, NULL);
-
- return info->blurb;
-}
-
-/**
- * gst_tag_get_flag:
- * @tag: the tag
- *
- * Gets the flag of @tag.
- *
- * Returns the flag of this tag.
- */
-GstTagFlag
-gst_tag_get_flag (const gchar * tag)
-{
- GstTagInfo *info;
-
- g_return_val_if_fail (tag != NULL, GST_TAG_FLAG_UNDEFINED);
- info = gst_tag_lookup (g_quark_from_string (tag));
- g_return_val_if_fail (info != NULL, GST_TAG_FLAG_UNDEFINED);
-
- return info->flag;
-}
-
-/**
- * gst_tag_is_fixed:
- * @tag: tag to check
- *
- * Checks if the given tag is fixed. A fixed tag can only contain one value.
- * Unfixed tags can contain lists of values.
- *
- * Returns: TRUE, if the given tag is fixed.
- */
-gboolean
-gst_tag_is_fixed (const gchar * tag)
-{
- GstTagInfo *info;
-
- g_return_val_if_fail (tag != NULL, FALSE);
- info = gst_tag_lookup (g_quark_from_string (tag));
- g_return_val_if_fail (info != NULL, FALSE);
-
- return info->merge_func == NULL;
-}
-
-/**
- * gst_tag_list_new:
- *
- * Creates a new empty GstTagList.
- *
- * Returns: An empty tag list
- */
-GstTagList *
-gst_tag_list_new (void)
-{
- return GST_TAG_LIST (gst_structure_new (TAGLIST, NULL));
-}
-
-/**
- * gst_is_tag_list:
- * @p: Object that might be a taglist
- *
- * Checks if the given pointer is a taglist.
- *
- * Returns: TRUE, if the given pointer is a taglist
- */
-gboolean
-gst_is_tag_list (gconstpointer p)
-{
- g_return_val_if_fail (p != NULL, FALSE);
-
- return ((GstStructure *) p)->name == gst_tag_list_quark;
-}
-typedef struct
-{
- GstStructure *list;
- GstTagMergeMode mode;
-}
-GstTagCopyData;
-static void
-gst_tag_list_add_value_internal (GstStructure * list, GstTagMergeMode mode,
- GQuark tag, const GValue * value)
-{
- GstTagInfo *info = gst_tag_lookup (tag);
- const GValue *value2;
-
- g_assert (info != NULL);
-
- if (info->merge_func
- && (value2 = gst_structure_id_get_value (list, tag)) != NULL) {
- GValue dest = { 0, };
-
- switch (mode) {
- case GST_TAG_MERGE_REPLACE_ALL:
- case GST_TAG_MERGE_REPLACE:
- gst_structure_id_set_value (list, tag, value);
- break;
- case GST_TAG_MERGE_PREPEND:
- gst_value_list_concat (&dest, value, value2);
- gst_structure_id_set_value (list, tag, &dest);
- g_value_unset (&dest);
- break;
- case GST_TAG_MERGE_APPEND:
- gst_value_list_concat (&dest, value2, value);
- gst_structure_id_set_value (list, tag, &dest);
- g_value_unset (&dest);
- break;
- case GST_TAG_MERGE_KEEP:
- case GST_TAG_MERGE_KEEP_ALL:
- break;
- default:
- g_assert_not_reached ();
- break;
- }
- } else {
- switch (mode) {
- case GST_TAG_MERGE_APPEND:
- case GST_TAG_MERGE_KEEP:
- if (gst_structure_id_get_value (list, tag) != NULL)
- break;
- /* fall through */
- case GST_TAG_MERGE_REPLACE_ALL:
- case GST_TAG_MERGE_REPLACE:
- case GST_TAG_MERGE_PREPEND:
- gst_structure_id_set_value (list, tag, value);
- break;
- case GST_TAG_MERGE_KEEP_ALL:
- break;
- default:
- g_assert_not_reached ();
- break;
- }
- }
-}
-static gboolean
-gst_tag_list_copy_foreach (GQuark tag, const GValue * value, gpointer user_data)
-{
- GstTagCopyData *copy = (GstTagCopyData *) user_data;
-
- gst_tag_list_add_value_internal (copy->list, copy->mode, tag, value);
-
- return TRUE;
-}
-
-/**
- * gst_tag_list_insert:
- * @into: list to merge into
- * @from: list to merge from
- * @mode: the mode to use
- *
- * Inserts the tags of the second list into the first list using the given mode.
- */
-void
-gst_tag_list_insert (GstTagList * into, const GstTagList * from,
- GstTagMergeMode mode)
-{
- GstTagCopyData data;
-
- g_return_if_fail (GST_IS_TAG_LIST (into));
- g_return_if_fail (GST_IS_TAG_LIST (from));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- data.list = (GstStructure *) into;
- data.mode = mode;
- if (mode == GST_TAG_MERGE_REPLACE_ALL) {
- gst_structure_remove_all_fields (data.list);
- }
- gst_structure_foreach ((GstStructure *) from, gst_tag_list_copy_foreach,
- &data);
-}
-
-/**
- * gst_tag_list_copy:
- * @list: list to copy
- *
- * Copies a given #GstTagList.
- *
- * Returns: copy of the given list
- */
-GstTagList *
-gst_tag_list_copy (const GstTagList * list)
-{
- g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
-
- return GST_TAG_LIST (gst_structure_copy ((GstStructure *) list));
-}
-
-/**
- * gst_tag_list_merge:
- * @list1: first list to merge
- * @list2: second list to merge
- * @mode: the mode to use
- *
- * Merges the two given lists into a new list. If one of the lists is NULL, a
- * copy of the other is returned. If both lists are NULL, NULL is returned.
- *
- * Returns: the new list
- */
-GstTagList *
-gst_tag_list_merge (const GstTagList * list1, const GstTagList * list2,
- GstTagMergeMode mode)
-{
- g_return_val_if_fail (list1 == NULL || GST_IS_TAG_LIST (list1), NULL);
- g_return_val_if_fail (list2 == NULL || GST_IS_TAG_LIST (list2), NULL);
- g_return_val_if_fail (GST_TAG_MODE_IS_VALID (mode), NULL);
-
- if (!list1 && !list2) {
- return NULL;
- } else if (!list1) {
- return gst_tag_list_copy (list2);
- } else if (!list2) {
- return gst_tag_list_copy (list1);
- } else {
- GstTagList *ret;
-
- ret = gst_tag_list_copy (list1);
- gst_tag_list_insert (ret, list2, mode);
- return ret;
- }
-}
-
-/**
- * gst_tag_list_free:
- * @list: the list to free
- *
- * Frees the given list and all associated values.
- */
-void
-gst_tag_list_free (GstTagList * list)
-{
- g_return_if_fail (GST_IS_TAG_LIST (list));
- gst_structure_free ((GstStructure *) list);
-}
-
-/**
- * gst_tag_list_get_tag_size:
- * @list: a taglist
- * @tag: the tag to query
- *
- * Checks how many value are stored in this tag list for the given tag.
- *
- * Returns: The number of tags stored
- */
-guint
-gst_tag_list_get_tag_size (const GstTagList * list, const gchar * tag)
-{
- const GValue *value;
-
- g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
-
- value = gst_structure_get_value ((GstStructure *) list, tag);
- if (value == NULL)
- return 0;
- if (G_VALUE_TYPE (value) != GST_TYPE_LIST)
- return 1;
-
- return gst_value_list_get_size (value);
-}
-
-/**
- * gst_tag_list_add:
- * @list: list to set tags in
- * @mode: the mode to use
- * @tag: tag
- * @...: NULL-terminated list of values to set
- *
- * Sets the values for the given tags using the specified mode.
- */
-void
-gst_tag_list_add (GstTagList * list, GstTagMergeMode mode, const gchar * tag,
- ...)
-{
- va_list args;
-
- g_return_if_fail (GST_IS_TAG_LIST (list));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
- g_return_if_fail (tag != NULL);
-
- va_start (args, tag);
- gst_tag_list_add_valist (list, mode, tag, args);
- va_end (args);
-}
-
-/**
- * gst_tag_list_add_values:
- * @list: list to set tags in
- * @mode: the mode to use
- * @tag: tag
- * @...: GValues to set
- *
- * Sets the GValues for the given tags using the specified mode.
- */
-void
-gst_tag_list_add_values (GstTagList * list, GstTagMergeMode mode,
- const gchar * tag, ...)
-{
- va_list args;
-
- g_return_if_fail (GST_IS_TAG_LIST (list));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
- g_return_if_fail (tag != NULL);
-
- va_start (args, tag);
- gst_tag_list_add_valist_values (list, mode, tag, args);
- va_end (args);
-}
-
-/**
- * gst_tag_list_add_valist:
- * @list: list to set tags in
- * @mode: the mode to use
- * @tag: tag
- * @var_args: tag / value pairs to set
- *
- * Sets the values for the given tags using the specified mode.
- */
-void
-gst_tag_list_add_valist (GstTagList * list, GstTagMergeMode mode,
- const gchar * tag, va_list var_args)
-{
- GstTagInfo *info;
- GQuark quark;
- gchar *error = NULL;
-
- g_return_if_fail (GST_IS_TAG_LIST (list));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
- g_return_if_fail (tag != NULL);
-
- while (tag != NULL) {
- GValue value = { 0, };
-
- quark = g_quark_from_string (tag);
- info = gst_tag_lookup (quark);
- if (info == NULL)
- g_warning ("no GstTag for %s", tag);
- g_return_if_fail (info != NULL);
- g_value_init (&value, info->type);
- G_VALUE_COLLECT (&value, var_args, 0, &error);
- if (error) {
- g_warning ("%s: %s", G_STRLOC, error);
- g_free (error);
- /* we purposely leak the value here, it might not be
- * in a sane state if an error condition occoured
- */
- return;
- }
- gst_tag_list_add_value_internal (list, mode, quark, &value);
- g_value_unset (&value);
- tag = va_arg (var_args, gchar *);
- }
-}
-
-/**
- * gst_tag_list_add_valist_values:
- * @list: list to set tags in
- * @mode: the mode to use
- * @tag: tag
- * @var_args: tag / GValue pairs to set
- *
- * Sets the GValues for the given tags using the specified mode.
- */
-void
-gst_tag_list_add_valist_values (GstTagList * list, GstTagMergeMode mode,
- const gchar * tag, va_list var_args)
-{
- GstTagInfo *info;
- GQuark quark;
-
- g_return_if_fail (GST_IS_TAG_LIST (list));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
- g_return_if_fail (tag != NULL);
-
- while (tag != NULL) {
- quark = g_quark_from_string (tag);
- info = gst_tag_lookup (quark);
- g_return_if_fail (info != NULL);
- gst_tag_list_add_value_internal (list, mode, quark, va_arg (var_args,
- GValue *));
- tag = va_arg (var_args, gchar *);
- }
-}
-
-/**
- * gst_tag_list_remove_tag:
- * @list: list to remove tag from
- * @tag: tag to remove
- *
- * Removes the goven tag from the taglist.
- */
-void
-gst_tag_list_remove_tag (GstTagList * list, const gchar * tag)
-{
- g_return_if_fail (GST_IS_TAG_LIST (list));
- g_return_if_fail (tag != NULL);
-
- gst_structure_remove_field ((GstStructure *) list, tag);
-}
-typedef struct
-{
- GstTagForeachFunc func;
- GstTagList *tag_list;
- gpointer data;
-}
-TagForeachData;
-static int
-structure_foreach_wrapper (GQuark field_id, const GValue * value,
- gpointer user_data)
-{
- TagForeachData *data = (TagForeachData *) user_data;
-
- data->func (data->tag_list, g_quark_to_string (field_id), data->data);
- return TRUE;
-}
-
-/**
- * gst_tag_list_foreach:
- * @list: list to iterate over
- * @func: function to be called for each tag
- * @user_data: user specified data
- *
- * Calls the given function for each tag inside the tag list. Note that if there
- * is no tag, the function won't be called at all.
- */
-void
-gst_tag_list_foreach (GstTagList * list, GstTagForeachFunc func,
- gpointer user_data)
-{
- TagForeachData data;
-
- g_return_if_fail (GST_IS_TAG_LIST (list));
- g_return_if_fail (func != NULL);
-
- data.func = func;
- data.tag_list = list;
- data.data = user_data;
- gst_structure_foreach ((GstStructure *) list, structure_foreach_wrapper,
- &data);
-}
-
-/**
- * gst_tag_list_get_value_index:
- * @list: a #GStTagList
- * @tag: tag to read out
- * @index: number of entry to read out
- *
- * Gets the value that is at the given index for the given tag in the given
- * list.
- *
- * Returns: The GValue for the specified entry or NULL if the tag wasn't
- * available or the tag doesn't have as many entries
- */
-G_CONST_RETURN GValue *
-gst_tag_list_get_value_index (const GstTagList * list, const gchar * tag,
- guint index)
-{
- const GValue *value;
-
- g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
- g_return_val_if_fail (tag != NULL, NULL);
-
- value = gst_structure_get_value ((GstStructure *) list, tag);
- if (value == NULL)
- return NULL;
-
- if (GST_VALUE_HOLDS_LIST (value)) {
- if (index >= gst_value_list_get_size (value))
- return NULL;
- return gst_value_list_get_value (value, index);
- } else {
- if (index > 0)
- return NULL;
- return value;
- }
-}
-
-/**
- * gst_tag_list_copy_value:
- * @dest: uninitialized #GValue to copy into
- * @list: list to get the tag from
- * @tag: tag to read out
- *
- * Copies the contents for the given tag into the value,
- * merging multiple values into one if multiple values are associated
- * with the tag.
- * You must g_value_unset() the value after use.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- * given list.
- */
-gboolean
-gst_tag_list_copy_value (GValue * dest, const GstTagList * list,
- const gchar * tag)
-{
- const GValue *src;
-
- g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE);
- g_return_val_if_fail (tag != NULL, FALSE);
- g_return_val_if_fail (dest != NULL, FALSE);
- g_return_val_if_fail (G_VALUE_TYPE (dest) == 0, FALSE);
-
- src = gst_structure_get_value ((GstStructure *) list, tag);
- if (!src)
- return FALSE;
-
- if (G_VALUE_TYPE (src) == GST_TYPE_LIST) {
- GstTagInfo *info = gst_tag_lookup (g_quark_from_string (tag));
-
- /* must be there or lists aren't allowed */
- g_assert (info->merge_func);
- info->merge_func (dest, src);
- } else {
- g_value_init (dest, G_VALUE_TYPE (src));
- g_value_copy (src, dest);
- }
- return TRUE;
-}
-
-/***** evil macros to get all the gst_tag_list_get_*() functions right *****/
-
-#define TAG_MERGE_FUNCS(name,type) \
-gboolean \
-gst_tag_list_get_ ## name (const GstTagList *list, const gchar *tag, \
- type *value) \
-{ \
- GValue v = { 0, }; \
- \
- g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE); \
- g_return_val_if_fail (tag != NULL, FALSE); \
- g_return_val_if_fail (value != NULL, FALSE); \
- \
- if (!gst_tag_list_copy_value (&v, list, tag)) \
- return FALSE; \
- *value = COPY_FUNC (g_value_get_ ## name (&v)); \
- g_value_unset (&v); \
- return TRUE; \
-} \
- \
-gboolean \
-gst_tag_list_get_ ## name ## _index (const GstTagList *list, \
- const gchar *tag, \
- guint index, type *value) \
-{ \
- const GValue *v; \
- \
- g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE); \
- g_return_val_if_fail (tag != NULL, FALSE); \
- g_return_val_if_fail (value != NULL, FALSE); \
- \
- if ((v = gst_tag_list_get_value_index (list, tag, index)) == NULL) \
- return FALSE; \
- *value = COPY_FUNC (g_value_get_ ## name (v)); \
- return TRUE; \
-}
-
-#define COPY_FUNC /**/
-TAG_MERGE_FUNCS (char, gchar)
-TAG_MERGE_FUNCS (uchar, guchar)
-TAG_MERGE_FUNCS (boolean, gboolean)
-TAG_MERGE_FUNCS (int, gint)
-TAG_MERGE_FUNCS (uint, guint)
-TAG_MERGE_FUNCS (long, glong)
-TAG_MERGE_FUNCS (ulong, gulong)
-TAG_MERGE_FUNCS (int64, gint64)
-TAG_MERGE_FUNCS (uint64, guint64)
-TAG_MERGE_FUNCS (float, gfloat)
-TAG_MERGE_FUNCS (double, gdouble)
-TAG_MERGE_FUNCS (pointer, gpointer)
-#undef COPY_FUNC
-#define COPY_FUNC g_strdup
-TAG_MERGE_FUNCS (string, gchar *)
diff --git a/gst/gsttag.h b/gst/gsttag.h
deleted file mode 100644
index cb5aea6..0000000
--- a/gst/gsttag.h
+++ /dev/null
@@ -1,436 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *
- * gsttag.h: Header for tag support
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * 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.
- */
-
-
-#ifndef __GST_TAG_H__
-#define __GST_TAG_H__
-
-#include <gst/gststructure.h>
-
-G_BEGIN_DECLS
-
-typedef enum {
- GST_TAG_MERGE_UNDEFINED,
- GST_TAG_MERGE_REPLACE_ALL,
- GST_TAG_MERGE_REPLACE,
- GST_TAG_MERGE_APPEND,
- GST_TAG_MERGE_PREPEND,
- GST_TAG_MERGE_KEEP,
- GST_TAG_MERGE_KEEP_ALL,
- /* add more */
- GST_TAG_MERGE_COUNT
-} GstTagMergeMode;
-#define GST_TAG_MODE_IS_VALID(mode) (((mode) > GST_TAG_MERGE_UNDEFINED) && ((mode) < GST_TAG_MERGE_COUNT))
-
-typedef enum {
- GST_TAG_FLAG_UNDEFINED,
- GST_TAG_FLAG_META,
- GST_TAG_FLAG_ENCODED,
- GST_TAG_FLAG_DECODED,
- GST_TAG_FLAG_COUNT
-} GstTagFlag;
-#define GST_TAG_FLAG_IS_VALID(flag) (((flag) > GST_TAG_FLAG_UNDEFINED) && ((flag) < GST_TAG_FLAG_COUNT))
-
-typedef GstStructure GstTagList;
-#define GST_TAG_LIST(x) ((GstTagList *) (x))
-#define GST_IS_TAG_LIST(x) (gst_is_tag_list (GST_TAG_LIST (x)))
-#define GST_TYPE_TAG_LIST (gst_tag_list_get_type ())
-
-typedef void (* GstTagForeachFunc) (const GstTagList *list, const gchar *tag, gpointer user_data);
-typedef void (* GstTagMergeFunc) (GValue *dest, const GValue *src);
-
-/* initialize tagging system */
-void _gst_tag_initialize (void);
-GType gst_tag_list_get_type (void);
-
-void gst_tag_register (const gchar * name,
- GstTagFlag flag,
- GType type,
- const gchar * nick,
- const gchar * blurb,
- GstTagMergeFunc func);
-/* some default merging functions */
-void gst_tag_merge_use_first (GValue * dest,
- const GValue * src);
-void gst_tag_merge_strings_with_comma (GValue * dest,
- const GValue * src);
-
-/* basic tag support */
-gboolean gst_tag_exists (const gchar * tag);
-GType gst_tag_get_type (const gchar * tag);
-G_CONST_RETURN gchar *
- gst_tag_get_nick (const gchar * tag);
-G_CONST_RETURN gchar *
- gst_tag_get_description (const gchar * tag);
-GstTagFlag gst_tag_get_flag (const gchar * tag);
-gboolean gst_tag_is_fixed (const gchar * tag);
-
-/* tag lists */
-GstTagList * gst_tag_list_new (void);
-gboolean gst_is_tag_list (gconstpointer p);
-GstTagList * gst_tag_list_copy (const GstTagList * list);
-void gst_tag_list_insert (GstTagList * into,
- const GstTagList * from,
- GstTagMergeMode mode);
-GstTagList * gst_tag_list_merge (const GstTagList * list1,
- const GstTagList * list2,
- GstTagMergeMode mode);
-void gst_tag_list_free (GstTagList * list);
-guint gst_tag_list_get_tag_size (const GstTagList * list,
- const gchar * tag);
-void gst_tag_list_add (GstTagList * list,
- GstTagMergeMode mode,
- const gchar * tag,
- ...);
-void gst_tag_list_add_values (GstTagList * list,
- GstTagMergeMode mode,
- const gchar * tag,
- ...);
-void gst_tag_list_add_valist (GstTagList * list,
- GstTagMergeMode mode,
- const gchar * tag,
- va_list var_args);
-void gst_tag_list_add_valist_values (GstTagList * list,
- GstTagMergeMode mode,
- const gchar * tag,
- va_list var_args);
-void gst_tag_list_remove_tag (GstTagList * list,
- const gchar * tag);
-void gst_tag_list_foreach (GstTagList * list,
- GstTagForeachFunc func,
- gpointer user_data);
-
-G_CONST_RETURN GValue *
- gst_tag_list_get_value_index (const GstTagList * list,
- const gchar * tag,
- guint index);
-gboolean gst_tag_list_copy_value (GValue * dest,
- const GstTagList * list,
- const gchar * tag);
-
-/* simplifications (FIXME: do we want them?) */
-gboolean gst_tag_list_get_char (const GstTagList * list,
- const gchar * tag,
- gchar * value);
-gboolean gst_tag_list_get_char_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gchar * value);
-gboolean gst_tag_list_get_uchar (const GstTagList * list,
- const gchar * tag,
- guchar * value);
-gboolean gst_tag_list_get_uchar_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- guchar * value);
-gboolean gst_tag_list_get_boolean (const GstTagList * list,
- const gchar * tag,
- gboolean * value);
-gboolean gst_tag_list_get_boolean_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gboolean * value);
-gboolean gst_tag_list_get_int (const GstTagList * list,
- const gchar * tag,
- gint * value);
-gboolean gst_tag_list_get_int_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gint * value);
-gboolean gst_tag_list_get_uint (const GstTagList * list,
- const gchar * tag,
- guint * value);
-gboolean gst_tag_list_get_uint_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- guint * value);
-gboolean gst_tag_list_get_long (const GstTagList * list,
- const gchar * tag,
- glong * value);
-gboolean gst_tag_list_get_long_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- glong * value);
-gboolean gst_tag_list_get_ulong (const GstTagList * list,
- const gchar * tag,
- gulong * value);
-gboolean gst_tag_list_get_ulong_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gulong * value);
-gboolean gst_tag_list_get_int64 (const GstTagList * list,
- const gchar * tag,
- gint64 * value);
-gboolean gst_tag_list_get_int64_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gint64 * value);
-gboolean gst_tag_list_get_uint64 (const GstTagList * list,
- const gchar * tag,
- guint64 * value);
-gboolean gst_tag_list_get_uint64_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- guint64 * value);
-gboolean gst_tag_list_get_float (const GstTagList * list,
- const gchar * tag,
- gfloat * value);
-gboolean gst_tag_list_get_float_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gfloat * value);
-gboolean gst_tag_list_get_double (const GstTagList * list,
- const gchar * tag,
- gdouble * value);
-gboolean gst_tag_list_get_double_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gdouble * value);
-gboolean gst_tag_list_get_string (const GstTagList * list,
- const gchar * tag,
- gchar ** value);
-gboolean gst_tag_list_get_string_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gchar ** value);
-gboolean gst_tag_list_get_pointer (const GstTagList * list,
- const gchar * tag,
- gpointer * value);
-gboolean gst_tag_list_get_pointer_index (const GstTagList * list,
- const gchar * tag,
- guint index,
- gpointer * value);
-
-/* GStreamer core tags (need to be discussed) */
-/**
- * GST_TAG_TITLE:
- *
- * commonly used title
- */
-#define GST_TAG_TITLE "title"
-/**
- * GST_TAG_ARTIST:
- *
- * person(s) responsible for the recording
- */
-#define GST_TAG_ARTIST "artist"
-/**
- * GST_TAG_ALBUM:
- *
- * album containing this data
- */
-#define GST_TAG_ALBUM "album"
-/**
- * GST_TAG_DATE:
- *
- * date the data was created (in Julian calendar days)
- */
-#define GST_TAG_DATE "date"
-/**
- * GST_TAG_GENRE:
- *
- * genre this data belongs to
- */
-#define GST_TAG_GENRE "genre"
-/**
- * GST_TAG_COMMENT:
- *
- * free text commenting the data
- */
-#define GST_TAG_COMMENT "comment"
-/**
- * GST_TAG_TRACK_NUMBER:
- *
- * track number inside a collection
- */
-#define GST_TAG_TRACK_NUMBER "track-number"
-/**
- * GST_TAG_TRACK_COUNT:
- *
- * count of tracks inside collection this track belongs to
- */
-#define GST_TAG_TRACK_COUNT "track-count"
-/**
- * GST_TAG_ALBUM_VOLUME_NUMBER:
- *
- * disc number inside a collection
- */
-#define GST_TAG_ALBUM_VOLUME_NUMBER "album-disc-number"
-/**
- * GST_TAG_ALBUM_VOLUME_COUNT:
- *
- * count of discs inside collection this disc belongs to
- */
-#define GST_TAG_ALBUM_VOLUME_COUNT "album-disc-count"
-/**
- * GST_TAG_LOCATION:
- *
- * original location of file as a URI
- */
-#define GST_TAG_LOCATION "location"
-/**
- * GST_TAG_DESCRIPTION:
- *
- * short text describing the content of the data
- */
-#define GST_TAG_DESCRIPTION "description"
-/**
- * GST_TAG_VERSION:
- *
- * version of this data
- */
-#define GST_TAG_VERSION "version"
-/**
- * GST_TAG_ISRC:
- *
- * International Standard Recording Code - see http://www.ifpi.org/isrc/
- */
-#define GST_TAG_ISRC "isrc"
-/**
- * GST_TAG_ORGANIZATION:
- *
- * organization
- */
-#define GST_TAG_ORGANIZATION "organization"
-/**
- * GST_TAG_COPYRIGHT:
- *
- * copyright notice of the data
- */
-#define GST_TAG_COPYRIGHT "copyright"
-/**
- * GST_TAG_CONTACT:
- *
- * contact information
- */
-#define GST_TAG_CONTACT "contact"
-/**
- * GST_TAG_LICENSE:
- *
- * license of data
- */
-#define GST_TAG_LICENSE "license"
-/**
- * GST_TAG_PERFORMER:
- *
- * person(s) performing
- */
-#define GST_TAG_PERFORMER "performer"
-/**
- * GST_TAG_DURATION:
- *
- * length in GStreamer time units (nanoseconds)
- */
-#define GST_TAG_DURATION "duration"
-/**
- * GST_TAG_CODEC:
- *
- * codec the data is stored in
- */
-#define GST_TAG_CODEC "codec"
-/**
- * GST_TAG_VIDEO_CODEC:
- *
- * codec the video data is stored in
- */
-#define GST_TAG_VIDEO_CODEC "video-codec"
-/**
- * GST_TAG_AUDIO_CODEC:
- *
- * codec the audio data is stored in
- */
-#define GST_TAG_AUDIO_CODEC "audio-codec"
-/**
- * GST_TAG_BITRATE:
- *
- * exact or average bitrate in bits/s
- */
-#define GST_TAG_BITRATE "bitrate"
-/**
- * GST_TAG_NOMINAL_BITRATE:
- *
- * nominal bitrate in bits/s
- */
-#define GST_TAG_NOMINAL_BITRATE "nominal-bitrate"
-/**
- * GST_TAG_MINIMUM_BITRATE:
- *
- * minimum bitrate in bits/s
- */
-#define GST_TAG_MINIMUM_BITRATE "minimum-bitrate"
-/**
- * GST_TAG_MAXIMUM_BITRATE:
- *
- * maximum bitrate in bits/s
- */
-#define GST_TAG_MAXIMUM_BITRATE "maximum-bitrate"
-/**
- * GST_TAG_SERIAL:
- *
- * serial number of track
- */
-#define GST_TAG_SERIAL "serial"
-/**
- * GST_TAG_ENCODER:
- *
- * encoder used to encode this stream
- */
-#define GST_TAG_ENCODER "encoder"
-/**
- * GST_TAG_ENCODER_VERSION:
- *
- * version of the encoder used to encode this stream
- */
-#define GST_TAG_ENCODER_VERSION "encoder-version"
-/**
- * GST_TAG_TRACK_GAIN:
- *
- * track gain in db
- */
-#define GST_TAG_TRACK_GAIN "replaygain-track-gain"
-/**
- * GST_TAG_TRACK_PEAK:
- *
- * peak of the track
- */
-#define GST_TAG_TRACK_PEAK "replaygain-track-peak"
-/**
- * GST_TAG_ALBUM_GAIN:
- *
- * album gain in db
- */
-#define GST_TAG_ALBUM_GAIN "replaygain-album-gain"
-/**
- * GST_TAG_ALBUM_PEAK:
- *
- * peak of the album
- */
-#define GST_TAG_ALBUM_PEAK "replaygain-album-peak"
-/**
- * GST_TAG_LANGUAGE_CODE:
- *
- * Language code (ISO-639-1)
- */
-#define GST_TAG_LANGUAGE_CODE "language-code"
-
-G_END_DECLS
-
-#endif /* __GST_EVENT_H__ */
diff --git a/gst/gsttaginterface.c b/gst/gsttaginterface.c
deleted file mode 100644
index 2fae2b8..0000000
--- a/gst/gsttaginterface.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *
- * gsttaginterface.c: interface for tag setting on elements
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * 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.
- */
-/**
- * SECTION:gsttagsetter
- * @short_description: Element interface that allows setting and retrieval of media metadata
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "gst_private.h"
-#include "gsttaginterface.h"
-#include <gobject/gvaluecollector.h>
-#include <string.h>
-
-GST_DEBUG_CATEGORY_STATIC (gst_tag_interface_debug);
-#define GST_CAT_DEFAULT tag_tag_interface_debug
-
-static GQuark gst_tag_key;
-
-typedef struct
-{
- GstTagMergeMode mode;
- GstTagList *list;
-}
-GstTagData;
-
-GType
-gst_tag_setter_get_type (void)
-{
- static GType tag_setter_type = 0;
-
- if (!tag_setter_type) {
- static const GTypeInfo tag_setter_info = {
- sizeof (GstTagSetterIFace), /* class_size */
- NULL, /* base_init */
- NULL, /* base_finalize */
- NULL,
- NULL, /* class_finalize */
- NULL, /* class_data */
- 0,
- 0,
- NULL
- };
-
- GST_DEBUG_CATEGORY_INIT (gst_tag_interface_debug, "GstTagInterface", 0,
- "interfaces for tagging");
-
- tag_setter_type = g_type_register_static (G_TYPE_INTERFACE, "GstTagSetter",
- &tag_setter_info, 0);
-
- g_type_interface_add_prerequisite (tag_setter_type, GST_TYPE_ELEMENT);
-
- gst_tag_key = g_quark_from_static_string ("GST_TAG_SETTER");
- }
-
- return tag_setter_type;
-}
-static void
-gst_tag_data_free (gpointer p)
-{
- GstTagData *data = (GstTagData *) p;
-
- if (data->list)
- gst_tag_list_free (data->list);
-
- g_free (data);
-}
-static GstTagData *
-gst_tag_setter_get_data (GstTagSetter * setter)
-{
- GstTagData *data;
-
- data = g_object_get_qdata (G_OBJECT (setter), gst_tag_key);
- if (!data) {
- data = g_new (GstTagData, 1);
- data->list = NULL;
- data->mode = GST_TAG_MERGE_KEEP;
- g_object_set_qdata_full (G_OBJECT (setter), gst_tag_key, data,
- gst_tag_data_free);
- }
-
- return data;
-}
-
-/**
- * gst_tag_setter_merge:
- * @setter: a #GstTagSetter
- * @list: a tag list to merge from
- * @mode: the mode to merge with
- *
- * Merges the given list into the setter's list using the given mode.
- */
-void
-gst_tag_setter_merge (GstTagSetter * setter, const GstTagList * list,
- GstTagMergeMode mode)
-{
- GstTagData *data;
-
- g_return_if_fail (GST_IS_TAG_SETTER (setter));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- data = gst_tag_setter_get_data (setter);
- if (!data->list) {
- data->list = gst_tag_list_copy (list);
- } else {
- gst_tag_list_merge (data->list, list, mode);
- }
-}
-
-/**
- * gst_tag_setter_add:
- * @setter: a #GstTagSetter
- * @mode: the mode to use
- * @tag: tag to set
- * @...: more tag / value pairs to set
- *
- * Adds the given tag / value pairs on the setter using the given merge mode.
- * The list must be terminated with NULL.
- */
-void
-gst_tag_setter_add (GstTagSetter * setter, GstTagMergeMode mode,
- const gchar * tag, ...)
-{
- va_list args;
-
- g_return_if_fail (GST_IS_TAG_SETTER (setter));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- va_start (args, tag);
- gst_tag_setter_add_valist (setter, mode, tag, args);
- va_end (args);
-}
-
-/**
- * gst_tag_setter_add_values:
- * @setter: a #GstTagSetter
- * @mode: the mode to use
- * @tag: tag to set
- * @...: more tag / GValue pairs to set
- *
- * Adds the given tag / GValue pairs on the setter using the given merge mode.
- * The list must be terminated with NULL.
- */
-void
-gst_tag_setter_add_values (GstTagSetter * setter, GstTagMergeMode mode,
- const gchar * tag, ...)
-{
- va_list args;
-
- g_return_if_fail (GST_IS_TAG_SETTER (setter));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- va_start (args, tag);
- gst_tag_setter_add_valist_values (setter, mode, tag, args);
- va_end (args);
-}
-
-/**
- * gst_tag_setter_add_valist:
- * @setter: a #GstTagSetter
- * @mode: the mode to use
- * @tag: tag to set
- * @var_args: tag / value pairs to set
- *
- * Adds the given tag / value pairs on the setter using the given merge mode.
- * The list must be terminated with NULL.
- */
-void
-gst_tag_setter_add_valist (GstTagSetter * setter, GstTagMergeMode mode,
- const gchar * tag, va_list var_args)
-{
- GstTagData *data;
-
- g_return_if_fail (GST_IS_TAG_SETTER (setter));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- data = gst_tag_setter_get_data (setter);
- if (!data->list)
- data->list = gst_tag_list_new ();
-
- gst_tag_list_add_valist (data->list, mode, tag, var_args);
-}
-
-/**
- * gst_tag_setter_add_valist_values:
- * @setter: a #GstTagSetter
- * @mode: the mode to use
- * @tag: tag to set
- * @var_args: tag / GValue pairs to set
- *
- * Adds the given tag / GValue pairs on the setter using the given merge mode.
- * The list must be terminated with NULL.
- */
-void
-gst_tag_setter_add_valist_values (GstTagSetter * setter, GstTagMergeMode mode,
- const gchar * tag, va_list var_args)
-{
- GstTagData *data;
-
- g_return_if_fail (GST_IS_TAG_SETTER (setter));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- data = gst_tag_setter_get_data (setter);
- if (!data->list)
- data->list = gst_tag_list_new ();
-
- gst_tag_list_add_valist_values (data->list, mode, tag, var_args);
-}
-
-/**
- * gst_tag_setter_get_list:
- * @setter: a #GstTagSetter
- *
- * Returns the current list of tags the setter uses. The list should not be
- * modified or freed.
- *
- * Returns: a current snapshot of the taglist used in the setter
- * or NULL if none is used.
- */
-G_CONST_RETURN GstTagList *
-gst_tag_setter_get_list (GstTagSetter * setter)
-{
- g_return_val_if_fail (GST_IS_TAG_SETTER (setter), NULL);
-
- return gst_tag_setter_get_data (setter)->list;
-}
-
-/**
- * gst_tag_setter_set_merge_mode:
- * @setter: a #GstTagSetter
- * @mode: The mode with which tags are added
- *
- * Sets the given merge mode that is used for adding tags from events to tags
- * specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
- * the tags by this interface and discards tags from events.
- */
-void
-gst_tag_setter_set_merge_mode (GstTagSetter * setter, GstTagMergeMode mode)
-{
- g_return_if_fail (GST_IS_TAG_SETTER (setter));
- g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
-
- gst_tag_setter_get_data (setter)->mode = mode;
-}
-
-/**
- * gst_tag_setter_get_merge_mode:
- * @setter: a #GstTagSetter
- *
- * Queries the mode by which tags inside the setter are overwritten by tags
- * from events
- *
- * Returns: the merge mode used inside the element.
- */
-GstTagMergeMode
-gst_tag_setter_get_merge_mode (GstTagSetter * setter)
-{
- g_return_val_if_fail (GST_IS_TAG_SETTER (setter), FALSE);
-
- return gst_tag_setter_get_data (setter)->mode;
-}
diff --git a/gst/gsttaginterface.h b/gst/gsttaginterface.h
deleted file mode 100644
index eaf4940..0000000
--- a/gst/gsttaginterface.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *
- * gsttaginterface.h: Interfaces for tagging
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * 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.
- */
-
-#ifndef __GST_TAG_INTERFACE_H__
-#define __GST_TAG_INTERFACE_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_TAG_SETTER (gst_tag_setter_get_type ())
-#define GST_TAG_SETTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_SETTER, GstTagSetter))
-#define GST_TAG_SETTER_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GST_TYPE_TAG_SETTER, GstTagSetter))
-#define GST_IS_TAG_SETTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_SETTER))
-#define GST_TAG_SETTER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TAG_SETTER, GstTagSetterIFace))
-
-typedef struct _GstTagSetter GstTagSetter; /* Dummy typedef */
-typedef struct _GstTagSetterIFace GstTagSetterIFace;
-
-/* use an empty interface here to allow detection of elements using user-set
- tags */
-struct _GstTagSetterIFace
-{
- GTypeInterface g_iface;
-
- /* signals */
-
- /* virtual table */
-};
-
-GType gst_tag_setter_get_type (void);
-
-void gst_tag_setter_merge (GstTagSetter * setter,
- const GstTagList * list,
- GstTagMergeMode mode);
-void gst_tag_setter_add (GstTagSetter * setter,
- GstTagMergeMode mode,
- const gchar * tag,
- ...);
-
-void gst_tag_setter_add_values (GstTagSetter * setter,
- GstTagMergeMode mode,
- const gchar * tag,
- ...);
-
-void gst_tag_setter_add_valist (GstTagSetter * setter,
- GstTagMergeMode mode,
- const gchar * tag,
- va_list var_args);
-
-void gst_tag_setter_add_valist_values(GstTagSetter * setter,
- GstTagMergeMode mode,
- const gchar * tag,
- va_list var_args);
-
-G_CONST_RETURN GstTagList *
- gst_tag_setter_get_list (GstTagSetter * setter);
-
-void gst_tag_setter_set_merge_mode (GstTagSetter * setter,
- GstTagMergeMode mode);
-GstTagMergeMode gst_tag_setter_get_merge_mode (GstTagSetter * setter);
-
-G_END_DECLS
-
-#endif /* __GST_TAG_INTERFACE_H__ */
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index 3e54176..2c47ee1 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -1,7 +1,7 @@
/* GStreamer
* Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
*
- * gsttag.c: tag support (aka metadata)
+ * gsttaglist.c: tag support (aka metadata)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -30,7 +30,7 @@
#include "gst_private.h"
#include "gst-i18n-lib.h"
-#include "gsttag.h"
+#include "gsttaglist.h"
#include "gstinfo.h"
#include "gstvalue.h"
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index cb5aea6..a1b9a4f 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -1,7 +1,7 @@
/* GStreamer
* Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
*
- * gsttag.h: Header for tag support
+ * gsttaglist.h: Header for tag support
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -38,6 +38,7 @@
/* add more */
GST_TAG_MERGE_COUNT
} GstTagMergeMode;
+
#define GST_TAG_MODE_IS_VALID(mode) (((mode) > GST_TAG_MERGE_UNDEFINED) && ((mode) < GST_TAG_MERGE_COUNT))
typedef enum {
@@ -47,6 +48,7 @@
GST_TAG_FLAG_DECODED,
GST_TAG_FLAG_COUNT
} GstTagFlag;
+
#define GST_TAG_FLAG_IS_VALID(flag) (((flag) > GST_TAG_FLAG_UNDEFINED) && ((flag) < GST_TAG_FLAG_COUNT))
typedef GstStructure GstTagList;
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index 2fae2b8..0da484c 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -1,7 +1,7 @@
/* GStreamer
* Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
*
- * gsttaginterface.c: interface for tag setting on elements
+ * gsttagsetter.c: interface for tag setting on elements
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -30,7 +30,7 @@
#endif
#include "gst_private.h"
-#include "gsttaginterface.h"
+#include "gsttagsetter.h"
#include <gobject/gvaluecollector.h>
#include <string.h>
diff --git a/gst/gsttagsetter.h b/gst/gsttagsetter.h
index eaf4940..5daef14 100644
--- a/gst/gsttagsetter.h
+++ b/gst/gsttagsetter.h
@@ -1,7 +1,7 @@
/* GStreamer
* Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
*
- * gsttaginterface.h: Interfaces for tagging
+ * gsttagsetter.h: Interfaces for tagging
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
diff --git a/gst/gsttrace.c b/gst/gsttrace.c
index 0e7043e..3eb1770 100644
--- a/gst/gsttrace.c
+++ b/gst/gsttrace.c
@@ -2,7 +2,7 @@
* Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
* 2000 Wim Taymans <wtay@chello.be>
*
- * gsttrace.c: Tracing functions (depracated)
+ * gsttrace.c: Tracing functions (deprecated)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -19,6 +19,11 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:gsttrace
+ * @short_description: Tracing functionality
+ *
+ */
#ifdef HAVE_CONFIG_H
diff --git a/gst/gsttrace.h b/gst/gsttrace.h
index c32dbbc..fa48444 100644
--- a/gst/gsttrace.h
+++ b/gst/gsttrace.h
@@ -2,7 +2,7 @@
* Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
* 2000 Wim Taymans <wtay@chello.be>
*
- * gsttrace.h: Header for tracing functions (depracated)
+ * gsttrace.h: Header for tracing functions (deprecated)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -69,14 +69,29 @@
void gst_trace_read_tsc (gint64 *dst);
-typedef enum
-{
+/**
+ * GstAllocTraceFlags:
+ * @GST_ALLOC_TRACE_LIVE: Trace number of non-freed memory
+ * @GST_ALLOC_TRACE_MEM_LIVE: trace pointers of unfreed memory
+ *
+ * Flags indicating which tracing feature to enable.
+ */
+typedef enum {
GST_ALLOC_TRACE_LIVE = (1 << 0),
GST_ALLOC_TRACE_MEM_LIVE = (1 << 1)
} GstAllocTraceFlags;
typedef struct _GstAllocTrace GstAllocTrace;
+/**
+ * GstAllocTrace:
+ * @name: The name of the tracing object
+ * @flags: Flags for this object
+ * @live: counter for live memory
+ * @mem_live: list with pointers to unfreed memory
+ *
+ * The main tracing object
+ */
struct _GstAllocTrace {
gchar *name;
gint flags;
@@ -100,7 +115,21 @@
#ifndef GST_DISABLE_ALLOC_TRACE
+/**
+ * gst_alloc_trace_register:
+ * @name: The name of the tracer object
+ *
+ * Register a new alloc tracer with the given name
+ */
#define gst_alloc_trace_register(name) _gst_alloc_trace_register (name);
+
+/**
+ * gst_alloc_trace_new:
+ * @trace: The tracer to use
+ * @mem: The memory allocated
+ *
+ * Use the tracer to trace a new memory allocation
+ */
#define gst_alloc_trace_new(trace, mem) \
G_STMT_START { \
if ((trace)->flags & GST_ALLOC_TRACE_LIVE) \
@@ -110,6 +139,13 @@
g_slist_prepend ((trace)->mem_live, mem); \
} G_STMT_END
+/**
+ * gst_alloc_trace_free:
+ * @trace: The tracer to use
+ * @mem: The memory that is freed
+ *
+ * Trace a memory free operation
+ */
#define gst_alloc_trace_free(trace, mem) \
G_STMT_START { \
if ((trace)->flags & GST_ALLOC_TRACE_LIVE) \
diff --git a/gst/gsttrashstack.c b/gst/gsttrashstack.c
index 8f011d8..e678c6b 100644
--- a/gst/gsttrashstack.c
+++ b/gst/gsttrashstack.c
@@ -16,6 +16,12 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:gsttrashstack
+ * @short_description:
+ *
+ */
+
#define GST_IMPLEMENT_INLINES 1
#define __GST_TRASH_STACK_C__