From 02f3d3565602146bbbfce85b2719246f24036cb9 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Tue, 9 Apr 2024 11:24:01 -0400 Subject: Massive restructure and many changes - The server-side list concept is still a wip Signed-off-by: Andrew Opalach --- subprojects/ffmpeg.wrap | 12 ++++-- subprojects/libass.wrap | 4 +- subprojects/libplacebo.wrap | 4 +- subprojects/miniaudio.wrap | 2 +- subprojects/packagefiles/ffmpeg/meson.build | 10 +++-- .../packagefiles/libplacebo/no_dlltool.diff | 47 ++++++++++++++++++++++ subprojects/packagefiles/libplacebo/stretch.diff | 15 +++++++ subprojects/shoki.wrap | 4 -- subprojects/stb.wrap | 2 +- 9 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 subprojects/packagefiles/libplacebo/no_dlltool.diff create mode 100644 subprojects/packagefiles/libplacebo/stretch.diff delete mode 100644 subprojects/shoki.wrap (limited to 'subprojects') diff --git a/subprojects/ffmpeg.wrap b/subprojects/ffmpeg.wrap index c030027..8a97530 100644 --- a/subprojects/ffmpeg.wrap +++ b/subprojects/ffmpeg.wrap @@ -1,10 +1,14 @@ [wrap-file] -directory = ffmpeg-6.1.1 +directory = ffmpeg-7.0 +#directory = ffmpeg-6.1.1 #directory = ffmpeg-5.1.4 -source_url = https://www.ffmpeg.org/releases/ffmpeg-6.1.1.tar.gz +source_url = https://www.ffmpeg.org/releases/ffmpeg-7.0.tar.gz +#source_url = https://www.ffmpeg.org/releases/ffmpeg-6.1.1.tar.gz #source_url = https://www.ffmpeg.org/releases/ffmpeg-5.1.4.tar.gz -source_filename = ffmpeg-6.1.1.tar.gz +source_filename = ffmpeg-7.0.tar.gz +#source_filename = ffmpeg-6.1.1.tar.gz #source_filename = ffmpeg-5.1.4.tar.gz -source_hash = b0aee531e4a91fed6bc031445dfc3ad8eb36de1fcb0fa2acdb589ecc9f8dc9cb +source_hash = 943a2a28044947c17a905c39075494b0da46ec0795224c2c61eff986518321eb +#source_hash = b0aee531e4a91fed6bc031445dfc3ad8eb36de1fcb0fa2acdb589ecc9f8dc9cb #source_hash = ad1d83e0f022ba405928ea4985c9cab978c4698bb7937738a1085808c3eb78b4 patch_directory = ffmpeg diff --git a/subprojects/libass.wrap b/subprojects/libass.wrap index 37282a9..8bf38e4 100644 --- a/subprojects/libass.wrap +++ b/subprojects/libass.wrap @@ -1,6 +1,6 @@ [wrap-git] -url = https://github.com/libass/libass +url = https://github.com/libass/libass.git revision = 0.17.1 -depth = 1 clone-recursive = true +depth = 1 patch_directory = libass diff --git a/subprojects/libplacebo.wrap b/subprojects/libplacebo.wrap index e0f5e83..ca8053f 100644 --- a/subprojects/libplacebo.wrap +++ b/subprojects/libplacebo.wrap @@ -1,8 +1,10 @@ [wrap-git] url = https://code.videolan.org/videolan/libplacebo.git revision = 52314e0e435fbcb731e326815d4091ed0ba27475 -depth = 1 clone-recursive = true +depth = 1 + +diff_files = libplacebo/stretch.diff, libplacebo/no_dlltool.diff [provide] dependency_names = libplacebo diff --git a/subprojects/miniaudio.wrap b/subprojects/miniaudio.wrap index 3b4e3be..984b6a5 100644 --- a/subprojects/miniaudio.wrap +++ b/subprojects/miniaudio.wrap @@ -1,5 +1,5 @@ [wrap-git] -url = https://github.com/mackron/miniaudio +url = https://github.com/mackron/miniaudio.git revision = 0.11.21 depth = 1 patch_directory = miniaudio diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build index 6700f5d..f47d35e 100644 --- a/subprojects/packagefiles/ffmpeg/meson.build +++ b/subprojects/packagefiles/ffmpeg/meson.build @@ -5,6 +5,7 @@ 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_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 @@ -12,7 +13,7 @@ is_mingw = is_windows and not is_msvc extra_options = [] if not is_debug - extra_options += ['--disable-debug'] + extra_options += ['--disable-debug', '--enable-small'] endif extra_options += ['--cc=' + compiler.cmd_array()[0]] @@ -32,7 +33,8 @@ endif #'--malloc-prefix=al_', decoders = 'flac,mp3,mp3float,aac,opus,alac,mjpeg,jpeg2000,h264,hevc,vp9' -#decoders += ',pcm_f32be,pcm_f32le,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_dvd,apng,mpegvideo,mpeg2video' +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 += ',pcm_dvd,mpegvideo,mpeg2video' #decoders += ',ass,srt' demuxers = 'flac,mp3,aac,wav,image2,mjpeg,image2pipe,image_jpeg_pipe,matroska,mov' @@ -44,7 +46,7 @@ parsers = 'mjpeg,jpeg2000' #extra_options += ['--enable-zlib', '--enable-libsoxr'] extra_options += ['--enable-zlib'] -decoders += ',png' +decoders += ',png,apng' demuxers += ',image_png_pipe' parsers += ',png' @@ -107,4 +109,4 @@ avformat = proj.dependency('avformat') avcodec = proj.dependency('avcodec') swresample = proj.dependency('swresample') swscale = proj.dependency('swscale') -av_inc_dep = declare_dependency(include_directories: include_directories('.', 'build/')) +ffmpeg_inc_dep = declare_dependency(include_directories: include_directories('.', 'build/')) diff --git a/subprojects/packagefiles/libplacebo/no_dlltool.diff b/subprojects/packagefiles/libplacebo/no_dlltool.diff new file mode 100644 index 0000000..e5c017c --- /dev/null +++ b/subprojects/packagefiles/libplacebo/no_dlltool.diff @@ -0,0 +1,47 @@ +diff --git a/src/meson.build b/src/meson.build +index 5958254..ee33055 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -18,24 +18,24 @@ link_args = [] + link_depends = [] + + # Looks like meson in certain configuration returns ' ' instead of empty string +-mingw32 = cc.get_define('__MINGW32__').strip() +-if host_machine.system() == 'windows' and mingw32 != '' and host_machine.cpu() in ['aarch64', 'arm', 'x86_64'] +- # MinGW-w64 math functions are significantly slower than the UCRT ones. +- # In particular powf is over 7 times slower than UCRT counterpart. +- # MinGW-w64 explicitly excludes some math functions from their ucrtbase def +- # file and replaces with own versions. To workaround the issue, generate the +- # import library and link it with UCRT versions of math functions. +- dlltool = find_program('llvm-dlltool', 'dlltool') +- ucrt_math = custom_target('ucrt_math.lib', +- output : ['ucrt_math.lib'], +- input : 'ucrt_math.def', +- command : [dlltool, '-d', '@INPUT@', '-l', '@OUTPUT@']) +- link_args += ucrt_math.full_path() +- link_depends += ucrt_math +- # MinGW-w64 inlines functions like powf, rewriting them to pow. We want to use +- # the powf specialization from UCRT, so disable inlining. +- add_project_arguments(['-D__CRT__NO_INLINE'], language: ['c', 'cpp']) +-endif ++#mingw32 = cc.get_define('__MINGW32__').strip() ++#if host_machine.system() == 'windows' and mingw32 != '' and host_machine.cpu() in ['aarch64', 'arm', 'x86_64'] ++# # MinGW-w64 math functions are significantly slower than the UCRT ones. ++# # In particular powf is over 7 times slower than UCRT counterpart. ++# # MinGW-w64 explicitly excludes some math functions from their ucrtbase def ++# # file and replaces with own versions. To workaround the issue, generate the ++# # import library and link it with UCRT versions of math functions. ++# dlltool = find_program('llvm-dlltool', 'dlltool') ++# ucrt_math = custom_target('ucrt_math.lib', ++# output : ['ucrt_math.lib'], ++# input : 'ucrt_math.def', ++# command : [dlltool, '-d', '@INPUT@', '-l', '@OUTPUT@']) ++# link_args += ucrt_math.full_path() ++# link_depends += ucrt_math ++# # MinGW-w64 inlines functions like powf, rewriting them to pow. We want to use ++# # the powf specialization from UCRT, so disable inlining. ++# add_project_arguments(['-D__CRT__NO_INLINE'], language: ['c', 'cpp']) ++#endif + + # Work around missing atomics on some (obscure) platforms + atomic_test = ''' diff --git a/subprojects/packagefiles/libplacebo/stretch.diff b/subprojects/packagefiles/libplacebo/stretch.diff new file mode 100644 index 0000000..40544bc --- /dev/null +++ b/subprojects/packagefiles/libplacebo/stretch.diff @@ -0,0 +1,15 @@ +diff --git a/src/renderer.c b/src/renderer.c +index a052bc5..639fbfd 100644 +--- a/src/renderer.c ++++ b/src/renderer.c +@@ -1845,8 +1845,8 @@ static bool pass_read_image(struct pass_state *pass) + .rect = { + off_x, + off_y, +- off_x + pl_rect_w(ref->img.rect), +- off_y + pl_rect_h(ref->img.rect), ++ off_x + pl_rect_w(ref->img.rect) / stretch_x, ++ off_y + pl_rect_h(ref->img.rect) / stretch_y, + }, + }; + diff --git a/subprojects/shoki.wrap b/subprojects/shoki.wrap deleted file mode 100644 index 7d0f1a1..0000000 --- a/subprojects/shoki.wrap +++ /dev/null @@ -1,4 +0,0 @@ -[wrap-git] -url = https://git.akon.city/shoki -revision = master -depth = 1 diff --git a/subprojects/stb.wrap b/subprojects/stb.wrap index 24fc46e..f8193df 100644 --- a/subprojects/stb.wrap +++ b/subprojects/stb.wrap @@ -1,5 +1,5 @@ [wrap-git] url = https://github.com/nothings/stb.git -revision = f4a71b13373436a2866c5d68f8f80ac6f0bc1ffe +revision = ae721c50eaf761660b4f90cc590453cdb0c2acd0 depth = 1 patch_directory = stb -- cgit v1.2.3-101-g0448