compositor: add to build after move from -bad
authorTim-Philipp Müller <tim@centricular.com>
Thu, 27 Dec 2018 12:34:29 +0000 (13:34 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 28 Dec 2018 11:16:18 +0000 (12:16 +0100)
This replaces videomixer.

Fixes #138

18 files changed:
.gitignore
configure.ac
docs/plugins/gst-plugins-base-plugins-docs.sgml
docs/plugins/gst-plugins-base-plugins-sections.txt
docs/plugins/gst-plugins-base-plugins.hierarchy
docs/plugins/gst-plugins-base-plugins.interfaces
docs/plugins/inspect/plugin-compositor.xml [new file with mode: 0644]
gst/compositor/Makefile.am
gst/compositor/meson.build
gst/meson.build
meson_options.txt
tests/check/Makefile.am
tests/check/elements/.gitignore
tests/check/meson.build
tests/examples/Makefile.am
tests/examples/compositor/Makefile.am [new file with mode: 0644]
tests/examples/compositor/meson.build [new file with mode: 0644]
tests/examples/meson.build

index 8ed46ca..3d38bce 100644 (file)
@@ -52,6 +52,7 @@ Makefile
 /gst-libs/gst/audio/audio-marshal.[ch]
 /gst-libs/gst/video/video-marshal.[ch]
 /gst-libs/gst/*/*-enumtypes.[ch]
+/tests/examples/compositor/crossfade
 /tests/examples/playback/playback-test
 
 tmp-orc.c
index dfd22cc..d6f2070 100644 (file)
@@ -498,6 +498,7 @@ AG_GST_CHECK_PLUGIN(audioconvert)
 AG_GST_CHECK_PLUGIN(audiomixer)
 AG_GST_CHECK_PLUGIN(audiorate)
 AG_GST_CHECK_PLUGIN(audiotestsrc)
+AG_GST_CHECK_PLUGIN(compositor)
 AG_GST_CHECK_PLUGIN(encoding)
 AG_GST_CHECK_PLUGIN(videoconvert)
 AG_GST_CHECK_PLUGIN(gio)
@@ -922,6 +923,7 @@ gst/audiomixer/Makefile
 gst/audiorate/Makefile
 gst/audioresample/Makefile
 gst/audiotestsrc/Makefile
+gst/compositor/Makefile
 gst/encoding/Makefile
 gst/videoconvert/Makefile
 gst/gio/Makefile
@@ -1008,6 +1010,7 @@ tests/check/Makefile
 tests/examples/Makefile
 tests/examples/app/Makefile
 tests/examples/audio/Makefile
+tests/examples/compositor/Makefile
 tests/examples/decodebin_next/Makefile
 tests/examples/dynamic/Makefile
 tests/examples/encoding/Makefile
index 8fd7d88..57659de 100644 (file)
@@ -31,6 +31,7 @@
     <xi:include href="xml/element-audiotestsrc.xml" />
     <xi:include href="xml/element-cdparanoiasrc.xml" />
     <xi:include href="xml/element-clockoverlay.xml" />
+    <xi:include href="xml/element-compositor.xml" />
     <xi:include href="xml/element-decodebin.xml" />
     <xi:include href="xml/element-decodebin3.xml" />
     <xi:include href="xml/element-encodebin.xml" />
     <xi:include href="xml/plugin-audioresample.xml" />
     <xi:include href="xml/plugin-audiotestsrc.xml" />
     <xi:include href="xml/plugin-cdparanoia.xml" />
+    <xi:include href="xml/plugin-compositor.xml" />
     <xi:include href="xml/plugin-encoding.xml" />
     <xi:include href="xml/plugin-gio.xml" />
     <xi:include href="xml/plugin-ivorbisdec.xml" />
index 75f5dad..c5c2b54 100644 (file)
@@ -227,6 +227,23 @@ gst_clock_overlay_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-compositor</FILE>
+<TITLE>compositor</TITLE>
+GstCompositor
+GstCompositorBackground
+<SUBSECTION Standard>
+GstCompositorClass
+GST_COMPOSITOR
+GST_COMPOSITOR_CAST
+GST_IS_COMPOSITOR
+GST_COMPOSITOR_CLASS
+GST_IS_COMPOSITOR_CLASS
+GST_TYPE_COMPOSITOR
+<SUBSECTION Private>
+gst_compositor_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-decodebin</FILE>
 <TITLE>decodebin</TITLE>
 GstDecodeBin
index 252b0bb..9f5109b 100644 (file)
@@ -19,6 +19,8 @@ GObject
             GstAudioInterleave
             GstAudioMixer
               GstLiveAdder
+          GstVideoAggregator
+            GstCompositor
         GstAudioDecoder
           GstOpusDec
           GstVorbisDec
index 46b2a89..4f47ee0 100644 (file)
@@ -11,6 +11,7 @@ GstAudioInterleave GstChildProxy
 GstAudioMixer GstChildProxy
 GstBin GstChildProxy
 GstCdParanoiaSrc GstURIHandler
+GstCompositor GstChildProxy
 GstDecodeBin GstChildProxy
 GstDecodebin3 GstChildProxy
 GstEncodeBin GstChildProxy
diff --git a/docs/plugins/inspect/plugin-compositor.xml b/docs/plugins/inspect/plugin-compositor.xml
new file mode 100644 (file)
index 0000000..75d99ba
--- /dev/null
@@ -0,0 +1,34 @@
+<plugin>
+  <name>compositor</name>
+  <description>Compositor</description>
+  <filename>../../gst/compositor/.libs/libgstcompositor.so</filename>
+  <basename>libgstcompositor.so</basename>
+  <version>1.15.0.1</version>
+  <license>LGPL</license>
+  <source>gst-plugins-base</source>
+  <package>GStreamer Base Plug-ins git</package>
+  <origin>Unknown package origin</origin>
+  <elements>
+    <element>
+      <name>compositor</name>
+      <longname>Compositor</longname>
+      <class>Filter/Editor/Video/Compositor</class>
+      <description>Composite multiple video streams</description>
+      <author>Wim Taymans &lt;wim@fluendo.com&gt;, Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink_%u</name>
+          <direction>sink</direction>
+          <presence>request</presence>
+          <details>video/x-raw, format=(string){ AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>video/x-raw, format=(string){ AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
index 193d153..a3b1e8e 100644 (file)
@@ -11,14 +11,10 @@ libgstcompositor_la_SOURCES = \
 
 nodist_libgstcompositor_la_SOURCES = $(ORC_NODIST_SOURCES)
 libgstcompositor_la_CFLAGS =  \
-       -I$(top_srcdir)/gst-libs \
-       -I$(top_builddir)/gst-libs \
        $(GST_PLUGINS_BASE_CFLAGS) \
        $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
 libgstcompositor_la_LIBADD =  \
-       $(top_builddir)/gst-libs/gst/video/libgstbadvideo-$(GST_API_VERSION).la \
-       $(GST_PLUGINS_BASE_LIBS) \
-       -lgstvideo-@GST_API_VERSION@ \
+       $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
        $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
 libgstcompositor_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 
index f379a31..4f38fe7 100644 (file)
@@ -24,9 +24,9 @@ endif
 
 gstcompositor = library('gstcompositor',
   compositor_sources, orc_c, orc_h,
-  c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+  c_args : gst_plugins_base_args,
   include_directories : [configinc],
-  dependencies : [gstbadvideo_dep, gstvideo_dep, gstbase_dep, orc_dep, libm],
+  dependencies : [video_dep, gst_base_dep, orc_dep, libm],
   install : true,
   install_dir : plugins_install_dir,
 )
index 8986eea..91be2a0 100644 (file)
@@ -1,5 +1,5 @@
 foreach plugin : ['adder', 'app', 'audioconvert', 'audiomixer', 'audiorate', 'audioresample',
-                  'audiotestsrc', 'encoding', 'gio', 'overlaycomposition', 'pbtypes', 'playback',
+                  'audiotestsrc', 'compositor', 'encoding', 'gio', 'overlaycomposition', 'pbtypes', 'playback',
                   'rawparse', 'subparse', 'tcp', 'typefind', 'videoconvert', 'videorate', 'videoscale',
                   'videotestsrc', 'volume']
   if not get_option(plugin).disabled()
index 4415c2f..e7af4dd 100644 (file)
@@ -35,6 +35,7 @@ option('audiomixer', type : 'feature', value : 'auto')
 option('audiorate', type : 'feature', value : 'auto')
 option('audioresample', type : 'feature', value : 'auto')
 option('audiotestsrc', type : 'feature', value : 'auto')
+option('compositor', type : 'feature', value : 'auto')
 option('encoding', type : 'feature', value : 'auto')
 option('gio', type : 'feature', value : 'auto')
 option('overlaycomposition', type : 'feature', value : 'auto')
index 8fe1122..76718ee 100644 (file)
@@ -100,6 +100,12 @@ else
 check_audiomixer =
 endif
 
+if USE_PLUGIN_COMPOSITOR
+check_compositor = elements/compositor
+else
+check_compositor =
+endif
+
 if USE_PLUGIN_PLAYBACK
 check_playback = elements/decodebin elements/playbin \
     elements/playbin-complex elements/streamsynchronizer \
@@ -182,7 +188,7 @@ check_adder =
 endif
 
 if HAVE_ORC
-check_orc = orc/video orc/audio orc/audiomixer orc/adder orc/volume orc/videotestsrc
+check_orc = orc/video orc/audio orc/audiomixer orc/adder orc/compositor orc/volume orc/videotestsrc
 else
 check_orc =
 endif
@@ -274,6 +280,7 @@ check_PROGRAMS = \
        $(check_audiorate) \
        $(check_audioresample) \
        $(check_audiotestsrc) \
+       $(check_compositor) \
        $(check_encodebin) \
        $(check_gio) \
        $(check_gl) \
@@ -704,6 +711,13 @@ elements_audiotestsrc_CFLAGS = \
        $(GST_BASE_CFLAGS) \
        $(AM_CFLAGS)
 
+elements_compositor_LDADD = \
+       $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
+       $(GST_BASE_LIBS) $(LDADD)
+elements_compositor_CFLAGS = \
+       $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
+
 elements_libvisual_LDADD =  $(LDADD)
 elements_libvisual_CFLAGS = $(CFLAGS) $(AM_CFLAGS)
 
@@ -939,6 +953,9 @@ nodist_orc_adder_SOURCES = orc/adder.c
 orc_audiomixer_CFLAGS = $(ORC_CFLAGS)
 orc_audiomixer_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_audiomixer_SOURCES = orc/audiomixer.c
+orc_compositor_CFLAGS = $(ORC_CFLAGS)
+orc_compositor_LDADD = $(ORC_LIBS) -lorc-test-0.4
+nodist_orc_compositor_SOURCES = orc/compositor.c
 orc_volume_CFLAGS = $(ORC_CFLAGS)
 orc_volume_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_volume_SOURCES = orc/volume.c
@@ -962,6 +979,10 @@ orc/adder.c: $(top_srcdir)/gst/adder/gstadderorc.orc
        $(MKDIR_P) orc/
        $(ORCC) --test -o $@ $<
 
+orc/compositor.c: $(top_srcdir)/gst/compositor/compositororc.orc
+       $(MKDIR_P) orc/
+       $(ORCC) --test -o $@ $<
+
 orc/volume.c: $(top_srcdir)/gst/volume/gstvolumeorc.orc
        $(MKDIR_P) orc/
        $(ORCC) --test -o $@ $<
index 3537acd..4fa55bb 100644 (file)
@@ -9,6 +9,7 @@ audiomixer
 audiorate
 audioresample
 audiotestsrc
+compositor
 decodebin
 encodebin
 glbin
index fdd4853..e988dbf 100644 (file)
@@ -62,6 +62,7 @@ if host_machine.system() != 'windows'
     [ 'libs/rtp.c' ],
     [ 'libs/rtspconnection.c' ],
     [ 'libs/video.c' ],
+    [ 'elements/compositor.c', not core_conf.has('HAVE_UNISTD_H') ],
     [ 'elements/libvisual.c', not is_variable('libvisual_dep') or not libvisual_dep.found() ],
     [ 'elements/encodebin.c', not theoraenc_dep.found() or not vorbisenc_dep.found() ],
     [ 'elements/multifdsink.c', not core_conf.has('HAVE_SYS_SOCKET_H') or not core_conf.has('HAVE_UNISTD_H') ],
index 059a154..0eed573 100644 (file)
@@ -8,8 +8,8 @@ else
 GL_DIR=
 endif
 
-SUBDIRS = app audio decodebin_next dynamic fft gio $(GL_DIR) $(GTK_SUBDIRS) overlay overlaycomposition playrec encoding
-DIST_SUBDIRS = app audio dynamic decodebin_next fft gio gl playback overlay overlaycomposition seek snapshot playrec encoding
+SUBDIRS = app audio compositor decodebin_next dynamic fft gio $(GL_DIR) $(GTK_SUBDIRS) overlay overlaycomposition playrec encoding
+DIST_SUBDIRS = app audio compositor decodebin_next dynamic fft gio gl playback overlay overlaycomposition seek snapshot playrec encoding
 
 include $(top_srcdir)/common/parallel-subdirs.mak
 
diff --git a/tests/examples/compositor/Makefile.am b/tests/examples/compositor/Makefile.am
new file mode 100644 (file)
index 0000000..a3bb99a
--- /dev/null
@@ -0,0 +1,5 @@
+noinst_PROGRAMS = crossfade
+
+crossfade_SOURCES = crossfade.c
+crossfade_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS)
+crossfade_LDADD = $(GST_CONTROLLER_LIBS) $(GST_LIBS)
diff --git a/tests/examples/compositor/meson.build b/tests/examples/compositor/meson.build
new file mode 100644 (file)
index 0000000..0ad55b4
--- /dev/null
@@ -0,0 +1,5 @@
+executable('crossfade', 'crossfade.c',
+  include_directories: [configinc],
+  c_args: ['-DHAVE_CONFIG_H'],
+  dependencies: [gst_controller_dep, gst_dep],
+  install: false)
index 011b811..44d28e2 100644 (file)
@@ -1,5 +1,6 @@
 subdir('app')
 subdir('audio')
+subdir('compositor')
 subdir('dynamic')
 subdir('decodebin_next')
 subdir('encoding')