aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gstreamer
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gstreamer')
-rw-r--r--vcpkg/ports/gstreamer/duplicate-unused.diff12
-rw-r--r--vcpkg/ports/gstreamer/fix-bz2-windows-debug-dependency.patch26
-rw-r--r--vcpkg/ports/gstreamer/fix-clang-cl.patch166
-rw-r--r--vcpkg/ports/gstreamer/fix-multiple-def.patch35
-rw-r--r--vcpkg/ports/gstreamer/portfile.cmake437
-rw-r--r--vcpkg/ports/gstreamer/vcpkg.json896
-rw-r--r--vcpkg/ports/gstreamer/x264-api-imports.diff12
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>
+