From ea9090e73fada2f174319b901ec39c4a042992d6 Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Mon, 12 Dec 2005 22:29:34 +0000 Subject: [PATCH] Adding documentation for videomixer on my way with a funny sample pipeline. Original commit message from CVS: 2005-12-12 Julien MOUTTE * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-good-plugins-docs.sgml: * docs/plugins/gst-plugins-good-plugins-sections.txt: * docs/plugins/gst-plugins-good-plugins.hierarchy: * gst/videomixer/videomixer.c: (gst_videomixer_pad_sink_setcaps), (gst_videomixer_getcaps), (gst_videomixer_fill_queues), (gst_videomixer_update_queues), (gst_videomixer_collected): Adding documentation for videomixer on my way with a funny sample pipeline. --- ChangeLog | 12 +++++++ docs/plugins/Makefile.am | 3 +- docs/plugins/gst-plugins-good-plugins-docs.sgml | 1 + docs/plugins/gst-plugins-good-plugins-sections.txt | 9 +++++ docs/plugins/gst-plugins-good-plugins.hierarchy | 1 + gst/videomixer/videomixer.c | 42 ++++++++++++++++++++-- 6 files changed, 65 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 70baf7c..97e785b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ 2005-12-12 Julien MOUTTE + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-good-plugins-docs.sgml: + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * gst/videomixer/videomixer.c: (gst_videomixer_pad_sink_setcaps), + (gst_videomixer_getcaps), (gst_videomixer_fill_queues), + (gst_videomixer_update_queues), (gst_videomixer_collected): Adding + documentation for videomixer on my way with a funny sample + pipeline. + +2005-12-12 Julien MOUTTE + * gst/videomixer/videomixer.c: (gst_videomixer_pad_sink_setcaps), (gst_videomixer_getcaps), (gst_videomixer_fill_queues), (gst_videomixer_update_queues), (gst_videomixer_collected): diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index 67a90f3..ddc8062 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -81,7 +81,8 @@ EXTRA_HFILES = \ $(top_srcdir)/ext/cairo/gsttimeoverlay.h \ $(top_srcdir)/ext/flac/gstflacdec.h \ $(top_srcdir)/gst/multipart/multipartmux.c \ - $(top_srcdir)/gst/multipart/multipartdemux.c + $(top_srcdir)/gst/multipart/multipartdemux.c \ + $(top_srcdir)/gst/videomixer/videomixer.c # example code that needs to be converted to xml and placed in xml/ EXAMPLE_CFILES = \ diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml index a6df6a4..731225d 100644 --- a/docs/plugins/gst-plugins-good-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml @@ -20,6 +20,7 @@ + diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt index 70a431c..8cfbfd5 100644 --- a/docs/plugins/gst-plugins-good-plugins-sections.txt +++ b/docs/plugins/gst-plugins-good-plugins-sections.txt @@ -62,3 +62,12 @@ GstMultipartDemux GstMultipartDemuxClass +
+element-videomixer +GstVideoMixer +GstVideoMixerBackground +videomixer + +GstVideoMixerClass +
+ diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy index e3db900..a1cfacc 100644 --- a/docs/plugins/gst-plugins-good-plugins.hierarchy +++ b/docs/plugins/gst-plugins-good-plugins.hierarchy @@ -294,6 +294,7 @@ GObject GstTypeFindElement GstMultipartMux GstMultipartDemux + GstVideoMixer GstPadTemplate GstIndex GstMemIndex diff --git a/gst/videomixer/videomixer.c b/gst/videomixer/videomixer.c index 5093000..f4b6b13 100644 --- a/gst/videomixer/videomixer.c +++ b/gst/videomixer/videomixer.c @@ -17,6 +17,34 @@ * Boston, MA 02111-1307, USA. */ +/** + * SECTION:element-videomixer + * @short_description: Takes several AYUV video streams as input and mixes them + * together. + * + * + * + * Videomixer can only accept AYUV video streams. For each of the requested + * sink pads it will compare the incoming geometry and framerate to define the + * output parameters. Indeed output video frames will have the geometry of the + * biggest incoming video stream and the framerate of the fastest incoming one. + * + * Sample pipelines + * + * Here is a pipeline to demonstrate videomixer used together with videobox : + * + * gst-launch videotestsrc pattern=1 ! video/x-raw-yuv, framerate=\(fraction\)10/1, width=100, height=100 ! videobox border-alpha=0 alpha=0.5 top=-70 bottom=-70 right=-220 ! videomixer name=mix ! ffmpegcolorspace ! xvimagesink videotestsrc ! video/x-raw-yuv, framerate=\(fraction\)5/1, width=320, height=240 ! alpha alpha=0.7 ! mix. + * + * This should show a 320x240 pixels video test source with some transparency + * showing the background checker pattern. Another video test source with just + * the snow pattern of 100x100 pixels is overlayed on top of the first one on + * the left vertically centered with a small transparency showing the first + * video test source behind and the checker pattern under it. Note that the + * framerate of the output video is 10 frames per second. + * + * + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -228,8 +256,13 @@ gst_videomixer_pad_set_property (GObject * object, guint prop_id, } /** - * GstVideoMixerBackground: - */ + * GstVideoMixerBackground: + * @VIDEO_MIXER_BACKGROUND_CHECKER: checker pattern background + * @VIDEO_MIXER_BACKGROUND_BLACK: solid color black background + * @VIDEO_MIXER_BACKGROUND_WHITE: solid color white background + * + * The different backgrounds videomixer can blend over. + */ typedef enum { VIDEO_MIXER_BACKGROUND_CHECKER, @@ -238,6 +271,11 @@ typedef enum } GstVideoMixerBackground; +/** + * GstVideoMixer: + * + * The opaque #GstVideoMixer structure. + */ struct _GstVideoMixer { GstElement element; -- 2.7.4