+2008-02-08 Jan Schmidt <jan.schmidt@sun.com>
+
+ * docs/plugins/Makefile.am:
+ * docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
+ * docs/plugins/gst-plugins-ugly-plugins-sections.txt:
+ * docs/plugins/inspect/plugin-mpegaudioparse.xml:
+ * gst/mpegaudioparse/Makefile.am:
+ * gst/mpegaudioparse/gstmpegaudioparse.c:
+ * gst/mpegaudioparse/gstxingmux.c:
+ * tests/check/Makefile.am:
+ * tests/check/elements/.cvsignore:
+ Move xingmux from -bad.
+
2008-02-07 Sebastien Moutte <sebastien@moutte.net>
* gst/mpegaudioparse/gstmpegaudioparse.c:(mp3parse_time_to_bytepos):
$(top_srcdir)/ext/mad/gstmad.h \
$(top_srcdir)/ext/sidplay/gstsiddec.h \
$(top_srcdir)/gst/asfdemux/gstrtspwms.h \
+ $(top_srcdir)/gst/mpegaudioparse/gstxingmux.h \
$(top_srcdir)/gst/realmedia/rademux.h \
$(top_srcdir)/gst/realmedia/rdtmanager.h \
$(top_srcdir)/gst/realmedia/rtspreal.h \
<xi:include href="xml/element-mad.xml" />
<xi:include href="xml/element-siddec.xml" />
<xi:include href="xml/element-synaesthesia.xml" />
+ <xi:include href="xml/element-xingmux.xml" />
</chapter>
<chapter>
SYNAES_WIDTH
</SECTION>
+<SECTION>
+<FILE>element-xingmux</FILE>
+<TITLE>xingmux</TITLE>
+GstXingMux
+<SUBSECTION Standard>
+GstXingMuxClass
+GST_XING_MUX
+GST_XING_MUX_CLASS
+GST_IS_XING_MUX
+GST_IS_XING_MUX_CLASS
+GST_TYPE_XING_MUX
+gst_xing_mux_get_type
+</SECTION>
+
<longname>MPEG1 Audio Parser</longname>
<class>Codec/Parser/Audio</class>
<description>Parses and frames mpeg1 audio streams (levels 1-3), provides seek</description>
- <author>Jan Schmidt <thaytan@mad.scientist.com>012Erik Walthinsen <omega@cse.ogi.edu></author>
+ <author>Jan Schmidt <thaytan@mad.scientist.com>
+ Erik Walthinsen <omega@cse.ogi.edu></author>
<pads>
+ <caps>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <details>audio/mpeg, mpegversion=(int)1, parsed=(boolean)false</details>
+ </caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true</details>
</caps>
+ </pads>
+ </element>
+ <element>
+ <name>xingmux</name>
+ <longname>MP3 Xing muxer</longname>
+ <class>Formatter/Metadata</class>
+ <description>Adds a Xing header to the beginning of a VBR MP3 file</description>
+ <author>Christophe Fergeau <teuf@gnome.org></author>
+ <pads>
+ <caps>
+ <name>src</name>
+ <direction>source</direction>
+ <presence>always</presence>
+ <details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details>
+ </caps>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
- <details>audio/mpeg, mpegversion=(int)1, parsed=(boolean)false</details>
+ <details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details>
</caps>
</pads>
</element>
plugin_LTLIBRARIES = libgstmpegaudioparse.la
-libgstmpegaudioparse_la_SOURCES = gstmpegaudioparse.c
+libgstmpegaudioparse_la_SOURCES = plugin.c gstmpegaudioparse.c gstxingmux.c
libgstmpegaudioparse_la_CFLAGS = $(GST_CFLAGS)
libgstmpegaudioparse_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
libgstmpegaudioparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-noinst_HEADERS = gstmpegaudioparse.h
+noinst_HEADERS = gstmpegaudioparse.h gstxingmux.h
gst_static_pad_template_get (&mp3_sink_template));
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&mp3_src_template));
+
+ GST_DEBUG_CATEGORY_INIT (mp3parse_debug, "mp3parse", 0, "MPEG Audio Parser");
+
gst_element_class_set_details (element_class, &mp3parse_details);
}
return query_types;
}
-
-static gboolean
-plugin_init (GstPlugin * plugin)
-{
- GST_DEBUG_CATEGORY_INIT (mp3parse_debug, "mp3parse", 0, "MP3 Parser");
-
- return gst_element_register (plugin, "mp3parse",
- GST_RANK_PRIMARY + 1, GST_TYPE_MP3PARSE);
-}
-
-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "mpegaudioparse",
- "MPEG-1 layer 1/2/3 audio parser",
- plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
gst_static_pad_template_get (&gst_xing_mux_src_template));
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&gst_xing_mux_sink_template));
+
+ GST_DEBUG_CATEGORY_INIT (xing_mux_debug, "xingmux", 0, "Xing Header Muxer");
+
gst_element_class_set_details (element_class, &gst_xing_mux_details);
}
return result;
}
-
-
-static gboolean
-plugin_init (GstPlugin * plugin)
-{
- if (!gst_element_register (plugin, "xingmux", GST_RANK_NONE,
- GST_TYPE_XING_MUX))
- return FALSE;
-
- GST_DEBUG_CATEGORY_INIT (xing_mux_debug, "xingmux", 0, "Xing Header Muxer");
-
- return TRUE;
-}
-
-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "xingheader",
- "Add a xing header to mp3 encoded data",
- plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
generic/states \
$(AMRNB) \
$(LAME) \
- $(MPEG2DEC)
+ $(MPEG2DEC) \
+ elements/xingmux
# these tests don't even pass
noinst_PROGRAMS =
+noinst_HEADERS = elements/xingmux_testdata.h
+
AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS)
LDADD = $(GST_OBJ_LIBS) $(GST_CHECK_LIBS) $(CHECK_LIBS)
amrnbenc
mpeg2dec
+xingmux
.dirstamp