From 30f5abc32c7c8d8517f5089a54756efa4ab63428 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Tue, 1 Aug 2017 17:07:59 +0300 Subject: [PATCH] ipcpipeline: move to sys/ and make it dependent on platform support for unix sockets --- configure.ac | 17 ++++++++++++++-- gst/ipcpipeline/meson.build | 16 --------------- gst/meson.build | 1 - sys/Makefile.am | 10 ++++++++-- {gst => sys}/ipcpipeline/Makefile.am | 0 {gst => sys}/ipcpipeline/gstipcpipeline.c | 0 {gst => sys}/ipcpipeline/gstipcpipelinecomm.c | 0 {gst => sys}/ipcpipeline/gstipcpipelinecomm.h | 0 {gst => sys}/ipcpipeline/gstipcpipelinesink.c | 0 {gst => sys}/ipcpipeline/gstipcpipelinesink.h | 0 {gst => sys}/ipcpipeline/gstipcpipelinesrc.c | 0 {gst => sys}/ipcpipeline/gstipcpipelinesrc.h | 0 .../ipcpipeline/gstipcslavepipeline.c | 0 .../ipcpipeline/gstipcslavepipeline.h | 0 sys/ipcpipeline/meson.build | 20 +++++++++++++++++++ {gst => sys}/ipcpipeline/protocol.txt | 0 sys/meson.build | 1 + tests/check/Makefile.am | 8 +++++++- 18 files changed, 51 insertions(+), 22 deletions(-) delete mode 100644 gst/ipcpipeline/meson.build rename {gst => sys}/ipcpipeline/Makefile.am (100%) rename {gst => sys}/ipcpipeline/gstipcpipeline.c (100%) rename {gst => sys}/ipcpipeline/gstipcpipelinecomm.c (100%) rename {gst => sys}/ipcpipeline/gstipcpipelinecomm.h (100%) rename {gst => sys}/ipcpipeline/gstipcpipelinesink.c (100%) rename {gst => sys}/ipcpipeline/gstipcpipelinesink.h (100%) rename {gst => sys}/ipcpipeline/gstipcpipelinesrc.c (100%) rename {gst => sys}/ipcpipeline/gstipcpipelinesrc.h (100%) rename {gst => sys}/ipcpipeline/gstipcslavepipeline.c (100%) rename {gst => sys}/ipcpipeline/gstipcslavepipeline.h (100%) create mode 100644 sys/ipcpipeline/meson.build rename {gst => sys}/ipcpipeline/protocol.txt (100%) diff --git a/configure.ac b/configure.ac index e06932f689..7182fb33f0 100644 --- a/configure.ac +++ b/configure.ac @@ -469,7 +469,6 @@ AG_GST_CHECK_PLUGIN(gdp) AG_GST_CHECK_PLUGIN(id3tag) AG_GST_CHECK_PLUGIN(inter) AG_GST_CHECK_PLUGIN(interlace) -AG_GST_CHECK_PLUGIN(ipcpipeline) AG_GST_CHECK_PLUGIN(ivfparse) AG_GST_CHECK_PLUGIN(ivtc) AG_GST_CHECK_PLUGIN(jp2kdecimator) @@ -1876,6 +1875,20 @@ AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [ fi ]) +dnl check for unix sockets (ipcpipeline plugin) +translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true) +AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [ + if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then + AC_CHECK_FUNC(pipe, [ + AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no]) + ], [ + HAVE_IPCPIPELINE=no + ]) + else + HAVE_IPCPIPELINE=no + fi +]) + dnl check for Video CD translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true) AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [ @@ -3588,7 +3601,6 @@ gst/gdp/Makefile gst/id3tag/Makefile gst/inter/Makefile gst/interlace/Makefile -gst/ipcpipeline/Makefile gst/ivfparse/Makefile gst/ivtc/Makefile gst/jp2kdecimator/Makefile @@ -3663,6 +3675,7 @@ sys/dshowsrcwrapper/Makefile sys/dshowvideosink/Makefile sys/dvb/Makefile sys/fbdev/Makefile +sys/ipcpipeline/Makefile sys/kms/Makefile sys/msdk/Makefile sys/nvdec/Makefile diff --git a/gst/ipcpipeline/meson.build b/gst/ipcpipeline/meson.build deleted file mode 100644 index 7ce3809f55..0000000000 --- a/gst/ipcpipeline/meson.build +++ /dev/null @@ -1,16 +0,0 @@ -ipcpipeline_sources = [ - 'gstipcpipeline.c', - 'gstipcpipelinecomm.c', - 'gstipcpipelinesink.c', - 'gstipcpipelinesrc.c', - 'gstipcslavepipeline.c' -] - -gstipcpipeline = library('gstipcpipeline', - ipcpipeline_sources, - c_args : gst_plugins_bad_args, - include_directories : [configinc], - dependencies : [gstbase_dep], - install : true, - install_dir : plugins_install_dir, -) diff --git a/gst/meson.build b/gst/meson.build index 29872f2242..1017adf302 100644 --- a/gst/meson.build +++ b/gst/meson.build @@ -27,7 +27,6 @@ subdir('geometrictransform') subdir('id3tag') subdir('inter') subdir('interlace') -subdir('ipcpipeline') subdir('ivfparse') subdir('ivtc') subdir('jp2kdecimator') diff --git a/sys/Makefile.am b/sys/Makefile.am index ef05fb251a..7ffbe20ba6 100644 --- a/sys/Makefile.am +++ b/sys/Makefile.am @@ -58,6 +58,12 @@ else FBDEV_DIR= endif +if USE_IPCPIPELINE +IPCPIPELINE_DIR=ipcpipeline +else +IPCPIPELINE_DIR= +endif + if USE_KMS KMS_DIR=kms else @@ -130,9 +136,9 @@ else MSDK_DIR= endif -SUBDIRS = $(ACM_DIR) $(ANDROID_MEDIA_DIR) $(APPLE_MEDIA_DIR) $(BLUEZ_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTSOUND_DIR) $(WINKS_DIR) $(DVB_DIR) $(FBDEV_DIR) $(KMS_DIR) $(OPENSLES_DIR) $(SHM_DIR) $(UVCH264_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(WINSCREENCAP_DIR) $(WASAPI_DIR) $(NVDEC_DIR) $(NVENC_DIR) $(TINYALSA_DIR) $(MSDK_DIR) +SUBDIRS = $(ACM_DIR) $(ANDROID_MEDIA_DIR) $(APPLE_MEDIA_DIR) $(BLUEZ_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTSOUND_DIR) $(WINKS_DIR) $(DVB_DIR) $(FBDEV_DIR) $(IPCPIPELINE_DIR) $(KMS_DIR) $(OPENSLES_DIR) $(SHM_DIR) $(UVCH264_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(WINSCREENCAP_DIR) $(WASAPI_DIR) $(NVDEC_DIR) $(NVENC_DIR) $(TINYALSA_DIR) $(MSDK_DIR) -DIST_SUBDIRS = acmenc acmmp3dec androidmedia applemedia bluez d3dvideosink decklink directsound dvb fbdev kms dshowdecwrapper dshowsrcwrapper dshowvideosink \ +DIST_SUBDIRS = acmenc acmmp3dec androidmedia applemedia bluez d3dvideosink decklink directsound dvb fbdev ipcpipeline kms dshowdecwrapper dshowsrcwrapper dshowvideosink \ opensles shm uvch264 vcd vdpau wasapi winks winscreencap \ nvdec nvenc tinyalsa msdk diff --git a/gst/ipcpipeline/Makefile.am b/sys/ipcpipeline/Makefile.am similarity index 100% rename from gst/ipcpipeline/Makefile.am rename to sys/ipcpipeline/Makefile.am diff --git a/gst/ipcpipeline/gstipcpipeline.c b/sys/ipcpipeline/gstipcpipeline.c similarity index 100% rename from gst/ipcpipeline/gstipcpipeline.c rename to sys/ipcpipeline/gstipcpipeline.c diff --git a/gst/ipcpipeline/gstipcpipelinecomm.c b/sys/ipcpipeline/gstipcpipelinecomm.c similarity index 100% rename from gst/ipcpipeline/gstipcpipelinecomm.c rename to sys/ipcpipeline/gstipcpipelinecomm.c diff --git a/gst/ipcpipeline/gstipcpipelinecomm.h b/sys/ipcpipeline/gstipcpipelinecomm.h similarity index 100% rename from gst/ipcpipeline/gstipcpipelinecomm.h rename to sys/ipcpipeline/gstipcpipelinecomm.h diff --git a/gst/ipcpipeline/gstipcpipelinesink.c b/sys/ipcpipeline/gstipcpipelinesink.c similarity index 100% rename from gst/ipcpipeline/gstipcpipelinesink.c rename to sys/ipcpipeline/gstipcpipelinesink.c diff --git a/gst/ipcpipeline/gstipcpipelinesink.h b/sys/ipcpipeline/gstipcpipelinesink.h similarity index 100% rename from gst/ipcpipeline/gstipcpipelinesink.h rename to sys/ipcpipeline/gstipcpipelinesink.h diff --git a/gst/ipcpipeline/gstipcpipelinesrc.c b/sys/ipcpipeline/gstipcpipelinesrc.c similarity index 100% rename from gst/ipcpipeline/gstipcpipelinesrc.c rename to sys/ipcpipeline/gstipcpipelinesrc.c diff --git a/gst/ipcpipeline/gstipcpipelinesrc.h b/sys/ipcpipeline/gstipcpipelinesrc.h similarity index 100% rename from gst/ipcpipeline/gstipcpipelinesrc.h rename to sys/ipcpipeline/gstipcpipelinesrc.h diff --git a/gst/ipcpipeline/gstipcslavepipeline.c b/sys/ipcpipeline/gstipcslavepipeline.c similarity index 100% rename from gst/ipcpipeline/gstipcslavepipeline.c rename to sys/ipcpipeline/gstipcslavepipeline.c diff --git a/gst/ipcpipeline/gstipcslavepipeline.h b/sys/ipcpipeline/gstipcslavepipeline.h similarity index 100% rename from gst/ipcpipeline/gstipcslavepipeline.h rename to sys/ipcpipeline/gstipcslavepipeline.h diff --git a/sys/ipcpipeline/meson.build b/sys/ipcpipeline/meson.build new file mode 100644 index 0000000000..7126817ef7 --- /dev/null +++ b/sys/ipcpipeline/meson.build @@ -0,0 +1,20 @@ +ipcpipeline_sources = [ + 'gstipcpipeline.c', + 'gstipcpipelinecomm.c', + 'gstipcpipelinesink.c', + 'gstipcpipelinesrc.c', + 'gstipcslavepipeline.c' +] + +if cc.has_header ('sys/socket.h') and cc.has_function ('pipe') and cc.has_function ('socketpair') + + gstipcpipeline = library('gstipcpipeline', + ipcpipeline_sources, + c_args : gst_plugins_bad_args, + include_directories : [configinc], + dependencies : [gstbase_dep], + install : true, + install_dir : plugins_install_dir, + ) + +endif diff --git a/gst/ipcpipeline/protocol.txt b/sys/ipcpipeline/protocol.txt similarity index 100% rename from gst/ipcpipeline/protocol.txt rename to sys/ipcpipeline/protocol.txt diff --git a/sys/meson.build b/sys/meson.build index 101dc46222..b26256bf0e 100644 --- a/sys/meson.build +++ b/sys/meson.build @@ -12,6 +12,7 @@ subdir('directsound') #subdir('dshowvideosink') subdir('dvb') subdir('fbdev') +subdir('ipcpipeline') subdir('kms') subdir('msdk') #subdir('nvenc') diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 3f3a677435..39cd047e48 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -198,6 +198,12 @@ else check_shm= endif +if USE_IPCPIPELINE +check_ipcpipeline=pipelines/ipcpipeline +else +check_ipcpipeline= +endif + if USE_GL check_gl=libs/gstglcontext \ libs/gstglmemory \ @@ -272,7 +278,7 @@ check_PROGRAMS = \ elements/rtponviftimestamp \ elements/id3mux \ pipelines/mxf \ - pipelines/ipcpipeline \ + $(check_ipcpipeline) \ libs/mpegvideoparser \ libs/mpegts \ libs/h264parser \