summaryrefslogtreecommitdiff
path: root/subprojects/packagefiles/ffmpeg
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-02-19 13:40:38 -0500
committerAndrew Opalach <andrew@akon.city> 2025-02-19 13:40:38 -0500
commit2bee71a7e032c0972418e324bb1d7e6b02330b18 (patch)
treefa5819e9d9efe75cbc6f50d462dd0eb6bd19b6a2 /subprojects/packagefiles/ffmpeg
parentb36f022defd8d4ec5a8c29578bb583bea05dfbb6 (diff)
downloadcamu-2bee71a7e032c0972418e324bb1d7e6b02330b18.tar.gz
camu-2bee71a7e032c0972418e324bb1d7e6b02330b18.tar.bz2
camu-2bee71a7e032c0972418e324bb1d7e6b02330b18.zip
Server resource unload, many tweaks and fixes
- Initial liana client preferences. - Hook up libplacebo dx11 backend. - Make usage of FFmpeg hardware decoding api make some sense. Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'subprojects/packagefiles/ffmpeg')
-rw-r--r--subprojects/packagefiles/ffmpeg/meson.build30
1 files changed, 22 insertions, 8 deletions
diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build
index 33dbd30..05940c4 100644
--- a/subprojects/packagefiles/ffmpeg/meson.build
+++ b/subprojects/packagefiles/ffmpeg/meson.build
@@ -1,11 +1,14 @@
project('ffmpeg', 'c', version: '7.1', 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('buildtype').startswith('debug')
is_minsize = get_option('buildtype') == 'minsize'
+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
@@ -45,6 +48,7 @@ endif
decoders = 'flac,mp3,mp3float,aac,opus,vorbis,alac,mjpeg,jpeg2000,gif,h264,hevc,av1,vp9,vp8'
decoders += ',pcm_f32be,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_f32le,pcm_s24be,pcm_s24le,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar'
+decoders += ',dca'
#decoders += ',pcm_dvd,mpegvideo,mpeg2video'
#decoders += ',ass,srt'
@@ -53,6 +57,7 @@ demuxers = 'flac,mp3,aac,wav,image2,mjpeg,image2pipe,image_jpeg_pipe,gif,matrosk
#demuxers += ',ass,srt'
parsers = 'aac,opus,mjpeg,jpeg2000,gif,h264,hevc,av1,vp9,vp8'
+parsers += ',dca'
#parsers += ',mpegaudio,mpegvideo,dvd_nav'
extra_options += ['--enable-zlib']
@@ -63,16 +68,24 @@ parsers += ',png'
bsfs = 'extract_extradata,mp3_header_decompress'
hwaccels = ''
-if is_windows and get_option('sink-use-vulkan')
+if get_option('sink-use-vulkan')
extra_options += ['--enable-vulkan']
hwaccels += 'h264_vulkan,hevc_vulkan,av1_vulkan'
- #extra_options += ['--enable-d3d11va', '--enable-d3d12va', '--enable-dxva2']
- #hwaccels += 'h264_dxva2,'
+elif is_windows
+ extra_options += ['--enable-d3d11va']
+ #extra_options += ['--enable-d3d11va', '--enable-dxva2']
+ hwaccels += 'h264_d3d11va,hevc_d3d11va,av1_d3d11va,vp9_d3d11va'
+ hwaccels += ',h264_d3d11va2,hevc_d3d11va2,av1_d3d11va2,vp9_d3d11va2'
+ #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'
-else
- extra_options += ['--disable-vulkan', '--disable-vdpau', '--disable-vaapi']
+elif is_linux
+ extra_options += ['--enable-vaapi']
+endif
+
+if hwaccels != ''
+ extra_options += ['--enable-hwaccel=' + hwaccels]
endif
protocols = 'file,cache'
@@ -121,6 +134,7 @@ proj = ext_proj.add_project('configure',
'--enable-avutil',
'--enable-avformat',
'--enable-avcodec',
+ '--enable-avdevice',
'--enable-swresample',
'--enable-swscale',
'--disable-indevs',
@@ -129,9 +143,8 @@ proj = ext_proj.add_project('configure',
'--enable-decoder=' + decoders,
'--enable-parser=' + parsers,
'--enable-bsf=' + bsfs,
- '--enable-hwaccel=' + hwaccels,
'--enable-protocol=' + protocols,
- extra_options,
+ extra_options
],
cross_configure_options: ['--enable-cross-compile'],
verbose: true)
@@ -139,6 +152,7 @@ proj = ext_proj.add_project('configure',
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_inc_dep = declare_dependency(include_directories: include_directories('.', 'build/'))
+ffmpeg_include = declare_dependency(include_directories: include_directories('.', 'build/'))