summaryrefslogtreecommitdiffstats
path: root/gst/xingheader
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-01-23 10:34:40 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-01-23 10:34:40 +0000
commitafa31cfea03063a848ba4db5aa03001301839aa2 (patch)
treea2aabe70dff5cfe05fb056c6251da88143ec05fb /gst/xingheader
parent960b1c5b08839e6e2727ae5fcad3c00be1916583 (diff)
downloadgst-plugins-bad-afa31cfea03063a848ba4db5aa03001301839aa2.tar.gz
gst-plugins-bad-afa31cfea03063a848ba4db5aa03001301839aa2.tar.bz2
gst-plugins-bad-afa31cfea03063a848ba4db5aa03001301839aa2.zip
Add documentation for the xingheader plugin.
Original commit message from CVS: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-bad-plugins-docs.sgml: * docs/plugins/gst-plugins-bad-plugins-sections.txt: * gst/xingheader/gstxingmux.c: * gst/xingheader/gstxingmux.h: Add documentation for the xingheader plugin. * tests/check/elements/xingmux.c: (GST_START_TEST): Set element state to PLAYING before doing something else.
Diffstat (limited to 'gst/xingheader')
-rw-r--r--gst/xingheader/gstxingmux.c31
-rw-r--r--gst/xingheader/gstxingmux.h64
2 files changed, 73 insertions, 22 deletions
diff --git a/gst/xingheader/gstxingmux.c b/gst/xingheader/gstxingmux.c
index d10006cc..49a4628b 100644
--- a/gst/xingheader/gstxingmux.c
+++ b/gst/xingheader/gstxingmux.c
@@ -20,6 +20,31 @@
/* Xing SDK: http://www.mp3-tech.org/programmer/sources/vbrheadersdk.zip */
+
+/**
+ * SECTION:element-xingmux
+ * @short_description: Adds a Xing header to MP3 files
+ *
+ * <refsect2>
+ * <para>
+ * xingmux adds a Xing header to MP3 files. This contains information about the duration and size
+ * of the file and a seek table and is very useful for getting an almost correct duration and better
+ * seeking on VBR MP3 files.
+ * </para>
+ * <para>
+ * This element will remove any existing Xing, LAME or VBRI headers from the beginning of the file.
+ * </para>
+ * <title>Example launch line</title>
+ * <para>
+ * <programlisting>
+ * gst-launch audiotestsrc num-buffers=1000 ! audioconvert ! lame ! xingmux ! filesink location=test.mp3
+ * gst-launch filesrc location=test.mp3 ! xingmux ! filesink location=test2.mp3
+ * gst-launch filesrc location=test.mp3 ! mp3parse ! xingmux ! filesink location=test2.mp3
+ * </programlisting>
+ * </para>
+ * </refsect2>
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -38,6 +63,12 @@ GST_BOILERPLATE (GstXingMux, gst_xing_mux, GstElement, GST_TYPE_ELEMENT);
#define GST_XING_TOC_FIELD (1 << 2)
#define GST_XING_QUALITY_FIELD (1 << 3)
+typedef struct _GstXingSeekEntry
+{
+ gint64 timestamp;
+ gint byte;
+} GstXingSeekEntry;
+
static void gst_xing_mux_finalize (GObject * obj);
static GstStateChangeReturn
gst_xing_mux_change_state (GstElement * element, GstStateChange transition);
diff --git a/gst/xingheader/gstxingmux.h b/gst/xingheader/gstxingmux.h
index 06b25a35..197fc6f2 100644
--- a/gst/xingheader/gstxingmux.h
+++ b/gst/xingheader/gstxingmux.h
@@ -21,18 +21,40 @@
#include <gst/gst.h>
#include <gst/base/gstadapter.h>
-typedef struct _GstXingSeekEntry
-{
- gint64 timestamp;
- gint byte;
-} GstXingSeekEntry;
+#ifndef __GST_XINGMUX_H__
+#define __GST_XINGMUX_H__
+
+G_BEGIN_DECLS
+
+/* Standard macros for defining types for this element. */
+#define GST_TYPE_XING_MUX \
+ (gst_xing_mux_get_type())
+#define GST_XING_MUX(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_XING_MUX,GstXingMux))
+#define GST_XING_MUX_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_XING_MUX,GstXingMuxClass))
+#define GST_IS_XING_MUX(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_XING_MUX))
+#define GST_IS_XING_MUX_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_XING_MUX))
+
+typedef struct _GstXingMux GstXingMux;
+typedef struct _GstXingMuxClass GstXingMuxClass;
/* Definition of structure storing data for this element. */
-typedef struct _GstXingMux {
+
+/**
+ * GstXingMux:
+ *
+ * Opaque data structure.
+ */
+struct _GstXingMux {
GstElement element;
GstPad *sinkpad, *srcpad;
+ /* < private > */
+
GstAdapter *adapter;
GstClockTime duration;
guint64 byte_count;
@@ -42,24 +64,22 @@ typedef struct _GstXingMux {
/* Copy of the first frame header */
guint32 first_header;
-} GstXingMux;
+};
/* Standard definition defining a class for this element. */
-typedef struct _GstXingMuxClass {
- GstElementClass parent_class;
-} GstXingMuxClass;
-/* Standard macros for defining types for this element. */
-#define GST_TYPE_XING_MUX \
- (gst_xing_mux_get_type())
-#define GST_XING_MUX(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_XING_MUX,GstXingMux))
-#define GST_XING_MUX_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_XING_MUX,GstXingMuxClass))
-#define GST_IS_XING_MUX(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_XING_MUX))
-#define GST_IS_XING_MUX_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_XING_MUX))
+/**
+ * GstXingMuxClass:
+ *
+ * Opaque data structure.
+ */
+struct _GstXingMuxClass {
+ GstElementClass parent_class;
+};
/* Standard function returning type information. */
-GType gst_my_filter_get_type (void);
+GType gst_xing_mux_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_XINGMUX_H__ */