summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/plugins/Makefile.am1
-rw-r--r--docs/plugins/gst-plugins-bad-plugins-docs.sgml2
-rw-r--r--docs/plugins/gst-plugins-bad-plugins-sections.txt14
-rw-r--r--gst/deinterlace2/gstdeinterlace2.c108
-rw-r--r--gst/deinterlace2/gstdeinterlace2.h2
5 files changed, 127 insertions, 0 deletions
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index d87cddd1..d723b6ac 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -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 \
diff --git a/docs/plugins/gst-plugins-bad-plugins-docs.sgml b/docs/plugins/gst-plugins-bad-plugins-docs.sgml
index fdf131f1..f9178b00 100644
--- a/docs/plugins/gst-plugins-bad-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-bad-plugins-docs.sgml
@@ -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" />
@@ -101,6 +102,7 @@
<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" />
diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt
index 593bab46..0973d7ef 100644
--- a/docs/plugins/gst-plugins-bad-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt
@@ -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
diff --git a/gst/deinterlace2/gstdeinterlace2.c b/gst/deinterlace2/gstdeinterlace2.c
index 0440c61a..b293b43e 100644
--- a/gst/deinterlace2/gstdeinterlace2.c
+++ b/gst/deinterlace2/gstdeinterlace2.c
@@ -19,6 +19,20 @@
* 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",
diff --git a/gst/deinterlace2/gstdeinterlace2.h b/gst/deinterlace2/gstdeinterlace2.h
index 1d2c3e1a..de63f54e 100644
--- a/gst/deinterlace2/gstdeinterlace2.h
+++ b/gst/deinterlace2/gstdeinterlace2.h
@@ -198,6 +198,8 @@ struct _GstDeinterlace2
GstPad *srcpad, *sinkpad;
+ /* <private> */
+
GstDeinterlace2Mode mode;
GstDeinterlace2FieldLayout field_layout;