From 2972b673c04762d3b73ba4f2da975c2e748e75ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 27 Dec 2018 13:34:29 +0100 Subject: [PATCH] compositor: add to build after move from -bad This replaces videomixer. Fixes #138 --- .gitignore | 1 + configure.ac | 3 ++ .../gst-plugins-base-plugins-docs.sgml | 2 ++ .../gst-plugins-base-plugins-sections.txt | 17 ++++++++++ .../gst-plugins-base-plugins.hierarchy | 2 ++ .../gst-plugins-base-plugins.interfaces | 1 + docs/plugins/inspect/plugin-compositor.xml | 34 +++++++++++++++++++ gst/compositor/Makefile.am | 6 +--- gst/compositor/meson.build | 4 +-- gst/meson.build | 2 +- meson_options.txt | 1 + tests/check/Makefile.am | 23 ++++++++++++- tests/check/elements/.gitignore | 1 + tests/check/meson.build | 1 + tests/examples/Makefile.am | 4 +-- tests/examples/compositor/Makefile.am | 5 +++ tests/examples/compositor/meson.build | 5 +++ tests/examples/meson.build | 1 + 18 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 docs/plugins/inspect/plugin-compositor.xml create mode 100644 tests/examples/compositor/Makefile.am create mode 100644 tests/examples/compositor/meson.build diff --git a/.gitignore b/.gitignore index 8ed46cad4b..3d38bceb3c 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/configure.ac b/configure.ac index dfd22ccbcd..d6f2070d63 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/docs/plugins/gst-plugins-base-plugins-docs.sgml b/docs/plugins/gst-plugins-base-plugins-docs.sgml index 8fd7d887ea..57659de187 100644 --- a/docs/plugins/gst-plugins-base-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-base-plugins-docs.sgml @@ -31,6 +31,7 @@ + @@ -140,6 +141,7 @@ + diff --git a/docs/plugins/gst-plugins-base-plugins-sections.txt b/docs/plugins/gst-plugins-base-plugins-sections.txt index 75f5dad8a3..c5c2b54b9a 100644 --- a/docs/plugins/gst-plugins-base-plugins-sections.txt +++ b/docs/plugins/gst-plugins-base-plugins-sections.txt @@ -226,6 +226,23 @@ GST_TYPE_CLOCK_OVERLAY gst_clock_overlay_get_type +
+element-compositor +compositor +GstCompositor +GstCompositorBackground + +GstCompositorClass +GST_COMPOSITOR +GST_COMPOSITOR_CAST +GST_IS_COMPOSITOR +GST_COMPOSITOR_CLASS +GST_IS_COMPOSITOR_CLASS +GST_TYPE_COMPOSITOR + +gst_compositor_get_type +
+
element-decodebin decodebin diff --git a/docs/plugins/gst-plugins-base-plugins.hierarchy b/docs/plugins/gst-plugins-base-plugins.hierarchy index 252b0bbac1..9f5109ba84 100644 --- a/docs/plugins/gst-plugins-base-plugins.hierarchy +++ b/docs/plugins/gst-plugins-base-plugins.hierarchy @@ -19,6 +19,8 @@ GObject GstAudioInterleave GstAudioMixer GstLiveAdder + GstVideoAggregator + GstCompositor GstAudioDecoder GstOpusDec GstVorbisDec diff --git a/docs/plugins/gst-plugins-base-plugins.interfaces b/docs/plugins/gst-plugins-base-plugins.interfaces index 46b2a896b1..4f47ee0cbd 100644 --- a/docs/plugins/gst-plugins-base-plugins.interfaces +++ b/docs/plugins/gst-plugins-base-plugins.interfaces @@ -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 index 0000000000..75d99ba129 --- /dev/null +++ b/docs/plugins/inspect/plugin-compositor.xml @@ -0,0 +1,34 @@ + + compositor + Compositor + ../../gst/compositor/.libs/libgstcompositor.so + libgstcompositor.so + 1.15.0.1 + LGPL + gst-plugins-base + GStreamer Base Plug-ins git + Unknown package origin + + + compositor + Compositor + Filter/Editor/Video/Compositor + Composite multiple video streams + Wim Taymans <wim@fluendo.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink_%u + sink + request +
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 ]
+
+ + src + source + always +
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 ]
+
+
+
+
+
\ No newline at end of file diff --git a/gst/compositor/Makefile.am b/gst/compositor/Makefile.am index 193d153d95..a3b1e8e422 100644 --- a/gst/compositor/Makefile.am +++ b/gst/compositor/Makefile.am @@ -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) diff --git a/gst/compositor/meson.build b/gst/compositor/meson.build index f379a31a07..4f38fe7a3b 100644 --- a/gst/compositor/meson.build +++ b/gst/compositor/meson.build @@ -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, ) diff --git a/gst/meson.build b/gst/meson.build index 8986eea8b4..91be2a00b7 100644 --- a/gst/meson.build +++ b/gst/meson.build @@ -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() diff --git a/meson_options.txt b/meson_options.txt index 4415c2f5a2..e7af4dd455 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -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') diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 8fe1122151..76718eed9c 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -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 $@ $< diff --git a/tests/check/elements/.gitignore b/tests/check/elements/.gitignore index 3537acd134..4fa55bbfb3 100644 --- a/tests/check/elements/.gitignore +++ b/tests/check/elements/.gitignore @@ -9,6 +9,7 @@ audiomixer audiorate audioresample audiotestsrc +compositor decodebin encodebin glbin diff --git a/tests/check/meson.build b/tests/check/meson.build index fdd4853c4c..e988dbf125 100644 --- a/tests/check/meson.build +++ b/tests/check/meson.build @@ -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') ], diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am index 059a154355..0eed5739f8 100644 --- a/tests/examples/Makefile.am +++ b/tests/examples/Makefile.am @@ -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 index 0000000000..a3bb99aefc --- /dev/null +++ b/tests/examples/compositor/Makefile.am @@ -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 index 0000000000..0ad55b41ab --- /dev/null +++ b/tests/examples/compositor/meson.build @@ -0,0 +1,5 @@ +executable('crossfade', 'crossfade.c', + include_directories: [configinc], + c_args: ['-DHAVE_CONFIG_H'], + dependencies: [gst_controller_dep, gst_dep], + install: false) diff --git a/tests/examples/meson.build b/tests/examples/meson.build index 011b811b4a..44d28e298d 100644 --- a/tests/examples/meson.build +++ b/tests/examples/meson.build @@ -1,5 +1,6 @@ subdir('app') subdir('audio') +subdir('compositor') subdir('dynamic') subdir('decodebin_next') subdir('encoding')