summaryrefslogtreecommitdiff
path: root/subprojects/packagefiles
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/packagefiles')
-rw-r--r--subprojects/packagefiles/ffmpeg-compat/meson.build197
-rw-r--r--subprojects/packagefiles/ffmpeg-compat/meson_options.txt4
-rw-r--r--subprojects/packagefiles/ffmpeg-compat/meson_project.diff16
-rw-r--r--subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch (renamed from subprojects/packagefiles/ffmpeg-compat/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch)0
-rw-r--r--subprojects/packagefiles/ffmpeg/meson.build147
-rw-r--r--subprojects/packagefiles/ffmpeg/meson_options.txt3
-rw-r--r--subprojects/packagefiles/ffmpeg/version_2.8.22.diff58
-rw-r--r--subprojects/packagefiles/ffmpeg/version_3.3.9.diff79
-rw-r--r--subprojects/packagefiles/ffmpeg/version_3.4.14.diff29
-rw-r--r--subprojects/packagefiles/ffmpeg/version_4.2.11.diff29
-rw-r--r--subprojects/packagefiles/ffmpeg/version_5.1.7.diff29
-rw-r--r--subprojects/packagefiles/ffmpeg/version_6.1.3.diff29
-rw-r--r--subprojects/packagefiles/ffmpeg/version_7.1.1.diff29
-rw-r--r--subprojects/packagefiles/ffmpeg/version_8.0.diff29
-rw-r--r--subprojects/packagefiles/libplacebo/dependency_version_override.diff37
-rw-r--r--subprojects/packagefiles/miniaudio/meson.build2
16 files changed, 466 insertions, 251 deletions
diff --git a/subprojects/packagefiles/ffmpeg-compat/meson.build b/subprojects/packagefiles/ffmpeg-compat/meson.build
deleted file mode 100644
index 7aeeb71..0000000
--- a/subprojects/packagefiles/ffmpeg-compat/meson.build
+++ /dev/null
@@ -1,197 +0,0 @@
-project('ffmpeg', 'c', version: '3.4.14', meson_version: '>=0.57.0')
-
-ffmpeg_version_string = meson.project_version()
-
-compiler = meson.get_compiler('c')
-
-cpu = target_machine.cpu_family()
-is_64bit = (cpu == 'x86_64' or cpu == 'aarch64')
-is_debug = get_option('debug')
-is_minsize = get_option('optimization') == 's'
-is_linux = host_machine.system() == 'linux'
-is_windows = host_machine.system() == 'windows'
-is_msvc = compiler.get_id() == 'msvc' or compiler.get_id() == 'clang-cl'
-is_mingw = is_windows and not is_msvc
-is_android = host_machine.system() == 'android'
-
-extra_options = []
-
-if not is_debug
- extra_options += ['--disable-debug']
-endif
-
-if is_minsize
- extra_options += ['--enable-small']
-endif
-
-extra_options += ['--arch=' + cpu]
-extra_options += ['--cc=' + compiler.cmd_array()[0]]
-if meson.is_cross_build()
- if is_msvc
- extra_options += ['--ld=' + compiler.get_linker_id()]
- endif
- extra_options += ['--ar=' + meson.get_external_property('ar', 'ar')]
- extra_options += ['--nm=' + meson.get_external_property('nm', 'nm')]
-endif
-
-if cpu == 'x86_64' or cpu == 'x86'
- extra_options += ['--enable-x86asm']
-endif
-
-if is_windows
- extra_options += ['--extra-cflags=-D_WIN32_WINNT=0x0502'] # Windows Server 2003 with SP1, Windows XP with SP2.
- if is_64bit
- extra_options += ['--target-os=win64']
- else
- extra_options += ['--target-os=win32']
- endif
- if is_msvc
- extra_options += ['--toolchain=msvc']
- endif
- extra_options += ['--enable-w32threads']
-elif is_android
- extra_options += ['--target-os=android']
-endif
-
-#'--extra-ldflags=-Lbuild/subprojects/libalabaster -l:libalabaster.a',
-#'--malloc-prefix=al_',
-
-decoders = 'flac,mp3,mp3float,aac,opus,vorbis,h264,hevc,av1,vp9'
-decoders += ',pcm_s32be,pcm_s32le,pcm_s24be,pcm_s24le,pcm_s16be,pcm_s16le'
-#decoders += ',pcm_f32be,pcm_f32le,pcm_s32le_planar,pcm_s16be_planar,pcm_s16le_planar'
-decoders += ',dca,eac3'
-decoders += ',pcm_dvd,mpegvideo,mpeg2video'
-#decoders += ',ass,srt'
-
-demuxers = ''
-parsers = ''
-if not get_option('sink-only')
- demuxers += 'flac,mp3,aac,wav,matroska,mov,avi'
- demuxers += ',pcm_s32be,pcm_s32le,pcm_s24be,pcm_s24le,pcm_s16be,pcm_s16le'
- #demuxers += ',pcm_f32be,pcm_f32le,pcm_s32le_planar,pcm_s16be_planar,pcm_s16le_planar'
- demuxers += ',eac3'
- demuxers += ',mpegts,mpegtsraw,mpegps,mpegvideo'
- #demuxers += ',ass,srt'
- parsers += 'aac,opus,h264,hevc,av1,vp9'
- parsers += ',dca'
- parsers += ',mpegaudio,mpegvideo,dvd_nav'
- extra_options += ['--enable-bzlib'] # matroska
-endif
-
-extra_options += ['--enable-zlib']
-decoders += ',png,apng,mjpeg,jpeg2000,gif,'
-if not get_option('sink-only')
- demuxers += ',image_png_pipe,image2,mjpeg,image2pipe,image_jpeg_pipe,gif'
- parsers += ',png,mjpeg,jpeg2000,gif'
-endif
-
-bsfs = ''
-if not get_option('sink-only')
- bsfs += 'extract_extradata,mp3_header_decompress'
-endif
-
-hwaccels = ''
-if get_option('codec-hwaccel').enabled()
- if get_option('renderer-api') == 'vulkan'
- extra_options += ['--enable-vulkan']
- hwaccels += 'h264_vulkan,hevc_vulkan,av1_vulkan,vp9_vulkan'
- elif is_windows
- extra_options += ['--enable-d3d11va']
- hwaccels += 'h264_d3d11va,hevc_d3d11va,av1_d3d11va,vp9_d3d11va'
- hwaccels += ',h264_d3d11va2,hevc_d3d11va2,av1_d3d11va2,vp9_d3d11va2'
- #extra_options += ['--enable-dxva2']
- #hwaccels += ',h264_dxva2,hevc_dxva2,av1_dxva2,vp9_dxva2'
- elif is_android
- extra_options += ['--enable-jni', '--enable-mediacodec']
- decoders += ',h264_mediacodec,hevc_mediacodec,av1_mediacodec,vp9_mediacodec'
- elif is_linux
- extra_options += ['--enable-vaapi']
- endif
-else
- extra_options += ['--disable-hwaccels']
-endif
-
-protocols = ''
-if not get_option('sink-only')
- protocols += 'cache'
-endif
-
-if decoders != ''
- extra_options += ['--enable-decoder=' + decoders]
-endif
-
-if demuxers != ''
- extra_options += ['--enable-demuxer=' + demuxers]
-endif
-
-if parsers != ''
- extra_options += ['--enable-parser=' + parsers]
-endif
-
-if bsfs != ''
- extra_options += ['--enable-bsf=' + bsfs]
-endif
-
-if protocols != ''
- extra_options += ['--enable-protocol=' + protocols]
-endif
-
-if hwaccels != ''
- extra_options += ['--enable-hwaccel=' + hwaccels]
-endif
-
-if is_linux or is_mingw
- extra_options += ['--enable-libsoxr']
-endif
-
-ext_proj = import('unstable-external_project')
-
-proj = ext_proj.add_project('configure',
- configure_options: [
- '--prefix=@PREFIX@',
- '--libdir=@PREFIX@/@LIBDIR@',
- '--incdir=@PREFIX@/@INCLUDEDIR@',
- '--enable-pic',
- '--enable-static',
- '--disable-shared',
- '--disable-logging',
- '--disable-all',
- '--disable-autodetect',
- '--disable-everything',
- '--disable-programs',
- '--disable-doc',
- '--disable-htmlpages',
- '--disable-manpages',
- '--disable-podpages',
- '--disable-txtpages',
- '--disable-safe-bitstream-reader',
- '--disable-schannel',
- '--disable-network',
- '--disable-securetransport',
- #'--disable-iconv',
- '--enable-gpl',
- '--enable-version3',
- '--disable-nonfree',
- '--enable-runtime-cpudetect',
- '--enable-asm',
- '--enable-inline-asm',
- '--enable-avutil',
- '--enable-avformat',
- '--enable-avcodec',
- #'--enable-avdevice',
- '--enable-swresample',
- '--enable-swscale',
- '--disable-indevs',
- '--disable-outdevs',
- extra_options
- ],
- cross_configure_options: ['--enable-cross-compile'],
- verbose: true)
-
-avutil = proj.dependency('avutil')
-avformat = proj.dependency('avformat')
-avcodec = proj.dependency('avcodec')
-#avdevice = proj.dependency('avdevice')
-swresample = proj.dependency('swresample')
-swscale = proj.dependency('swscale')
-ffmpeg_include = declare_dependency(include_directories: include_directories('.', 'build/'))
diff --git a/subprojects/packagefiles/ffmpeg-compat/meson_options.txt b/subprojects/packagefiles/ffmpeg-compat/meson_options.txt
deleted file mode 100644
index eb4b08b..0000000
--- a/subprojects/packagefiles/ffmpeg-compat/meson_options.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copy-paste from top-level project.
-option('codec-hwaccel', type: 'feature', value: 'disabled', yield: true)
-option('renderer-api', type: 'combo', choices: ['vulkan', 'dx11', 'gl', 'gl-rpi'], value: 'vulkan', yield: true)
-option('sink-only', type: 'boolean', value: false, yield: true)
diff --git a/subprojects/packagefiles/ffmpeg-compat/meson_project.diff b/subprojects/packagefiles/ffmpeg-compat/meson_project.diff
deleted file mode 100644
index 5646fe1..0000000
--- a/subprojects/packagefiles/ffmpeg-compat/meson_project.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- meson.build 2025-05-25 19:32:01.080982098 -0400
-+++ meson.build 2025-05-25 19:32:01.080982098 -0400
-@@ -1,4 +1,4 @@
--project('ffmpeg', 'c', version: '7.1.1', meson_version: '>=0.57.0')
-+project('ffmpeg', 'c', version: '3.4.14', meson_version: '>=0.57.0')
-
- ffmpeg_version_string = meson.project_version()
-
-@@ -39,6 +39,7 @@
- endif
-
- if is_windows
-+ extra_options += ['--extra-cflags=-D_WIN32_WINNT=0x0502'] # Windows Server 2003 with SP1, Windows XP with SP2.
- if is_64bit
- extra_options += ['--target-os=win64']
- else
diff --git a/subprojects/packagefiles/ffmpeg-compat/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch b/subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch
index b4fec43..b4fec43 100644
--- a/subprojects/packagefiles/ffmpeg-compat/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch
+++ b/subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch
diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build
index 8bcce34..46f2d31 100644
--- a/subprojects/packagefiles/ffmpeg/meson.build
+++ b/subprojects/packagefiles/ffmpeg/meson.build
@@ -1,6 +1,4 @@
-project('ffmpeg', 'c', version: '7.1.1', meson_version: '>=0.57.0')
-
-ffmpeg_version_string = meson.project_version()
+project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
compiler = meson.get_compiler('c')
@@ -14,6 +12,9 @@ is_msvc = compiler.get_id() == 'msvc' or compiler.get_id() == 'clang-cl'
is_mingw = is_windows and not is_msvc
is_android = host_machine.system() == 'android'
+args = ['-DFFMPEG_VERSION="' + meson.project_version() + '"']
+deps = []
+
extra_options = []
if not is_debug
@@ -38,7 +39,12 @@ if cpu == 'x86_64' or cpu == 'x86'
extra_options += ['--enable-x86asm']
endif
+extra_options += ['--enable-static', '--disable-shared']
+
if is_windows
+ if get_option('win32-compat')
+ extra_options += ['--extra-cflags=-D_WIN32_WINNT=0x0502'] # Windows Server 2003 with SP1, Windows XP with SP2.
+ endif
if is_64bit
extra_options += ['--target-os=win64']
else
@@ -48,6 +54,7 @@ if is_windows
extra_options += ['--toolchain=msvc']
endif
extra_options += ['--enable-w32threads']
+ deps += [compiler.find_library('bcrypt')]
elif is_android
extra_options += ['--target-os=android']
endif
@@ -74,14 +81,22 @@ if not get_option('sink-only')
parsers += 'aac,opus,h264,hevc,av1,vp9'
parsers += ',dca'
parsers += ',mpegaudio,mpegvideo,dvd_nav'
- extra_options += ['--enable-bzlib'] # matroska
+ bzlib = dependency('bzip2', required: false)
+ if bzlib.found()
+ extra_options += ['--enable-bzlib'] # matroska
+ deps += [bzlib]
+ endif
endif
-extra_options += ['--enable-zlib']
-decoders += ',png,apng,mjpeg,jpeg2000,gif,'
-if not get_option('sink-only')
- demuxers += ',image_png_pipe,image2,mjpeg,image2pipe,image_jpeg_pipe,gif'
- parsers += ',png,mjpeg,jpeg2000,gif'
+zlib = dependency('zlib', required: false)
+if zlib.found()
+ extra_options += ['--enable-zlib']
+ decoders += ',png,apng,mjpeg,jpeg2000,gif,'
+ if not get_option('sink-only')
+ demuxers += ',image_png_pipe,image2,mjpeg,image2pipe,image_jpeg_pipe,gif'
+ parsers += ',png,mjpeg,jpeg2000,gif'
+ endif
+ deps += [zlib]
endif
bsfs = ''
@@ -90,26 +105,85 @@ if not get_option('sink-only')
endif
hwaccels = ''
-if get_option('codec-hwaccel').enabled()
- if get_option('renderer-api') == 'vulkan'
+if meson.project_version().split('.')[0].to_int() <= 4
+ if 'vulkan' in get_option('codec-hwaccels')
+ error('vulkan not supported in FFmpeg version ' + meson.project_version() + '.')
+ endif
+else
+ if 'vulkan' in get_option('codec-hwaccels')
extra_options += ['--enable-vulkan']
- hwaccels += 'h264_vulkan,hevc_vulkan,av1_vulkan,vp9_vulkan'
- elif is_windows
- extra_options += ['--enable-d3d11va']
- hwaccels += 'h264_d3d11va,hevc_d3d11va,av1_d3d11va,vp9_d3d11va'
- hwaccels += ',h264_d3d11va2,hevc_d3d11va2,av1_d3d11va2,vp9_d3d11va2'
- #extra_options += ['--enable-dxva2']
- #hwaccels += ',h264_dxva2,hevc_dxva2,av1_dxva2,vp9_dxva2'
- elif is_android
- extra_options += ['--enable-jni', '--enable-mediacodec']
- decoders += ',h264_mediacodec,hevc_mediacodec,av1_mediacodec,vp9_mediacodec'
- elif is_linux
- extra_options += ['--enable-vaapi']
+ hwaccels += ',h264_vulkan,hevc_vulkan,av1_vulkan,vp9_vulkan'
+ args += ['-DCAMU_HAVE_VULKAN_DECODE']
+ else
+ extra_options += ['--disable-vulkan']
+ endif
+endif
+
+if meson.project_version().split('.')[0].to_int() <= 3
+ if 'vaapi' in get_option('codec-hwaccels')
+ error('vaapi not supported (by camu) in FFmpeg version ' + meson.project_version() + '.')
endif
else
+ if 'vaapi' in get_option('codec-hwaccels')
+ extra_options += ['--enable-libdrm', '--enable-vaapi']
+ hwaccels += ',h264_vaapi,hevc_vaapi,av1_vaapi,vp9_vaapi'
+ deps += [dependency('libdrm'), dependency('libva'), dependency('libva-drm')]
+ args += ['-DCAMU_HAVE_VAAPI']
+ else
+ extra_options += ['--disable-libdrm', '--disable-vaapi']
+ endif
+endif
+
+if 'd3d11va' in get_option('codec-hwaccels')
+ if not is_windows
+ error('d3d11va not supported on ' + host_machine.system() + '.')
+ endif
+ extra_options += ['--enable-d3d11va']
+ hwaccels += ',h264_d3d11va,hevc_d3d11va,av1_d3d11va,vp9_d3d11va'
+ hwaccels += ',h264_d3d11va2,hevc_d3d11va2,av1_d3d11va2,vp9_d3d11va2'
+ args += ['-DCAMU_HAVE_D3D11VA']
+else
+ extra_options += ['--disable-d3d11va']
+endif
+
+if 'dxva2' in get_option('codec-hwaccels')
+ if not is_windows
+ error('dxva2 not supported on ' + host_machine.system() + '.')
+ endif
+ extra_options += ['--enable-dxva2']
+ hwaccels += ',h264_dxva2,hevc_dxva2,av1_dxva2,vp9_dxva2'
+ args += ['-DCAMU_HAVE_DXVA2']
+else
+ extra_options += ['--disable-dxva2']
+endif
+
+if 'mediacodec' in get_option('codec-hwaccels')
+ if not is_android
+ error('mediacodec not supported on ' + host_machine.system() + '.')
+ endif
+ extra_options += ['--enable-jni', '--enable-mediacodec']
+ decoders += ',h264_mediacodec,hevc_mediacodec,av1_mediacodec,vp9_mediacodec'
+ deps += [compiler.find_library('mediandk')]
+ args += ['-DCAMU_HAVE_MEDIACODEC']
+else
+ extra_options += ['--disable-jni', '--disable-mediacodec']
+endif
+
+if get_option('codec-hwaccels').length() == 0
extra_options += ['--disable-hwaccels']
+else
+ args += ['-DCAMU_TRY_HWACCEL']
endif
+# Disable unused hwaccels.
+extra_options += [
+ '--disable-cuvid',
+ '--disable-nvenc',
+ '--disable-vdpau',
+ '--disable-audiotoolbox',
+ '--disable-videotoolbox'
+]
+
protocols = ''
if not get_option('sink-only')
protocols += 'cache'
@@ -139,8 +213,11 @@ if hwaccels != ''
extra_options += ['--enable-hwaccel=' + hwaccels]
endif
-if is_linux or is_mingw
+soxr = compiler.find_library('soxr', required: false)
+if soxr.found()
extra_options += ['--enable-libsoxr']
+ deps += [soxr]
+ args += ['-DCAMU_HAVE_SOXR']
endif
ext_proj = import('unstable-external_project')
@@ -151,9 +228,6 @@ proj = ext_proj.add_project('configure',
'--libdir=@PREFIX@/@LIBDIR@',
'--incdir=@PREFIX@/@INCLUDEDIR@',
'--enable-pic',
- '--enable-static',
- '--disable-shared',
- '--disable-logging',
'--disable-all',
'--disable-autodetect',
'--disable-everything',
@@ -167,7 +241,6 @@ proj = ext_proj.add_project('configure',
'--disable-schannel',
'--disable-network',
'--disable-securetransport',
- #'--disable-iconv',
'--enable-gpl',
'--enable-version3',
'--disable-nonfree',
@@ -177,7 +250,7 @@ proj = ext_proj.add_project('configure',
'--enable-avutil',
'--enable-avformat',
'--enable-avcodec',
- #'--enable-avdevice',
+ '--enable-avdevice',
'--enable-swresample',
'--enable-swscale',
'--disable-indevs',
@@ -190,7 +263,19 @@ proj = ext_proj.add_project('configure',
avutil = proj.dependency('avutil')
avformat = proj.dependency('avformat')
avcodec = proj.dependency('avcodec')
-#avdevice = proj.dependency('avdevice')
+avdevice = proj.dependency('avdevice')
swresample = proj.dependency('swresample')
swscale = proj.dependency('swscale')
-ffmpeg_include = declare_dependency(include_directories: include_directories('.', 'build/'))
+include = include_directories('.', 'build/')
+meson.override_dependency('libavutil', declare_dependency(
+ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
+meson.override_dependency('libavformat', declare_dependency(
+ dependencies: [avformat], include_directories: include, version: ''))
+meson.override_dependency('libavcodec', declare_dependency(
+ dependencies: [avcodec], include_directories: include, version: ''))
+meson.override_dependency('libavdevice', declare_dependency(
+ dependencies: [avdevice], include_directories: include, version: ''))
+meson.override_dependency('libswresample', declare_dependency(
+ dependencies: [swresample], include_directories: include, version: ''))
+meson.override_dependency('libswscale', declare_dependency(
+ dependencies: [swscale], include_directories: include, version: ''))
diff --git a/subprojects/packagefiles/ffmpeg/meson_options.txt b/subprojects/packagefiles/ffmpeg/meson_options.txt
index eb4b08b..c06b276 100644
--- a/subprojects/packagefiles/ffmpeg/meson_options.txt
+++ b/subprojects/packagefiles/ffmpeg/meson_options.txt
@@ -1,4 +1,5 @@
# Copy-paste from top-level project.
-option('codec-hwaccel', type: 'feature', value: 'disabled', yield: true)
+option('codec-hwaccels', type: 'array', choices: ['vulkan', 'vaapi', 'mediacodec', 'd3d11va', 'dxva2'], value: [], yield: true)
option('renderer-api', type: 'combo', choices: ['vulkan', 'dx11', 'gl', 'gl-rpi'], value: 'vulkan', yield: true)
+option('win32-compat', type: 'boolean', value: false, yield: true)
option('sink-only', type: 'boolean', value: false, yield: true)
diff --git a/subprojects/packagefiles/ffmpeg/version_2.8.22.diff b/subprojects/packagefiles/ffmpeg/version_2.8.22.diff
new file mode 100644
index 0000000..8530b6d
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_2.8.22.diff
@@ -0,0 +1,58 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:47:10.979206957 -0400
+@@ -1,4 +1,6 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '2.8.22', meson_version: '>=0.57.0')
++
++error('FFmpeg version 2.x currently unsupported.')
+
+ compiler = meson.get_compiler('c')
+
+@@ -35,10 +37,6 @@
+ extra_options += ['--nm=' + meson.get_external_property('nm', 'nm')]
+ endif
+
+-if cpu == 'x86_64' or cpu == 'x86'
+- extra_options += ['--enable-x86asm']
+-endif
+-
+ extra_options += ['--enable-static', '--disable-shared']
+
+ if is_windows
+@@ -229,7 +227,6 @@
+ '--incdir=@PREFIX@/@INCLUDEDIR@',
+ '--enable-pic',
+ '--disable-all',
+- '--disable-autodetect',
+ '--disable-everything',
+ '--disable-programs',
+ '--disable-doc',
+@@ -238,7 +235,6 @@
+ '--disable-podpages',
+ '--disable-txtpages',
+ '--disable-safe-bitstream-reader',
+- '--disable-schannel',
+ '--disable-network',
+ '--disable-securetransport',
+ '--enable-gpl',
+@@ -268,14 +264,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '54.31.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '56.40.101'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '56.60.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '56.4.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '1.2.101'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '3.1.101'))
diff --git a/subprojects/packagefiles/ffmpeg/version_3.3.9.diff b/subprojects/packagefiles/ffmpeg/version_3.3.9.diff
new file mode 100644
index 0000000..3887a2f
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_3.3.9.diff
@@ -0,0 +1,79 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:51:35.605178588 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '3.3.9', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -35,10 +35,6 @@
+ extra_options += ['--nm=' + meson.get_external_property('nm', 'nm')]
+ endif
+
+-if cpu == 'x86_64' or cpu == 'x86'
+- extra_options += ['--enable-x86asm']
+-endif
+-
+ extra_options += ['--enable-static', '--disable-shared']
+
+ if is_windows
+@@ -220,6 +216,15 @@
+ args += ['-DCAMU_HAVE_SOXR']
+ endif
+
++# Manual version of "--disable-autodetect". Needs more testing.
++extra_options += [
++ '--disable-lzma',
++ '--disable-sdl2',
++ '--disable-xlib',
++ '--disable-cuda',
++ '--disable-vda'
++]
++
+ ext_proj = import('unstable-external_project')
+
+ proj = ext_proj.add_project('configure',
+@@ -229,7 +234,6 @@
+ '--incdir=@PREFIX@/@INCLUDEDIR@',
+ '--enable-pic',
+ '--disable-all',
+- '--disable-autodetect',
+ '--disable-everything',
+ '--disable-programs',
+ '--disable-doc',
+@@ -255,11 +259,14 @@
+ '--enable-swscale',
+ '--disable-indevs',
+ '--disable-outdevs',
++ '--extra-cflags=-Wno-attributes',
+ extra_options
+ ],
+ cross_configure_options: ['--enable-cross-compile'],
+ verbose: true)
+
++args += ['-Wno-attributes']
++
+ avutil = proj.dependency('avutil')
+ avformat = proj.dependency('avformat')
+ avcodec = proj.dependency('avcodec')
+@@ -268,14 +275,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '55.58.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '57.71.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '57.89.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '57.6.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '2.7.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '4.6.100'))
diff --git a/subprojects/packagefiles/ffmpeg/version_3.4.14.diff b/subprojects/packagefiles/ffmpeg/version_3.4.14.diff
new file mode 100644
index 0000000..fa3622a
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_3.4.14.diff
@@ -0,0 +1,29 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:58:06.264562637 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '3.4.14', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -268,14 +268,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '55.78.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '57.83.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '57.107.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '57.10.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '2.9.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '4.8.100'))
diff --git a/subprojects/packagefiles/ffmpeg/version_4.2.11.diff b/subprojects/packagefiles/ffmpeg/version_4.2.11.diff
new file mode 100644
index 0000000..27d5ceb
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_4.2.11.diff
@@ -0,0 +1,29 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:42:23.161139654 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '4.2.11', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -268,14 +268,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '56.31.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '58.29.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '58.54.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '58.8.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '3.5.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '5.5.100'))
diff --git a/subprojects/packagefiles/ffmpeg/version_5.1.7.diff b/subprojects/packagefiles/ffmpeg/version_5.1.7.diff
new file mode 100644
index 0000000..f48d522
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_5.1.7.diff
@@ -0,0 +1,29 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:40:17.065798145 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '5.1.7', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -268,14 +268,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '57.28.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '59.27.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '59.37.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '59.7.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '4.7.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '6.7.100'))
diff --git a/subprojects/packagefiles/ffmpeg/version_6.1.3.diff b/subprojects/packagefiles/ffmpeg/version_6.1.3.diff
new file mode 100644
index 0000000..6193dfe
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_6.1.3.diff
@@ -0,0 +1,29 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:37:56.556303265 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '6.1.3', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -268,14 +268,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '58.29.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '60.16.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '60.31.102'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '60.3.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '4.12.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '7.5.100'))
diff --git a/subprojects/packagefiles/ffmpeg/version_7.1.1.diff b/subprojects/packagefiles/ffmpeg/version_7.1.1.diff
new file mode 100644
index 0000000..74a41fe
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_7.1.1.diff
@@ -0,0 +1,29 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:35:33.498781349 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '7.1.1', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -268,14 +268,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '59.39.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '61.7.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '61.19.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '61.3.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '5.3.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '8.3.100'))
diff --git a/subprojects/packagefiles/ffmpeg/version_8.0.diff b/subprojects/packagefiles/ffmpeg/version_8.0.diff
new file mode 100644
index 0000000..ad3b77b
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/version_8.0.diff
@@ -0,0 +1,29 @@
+--- a/meson.build 2025-08-23 18:44:34.634014892 -0400
++++ b/meson.build 2025-08-25 15:33:36.209533531 -0400
+@@ -1,4 +1,4 @@
+-project('ffmpeg', 'c', version: '', meson_version: '>=0.57.0')
++project('ffmpeg', 'c', version: '8.0', meson_version: '>=0.57.0')
+
+ compiler = meson.get_compiler('c')
+
+@@ -268,14 +268,14 @@
+ swscale = proj.dependency('swscale')
+ include = include_directories('.', 'build/')
+ meson.override_dependency('libavutil', declare_dependency(
+- dependencies: [avutil, deps], compile_args: args, include_directories: include, version: ''))
++ dependencies: [avutil, deps], compile_args: args, include_directories: include, version: '60.8.100'))
+ meson.override_dependency('libavformat', declare_dependency(
+- dependencies: [avformat], include_directories: include, version: ''))
++ dependencies: [avformat], include_directories: include, version: '62.3.100'))
+ meson.override_dependency('libavcodec', declare_dependency(
+- dependencies: [avcodec], include_directories: include, version: ''))
++ dependencies: [avcodec], include_directories: include, version: '62.11.100'))
+ meson.override_dependency('libavdevice', declare_dependency(
+- dependencies: [avdevice], include_directories: include, version: ''))
++ dependencies: [avdevice], include_directories: include, version: '62.1.100'))
+ meson.override_dependency('libswresample', declare_dependency(
+- dependencies: [swresample], include_directories: include, version: ''))
++ dependencies: [swresample], include_directories: include, version: '6.1.100'))
+ meson.override_dependency('libswscale', declare_dependency(
+- dependencies: [swscale], include_directories: include, version: ''))
++ dependencies: [swscale], include_directories: include, version: '9.1.100'))
diff --git a/subprojects/packagefiles/libplacebo/dependency_version_override.diff b/subprojects/packagefiles/libplacebo/dependency_version_override.diff
index f9a0688..1ee6169 100644
--- a/subprojects/packagefiles/libplacebo/dependency_version_override.diff
+++ b/subprojects/packagefiles/libplacebo/dependency_version_override.diff
@@ -12,7 +12,7 @@ index d4c4b44..ef96256 100644
]
diff --git a/src/glsl/meson.build b/src/glsl/meson.build
-index 8fb5e69..4adfa18 100644
+index b1f4c8d..9b3a5bb 100644
--- a/src/glsl/meson.build
+++ b/src/glsl/meson.build
@@ -1,5 +1,5 @@
@@ -22,3 +22,38 @@ index 8fb5e69..4adfa18 100644
components.set('shaderc', shaderc.found())
if shaderc.found()
build_deps += shaderc
+@@ -29,8 +29,9 @@ if glslang_req.auto() and shaderc.found()
+
+ elif not glslang_req.disabled()
+
++ prefer_static = get_option('prefer_static')
+ glslang_deps = [
+- cxx.find_library('glslang-default-resource-limits', required: false)
++ dependency('glslang-default-resource-limits', static: prefer_static)
+ ]
+
+ # meson doesn't respect generator expressions in INTERFACE_LINK_LIBRARIES
+@@ -38,13 +39,12 @@ elif not glslang_req.disabled()
+ # TODO: Use the following once it's fixed
+ # glslang = dependency('glslang', method: 'cmake', modules: ['glslang::SPIRV'])
+
+- prefer_static = get_option('prefer_static')
+ found_lib = false
+ foreach arg : [[prefer_static, false], [not prefer_static, glslang_req]]
+ static = arg[0]
+ required = arg[1]
+
+- spirv = cxx.find_library('SPIRV', required: required, static: static)
++ spirv = dependency('SPIRV', static: static)
+
+ if not spirv.found()
+ continue
+@@ -54,7 +54,7 @@ elif not glslang_req.disabled()
+
+ # Glslang 15.0.0 moved some code around, add also linking to glslang, while
+ # this is not needed for older versions, it will still work.
+- glslang_deps += cxx.find_library('glslang', required: required, static: static)
++ glslang_deps += dependency('glslang', static: static)
+
+ if static
+ glslang_deps += [
diff --git a/subprojects/packagefiles/miniaudio/meson.build b/subprojects/packagefiles/miniaudio/meson.build
index 1bd17f5..8522b5f 100644
--- a/subprojects/packagefiles/miniaudio/meson.build
+++ b/subprojects/packagefiles/miniaudio/meson.build
@@ -1,2 +1,2 @@
-project('miniaudio', 'c', version: 'git-e543369')
+project('miniaudio', 'c', version: 'git-78cdb9c')
miniaudio = declare_dependency(include_directories: include_directories('.'))