diff options
Diffstat (limited to 'subprojects/packagefiles/ffmpeg')
| -rw-r--r-- | subprojects/packagefiles/ffmpeg/meson.build | 100 | ||||
| -rw-r--r-- | subprojects/packagefiles/ffmpeg/msvc_build_conform.diff | 20 |
2 files changed, 85 insertions, 35 deletions
diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build index 0ecae9e..8bcce34 100644 --- a/subprojects/packagefiles/ffmpeg/meson.build +++ b/subprojects/packagefiles/ffmpeg/meson.build @@ -24,11 +24,14 @@ if is_minsize extra_options += ['--enable-small'] endif -extra_options += ['--cc=' + compiler.cmd_array()[0]] extra_options += ['--arch=' + cpu] +extra_options += ['--cc=' + compiler.cmd_array()[0]] if meson.is_cross_build() - extra_options += ['--nm=' + meson.get_external_property('nm', 'nm')] + 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' @@ -52,32 +55,45 @@ endif #'--extra-ldflags=-Lbuild/subprojects/libalabaster -l:libalabaster.a', #'--malloc-prefix=al_', -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 = '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 = 'flac,mp3,aac,wav,image2,mjpeg,image2pipe,image_jpeg_pipe,gif,matroska,mov,avi' -#demuxers += ',mpegts,mpegtsraw,mpegps,mpegvideo' -#demuxers += ',ass,srt' - -parsers = 'aac,opus,mjpeg,jpeg2000,gif,h264,hevc,av1,vp9,vp8' -parsers += ',dca' -#parsers += ',mpegaudio,mpegvideo,dvd_nav' +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' -demuxers += ',image_png_pipe' -parsers += ',png' +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 = 'extract_extradata,mp3_header_decompress' +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' + 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' @@ -90,14 +106,39 @@ if get_option('codec-hwaccel').enabled() 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 -protocols = 'cache' - if is_linux or is_mingw extra_options += ['--enable-libsoxr'] endif @@ -122,17 +163,11 @@ proj = ext_proj.add_project('configure', '--disable-manpages', '--disable-podpages', '--disable-txtpages', - '--disable-bzlib', - '--disable-error-resilience', - '--disable-iconv', + '--disable-safe-bitstream-reader', '--disable-schannel', '--disable-network', '--disable-securetransport', - '--disable-sdl2', - '--disable-symver', - '--disable-faan', - '--disable-alsa', - '--disable-xlib', + #'--disable-iconv', '--enable-gpl', '--enable-version3', '--disable-nonfree', @@ -142,16 +177,11 @@ proj = ext_proj.add_project('configure', '--enable-avutil', '--enable-avformat', '--enable-avcodec', - '--enable-avdevice', + #'--enable-avdevice', '--enable-swresample', '--enable-swscale', '--disable-indevs', '--disable-outdevs', - '--enable-demuxer=' + demuxers, - '--enable-decoder=' + decoders, - '--enable-parser=' + parsers, - '--enable-bsf=' + bsfs, - '--enable-protocol=' + protocols, extra_options ], cross_configure_options: ['--enable-cross-compile'], @@ -160,7 +190,7 @@ 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/')) diff --git a/subprojects/packagefiles/ffmpeg/msvc_build_conform.diff b/subprojects/packagefiles/ffmpeg/msvc_build_conform.diff new file mode 100644 index 0000000..3aff7e9 --- /dev/null +++ b/subprojects/packagefiles/ffmpeg/msvc_build_conform.diff @@ -0,0 +1,20 @@ +--- a/configure 2025-03-02 19:22:08.000000000 -0500 ++++ b/configure 2025-05-17 18:43:08.854727216 -0400 +@@ -5184,7 +5184,7 @@ + DEPCCFLAGS=$_flags + fi + +-if $ar 2>&1 | grep -q Microsoft; then ++if $ar 2>&1 | grep -q Microsoft || [ "$ar" == "llvm-lib" ]; then + arflags="-nologo" + ar_o='-out:$@' + elif $ar 2>&1 | grep -q "\[D\] "; then +@@ -5878,6 +5878,8 @@ + enabled x86_32 && check_ldflags -LARGEADDRESSAWARE + add_cppflags -DWIN32_LEAN_AND_MEAN + shlibdir_default="$bindir_default" ++ LIBPREF="" ++ LIBSUF=".lib" + SLIBPREF="" + SLIBSUF=".dll" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' |