diff --git a/.gitmodules b/.gitmodules index 8e627f9c..d01d6203 100644 --- a/.gitmodules +++ b/.gitmodules @@ -40,3 +40,6 @@ [submodule "glib"] path = glib url = https://gitlab.gnome.org/GNOME/glib.git +[submodule "gst-orc"] + path = gst-orc + url = https://gitlab.freedesktop.org/gstreamer/orc.git diff --git a/build/makefile_base.mak b/build/makefile_base.mak index 79ac5b29..00e2a13d 100644 --- a/build/makefile_base.mak +++ b/build/makefile_base.mak @@ -198,6 +198,10 @@ GLIB := $(SRCDIR)/glib GLIB_OBJ32 := ./obj-glib32 GLIB_OBJ64 := ./obj-glib64 +GST_ORC := $(SRCDIR)/gst-orc +GST_ORC_OBJ32 := ./obj-gst-orc32 +GST_ORC_OBJ64 := ./obj-gst-orc64 + GSTREAMER := $(SRCDIR)/gstreamer GSTREAMER_OBJ32 := ./obj-gstreamer32 GSTREAMER_OBJ64 := ./obj-gstreamer64 @@ -294,6 +298,7 @@ FONTS_OBJ := ./obj-fonts OBJ_DIRS := $(TOOLS_DIR32) $(TOOLS_DIR64) \ $(FFMPEG_OBJ32) $(FFMPEG_OBJ64) \ $(GLIB_OBJ32) $(GLIB_OBJ64) \ + $(GST_ORC_OBJ32) $(GST_ORC_OBJ64) \ $(GSTREAMER_OBJ32) $(GSTREAMER_OBJ64) \ $(GST_BASE_OBJ32) $(GST_BASE_OBJ64) \ $(GST_GOOD_OBJ32) $(GST_GOOD_OBJ64) \ @@ -579,24 +584,89 @@ glib32: $(GLIB_CONFIGURE_FILES32) cp -a $(TOOLS_DIR32)/lib/libgthread* $(DST_DIR)/lib/ -## -## gstreamer -## - GST_COMMON_MESON_ARGS := \ -Dexamples=disabled \ -Dtests=disabled \ - -Dtools=disabled \ -Dgtk_doc=disabled \ -Dintrospection=disabled \ -Dgobject-cast-checks=disabled \ -Dglib-asserts=disabled \ -Dglib-checks=disabled \ - -Dnls=disabled + -Dnls=disabled \ + -Dbenchmarks=disabled + +## +## gst-orc +## + +GST_ORC_MESON_ARGS := \ + $(GST_COMMON_MESON_ARGS) \ + -Dorc-test=disabled + + +GST_ORC_CONFIGURE_FILES32 := $(GST_ORC_OBJ32)/build.ninja +GST_ORC_CONFIGURE_FILES64 := $(GST_ORC_OBJ64)/build.ninja + +# 64-bit configure. Remove coredata file if already configured (due to e.g. makefile changing) +$(GST_ORC_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) +$(GST_ORC_CONFIGURE_FILES64): $(MAKEFILE_DEP) glib64 | $(GST_ORC_OBJ64) + if [ -e "$(abspath $(GST_ORC_OBJ64))"/build.ninja ]; then \ + rm -f "$(abspath $(GST_ORC_OBJ64))"/meson-private/coredata.dat; \ + fi + cd "$(abspath $(GST_ORC))" && \ + PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" \ + PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR64))/lib/pkgconfig \ + meson --prefix="$(abspath $(TOOLS_DIR64))" --libdir="lib" $(GST_ORC_MESON_ARGS) $(MESON_STRIP_ARG) "$(abspath $(GST_ORC_OBJ64))" + +# 32-bit configure. Remove coredata file if already configured (due to e.g. makefile changing) +$(GST_ORC_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) +$(GST_ORC_CONFIGURE_FILES32): $(MAKEFILE_DEP) glib32 | $(GST_ORC_OBJ32) + if [ -e "$(abspath $(GST_ORC_OBJ32))"/build.ninja ]; then \ + rm -f "$(abspath $(GST_ORC_OBJ32))"/meson-private/coredata.dat; \ + fi + cd "$(abspath $(GST_ORC))" && \ + PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + PKG_CONFIG_PATH=$(abspath $(TOOLS_DIR32))/lib/pkgconfig \ + meson --prefix="$(abspath $(TOOLS_DIR32))" --libdir="lib" $(GST_ORC_MESON_ARGS) $(MESON_STRIP_ARG) "$(abspath $(GST_ORC_OBJ32))" + +## gst-orc goals +GST_ORC_TARGETS = gst_orc gst_orc_configure gst_orc32 gst_orc64 gst_orc_configure32 gst_orc_configure64 + +ALL_TARGETS += $(GST_ORC_TARGETS) +GOAL_TARGETS_LIBS += gst_orc + +.PHONY: $(GST_ORC_TARGETS) + +gst_orc_configure: $(GST_ORC_CONFIGURE_FILES32) $(GST_ORC_CONFIGURE_FILES64) + +gst_orc_configure64: $(GST_ORC_CONFIGURE_FILES64) + +gst_orc_configure32: $(GST_ORC_CONFIGURE_FILES32) + +gst_orc: gst_orc32 gst_orc64 + +gst_orc64: SHELL = $(CONTAINER_SHELL64) +gst_orc64: $(GST_ORC_CONFIGURE_FILES64) + PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR64))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GST_ORC_OBJ64)" install + cp -a $(TOOLS_DIR64)/lib/liborc* $(DST_DIR)/lib64/ + +gst_orc32: SHELL = $(CONTAINER_SHELL32) +gst_orc32: $(GST_ORC_CONFIGURE_FILES32) + PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR32))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GST_ORC_OBJ32)" install + cp -a $(TOOLS_DIR32)/lib/liborc* $(DST_DIR)/lib/ + +## +## gstreamer +## GSTREAMER_MESON_ARGS := \ -Dgst_parse=false \ -Dbenchmarks=disabled \ + -Dtools=disabled \ $(GST_COMMON_MESON_ARGS) GSTREAMER_CONFIGURE_FILES32 := $(GSTREAMER_OBJ32)/build.ninja @@ -604,7 +674,7 @@ GSTREAMER_CONFIGURE_FILES64 := $(GSTREAMER_OBJ64)/build.ninja # 64-bit configure. Remove coredata file if already configured (due to e.g. makefile changing) $(GSTREAMER_CONFIGURE_FILES64): SHELL = $(CONTAINER_SHELL64) -$(GSTREAMER_CONFIGURE_FILES64): $(MAKEFILE_DEP) glib64 | $(GSTREAMER_OBJ64) +$(GSTREAMER_CONFIGURE_FILES64): $(MAKEFILE_DEP) gst_orc64 | $(GSTREAMER_OBJ64) if [ -e "$(abspath $(GSTREAMER_OBJ64))"/build.ninja ]; then \ rm -f "$(abspath $(GSTREAMER_OBJ64))"/meson-private/coredata.dat; \ fi @@ -615,7 +685,7 @@ $(GSTREAMER_CONFIGURE_FILES64): $(MAKEFILE_DEP) glib64 | $(GSTREAMER_OBJ64) # 32-bit configure. Remove coredata file if already configured (due to e.g. makefile changing) $(GSTREAMER_CONFIGURE_FILES32): SHELL = $(CONTAINER_SHELL32) -$(GSTREAMER_CONFIGURE_FILES32): $(MAKEFILE_DEP) glib32 | $(GSTREAMER_OBJ32) +$(GSTREAMER_CONFIGURE_FILES32): $(MAKEFILE_DEP) gst_orc32 | $(GSTREAMER_OBJ32) if [ -e "$(abspath $(GSTREAMER_OBJ32))"/build.ninja ]; then \ rm -f "$(abspath $(GSTREAMER_OBJ32))"/meson-private/coredata.dat; \ fi @@ -642,13 +712,17 @@ gstreamer: gstreamer32 gstreamer64 gstreamer64: SHELL = $(CONTAINER_SHELL64) gstreamer64: $(GSTREAMER_CONFIGURE_FILES64) - PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" ninja -C "$(GSTREAMER_OBJ64)" install + PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR64))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GSTREAMER_OBJ64)" install cp -a $(TOOLS_DIR64)/lib/libgst* $(DST_DIR)/lib64/ && \ cp -a $(TOOLS_DIR64)/lib/gstreamer-1.0 $(DST_DIR)/lib64/ gstreamer32: SHELL = $(CONTAINER_SHELL32) gstreamer32: $(GSTREAMER_CONFIGURE_FILES32) - PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" ninja -C "$(GSTREAMER_OBJ32)" install + PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR32))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GSTREAMER_OBJ32)" install cp -a $(TOOLS_DIR32)/lib/libgst* $(DST_DIR)/lib/ && \ cp -a $(TOOLS_DIR32)/lib/gstreamer-1.0 $(DST_DIR)/lib/ @@ -681,6 +755,7 @@ GST_BASE_MESON_ARGS := \ -Dx11=disabled \ -Dxshm=disabled \ -Dxvideo=disabled \ + -Dtools=disabled \ $(GST_COMMON_MESON_ARGS) GST_BASE_CONFIGURE_FILES32 := $(GST_BASE_OBJ32)/build.ninja @@ -726,13 +801,17 @@ gst_base: gst_base32 gst_base64 gst_base64: SHELL = $(CONTAINER_SHELL64) gst_base64: $(GST_BASE_CONFIGURE_FILES64) - PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" ninja -C "$(GST_BASE_OBJ64)" install + PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR64))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GST_BASE_OBJ64)" install cp -a $(TOOLS_DIR64)/lib/libgst* $(DST_DIR)/lib64/ && \ cp -a $(TOOLS_DIR64)/lib/gstreamer-1.0 $(DST_DIR)/lib64/ gst_base32: SHELL = $(CONTAINER_SHELL32) gst_base32: $(GST_BASE_CONFIGURE_FILES32) - PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" ninja -C "$(GST_BASE_OBJ32)" install + PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR32))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GST_BASE_OBJ32)" install cp -a $(TOOLS_DIR32)/lib/libgst* $(DST_DIR)/lib/ && \ cp -a $(TOOLS_DIR32)/lib/gstreamer-1.0 $(DST_DIR)/lib/ @@ -790,6 +869,7 @@ GST_GOOD_MESON_ARGS := \ -Dwavenc=disabled \ -Dximagesrc=disabled \ -Dy4m=disabled \ + -Dtools=disabled \ $(GST_COMMON_MESON_ARGS) GST_GOOD_CONFIGURE_FILES32 := $(GST_GOOD_OBJ32)/build.ninja @@ -835,13 +915,17 @@ gst_good: gst_good32 gst_good64 gst_good64: SHELL = $(CONTAINER_SHELL64) gst_good64: $(GST_GOOD_CONFIGURE_FILES64) - PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" ninja -C "$(GST_GOOD_OBJ64)" install + PATH="$(abspath $(TOOLS_DIR64))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR64))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GST_GOOD_OBJ64)" install cp -a $(TOOLS_DIR64)/lib/libgst* $(DST_DIR)/lib64/ && \ cp -a $(TOOLS_DIR64)/lib/gstreamer-1.0 $(DST_DIR)/lib64/ gst_good32: SHELL = $(CONTAINER_SHELL32) gst_good32: $(GST_GOOD_CONFIGURE_FILES32) - PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" ninja -C "$(GST_GOOD_OBJ32)" install + PATH="$(abspath $(TOOLS_DIR32))/bin:$(PATH)" \ + LD_LIBRARY_PATH="$(abspath $(TOOLS_DIR32))/lib:$(LD_LIBRARY_PATH)" \ + ninja -C "$(GST_GOOD_OBJ32)" install cp -a $(TOOLS_DIR32)/lib/libgst* $(DST_DIR)/lib/ && \ cp -a $(TOOLS_DIR32)/lib/gstreamer-1.0 $(DST_DIR)/lib/ diff --git a/dist.LICENSE b/dist.LICENSE index 40bfca28..12b71f08 100644 --- a/dist.LICENSE +++ b/dist.LICENSE @@ -178,6 +178,71 @@ View our modifications at ---- ---- ---- ---- +This software contains orc. Orc is + + Copyright 2002 - 2009 David A. Schleef + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + The source code implementing the Mersenne Twister algorithm is + subject to the following license: + + Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The names of its contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Visit orc at + + https://gitlab.freedesktop.org/gstreamer/orc + +---- ---- ---- ---- + Parts of this software are based on the OpenVR SDK, which is Copyright (c) 2015, Valve Corporation diff --git a/gst-orc b/gst-orc new file mode 160000 index 00000000..9901a96e --- /dev/null +++ b/gst-orc @@ -0,0 +1 @@ +Subproject commit 9901a96eaff271c2d3b595214213f6805ff803c8