diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index c6cfbec072..f7e59462a5 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -138,6 +138,7 @@ EXTRA_HFILES = \
$(top_srcdir)/gst/avi/gstavimux.h \
$(top_srcdir)/gst/avi/gstavisubtitle.h \
$(top_srcdir)/gst/cutter/gstcutter.h \
+ $(top_srcdir)/gst/debugutils/gstcapssetter.h \
$(top_srcdir)/gst/debugutils/gsttaginject.h \
$(top_srcdir)/gst/debugutils/progressreport.h \
$(top_srcdir)/gst/deinterlace/gstdeinterlace.h \
diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml
index 3ba0fd59bc..54157d6e45 100644
--- a/docs/plugins/gst-plugins-good-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml
@@ -51,6 +51,7 @@
+
diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt
index d95a8e260c..85d44aaed7 100644
--- a/docs/plugins/gst-plugins-good-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-good-plugins-sections.txt
@@ -465,6 +465,20 @@ GST_CAIRO_RENDER_CLASS
gst_cairo_render_get_type
+
+element-capssetter
+capssetter
+GstCapsSetter
+
+GstCapsSetterClass
+GST_TYPE_CAPS_SETTER
+GST_CAPS_SETTER
+GST_IS_CAPS_SETTER
+GST_CAPS_SETTER_CLASS
+GST_IS_CAPS_SETTER_CLASS
+gst_caps_setter_get_type
+
+
element-cmmldec
cmmldec
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index fa3adeb247..2d6dfef767 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -20638,3 +20638,32 @@
FALSE
+
+GstCapsSetter::caps
+GstCaps*
+
+rw
+Merge caps
+Merge these caps (thereby overwriting) in the stream.
+
+
+
+
+GstCapsSetter::join
+gboolean
+
+rw
+Join
+Match incoming caps' mime-type to mime-type of provided caps.
+TRUE
+
+
+
+GstCapsSetter::replace
+gboolean
+
+rw
+Replace
+Drop fields of incoming caps.
+FALSE
+
diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy
index 26709df474..5db0c17ed2 100644
--- a/docs/plugins/gst-plugins-good-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-good-plugins.hierarchy
@@ -96,6 +96,7 @@ GObject
GstAlphaColor
GstVideoBox
GstBreakMyData
+ GstCapsSetter
GstNavSeek
GstProgressReport
GstTagInject
diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml
index 7e54f19937..9538ddcbd3 100644
--- a/docs/plugins/inspect/plugin-debug.xml
+++ b/docs/plugins/inspect/plugin-debug.xml
@@ -30,6 +30,27 @@
+
+ capssetter
+ CapsSetter
+ Generic
+ Set/merge caps on stream
+ Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+
+ src
+ source
+ always
+ ANY
+
+
+ sink
+ sink
+ always
+ ANY
+
+
+
navseek
Seek based on left-right arrows
diff --git a/gst/debugutils/Makefile.am b/gst/debugutils/Makefile.am
index 8c53cdf316..800f0b6746 100644
--- a/gst/debugutils/Makefile.am
+++ b/gst/debugutils/Makefile.am
@@ -8,6 +8,7 @@ plugin_LTLIBRARIES = $(EFENCE_PLUGIN) libgstdebug.la libgstnavigationtest.la
noinst_HEADERS = \
efence.h \
+ gstcapssetter.h \
gstnavigationtest.h \
gstnavseek.h \
gstpushfilesrc.h \
@@ -32,6 +33,7 @@ libgstnavigationtest_la_LIBTOOLFLAGS = --tag=disable-static
libgstdebug_la_SOURCES = \
gstdebug.c \
breakmydata.c \
+ gstcapssetter.c \
gstnavseek.c \
gstpushfilesrc.c \
gsttaginject.c \
diff --git a/gst/debugutils/gstdebug.c b/gst/debugutils/gstdebug.c
index f2fff1c36a..da3f1800a1 100644
--- a/gst/debugutils/gstdebug.c
+++ b/gst/debugutils/gstdebug.c
@@ -24,6 +24,7 @@
#include
GType gst_break_my_data_get_type (void);
+GType gst_caps_setter_get_type (void);
GType gst_rnd_buffer_size_get_type (void);
GType gst_navseek_get_type (void);
GType gst_progress_report_get_type (void);
@@ -39,6 +40,8 @@ plugin_init (GstPlugin * plugin)
{
if (!gst_element_register (plugin, "breakmydata", GST_RANK_NONE,
gst_break_my_data_get_type ())
+ || !gst_element_register (plugin, "capssetter", GST_RANK_NONE,
+ gst_caps_setter_get_type ())
|| !gst_element_register (plugin, "rndbuffersize", GST_RANK_NONE,
gst_rnd_buffer_size_get_type ())
|| !gst_element_register (plugin, "navseek", GST_RANK_NONE,
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 1446421609..ce5d41b061 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -107,6 +107,7 @@ check_PROGRAMS = \
elements/audiowsinclimit \
elements/avimux \
elements/avisubtitle \
+ elements/capssetter \
elements/deinterlace \
elements/deinterleave \
elements/equalizer \
diff --git a/tests/check/elements/.gitignore b/tests/check/elements/.gitignore
index a7bb02cfce..3f17e0ea49 100644
--- a/tests/check/elements/.gitignore
+++ b/tests/check/elements/.gitignore
@@ -16,6 +16,7 @@ audiopanorama
autodetect
avimux
avisubtitle
+capssetter
cmmldec
cmmlenc
deinterlace