summaryrefslogtreecommitdiff
path: root/subprojects/packagefiles/ffmpeg
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/packagefiles/ffmpeg')
-rw-r--r--subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch73
-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
11 files changed, 502 insertions, 32 deletions
diff --git a/subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch b/subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch
new file mode 100644
index 0000000..b4fec43
--- /dev/null
+++ b/subprojects/packagefiles/ffmpeg/ffmpeg.git-effadce6c756247ea8bae32dc13bb3e6f464f0eb.patch
@@ -0,0 +1,73 @@
+From: Rémi Denis-Courmont <remi@remlab.net>
+Date: Sun, 16 Jul 2023 15:18:02 +0000 (+0300)
+Subject: avcodec/x86/mathops: clip constants used with shift instructions within inline assembly
+X-Git-Tag: n6.1~1007
+X-Git-Url: http://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/effadce6c756247ea8bae32dc13bb3e6f464f0eb
+
+avcodec/x86/mathops: clip constants used with shift instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer <jamrial@gmail.com>
+---
+
+diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
+index 6298f5ed19..ca7e2dffc1 100644
+--- a/libavcodec/x86/mathops.h
++++ b/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
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'))