diff options
Diffstat (limited to 'subprojects/packagefiles/ffmpeg')
| -rw-r--r-- | subprojects/packagefiles/ffmpeg/meson.build | 30 |
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/')) |