diff options
-rw-r--r-- | docs/plugins/Makefile.am | 1 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins-docs.sgml | 2 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins-sections.txt | 14 | ||||
-rw-r--r-- | gst/deinterlace2/gstdeinterlace2.c | 108 | ||||
-rw-r--r-- | gst/deinterlace2/gstdeinterlace2.h | 2 |
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; |