deinterlace2: Add documentation and integrate into the build system
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 22 Apr 2009 17:43:22 +0000 (19:43 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 22 Apr 2009 17:43:22 +0000 (19:43 +0200)
docs/plugins/Makefile.am
docs/plugins/gst-plugins-bad-plugins-docs.sgml
docs/plugins/gst-plugins-bad-plugins-sections.txt
gst/deinterlace2/gstdeinterlace2.c
gst/deinterlace2/gstdeinterlace2.h

index d87cddd..d723b6a 100644 (file)
@@ -121,6 +121,7 @@ EXTRA_HFILES = \
        $(top_srcdir)/gst/autoconvert/gstautoconvert.h \
        $(top_srcdir)/gst/camerabin/gstcamerabin.h \
        $(top_srcdir)/gst/deinterlace/gstdeinterlace.h \
+       $(top_srcdir)/gst/deinterlace2/gstdeinterlace2.h \
        $(top_srcdir)/gst/dccp/gstdccpclientsink.h \
        $(top_srcdir)/gst/dccp/gstdccpclientsrc.h \
        $(top_srcdir)/gst/dccp/gstdccpserversink.h \
index fdf131f..f9178b0 100644 (file)
@@ -33,6 +33,7 @@
     <xi:include href="xml/element-dccpserversink.xml" />
     <xi:include href="xml/element-dccpserversrc.xml" />
     <xi:include href="xml/element-deinterlace.xml" />
+    <xi:include href="xml/element-deinterlace2.xml" />
     <xi:include href="xml/element-dfbvideosink.xml" />
     <xi:include href="xml/element-dtmfsrc.xml" />
     <xi:include href="xml/element-dtsdec.xml" />
     <xi:include href="xml/plugin-cdxaparse.xml" />
     <xi:include href="xml/plugin-celt.xml" />
     <xi:include href="xml/plugin-dccp.xml" />
+    <xi:include href="xml/plugin-deinterlace2.xml" />
     <xi:include href="xml/plugin-dfbvideosink.xml" />
     <xi:include href="xml/plugin-dirac.xml" />
     <xi:include href="xml/plugin-dtmf.xml" />
index 593bab4..0973d7e 100644 (file)
@@ -224,6 +224,20 @@ gst_deinterlace_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-deinterlace2</FILE>
+<TITLE>deinterlace2</TITLE>
+GstDeinterlace2
+<SUBSECTION Standard>
+GstDeinterlace2Class
+GST_IS_DEINTERLACE2
+GST_IS_DEINTERLACE2_CLASS
+GST_DEINTERLACE2
+GST_DEINTERLACE2_CLASS
+GST_TYPE_DEINTERLACE2
+gst_deinterlace2_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-dfbvideosink</FILE>
 <TITLE>dfbvideosink</TITLE>
 GstDfbVideoSink
index 0440c61..b293b43 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
+/**
+ * SECTION:element-deinterlace2
+ *
+ * deinterlace2 deinterlaces interlaced video frames to progressive video frames.
+ * For this different algorithms can be selected which will be described later.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch -v filesrc location=/path/to/file ! decodebin2 ! ffmpegcolorspace ! deinterlace2 ! ffmpegcolorspace ! autovideosink
+ * ]| This pipeline deinterlaces a video file with the default deinterlacing options.
+ * </refsect2>
+ */
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -482,6 +496,14 @@ gst_deinterlace2_class_init (GstDeinterlace2Class * klass)
   gobject_class->get_property = gst_deinterlace2_get_property;
   gobject_class->finalize = gst_deinterlace2_finalize;
 
+  /**
+   * GstDeinterlace2:mode
+   * 
+   * This selects whether the deinterlacing methods should
+   * always be applied or if they should only be applied
+   * on content that has the "interlaced" flag on the caps.
+   *
+   */
   g_object_class_install_property (gobject_class, PROP_MODE,
       g_param_spec_enum ("mode",
           "Mode",
@@ -490,6 +512,79 @@ gst_deinterlace2_class_init (GstDeinterlace2Class * klass)
           DEFAULT_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
       );
 
+  /**
+   * GstDeinterlace2:method
+   * 
+   * Selects the different deinterlacing algorithms that can be used.
+   * These provide different quality and CPU usage.
+   *
+   * Some methods provide parameters which can be set by getting
+   * the "method" child via the #GstChildProxy interface and
+   * setting the appropiate properties on it.
+   *
+   * <itemizedlist>
+   * <listitem>
+   * <para>
+   * tomsmocomp
+   * Motion Adaptive: Motion Search
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * greedyh
+   * Motion Adaptive: Advanced Detection
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * greedyl
+   * Motion Adaptive: Simple Detection
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * vfir
+   * Blur vertical
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * linear
+   * Linear interpolation
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * linearblend
+   * Linear interpolation in time domain
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * scalerbob
+   * Double lines
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * weave
+   * Weave
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * weavetff
+   * Progressive: Top Field First
+   * </para>
+   * </listitem>
+   * <listitem>
+   * <para>
+   * weavebff
+   * Progressive: Bottom Field First
+   * </para>
+   * </listitem>
+   * </itemizedlist>
+   */
   g_object_class_install_property (gobject_class, PROP_METHOD,
       g_param_spec_enum ("method",
           "Method",
@@ -498,6 +593,13 @@ gst_deinterlace2_class_init (GstDeinterlace2Class * klass)
           DEFAULT_METHOD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
       );
 
+  /**
+   * GstDeinterlace2:fields
+   *
+   * This selects which fields should be output. If "all" is selected
+   * the output framerate will be double.
+   *
+   */
   g_object_class_install_property (gobject_class, PROP_FIELDS,
       g_param_spec_enum ("fields",
           "fields",
@@ -506,6 +608,12 @@ gst_deinterlace2_class_init (GstDeinterlace2Class * klass)
           DEFAULT_FIELDS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
       );
 
+  /**
+   * GstDeinterlace2:layout
+   *
+   * This selects which fields is the first in time.
+   *
+   */
   g_object_class_install_property (gobject_class, PROP_FIELD_LAYOUT,
       g_param_spec_enum ("tff",
           "tff",
index 1d2c3e1..de63f54 100644 (file)
@@ -198,6 +198,8 @@ struct _GstDeinterlace2
 
   GstPad *srcpad, *sinkpad;
 
+  /* <private> */
+
   GstDeinterlace2Mode mode;
 
   GstDeinterlace2FieldLayout field_layout;