pick up signals and args for vorbis; add some docs for vorbis
authorThomas Vander Stichele <thomas@apestaart.org>
Thu, 15 Sep 2005 15:28:36 +0000 (15:28 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Thu, 15 Sep 2005 15:28:36 +0000 (15:28 +0000)
Original commit message from CVS:

* common/gtk-doc-plugins.mak:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* ext/theora/Makefile.am:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c:
* ext/vorbis/vorbisenc.c:
pick up signals and args for vorbis; add some docs for vorbis

ChangeLog
common
docs/plugins/Makefile.am
docs/plugins/gst-plugins-base-plugins-sections.txt
ext/theora/Makefile.am
ext/theora/gsttheoraenc.h [new file with mode: 0644]
ext/theora/theoraenc.c
ext/vorbis/vorbisenc.c

index 25ade21..5b1357e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>
 
+       * common/gtk-doc-plugins.mak:
+       * docs/plugins/Makefile.am:
+       * docs/plugins/gst-plugins-base-plugins-sections.txt:
+       * ext/theora/Makefile.am:
+       * ext/theora/gsttheoraenc.h:
+       * ext/theora/theoraenc.c:
+       * ext/vorbis/vorbisenc.c:
+         pick up signals and args for vorbis; add some docs for vorbis
+
+2005-09-15  Thomas Vander Stichele  <thomas at apestaart dot org>
+
        * common/gstdoc-scangobj:
        * common/gtk-doc-plugins.mak:
        * docs/libs/Makefile.am:
diff --git a/common b/common
index 161ba91..c491c61 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 161ba917f65c0961ef173061bf44d4e746feaba3
+Subproject commit c491c61170e77dcd4fb5ffc656ac2b721c5c2641
index 3b65def..4b366e3 100644 (file)
@@ -79,6 +79,9 @@ IGNORE_CFILES = utils.c mem.c imgconvert.c
 EXTRA_HFILES = \
        $(top_srcdir)/gst/tcp/gstmultifdsink.h \
        $(top_srcdir)/gst/tcp/gsttcpserversink.h \
+       $(top_srcdir)/gst/videotestsrc/gstvideotestsrc.h \
+       $(top_srcdir)/ext/theora/gsttheoraenc.h \
+       $(top_srcdir)/gst/volume/gstvolume.h \
        $(top_srcdir)/ext/vorbis/vorbisenc.h
 
 # Images to copy into HTML directory.
index f28c434..1bbf6df 100644 (file)
@@ -37,23 +37,24 @@ GstTCPServerSinkClass
 <SECTION>
 <FILE>element-theoraenc</FILE>
 GstTheoraEnc
+GstTheoraEncClass
 <TITLE>theoraenc</TITLE>
 <SUBSECTION Standard>
-GstTheoraEncClass
 </SECTION>
 
 
 <SECTION>
 <FILE>element-videotestsrc</FILE>
 <TITLE>videotestsrc</TITLE>
+GstVideoTestSrc
 <SUBSECTION Standard>
 GstVideoTestSrcClass
 </SECTION>
 
-
+<SECTION>
 <FILE>element-volume</FILE>
-GstVolume
 <TITLE>volume</TITLE>
+GstVolume
 <SUBSECTION Standard>
 GstVolumeClass
 </SECTION>
index e42c86e..c49a429 100644 (file)
@@ -1,5 +1,7 @@
 plugin_LTLIBRARIES = libgsttheora.la
 
+noinst_HEADERS = gsttheoraenc.h
+
 libgsttheora_la_SOURCES = theora.c theoraenc.c theoradec.c
 libgsttheora_la_CFLAGS = $(GST_CFLAGS) $(THEORA_CFLAGS)
 libgsttheora_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
diff --git a/ext/theora/gsttheoraenc.h b/ext/theora/gsttheoraenc.h
new file mode 100644 (file)
index 0000000..2dd113a
--- /dev/null
@@ -0,0 +1,95 @@
+/* GStreamer
+ * Copyright (C) 2004 Wim Taymans <wim@fluendo.com>
+ *
+ * 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_THEORAENC_H__
+#define __GST_THEORAENC_H__
+
+#include <gst/gst.h>
+#include <theora/theora.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_THEORA_ENC \
+  (gst_theora_enc_get_type())
+#define GST_THEORA_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_THEORA_ENC,GstTheoraEnc))
+#define GST_THEORA_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_THEORA_ENC,GstTheoraEnc))
+#define GST_IS_THEORA_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_THEORA_ENC))
+#define GST_IS_THEORA_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_THEORA_ENC))
+
+typedef struct _GstTheoraEnc GstTheoraEnc;
+typedef struct _GstTheoraEncClass GstTheoraEncClass;
+
+typedef enum
+{
+  BORDER_NONE,
+  BORDER_BLACK,
+  BORDER_MIRROR
+}
+GstTheoraEncBorderMode;
+
+struct _GstTheoraEnc
+{
+  GstElement element;
+
+  GstPad *sinkpad;
+  GstPad *srcpad;
+
+  ogg_stream_state to;
+
+  theora_state state;
+  theora_info info;
+  theora_comment comment;
+
+  gboolean center;
+  GstTheoraEncBorderMode border;
+
+  gint video_bitrate;           /* bitrate target for Theora video */
+  gint video_quality;           /* Theora quality selector 0 = low, 63 = high */
+  gboolean quick;
+  gboolean keyframe_auto;
+  gint keyframe_freq;
+  gint keyframe_force;
+  gint keyframe_threshold;
+  gint keyframe_mindistance;
+  gint noise_sensitivity;
+  gint sharpness;
+
+  gint info_width, info_height;
+  gint width, height;
+  gint offset_x, offset_y;
+  gdouble fps;
+
+  guint packetno;
+  guint64 bytes_out;
+  guint64 initial_delay;
+};
+
+struct _GstTheoraEncClass
+{
+  GstElementClass parent_class;
+};
+
+G_END_DECLS
+
+#endif /* __GST_THEORAENC_H__ */
+
index 3ff12d6..b86da72 100644 (file)
 #  include "config.h"
 #endif
 
-#include <gst/gst.h>
-#include <theora/theora.h>
+#include "gsttheoraenc.h"
 #include <string.h>
 #include <gst/tag/tag.h>
 
 GST_DEBUG_CATEGORY (theoraenc_debug);
 #define GST_CAT_DEFAULT theoraenc_debug
 
-#define GST_TYPE_THEORA_ENC \
-  (gst_theora_enc_get_type())
-#define GST_THEORA_ENC(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_THEORA_ENC,GstTheoraEnc))
-#define GST_THEORA_ENC_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_THEORA_ENC,GstTheoraEnc))
-#define GST_IS_THEORA_ENC(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_THEORA_ENC))
-#define GST_IS_THEORA_ENC_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_THEORA_ENC))
-
-typedef struct _GstTheoraEnc GstTheoraEnc;
-typedef struct _GstTheoraEncClass GstTheoraEncClass;
-
-typedef enum
-{
-  BORDER_NONE,
-  BORDER_BLACK,
-  BORDER_MIRROR
-}
-GstTheoraEncBorderMode;
-
 #define GST_TYPE_BORDER_MODE (gst_border_mode_get_type())
 static GType
 gst_border_mode_get_type (void)
@@ -88,56 +65,14 @@ gst_border_mode_get_type (void)
   return border_mode_type;
 }
 
-struct _GstTheoraEnc
-{
-  GstElement element;
-
-  GstPad *sinkpad;
-  GstPad *srcpad;
-
-  ogg_stream_state to;
-
-  theora_state state;
-  theora_info info;
-  theora_comment comment;
-
-  gboolean center;
-  GstTheoraEncBorderMode border;
-
-  gint video_bitrate;           /* bitrate target for Theora video */
-  gint video_quality;           /* Theora quality selector 0 = low, 63 = high */
-  gboolean quick;
-  gboolean keyframe_auto;
-  gint keyframe_freq;
-  gint keyframe_force;
-  gint keyframe_threshold;
-  gint keyframe_mindistance;
-  gint noise_sensitivity;
-  gint sharpness;
-
-  gint info_width, info_height;
-  gint width, height;
-  gint offset_x, offset_y;
-  gdouble fps;
-
-  guint packetno;
-  guint64 bytes_out;
-  guint64 initial_delay;
-};
-
-struct _GstTheoraEncClass
-{
-  GstElementClass parent_class;
-};
-
 #define ROUND_UP_2(x) (((x) + 1) & ~1)
 #define ROUND_UP_4(x) (((x) + 3) & ~3)
 #define ROUND_UP_8(x) (((x) + 7) & ~7)
 
-#define THEORA_DEF_CENTER              TRUE
-#define THEORA_DEF_BORDER              BORDER_BLACK
-#define THEORA_DEF_BITRATE             0
-#define THEORA_DEF_QUALITY             16
+#define THEORA_DEF_CENTER              TRUE
+#define THEORA_DEF_BORDER              BORDER_BLACK
+#define THEORA_DEF_BITRATE             0
+#define THEORA_DEF_QUALITY             16
 #define THEORA_DEF_QUICK               TRUE
 #define THEORA_DEF_KEYFRAME_AUTO       TRUE
 #define THEORA_DEF_KEYFRAME_FREQ       64
index 75d8177..a4eb94d 100644 (file)
  */
 
 /**
+ * SECTION:element-vorbisenc
+ * @see_also: vorbisdec, oggmux
+ *
+ * <refsect2>
+ * <para>
+ * This element encodes raw float audio into a Vorbis stream.
+ * <ulink url="http://www.vorbis.com/">Vorbis</ulink> is a royalty-free
+ * audio codec maintained by the <ulink url="http://www.xiph.org/">Xiph.org
+ * Foundation</ulink>.
+ * </para>
+ * <title>Example pipelines</title>
+ * <para>
+ * Encode a test sine signal to Ogg/Vorbis.  Note that the resulting file
+ * will be really small because a sine signal compresses very well.
+ * </para>
+ * <programlisting>
+ * gst-launch -v sinesrc num-buffers=100 ! audioconvert ! vorbisenc ! oggmux ! filesink location=sinesrc.ogg
+ * </programlisting>
+ * <para>
+ * Record from a sound card using ALSA and encode to Ogg/Vorbis.
+ * </para>
+ * <programlisting>
+ * gst-launch -v alsasrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=alsasrc.ogg
+ * </programlisting>
+  * </refsect2>
+ */
+
+/**
  * SECTION:vorbisenc
  * @short_description: an encoder that encodes to Ogg/Vorbis
  * @see_also: oggdemux