diff options
Diffstat (limited to 'vcpkg/ports/gstreamer')
| -rw-r--r-- | vcpkg/ports/gstreamer/duplicate-unused.diff | 12 | ||||
| -rw-r--r-- | vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch | 26 | ||||
| -rw-r--r-- | vcpkg/ports/gstreamer/fix-clang-cl.patch | 166 | ||||
| -rw-r--r-- | vcpkg/ports/gstreamer/fix-multiple-def.patch | 35 | ||||
| -rw-r--r-- | vcpkg/ports/gstreamer/portfile.cmake | 437 | ||||
| -rw-r--r-- | vcpkg/ports/gstreamer/vcpkg.json | 896 | ||||
| -rw-r--r-- | vcpkg/ports/gstreamer/x264-api-imports.diff | 12 |
7 files changed, 1584 insertions, 0 deletions
diff --git a/vcpkg/ports/gstreamer/duplicate-unused.diff b/vcpkg/ports/gstreamer/duplicate-unused.diff new file mode 100644 index 0000000..da02905 --- /dev/null +++ b/vcpkg/ports/gstreamer/duplicate-unused.diff @@ -0,0 +1,12 @@ +diff --git a/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c b/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c +index 3fd15a0..232ac14 100644 +--- a/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c ++++ b/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c +@@ -39,6 +39,7 @@ GST_DEBUG_CATEGORY_EXTERN (gst_wasapi_debug); + /* __uuidof is only available in C++, so we hard-code the GUID values for all + * these. This is ok because these are ABI. MSYS2 provides these in C. */ + #ifndef HAVE_AUDCLNT_GUIDS ++static + const CLSID CLSID_MMDeviceEnumerator = { 0xbcde0395, 0xe52f, 0x467c, + {0x8e, 0x3d, 0xc4, 0x57, 0x92, 0x91, 0x69, 0x2e} + }; diff --git a/vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch b/vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch new file mode 100644 index 0000000..bf6555a --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch @@ -0,0 +1,26 @@ +diff --git a/subprojects/gst-plugins-bad/ext/bz2/meson.build b/subprojects/gst-plugins-bad/ext/bz2/meson.build +index e7d8feb..9908a4c 100644 +--- a/subprojects/gst-plugins-bad/ext/bz2/meson.build ++++ b/subprojects/gst-plugins-bad/ext/bz2/meson.build +@@ -18,7 +18,7 @@ plugin_sources += { + 'bz2': pathsep.join(doc_sources) + } + +-bz2_dep = cc.find_library('bz2', required : get_option('bz2')) ++bz2_dep = dependency('bzip2', required : get_option('bz2')) + + if bz2_dep.found() and cc.has_header_symbol('bzlib.h', 'BZ2_bzlibVersion') + gstbz2 = library('gstbz2', +diff --git a/subprojects/gst-plugins-good/gst/matroska/meson.build b/subprojects/gst-plugins-good/gst/matroska/meson.build +index 3dc9292..747e608 100644 +--- a/subprojects/gst-plugins-good/gst/matroska/meson.build ++++ b/subprojects/gst-plugins-good/gst/matroska/meson.build +@@ -39,7 +39,7 @@ if get_option('matroska').disabled() + subdir_done() + endif + +-bz2_dep = cc.find_library('bz2', required : get_option('bz2')) ++bz2_dep = dependency('bzip2', required : get_option('bz2')) + cdata.set('HAVE_BZ2', bz2_dep.found() and cc.has_header('bzlib.h')) + + gstmatroska = library('gstmatroska', diff --git a/vcpkg/ports/gstreamer/fix-clang-cl.patch b/vcpkg/ports/gstreamer/fix-clang-cl.patch new file mode 100644 index 0000000..7707ef3 --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-clang-cl.patch @@ -0,0 +1,166 @@ +diff --git a/meson.build b/meson.build +index 5f44b78..7f91238 100644 +--- a/meson.build ++++ b/meson.build +@@ -88,7 +88,7 @@ endif + # Ensure that MSVC interprets all source code as UTF-8. Only do this when we're + # not a subproject, because subprojects are not allowed to call + # add_global_arguments(). +-if not meson.is_subproject() and cc.get_id() == 'msvc' ++if not meson.is_subproject() and cc.get_argument_syntax() == 'msvc' + add_global_arguments( + cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8 + language: ['c', 'cpp']) +@@ -480,7 +480,7 @@ if building_full + if cc.has_link_argument(link_arg) + gstfull_link_args += link_arg + link_deps += symbol_map +- elif cc.get_id() == 'msvc' ++ elif cc.get_argument_syntax() == 'msvc' + warning('FIXME: Provide a def file to publish the public symbols') + else + warning('FIXME: Linker does not support the supplied version script (' + symbol_map + '), please disable the "gst-full-version-script" option') +diff --git a/subprojects/gst-plugins-bad/ext/dts/meson.build b/subprojects/gst-plugins-bad/ext/dts/meson.build +index dc884e0..82bfc53 100644 +--- a/subprojects/gst-plugins-bad/ext/dts/meson.build ++++ b/subprojects/gst-plugins-bad/ext/dts/meson.build +@@ -37,7 +37,7 @@ if not dca_dep.found() + endif + + no_warn_c_args = [] +-if cc.get_id() != 'msvc' ++if cc.get_argument_syntax() != 'msvc' + # autotools didn't use the libdca pkg-config cflags, and they + # can point to a non-existing location (/usr/include/dca) + no_warn_c_args = ['-Wno-missing-include-dirs'] +diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build +index c160778..9b1d692 100644 +--- a/subprojects/gst-plugins-bad/meson.build ++++ b/subprojects/gst-plugins-bad/meson.build +@@ -54,7 +54,7 @@ endif + + cdata = configuration_data() + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +diff --git a/subprojects/gst-plugins-bad/sys/d3d11/meson.build b/subprojects/gst-plugins-bad/sys/d3d11/meson.build +index 2859ea3..666199d 100644 +--- a/subprojects/gst-plugins-bad/sys/d3d11/meson.build ++++ b/subprojects/gst-plugins-bad/sys/d3d11/meson.build +@@ -175,7 +175,7 @@ endif + + # MinGW 32bits compiler seems to be complaining about redundant-decls + # when ComPtr is in use. Let's just disable the warning +-if cc.get_id() != 'msvc' ++if cc.get_argument_syntax() != 'msvc' + extra_mingw_args = cc.get_supported_arguments([ + '-Wno-redundant-decls', + # include/directxmath/DirectXMathMatrix.inl:1161:16: error: variable 'aa' set but not used +diff --git a/subprojects/gst-plugins-bad/sys/msdk/meson.build b/subprojects/gst-plugins-bad/sys/msdk/meson.build +index 79e7200..4aad1d7 100644 +--- a/subprojects/gst-plugins-bad/sys/msdk/meson.build ++++ b/subprojects/gst-plugins-bad/sys/msdk/meson.build +@@ -243,12 +243,12 @@ if use_onevpl and have_mfx_ver205 + endif + + if host_machine.system() == 'windows' +- if cc.get_id() != 'msvc' and msdk_option.enabled() ++ if cc.get_argument_syntax() != 'msvc' and msdk_option.enabled() + error('msdk plugin can only be built with MSVC') + endif + legacy_stdio_dep = cc.find_library('legacy_stdio_definitions', required: get_option('msdk')) + msdk_deps = declare_dependency(dependencies: [gstd3d11_dep, legacy_stdio_dep]) +- msdk_deps_found = gstd3d11_dep.found() and legacy_stdio_dep.found() and cc.get_id() == 'msvc' ++ msdk_deps_found = gstd3d11_dep.found() and legacy_stdio_dep.found() and cc.get_argument_syntax() == 'msvc' + else + libdl_dep = cc.find_library('dl', required: get_option('msdk')) + libgudev_dep = dependency('gudev-1.0', required: get_option('msdk'), allow_fallback: true) +diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build +index 3f6730c..d94f936 100644 +--- a/subprojects/gst-plugins-base/meson.build ++++ b/subprojects/gst-plugins-base/meson.build +@@ -52,7 +52,7 @@ gst_libraries = [] + + cc = meson.get_compiler('c') + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build +index 95c89b2..52332c7 100644 +--- a/subprojects/gst-plugins-good/meson.build ++++ b/subprojects/gst-plugins-good/meson.build +@@ -54,7 +54,7 @@ endif + + cc = meson.get_compiler('c') + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +@@ -239,7 +239,7 @@ cdata.set('HAVE_RTLD_NOLOAD', have_rtld_noload) + # Here be fixmes. + # FIXME: check if this is correct + cdata.set('HAVE_CPU_X86_64', host_machine.cpu() == 'amd64') +-cdata.set('HAVE_GCC_ASM', cc.get_id() != 'msvc') ++cdata.set('HAVE_GCC_ASM', cc.get_argument_syntax() != 'msvc') + cdata.set_quoted('VERSION', gst_version) + cdata.set_quoted('PACKAGE_VERSION', gst_version) + cdata.set_quoted('GST_LICENSE', 'LGPL') +diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build +index 4d68e1d..28e8cb1 100644 +--- a/subprojects/gst-plugins-ugly/meson.build ++++ b/subprojects/gst-plugins-ugly/meson.build +@@ -39,7 +39,7 @@ if have_cxx + cxx = meson.get_compiler('cpp') + endif + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +diff --git a/subprojects/gstreamer/gst/parse/meson.build b/subprojects/gstreamer/gst/parse/meson.build +index b79a07c..891f907 100644 +--- a/subprojects/gstreamer/gst/parse/meson.build ++++ b/subprojects/gstreamer/gst/parse/meson.build +@@ -16,7 +16,7 @@ else + endif + + flex_cdata.set('FLEX', flex.full_path()) +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + flex_cdata.set('FLEX_ARGS', '--nounistd') + else + flex_cdata.set('FLEX_ARGS', '') +diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build +index ba50005..47cc78a 100644 +--- a/subprojects/gstreamer/meson.build ++++ b/subprojects/gstreamer/meson.build +@@ -48,7 +48,7 @@ endif + + cdata = configuration_data() + +-if cc.get_id() == 'msvc' ++if cc.get_argument_syntax() == 'msvc' + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it +@@ -358,9 +358,11 @@ static __uint128_t v2 = 10; + static __uint128_t u; + u = v1 / v2; + }''' ++if cc.get_argument_syntax() != 'msvc' + if cc.compiles(uint128_t_src, name : '__uint128_t available') + cdata.set('HAVE_UINT128_T', 1) + endif ++endif + + # All supported platforms have long long now + cdata.set('HAVE_LONG_LONG', 1) diff --git a/vcpkg/ports/gstreamer/fix-multiple-def.patch b/vcpkg/ports/gstreamer/fix-multiple-def.patch new file mode 100644 index 0000000..b8f8f2e --- /dev/null +++ b/vcpkg/ports/gstreamer/fix-multiple-def.patch @@ -0,0 +1,35 @@ +diff --git a/subprojects/gst-plugins-bad/gst/siren/common.c b/subprojects/gst-plugins-bad/gst/siren/common.c +index 2e07748..70f58f6 100644 +--- a/subprojects/gst-plugins-bad/gst/siren/common.c ++++ b/subprojects/gst-plugins-bad/gst/siren/common.c +@@ -44,7 +44,7 @@ int max_bin[8] = { + 1 + }; + +-float step_size[8] = { ++float stp_size[8] = { + 0.3536f, + 0.5f, + 0.70709997f, +@@ -87,7 +87,7 @@ siren_init (void) + (float) pow (10, (i - 24 + 0.5) * STEPSIZE); + + for (i = 0; i < 8; i++) +- step_size_inverse[i] = (float) 1.0 / step_size[i]; ++ step_size_inverse[i] = (float) 1.0 / stp_size[i]; + + siren_dct4_init (); + siren_rmlt_init (); +diff --git a/subprojects/gst-plugins-bad/gst/siren/common.h b/subprojects/gst-plugins-bad/gst/siren/common.h +index e09e533..123b888 100644 +--- a/subprojects/gst-plugins-bad/gst/siren/common.h ++++ b/subprojects/gst-plugins-bad/gst/siren/common.h +@@ -95,7 +95,7 @@ extern int vector_dimension[8]; + extern int number_of_vectors[8]; + extern float dead_zone[8]; + extern int max_bin[8]; +-extern float step_size[8]; ++extern float stp_size[8]; + extern float step_size_inverse[8]; + + diff --git a/vcpkg/ports/gstreamer/portfile.cmake b/vcpkg/ports/gstreamer/portfile.cmake new file mode 100644 index 0000000..3478d0d --- /dev/null +++ b/vcpkg/ports/gstreamer/portfile.cmake @@ -0,0 +1,437 @@ +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.freedesktop.org + OUT_SOURCE_PATH SOURCE_PATH + REPO gstreamer/gstreamer + REF "${VERSION}" + SHA512 2870d76fffd68bb5c702766a5dd3aa95f864c56a1d19444a3ad0a0e38fa1c66b25d61d5eb31046a3c53b875499ce7b784277cc9bf0bcbf698f35df0fb6a7b3f1 + HEAD_REF main + PATCHES + fix-clang-cl.patch + fix-bz2-windows-debug-dependency.patch + fix-multiple-def.patch + x264-api-imports.diff + duplicate-unused.diff +) + +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) +vcpkg_find_acquire_program(NASM) + +# gstreamer/meson tends to pick host modules (e.g. libdrm) +# or X11 etc. from brew, so control installation order by +# explicitly cleaning the search root unless set externally. +if((VCPKG_CROSSCOMPILING OR VCPKG_TARGET_IS_OSX) AND "$ENV{PKG_CONFIG}$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "") + set(ENV{PKG_CONFIG_LIBDIR} "${CURRENT_INSTALLED_DIR}/share/pkgconfig") +endif() + +if(VCPKG_TARGET_IS_OSX) + # In Darwin platform, there can be an old version of `bison`, + # Which can't be used for `gst-build`. It requires 2.4+ + execute_process( + COMMAND ${BISON} --version + OUTPUT_VARIABLE BISON_OUTPUT + ) + string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" BISON_VERSION "${BISON_OUTPUT}") + set(BISON_MAJOR ${CMAKE_MATCH_1}) + set(BISON_MINOR ${CMAKE_MATCH_2}) + message(STATUS "Using bison: ${BISON_MAJOR}.${BISON_MINOR}.${CMAKE_MATCH_3}") + if(NOT (BISON_MAJOR GREATER_EQUAL 2 AND BISON_MINOR GREATER_EQUAL 4)) + message(WARNING "'bison' upgrade is required. Please check the https://stackoverflow.com/a/35161881") + endif() +endif() + +# General features +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + ges ges + gpl gpl + libav libav + nls nls + + plugins-base base + alsa gst-plugins-base:alsa + gl gst-plugins-base:gl + gl-graphene gst-plugins-base:gl-graphene + ogg gst-plugins-base:ogg + opus-base gst-plugins-base:opus + pango gst-plugins-base:pango + vorbis gst-plugins-base:vorbis + x11 gst-plugins-base:x11 + x11 gst-plugins-base:xshm + + plugins-good good + bzip2 gst-plugins-good:bz2 + cairo gst-plugins-good:cairo + flac gst-plugins-good:flac + gdk-pixbuf gst-plugins-good:gdk-pixbuf + jpeg gst-plugins-good:jpeg + mpg123 gst-plugins-good:mpg123 + png gst-plugins-good:png + speex gst-plugins-good:speex + taglib gst-plugins-good:taglib + vpx gst-plugins-good:vpx + + plugins-ugly ugly + x264 gst-plugins-ugly:x264 + + plugins-bad bad + aes gst-plugins-bad:aes + aom gst-plugins-bad:aom + asio gst-plugins-bad:asio + assrender gst-plugins-bad:assrender + bzip2 gst-plugins-bad:bz2 + chromaprint gst-plugins-bad:chromaprint + closedcaption gst-plugins-bad:closedcaption + colormanagement gst-plugins-bad:colormanagement + dash gst-plugins-bad:dash + dc1394 gst-plugins-bad:dc1394 + dtls gst-plugins-bad:dtls + faad gst-plugins-bad:faad + fdkaac gst-plugins-bad:fdkaac + fluidsynth gst-plugins-bad:fluidsynth + gl gst-plugins-bad:gl + hls gst-plugins-bad:hls + libde265 gst-plugins-bad:libde265 + microdns gst-plugins-bad:microdns + modplug gst-plugins-bad:modplug + nvcodec gst-plugins-bad:nvcodec + openal gst-plugins-bad:openal + openh264 gst-plugins-bad:openh264 + openjpeg gst-plugins-bad:openjpeg + openmpt gst-plugins-bad:openmpt + opus-bad gst-plugins-bad:opus + smoothstreaming gst-plugins-bad:smoothstreaming + sndfile gst-plugins-bad:sndfile + soundtouch gst-plugins-bad:soundtouch + srt gst-plugins-bad:srt + srtp gst-plugins-bad:srtp + vulkan gst-plugins-bad:vulkan + wayland gst-plugins-bad:wayland + webp gst-plugins-bad:webp + webrtc gst-plugins-bad:webrtc + wildmidi gst-plugins-bad:wildmidi + x11 gst-plugins-bad:x11 + x265 gst-plugins-bad:x265 + amd-amf gst-plugins-bad:amfcodec +) + +string(REPLACE "OFF" "disabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}") +string(REPLACE "ON" "enabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}") + +# Align with dependencies of feature gl. +if(NOT "gl" IN_LIST FEATURES) + set(PLUGIN_BASE_GL_API "") + set(PLUGIN_BASE_WINDOW_SYSTEM "") + set(PLUGIN_BASE_GL_PLATFORM "") +elseif(VCPKG_TARGET_IS_ANDROID) + set(PLUGIN_BASE_GL_API gles2) + set(PLUGIN_BASE_WINDOW_SYSTEM android,egl) + set(PLUGIN_BASE_GL_PLATFORM egl) +elseif(VCPKG_TARGET_IS_WINDOWS) + set(PLUGIN_BASE_GL_API opengl) + set(PLUGIN_BASE_WINDOW_SYSTEM win32) + set(PLUGIN_BASE_GL_PLATFORM wgl) +else() + set(PLUGIN_BASE_GL_API opengl) + set(PLUGIN_BASE_WINDOW_SYSTEM auto) + set(PLUGIN_BASE_GL_PLATFORM auto) +endif() + +# +# References +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gstreamer/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-base/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-good/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-ugly/meson_options.txt +# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-bad/meson_options.txt +# +# Rationale for added options +# Common options are added below systematically +# Feature options are added below only if the feature needs an external dependency +# Feature options that are dependent on the operating system type (like wasapi or osxaudio) are set to auto +# Every other feature options are made available if the dependency is available on vcpkg and if the plugin has managed to build during tests +# + +vcpkg_configure_meson( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + + # GStreamer subprojects + -Ddevtools=disabled + -Drtsp_server=disabled + -Drs=disabled + -Dvaapi=disabled + -Dgst-examples=disabled + # Bindings + -Dpython=disabled + -Dsharp=disabled + # External subprojects + -Dtls=disabled + -Dlibnice=disabled + # Other options + -Dbuild-tools-source=system + -Dbenchmarks=disabled + -Dorc=disabled # gstreamer requires a specific version of orc which is not available in vcpkg + -Dqt5=disabled + -Dqt6=disabled + # Common options + -Dtests=disabled + -Dexamples=disabled + -Dintrospection=disabled + -Ddoc=disabled + -Dgtk_doc=disabled + + # gstreamer + -Dgstreamer:check=disabled + -Dgstreamer:libunwind=disabled + -Dgstreamer:libdw=disabled + -Dgstreamer:dbghelp=disabled + -Dgstreamer:bash-completion=disabled + -Dgstreamer:coretracers=disabled + -Dgstreamer:ptp-helper=disabled # needs rustc toolchain setup + # gst-plugins-base + -Dgst-plugins-base:gl_api=${PLUGIN_BASE_GL_API} + -Dgst-plugins-base:gl_winsys=${PLUGIN_BASE_WINDOW_SYSTEM} + -Dgst-plugins-base:gl_platform=${PLUGIN_BASE_GL_PLATFORM} + -Dgst-plugins-base:cdparanoia=disabled + -Dgst-plugins-base:libvisual=disabled + -Dgst-plugins-base:theora=disabled + -Dgst-plugins-base:tremor=disabled + -Dgst-plugins-base:xvideo=disabled + # gst-plugins-good + -Dgst-plugins-good:aalib=disabled + -Dgst-plugins-good:directsound=auto + -Dgst-plugins-good:dv=disabled + -Dgst-plugins-good:dv1394=disabled + -Dgst-plugins-good:gtk3=disabled # GTK version 3 only + -Dgst-plugins-good:jack=disabled + -Dgst-plugins-good:lame=disabled + -Dgst-plugins-good:libcaca=disabled + -Dgst-plugins-good:oss=disabled + -Dgst-plugins-good:oss4=disabled + -Dgst-plugins-good:osxaudio=auto + -Dgst-plugins-good:osxvideo=auto + -Dgst-plugins-good:pulse=disabled # Port pulseaudio depends on gstreamer + -Dgst-plugins-good:qt5=disabled + -Dgst-plugins-good:shout2=disabled + #-Dgst-plugins-good:soup=disabled + -Dgst-plugins-good:twolame=disabled + -Dgst-plugins-good:waveform=auto + -Dgst-plugins-good:wavpack=disabled # Error during plugin build + # gst-plugins-ugly + -Dgst-plugins-ugly:a52dec=disabled + -Dgst-plugins-ugly:cdio=disabled + -Dgst-plugins-ugly:dvdread=disabled + -Dgst-plugins-ugly:mpeg2dec=disabled # libmpeg2 not found + -Dgst-plugins-ugly:sidplay=disabled + # gst-plugins-bad + -Dgst-plugins-bad:avtp=disabled + -Dgst-plugins-bad:androidmedia=auto + -Dgst-plugins-bad:applemedia=auto + -Dgst-plugins-bad:bluez=disabled + -Dgst-plugins-bad:bs2b=disabled + -Dgst-plugins-bad:curl=disabled # Error during plugin build + -Dgst-plugins-bad:curl-ssh2=disabled + -Dgst-plugins-bad:d3dvideosink=auto + -Dgst-plugins-bad:d3d11=auto + -Dgst-plugins-bad:decklink=disabled + -Dgst-plugins-bad:directfb=disabled + -Dgst-plugins-bad:directsound=auto + -Dgst-plugins-bad:dts=disabled + -Dgst-plugins-bad:dvb=auto + -Dgst-plugins-bad:faac=disabled + -Dgst-plugins-bad:fbdev=auto + -Dgst-plugins-bad:flite=disabled + -Dgst-plugins-bad:gl=auto + -Dgst-plugins-bad:gme=disabled + -Dgst-plugins-bad:gs=disabled # Error during plugin configuration (abseil pkg-config file missing) + -Dgst-plugins-bad:gsm=disabled + -Dgst-plugins-bad:hls-crypto=openssl + -Dgst-plugins-bad:ipcpipeline=auto + -Dgst-plugins-bad:iqa=disabled + -Dgst-plugins-bad:kms=disabled + -Dgst-plugins-bad:ladspa=disabled + -Dgst-plugins-bad:ldac=disabled + -Dgst-plugins-bad:lv2=disabled # Error during plugin configuration (lilv pkg-config file missing) + -Dgst-plugins-bad:mediafoundation=auto + -Dgst-plugins-bad:mpeg2enc=disabled + -Dgst-plugins-bad:mplex=disabled + -Dgst-plugins-bad:msdk=disabled + -Dgst-plugins-bad:musepack=disabled + -Dgst-plugins-bad:neon=disabled + -Dgst-plugins-bad:onnx=disabled # libonnxruntime not found + -Dgst-plugins-bad:openaptx=disabled + -Dgst-plugins-bad:opencv=disabled # opencv not found + -Dgst-plugins-bad:openexr=disabled # OpenEXR::IlmImf target not found + -Dgst-plugins-bad:openni2=disabled # libopenni2 not found + -Dgst-plugins-bad:opensles=disabled + -Dgst-plugins-bad:qroverlay=disabled + -Dgst-plugins-bad:resindvd=disabled + -Dgst-plugins-bad:rsvg=disabled # librsvg-2.0 not found + -Dgst-plugins-bad:rtmp=disabled # librtmp not found + -Dgst-plugins-bad:sbc=disabled + -Dgst-plugins-bad:sctp=auto + -Dgst-plugins-bad:shm=disabled + -Dgst-plugins-bad:spandsp=disabled + -Dgst-plugins-bad:svthevcenc=disabled + -Dgst-plugins-bad:teletext=disabled + -Dgst-plugins-bad:tinyalsa=disabled + -Dgst-plugins-bad:transcode=disabled + -Dgst-plugins-bad:ttml=disabled + -Dgst-plugins-bad:uvch264=disabled + -Dgst-plugins-bad:va=disabled + -Dgst-plugins-bad:voaacenc=disabled + -Dgst-plugins-bad:voamrwbenc=disabled + -Dgst-plugins-bad:wasapi=auto + -Dgst-plugins-bad:wasapi2=auto + -Dgst-plugins-bad:wayland=auto + -Dgst-plugins-bad:winks=disabled + -Dgst-plugins-bad:winscreencap=auto + -Dgst-plugins-bad:zbar=disabled # Error during plugin build + -Dgst-plugins-bad:zxing=disabled # Error during plugin build + -Dgst-plugins-bad:wpe=disabled + -Dgst-plugins-bad:magicleap=disabled + -Dgst-plugins-bad:v4l2codecs=disabled + -Dgst-plugins-bad:isac=disabled + OPTIONS_RELEASE + -Dglib_debug=disabled + -Dglib_assert=false + -Dglib_checks=false + -Dgstreamer:gst_debug=false + -Dgstreamer:extra-checks=disabled + ADDITIONAL_BINARIES + flex='${FLEX}' + bison='${BISON}' + nasm='${NASM}' + glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' + glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' + glslc='${CURRENT_HOST_INSTALLED_DIR}/tools/shaderc/glslc${VCPKG_HOST_EXECUTABLE_SUFFIX}' +) + +vcpkg_install_meson() + +# Remove duplicated GL headers (we already have `opengl-registry`) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" + "${CURRENT_PACKAGES_DIR}/include/GL" +) + +if("gl" IN_LIST FEATURES) + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h" + "${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gl/gstglconfig.h" + ) +endif() + +if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") # AND tools + list(APPEND GST_BIN_TOOLS + gst-inspect-1.0 + gst-launch-1.0 + gst-stats-1.0 + gst-typefind-1.0 + ) + list(APPEND GST_LIBEXEC_TOOLS + gst-completion-helper + gst-plugin-scanner + ) + if("ges" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + ges-launch-1.0 + ) + endif() + if("plugins-base" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + gst-device-monitor-1.0 + gst-discoverer-1.0 + gst-play-1.0 + ) + endif() + if("plugins-bad" IN_LIST FEATURES) + list(APPEND GST_BIN_TOOLS + gst-transcoder-1.0 + ) + endif() +endif() + + +if(GST_BIN_TOOLS) + vcpkg_copy_tools(TOOL_NAMES ${GST_BIN_TOOLS} AUTO_CLEAN) +endif() + +if(GST_LIBEXEC_TOOLS) + vcpkg_copy_tools(TOOL_NAMES ${GST_LIBEXEC_TOOLS} SEARCH_DIR "${CURRENT_PACKAGES_DIR}/libexec/gstreamer-1.0" AUTO_CLEAN) +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/libexec" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/libexec" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" + "${CURRENT_PACKAGES_DIR}/share/gdb" +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + # Move plugin pkg-config files + file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*") + file(COPY ${pc_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") + file(GLOB pc_files_dbg "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*") + file(COPY ${pc_files_dbg} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") + + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" + "${CURRENT_PACKAGES_DIR}/bin" + ) + set(PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") + set(SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") + file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/${PREFIX}gstreamer-full-1.0${SUFFIX}" + "${CURRENT_PACKAGES_DIR}/lib/${PREFIX}gstreamer-full-1.0${SUFFIX}" + ) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gstconfig.h" "!defined(GST_STATIC_COMPILATION)" "0") +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + # move plugins to ${prefix}/plugins/${PORT} instead of ${prefix}/lib/gstreamer-1.0 + if(NOT VCPKG_BUILD_TYPE) + file(GLOB DBG_BINS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" + "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.pdb" + ) + file(COPY ${DBG_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}") + endif() + file(GLOB REL_BINS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" + "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.pdb" + ) + file(COPY ${REL_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/plugins/${PORT}") + file(REMOVE ${DBG_BINS} ${REL_BINS}) + if(NOT VCPKG_TARGET_IS_WINDOWS) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0") + endif() + + set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-1.0.pc") + if(EXISTS "${_file}") + file(READ "${_file}" _contents) + string(REPLACE [[toolsdir=${exec_prefix}/bin]] "toolsdir=\${prefix}/../tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginscannerdir=${libexecdir}/gstreamer-1.0]] "pluginscannerdir=\${prefix}/../tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginsdir=${libdir}/gstreamer-1.0]] "pluginsdir=\${prefix}/plugins/${PORT}" _contents "${_contents}") + file(WRITE "${_file}" "${_contents}") + endif() + + set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-1.0.pc") + if(EXISTS "${_file}") + file(READ "${_file}" _contents) + string(REPLACE [[toolsdir=${exec_prefix}/bin]] "toolsdir=\${prefix}/tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginscannerdir=${libexecdir}/gstreamer-1.0]] "pluginscannerdir=\${prefix}/tools/${PORT}" _contents "${_contents}") + string(REPLACE [[pluginsdir=${libdir}/gstreamer-1.0]] "pluginsdir=\${prefix}/plugins/${PORT}" _contents "${_contents}") + file(WRITE "${_file}" "${_contents}") + endif() +endif() + +if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-gl-1.0.pc") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-gl-1.0.pc" [[-I${libdir}/gstreamer-1.0/include]] "") +endif() +if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-gl-1.0.pc") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-gl-1.0.pc" [[-I${libdir}/gstreamer-1.0/include]] "") +endif() + +vcpkg_fixup_pkgconfig() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/gstreamer/vcpkg.json b/vcpkg/ports/gstreamer/vcpkg.json new file mode 100644 index 0000000..3e8fe87 --- /dev/null +++ b/vcpkg/ports/gstreamer/vcpkg.json @@ -0,0 +1,896 @@ +{ + "name": "gstreamer", + "version": "1.26.5", + "description": "GStreamer open-source multimedia framework core library", + "homepage": "https://gstreamer.freedesktop.org/", + "license": "LGPL-2.0-only", + "supports": "!uwp & !xbox", + "dependencies": [ + "glib", + { + "name": "glib", + "host": true + }, + { + "name": "vcpkg-tool-meson", + "host": true + } + ], + "default-features": [ + "plugins-base" + ], + "features": { + "aes": { + "description": "Enable support for AES encryption/decryption", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "alsa": { + "description": "Enable support for ALSA (Advanced Linux Sound Architecture)", + "supports": "linux", + "dependencies": [ + { + "name": "alsa", + "platform": "linux" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "amd-amf": { + "description": "Enable support for the AMD AMF plugins", + "supports": "windows", + "dependencies": [ + "amd-amf", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "aom": { + "description": "Enable support for the Alliance for Open Media (AOM) AV1 encoder and decoder", + "supports": "!windows", + "dependencies": [ + "aom", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "asio": { + "description": "Enable support for the Steinberg Audio Streaming Input Output (ASIO) library", + "dependencies": [ + "asiosdk", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "assrender": { + "description": "Enable support for the ASS/SSA subtitle renderer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libass" + ] + }, + "bzip2": { + "description": "Enable bzip2 stream compression in plugins", + "dependencies": [ + "bzip2" + ] + }, + "cairo": { + "description": "Enable support for the cairo graphics library", + "dependencies": [ + { + "name": "cairo", + "features": [ + "gobject" + ] + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, + "chromaprint": { + "description": "Enable support for the Chromaprint audio fingerprint library", + "dependencies": [ + "chromaprint", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "closedcaption": { + "description": "Enable support for the closed caption extractor, decoder, and overlay", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "pango" + ] + }, + "colormanagement": { + "description": "Enable support for the color management correction", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "lcms" + ] + }, + "dash": { + "description": "Enable support for the DASH demuxer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxml2" + ] + }, + "dc1394": { + "description": "Enable support for the libdc1394 IIDC camera source", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libdc1394" + ] + }, + "dtls": { + "description": "Enable support for the DTLS encoder and decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "faad": { + "description": "Enable support for the free AAC audio decoder (GPL licensed)", + "dependencies": [ + "faad2", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-bad" + ] + } + ] + }, + "fdkaac": { + "description": "Enable support for the Fraunhofer AAC audio codec", + "dependencies": [ + "fdk-aac", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "flac": { + "description": "Enable support for FLAC: Free Lossless Audio Codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "ogg", + "plugins-good" + ] + }, + "libflac" + ] + }, + "fluidsynth": { + "description": "Enable support for the Fluidsynth MIDI decoder", + "supports": "!windows", + "dependencies": [ + { + "name": "fluidsynth", + "platform": "!windows" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "gdk-pixbuf": { + "description": "Enable support for gdk-pixbuf image loader", + "dependencies": [ + "gdk-pixbuf", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + } + ] + }, + "ges": { + "description": "Enable support for GStreamer Editing Services", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "gl": { + "description": "Enable OpenGL integration library and OpenGL plugin", + "dependencies": [ + { + "name": "egl", + "platform": "android" + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + { + "name": "opengl", + "platform": "!android" + } + ] + }, + "gl-graphene": { + "description": "Use Graphene in OpenGL plugin", + "dependencies": [ + "graphene", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gl" + ] + } + ] + }, + "gpl": { + "description": "Allow build of plugins that have (A)GPL-licensed dependencies", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "hls": { + "description": "Enable HTTP Live Streaming plugin", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openssl" + ] + }, + "jpeg": { + "description": "Enable support for the JPEG file format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base", + "plugins-good" + ] + }, + "libjpeg-turbo" + ] + }, + "libav": { + "description": "libav plugins", + "dependencies": [ + { + "name": "ffmpeg", + "default-features": false + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "libde265": { + "description": "Enable support for the HEVC/H.265 video decoder", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libde265" + ] + }, + "microdns": { + "description": "Enable support for the microdns device provider", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libmicrodns" + ] + }, + "modplug": { + "description": "Enable support for the ModPlug audio decoder", + "supports": "!uwp", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + { + "name": "libmodplug", + "platform": "!uwp" + } + ] + }, + "mpg123": { + "description": "Enable support for the MPG123 decoding library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "mpg123" + ] + }, + "nls": { + "description": "National language support", + "dependencies": [ + { + "name": "gettext", + "host": true, + "default-features": false, + "features": [ + "tools" + ] + }, + "gettext-libintl", + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "nvcodec": { + "description": "Enable support for the NVCODEC encoders and decoders", + "supports": "(windows & x64 & !uwp & !xbox) | (linux & x64) | (linux & arm64)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + } + ] + }, + "ogg": { + "description": "Enable support for the Ogg container format (commonly used by Vorbis, Theora and flac)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "libogg" + ] + }, + "openal": { + "description": "Enable support for the OpenAL audio library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openal-soft" + ] + }, + "openh264": { + "description": "Enable support for the OpenH264 codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openh264" + ] + }, + "openjpeg": { + "description": "Enable support for the JPEG2000 codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "openjpeg" + ] + }, + "openmpt": { + "description": "Enable support for the OpenMPT codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libopenmpt" + ] + }, + "opus-bad": { + "description": "Enable support for the Opus codec in bad plugins", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "opus" + ] + }, + "opus-base": { + "description": "Enable support for the Opus codec in base plugins", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "opus" + ] + }, + "pango": { + "description": "Enable support for pango font rendering", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "pango" + ] + }, + "plugins-bad": { + "description": "'Bad' GStreamer plugins and helper libraries", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gl" + ], + "platform": "osx" + } + ] + }, + "plugins-base": { + "description": "'Base' GStreamer plugins and helper libraries", + "dependencies": [ + "zlib" + ] + }, + "plugins-good": { + "description": "'Good' GStreamer plugins and helper libraries", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + }, + "zlib" + ] + }, + "plugins-ugly": { + "description": "'Ugly' GStreamer plugins and helper libraries", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-base" + ] + } + ] + }, + "png": { + "description": "Enable support for the PNG image format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libpng" + ] + }, + "smoothstreaming": { + "description": "Enable support for the Microsoft Smooth Streaming format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libxml2" + ] + }, + "sndfile": { + "description": "Enable support for the SndFile file reader/writer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsndfile" + ] + }, + "soundtouch": { + "description": "Enable support for the SoundTouch audio processing library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "soundtouch" + ] + }, + "soup": { + "description": "Enable support for the soup plugin", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libsoup" + ] + }, + "speex": { + "description": "Enable support for the speex codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "speex" + ] + }, + "srt": { + "description": "Enable support for the SRT protocol", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsrt" + ] + }, + "srtp": { + "description": "Enable support for the SRTP protocol", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libsrtp" + ] + }, + "taglib": { + "description": "Enable support for the taglib library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "taglib" + ] + }, + "vorbis": { + "description": "Enable support for the OggVorbis audio codec", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "ogg", + "plugins-base" + ] + }, + "libvorbis" + ] + }, + "vpx": { + "description": "Enable support for the VP8 and VP9 codecs", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libvpx" + ] + }, + "vulkan": { + "description": "Enable Vulkan video sink plugin", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + { + "name": "gstreamer", + "default-features": false, + "features": [ + "wayland" + ], + "platform": "!android & !ios & !osx & !windows" + }, + { + "name": "shaderc", + "host": true + }, + "vulkan" + ] + }, + "wayland": { + "description": "Enable Wayland plugin/library", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "wayland", + "wayland-protocols" + ] + }, + "webp": { + "description": "Enable support for WebP image format", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "libwebp" + ] + }, + "webrtc": { + "description": "Enable support for WebRTC", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "dtls", + "plugins-bad", + "srtp" + ] + }, + "libnice" + ] + }, + "wildmidi": { + "description": "Enable support for the WildMIDI synthesizer", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-bad" + ] + }, + "wildmidi" + ] + }, + "x11": { + "description": "Enable X11 support in libraries and plugins", + "supports": "!windows", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "plugins-good" + ] + }, + "libx11", + "libxext", + "libxkbcommon", + "xcb" + ] + }, + "x264": { + "description": "Enable support for the x264 encoder (GPL license)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-ugly" + ] + }, + "x264" + ] + }, + "x265": { + "description": "Enable support for the x265 encoder (GPL license)", + "dependencies": [ + { + "name": "gstreamer", + "default-features": false, + "features": [ + "gpl", + "plugins-bad" + ] + }, + "x265" + ] + } + } +} diff --git a/vcpkg/ports/gstreamer/x264-api-imports.diff b/vcpkg/ports/gstreamer/x264-api-imports.diff new file mode 100644 index 0000000..0e4f6dc --- /dev/null +++ b/vcpkg/ports/gstreamer/x264-api-imports.diff @@ -0,0 +1,12 @@ +diff --git a/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h b/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h +index b9c9f82..df96c4a 100644 +--- a/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h ++++ b/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h +@@ -36,7 +36,6 @@ + * leads to a segfault when you try to dereference any const values provided + * by x264.dll. See: https://bugzilla.gnome.org/show_bug.cgi?id=779249 */ + #if defined(_WIN32) && !defined(X264_API_IMPORTS) && !defined(GST_STATIC_COMPILATION) +-# define X264_API_IMPORTS + #endif + #include <x264.h> + |