diff options
25 files changed, 105 insertions, 63 deletions
diff --git a/cross/i686-w64-mingw32.txt b/cross/i686-w64-mingw32.txt index 159c662..361578e 100644 --- a/cross/i686-w64-mingw32.txt +++ b/cross/i686-w64-mingw32.txt @@ -1,17 +1,22 @@ +# See x86_64-w64-mingw32.txt for references. + [binaries] c = 'i686-w64-mingw32-gcc' cpp = 'i686-w64-mingw32-g++' -ar = 'i686-w64-mingw32-ar' +ar = 'i686-w64-mingw32-gcc-ar' strip = 'i686-w64-mingw32-strip' windres = 'i686-w64-mingw32-windres' dlltool = 'i686-w64-mingw32-dlltool' exe_wrapper = 'wine' [properties] -ar = 'i686-w64-mingw32-ar' -nm = 'i686-w64-mingw32-nm' +ar = 'i686-w64-mingw32-gcc-ar' +nm = 'i686-w64-mingw32-gcc-nm' needs_exe_wrapper = true +[built-in options] +cpp_args = ['-fno-declone-ctor-dtor'] + [host_machine] system = 'windows' cpu_family = 'x86' diff --git a/cross/x86_64-w64-msvc-clang.txt b/cross/x86_64-w64-clang-cl.txt index 284dab7..8298a16 100644 --- a/cross/x86_64-w64-msvc-clang.txt +++ b/cross/x86_64-w64-clang-cl.txt @@ -3,19 +3,26 @@ c = 'clang-cl' c_ld = 'lld-link' cpp = 'clang-cl' cpp_ld = 'lld-link' -ar = 'llvm-lib' +ar = 'llvm-ar' nm = 'llvm-objdump' dlltool = 'llvm-dlltool' windres = 'llvm-rc' pkg-config = '' +cmake = 'cmake' exe_wrapper = 'wine64' [properties] ld = 'lld-link' -ar = 'llvm-lib' +ar = 'llvm-ar' nm = 'llvm-objdump' needs_exe_wrapper = true +[cmake] +CMAKE_C_COMPILER = 'clang-cl' +CMAKE_CXX_COMPILER = 'clang-cl' +CMAKE_C_COMPILER_LAUNCHER = '' +CMAKE_CXX_COMPILER_LAUNCHER = '' + [built-in options] c_args = ['--target=x86_64-windows-msvc', '-fuse-ld=lld'] cpp_args = ['--target=x86_64-windows-msvc', '-fuse-ld=lld'] diff --git a/cross/x86_64-w64-mingw32.txt b/cross/x86_64-w64-mingw32.txt index e04d439..8d75e8d 100644 --- a/cross/x86_64-w64-mingw32.txt +++ b/cross/x86_64-w64-mingw32.txt @@ -5,7 +5,6 @@ c = 'x86_64-w64-mingw32-gcc' cpp = 'x86_64-w64-mingw32-g++' # https://github.com/msys2/MINGW-packages/issues/3516 # https://github.com/mesonbuild/meson/issues/13324 -# https://github.com/msys2/MINGW-packages/issues/11726 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106103 # https://embeddedartistry.com/blog/2020/04/13/prefer-gcc-ar-to-ar-in-your-buildsystems/ ar = 'x86_64-w64-mingw32-gcc-ar' @@ -19,6 +18,10 @@ ar = 'x86_64-w64-mingw32-gcc-ar' nm = 'x86_64-w64-mingw32-gcc-nm' needs_exe_wrapper = true +[built-in options] +# https://github.com/msys2/MINGW-packages/issues/11726#issuecomment-1381836644 +cpp_args = ['-fno-declone-ctor-dtor'] + [host_machine] system = 'windows' cpu_family = 'x86_64' diff --git a/env/build_cmds.txt b/env/build_cmds.txt index db1ffa7..06dab23 100644 --- a/env/build_cmds.txt +++ b/env/build_cmds.txt @@ -10,23 +10,23 @@ meson setup build-android -Dserver=disabled -Drenderer-api=gl -Dwindow=glfm \ # MingW DX11 (Preferred) meson setup build-mingw64-dx11 -Drenderer-api=dx11 -Drenderer=libplacebo -Dwindow=win32 \ -Dsink-only=false -Dserver=enabled -Dportal=disabled -Dclient=disabled \ - -Dsources=file -Dcodecs=ffmpeg,stb_image -Dcodec-ffmpeg-version=8 -Dcodec-hwaccels=d3d11va -Dsubtitles=enabled \ + -Dsources=file -Dcodecs=ffmpeg -Dcodec-ffmpeg-version=8 -Dcodec-hwaccels=d3d11va -Dsubtitles=enabled \ -Dtests=disabled -Dwin32-compat=false --cross-file ./cross/x86_64-w64-mingw32.txt \ - --default-library=static --strip --buildtype=release --optimization=s -Ddebug=false -Db_lto=false + --default-library=static --strip --buildtype=release -Ddebug=false --optimization=s -Db_lto=true # MingW Vulkan meson setup build-mingw64-vulkan -Drenderer-api=vulkan -Drenderer=libplacebo -Dwindow=win32 \ -Dsink-only=false -Dserver=enabled -Dportal=disabled -Dclient=disabled \ -Dsources=file -Dcodecs=ffmpeg,stb_image -Dcodec-ffmpeg-version=8 -Dcodec-hwaccels=vulkan -Dsubtitles=enabled \ -Dtests=disabled -Dwin32-compat=false --cross-file ./cross/x86_64-w64-mingw32.txt \ - --default-library=static --strip --buildtype=release --optimization=2 -Ddebug=false + --default-library=static --strip --buildtype=release -Ddebug=false --optimization=2 # Windows XP 32bit Support. meson setup build-mingw32-min -Drenderer-api=gl -Drenderer=momo -Dwindow=win32 \ -Dsink-only=false -Dserver=enabled -Dportal=disabled -Dclient=disabled \ -Dsources=file -Dcodecs=ffmpeg -Dcodec-ffmpeg-version=3 -Dsubtitles=enabled \ -Dtests=disabled -Dwin32-compat=true --cross-file ./cross/i686-w64-mingw32.txt \ - --default-library=static --strip --buildtype=release --optimization=s -Ddebug=false + --default-library=static --strip --buildtype=release -Ddebug=false --optimization=s -Db_lto=true # ASan meson setup build-asan --buildtype=debug -Db_sanitize=address -Db_lundef=false \ diff --git a/env/msvc_build.sh b/env/msvc_build.sh index ba73416..13c4eca 100644 --- a/env/msvc_build.sh +++ b/env/msvc_build.sh @@ -2,16 +2,16 @@ # nix develop .#mingw64 # meson subprojects download msvc-wine -# cd subprojects/msvc-wine-32b504c/ +# cd subprojects/msvc-wine-514f8ea/ # ./vsdownload.py --dest ../../env/msvc-root # ./install.sh ../../env/msvc-root -export INCLUDE="$INCLUDE:$HOME/c/camu/subprojects/vulkan-headers-1.4.325/include" +BIN=env/msvc-root/bin/x64 . subprojects/msvc-wine-514f8ea/msvcenv-native.sh -BIN=env/msvc-root/bin/x64 . subprojects/msvc-wine-32b504c/msvcenv-native.sh +export INCLUDE="$INCLUDE:$HOME/c/camu/subprojects/vulkan-headers-1.4.325/include" -CC=clang-cl CXX=clang-cl meson setup build-clang-cl -Dwindow=win32 -Drenderer-api=dx11 \ +meson setup build-clang-cl -Dwindow=win32 -Drenderer-api=dx11 \ -Dsink-only=false -Dserver=enabled -Dportal=disabled -Dclient=disabled -Dsources=file \ -Dcodecs=ffmpeg -Dcodec-ffmpeg-version=8 -Dcodec-hwaccels=d3d11va -Dsubtitles=enabled -Dtests=disabled \ - --cross-file ./cross/x86_64-w64-msvc-clang.txt --default-library=static -Db_vscrt=static_from_buildtype \ + --cross-file ./cross/x86_64-w64-clang-cl.txt --default-library=static -Db_vscrt=static_from_buildtype \ --buildtype=release --optimization=s -Ddebug=false --strip @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1782749631, - "narHash": "sha256-slFTUgDy0KTPA4LBAmC/9SngDq8GCPdX+ZR0yQHHN1E=", + "lastModified": 1783358420, + "narHash": "sha256-UEyBpf+XmQe8laXfDzIlo11Er7E0rKrLS8jeMnMj0Ds=", "owner": "nix-community", "repo": "home-manager", - "rev": "5d72a29fc36ac21adae6ae35568fe5ee6700850f", + "rev": "0d33882bd46c1f9ef62276700f5e5f2bd6ff6604", "type": "github" }, "original": { @@ -99,11 +99,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1781182279, - "narHash": "sha256-V5EQQbDnmdiXGQXrEF1PEL7QYsFqfH8N1E89Z5ONwFk=", + "lastModified": 1783336371, + "narHash": "sha256-ZisTtweyb7JUwPP54HAXE9TypT8m89dIxDI36Ak0hAs=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "5675822ba756e6e56f8f6a5a76e90e0da2ece94d", + "rev": "a9620cfa43f0c1c30a46c31ae3c6e58cdb124a14", "type": "github" }, "original": { @@ -159,11 +159,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1782723713, - "narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=", + "lastModified": 1783224372, + "narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", "type": "github" }, "original": { @@ -178,7 +178,7 @@ xorg.libXfixes xorg.libXcursor libxkbcommon - ] ++ lib.optionals (window == "x11") [ + ] ++ lib.optionals (window == "glfw") [ glfw3 ] ++ lib.optionals (renderer-api == "vulkan") [ vulkan-loader diff --git a/meson.build b/meson.build index 6eda9b8..e817842 100644 --- a/meson.build +++ b/meson.build @@ -5,8 +5,7 @@ project('camu', ['c', 'cpp'], # Marking cpp here is required for subproject cros license: 'GPL-3.0-only') # Fail early if 'Compiler for build machine not found'. -add_languages('c', native: true) -add_languages('cpp', native: true) +add_languages('c', 'cpp', native: true) compiler = meson.get_compiler('c') cmake = import('cmake') diff --git a/meson_options.txt b/meson_options.txt index 959c100..f7d0f7d 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -7,7 +7,7 @@ option('audio-backends', type: 'array', choices: ['miniaudio'], value: ['miniaud option('renderer', type: 'combo', choices: ['libplacebo', 'momo'], value: 'libplacebo') option('renderer-api', type: 'combo', choices: ['vulkan', 'dx11', 'gl', 'gl-rpi'], value: 'vulkan', yield: true) option('renderer-compiler', type: 'combo', choices: ['glslang', 'shaderc'], value: 'shaderc') -option('subtitles', type: 'feature', value: 'enabled') +option('subtitles', type: 'feature', value: 'enabled', yield: true) option('window', type: 'combo', choices: ['wayland', 'x11', 'win32', 'glfw', 'glfm'], value: 'wayland') option('win32-compat', type: 'boolean', value: false, yield: true) option('release-asserts', type: 'boolean', value: true, yield: true) diff --git a/src/buffer/video.c b/src/buffer/video.c index 1c37403..0e9795f 100644 --- a/src/buffer/video.c +++ b/src/buffer/video.c @@ -23,10 +23,10 @@ #else #define BUFFER_MARK_LOW 4 #define BUFFER_MARK_BUFFERED 7 // Must be >1. -#define BUFFER_MARK_HIGH 9 +#define BUFFER_MARK_HIGH 8 // Keep MARK_RESET high because currently the decoder can produce an // unpredictable amount of frames at any point. -#define BUFFER_MARK_RESET (BUFFER_MARK_HIGH * 4) +#define BUFFER_MARK_RESET (BUFFER_MARK_HIGH * 3) #endif bool camu_video_buffer_init(struct camu_video_buffer *buf, struct camu_clock *clock) diff --git a/src/codec/ffmpeg/common.h b/src/codec/ffmpeg/common.h index 26f807d..c40a38d 100644 --- a/src/codec/ffmpeg/common.h +++ b/src/codec/ffmpeg/common.h @@ -4,6 +4,8 @@ #include <libavutil/frame.h> #include <libavcodec/avcodec.h> +#define camu_ff_longest_name(desc) ((desc)->long_name ? (desc)->long_name : (desc)->name) + s64 camu_ff_frame_duration(AVFrame *frame); // userdata, level, fmt, args diff --git a/src/codec/ffmpeg/decoder.c b/src/codec/ffmpeg/decoder.c index 3da0027..d24677a 100644 --- a/src/codec/ffmpeg/decoder.c +++ b/src/codec/ffmpeg/decoder.c @@ -28,7 +28,7 @@ static const char *hwdevices[] = { static void log_codec_name(const AVCodec *codec, const char *hwdevice_name) { - const char *name = codec->long_name ? codec->long_name : codec->name; + const char *name = camu_ff_longest_name(codec); if (hwdevice_name) { log_info("Codec: %s (via %s hwaccel).", name, hwdevice_name); } else { @@ -141,6 +141,8 @@ static s32 init_hwdevice_context(struct camu_ff_decoder *av, AVCodecContext *con #ifdef CAMU_HUGE_VIDEO_BUFFER // Note that context->extra_hw_frames has the ability to cause corruption. context->extra_hw_frames = 48; +#else + context->extra_hw_frames = 4; #endif return ret; diff --git a/src/fruits/cmsrv/meson.build b/src/fruits/cmsrv/meson.build index bfeabe0..15b46b6 100644 --- a/src/fruits/cmsrv/meson.build +++ b/src/fruits/cmsrv/meson.build @@ -8,8 +8,9 @@ if use_tuis cmsrv_args += ['-DCMSRV_USE_UI'] endif +cmsrv_link_args = [] if is_windows and not is_msvc - cmsrv_args += ['-static', '-static-libgcc', '-static-libstdc++', '-mwindows', '-municode'] + cmsrv_link_args += ['-mconsole', '-municode', '-static', '-static-libgcc', '-static-libstdc++'] endif -executable('cmsrv', cmsrv_src, dependencies: cmsrv_deps, c_args: cmsrv_args, link_args: cmsrv_args, install: true) +executable('cmsrv', cmsrv_src, dependencies: cmsrv_deps, c_args: cmsrv_args, link_args: cmsrv_link_args, install: true) diff --git a/src/fruits/meson.build b/src/fruits/meson.build index c82d71d..f53a653 100644 --- a/src/fruits/meson.build +++ b/src/fruits/meson.build @@ -1,7 +1,4 @@ -use_tuis = true -if is_windows - use_tuis = false -endif +use_tuis = not is_windows if use_tuis and (get_option('server').enabled() or get_option('client').enabled()) notcurses = dependency('notcurses', required: false, allow_fallback: false) @@ -29,11 +26,11 @@ if use_tuis and (get_option('server').enabled() or get_option('client').enabled( endif endif -if get_option('server').enabled() and not is_windows +if get_option('server').enabled() subdir('cmsrv') endif -if get_option('client').enabled() and not is_windows +if get_option('client').enabled() subdir('cmc') endif diff --git a/src/render/meson.build b/src/render/meson.build index 9aee7af..d342312 100644 --- a/src/render/meson.build +++ b/src/render/meson.build @@ -56,7 +56,7 @@ elif get_option('renderer') == 'libplacebo' shaderc_opts.add_cmake_defines({ 'ENABLE_EXCEPTIONS_ON_MSVC': false }) shaderc_proj = cmake.subproject('shaderc', options: shaderc_opts) shaderc = shaderc_proj.dependency('shaderc') - meson.override_dependency('shaderc', declare_dependency(dependencies: shaderc, version: '2026.1')) + meson.override_dependency('shaderc', declare_dependency(dependencies: shaderc, version: '2026.2')) render_deps += [ shaderc_proj.dependency('shaderc_util'), shaderc_proj.dependency('glslang'), diff --git a/src/render/queue_libplacebo.c b/src/render/queue_libplacebo.c index 57d60f6..f666560 100644 --- a/src/render/queue_libplacebo.c +++ b/src/render/queue_libplacebo.c @@ -39,7 +39,7 @@ static bool queue_lp_configure_subtitles(struct camu_frame_queue *queue, u32 wid } const AVCodec *codec = avcodec_find_decoder(codecpar->codec_id); if (!codec) { - log_error("Failed to find subtitle decoder."); + log_error("Failed to find subtitle transcoder."); return false; } if (!(lq->subs.converter = camu_ff_alloc_codec_context(codec, codecpar))) { @@ -51,7 +51,7 @@ static bool queue_lp_configure_subtitles(struct camu_frame_queue *queue, u32 wid return false; } const AVCodecDescriptor *ass_desc = avcodec_descriptor_get(AV_CODEC_ID_ASS); - log_info("Subtitle conversion: %s -> %s.", desc->long_name, ass_desc->long_name); + log_info("Subtitle conversion: %s -> %s.", camu_ff_longest_name(desc), camu_ff_longest_name(ass_desc)); // https://github.com/mpv-player/mpv/blob/266cb79f38fd1a5fd448b453dee5971795a145ca/sub/sd_ass.c#L634 #define MP_ASS_FONT_PLAYRESX 384.0 track->PlayResX = track->PlayResY * (f64)width / MAX(height, (u32)1); diff --git a/src/render/renderer_libplacebo.c b/src/render/renderer_libplacebo.c index 2bcbd64..6ddb972 100644 --- a/src/render/renderer_libplacebo.c +++ b/src/render/renderer_libplacebo.c @@ -429,7 +429,7 @@ static bool renderer_lp_render(struct camu_renderer *renderer, struct camu_scree lr->params.num_hooks = 1; lr->params.hooks[0]->parameters[0].data->f = (f32)mouse_x; lr->params.hooks[0]->parameters[1].data->f = (f32)mouse_y; - lr->params.hooks[0]->parameters[3].data->f = (scr->vr_emulation == CAMU_VR_360) ? 2.0 : 1.0 - (f32)scr->vr_left_eye; + lr->params.hooks[0]->parameters[3].data->f = (scr->vr_emulation == CAMU_VR_360) ? 2.f : (scr->vr_left_eye ? 0.f : 1.f); } enum { diff --git a/subprojects/SPIRV-Cross.wrap b/subprojects/SPIRV-Cross.wrap index 6532667..a0aa44a 100644 --- a/subprojects/SPIRV-Cross.wrap +++ b/subprojects/SPIRV-Cross.wrap @@ -1,7 +1,7 @@ [wrap-git] -directory = SPIRV-Cross-7bfcf72 +directory = SPIRV-Cross-6c09849 url = https://github.com/KhronosGroup/SPIRV-Cross.git -revision = 7bfcf72ad28d1429deddff6c71b71c81b40b7063 +revision = 6c09849fe88c48eaed08413aa022aaa136a3a057 depth = 1 method = cmake patch_directory = SPIRV-Cross diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap index 07c333c..5d721b0 100644 --- a/subprojects/harfbuzz.wrap +++ b/subprojects/harfbuzz.wrap @@ -3,3 +3,5 @@ directory = harfbuzz-14.2.1 url = https://github.com/harfbuzz/harfbuzz.git revision = 14.2.1 depth = 1 +patch_directory = harfbuzz +diff_files = harfbuzz/no_bigobj_windows.diff diff --git a/subprojects/msvc-wine.wrap b/subprojects/msvc-wine.wrap index feeace3..a1fca5e 100644 --- a/subprojects/msvc-wine.wrap +++ b/subprojects/msvc-wine.wrap @@ -1,5 +1,5 @@ [wrap-git] -directory = msvc-wine-32b504c +directory = msvc-wine-514f8ea url = https://github.com/mstorsjo/msvc-wine.git -revision = 32b504c63b869681cda6824a20e30b74cb718432 +revision = 514f8ea34842cd6d831804d0e9658d3a32870ae1 depth = 1 diff --git a/subprojects/notcurses.wrap b/subprojects/notcurses.wrap index 9eecaa9..8d8e41d 100644 --- a/subprojects/notcurses.wrap +++ b/subprojects/notcurses.wrap @@ -1,7 +1,7 @@ [wrap-git] -directory = notcurses-c951e0c +directory = notcurses-b26048e url = https://github.com/dankamongmen/notcurses.git -revision = c951e0c3ebb4aa26cdaaa8e4a7bbf7d9e7d68cf3 +revision = b26048eebc74d5d254717d3332fa484718f9efe6 depth = 1 method = cmake diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build index 7481dea..ed3617c 100644 --- a/subprojects/packagefiles/ffmpeg/meson.build +++ b/subprojects/packagefiles/ffmpeg/meson.build @@ -73,7 +73,9 @@ decoders += ',pcm_s32be,pcm_s32le,pcm_s24be,pcm_s24le,pcm_s16be,pcm_s16le' decoders += ',dca,eac3' decoders += ',pcm_dvd,mpegvideo,mpeg2video' decoders += ',av1' -#decoders += ',ass,srt' +if get_option('subtitles').enabled() + decoders += ',ass,srt,webvtt' +endif #if get_option('codec-hwaccels').length() == 0 libdav1d = dependency('dav1d', required: false) if libdav1d.found() @@ -84,6 +86,7 @@ decoders += ',av1' #endif demuxers = '' +muxers = '' parsers = '' if not get_option('sink-only') demuxers += 'flac,mp3,aac,wav,matroska,mov,avi' @@ -91,7 +94,10 @@ if not get_option('sink-only') #demuxers += ',pcm_f32be,pcm_f32le,pcm_s32le_planar,pcm_s16be_planar,pcm_s16le_planar' demuxers += ',eac3' demuxers += ',mpegts,mpegtsraw,mpegps,mpegvideo' - #demuxers += ',ass,srt' + if get_option('subtitles').enabled() + demuxers += ',ass,srt,webvtt' + muxers += ',ass,srt,webvtt' + endif parsers += 'aac,opus,h264,hevc,av1,vp9' parsers += ',dca' parsers += ',mpegaudio,mpegvideo,dvd_nav' @@ -222,6 +228,10 @@ if demuxers != '' extra_options += ['--enable-demuxer=' + demuxers] endif +if muxers != '' + extra_options += ['--enable-muxer=' + muxers] +endif + if parsers != '' extra_options += ['--enable-parser=' + parsers] endif diff --git a/subprojects/packagefiles/ffmpeg/meson_options.txt b/subprojects/packagefiles/ffmpeg/meson_options.txt index c06b276..d58d8fd 100644 --- a/subprojects/packagefiles/ffmpeg/meson_options.txt +++ b/subprojects/packagefiles/ffmpeg/meson_options.txt @@ -1,5 +1,6 @@ # Copy-paste from top-level project. 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('subtitles', type: 'feature', value: 'enabled', 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_3.3.9.diff b/subprojects/packagefiles/ffmpeg/version_3.3.9.diff index 7e91e5d..bf31274 100644 --- a/subprojects/packagefiles/ffmpeg/version_3.3.9.diff +++ b/subprojects/packagefiles/ffmpeg/version_3.3.9.diff @@ -1,5 +1,5 @@ ---- a/meson.build 2026-07-02 16:36:02.258920727 -0400 -+++ b/meson.build 2026-07-02 16:49:06.795636508 -0400 +--- a/meson.build 2026-07-04 12:03:17.942564661 -0400 ++++ b/meson.build 2026-07-04 15:10:51.305639404 -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') @@ -17,10 +17,10 @@ extra_options += ['--enable-static', '--disable-shared'] if is_windows -@@ -74,14 +70,6 @@ - decoders += ',pcm_dvd,mpegvideo,mpeg2video' - decoders += ',av1' - #decoders += ',ass,srt' +@@ -76,14 +72,6 @@ + if get_option('subtitles').enabled() + decoders += ',ass,srt,webvtt' + endif -#if get_option('codec-hwaccels').length() == 0 - libdav1d = dependency('dav1d', required: false) - if libdav1d.found() @@ -31,8 +31,8 @@ -#endif demuxers = '' - parsers = '' -@@ -197,12 +185,8 @@ + muxers = '' +@@ -203,12 +191,8 @@ # Disable unused hwaccels. extra_options += [ @@ -45,7 +45,7 @@ '--disable-nvenc', '--disable-vdpau', '--disable-audiotoolbox', -@@ -245,6 +229,15 @@ +@@ -255,6 +239,15 @@ args += ['-DCAMU_HAVE_SOXR'] endif @@ -61,7 +61,7 @@ ext_proj = import('unstable-external_project') proj = ext_proj.add_project('configure', -@@ -254,7 +247,6 @@ +@@ -264,7 +257,6 @@ '--incdir=@PREFIX@/@INCLUDEDIR@', '--enable-pic', '--disable-all', @@ -69,7 +69,7 @@ '--disable-everything', '--disable-programs', '--disable-doc', -@@ -279,11 +271,14 @@ +@@ -289,11 +281,14 @@ '--enable-swscale', '--disable-indevs', '--disable-outdevs', @@ -84,7 +84,7 @@ avutil = proj.dependency('avutil') avformat = proj.dependency('avformat') avcodec = proj.dependency('avcodec') -@@ -292,14 +287,14 @@ +@@ -302,14 +297,14 @@ swscale = proj.dependency('swscale') include = include_directories('.', 'build/') meson.override_dependency('libavutil', declare_dependency( diff --git a/subprojects/packagefiles/shaderc/spirv_tools_build_version.diff b/subprojects/packagefiles/shaderc/spirv_tools_build_version.diff index de50787..ebd5cdc 100644 --- a/subprojects/packagefiles/shaderc/spirv_tools_build_version.diff +++ b/subprojects/packagefiles/shaderc/spirv_tools_build_version.diff @@ -19,3 +19,16 @@ index 8e918de0..5dbc0dd1 100644 endfunction() # Always build ${SPIRV_TOOLS}-shared. This is expected distro packages, and +diff --git a/source/opt/CMakeLists.txt b/source/opt/CMakeLists.txt +index a0ca5b84..a6dd3f68 100644 +--- a/source/opt/CMakeLists.txt ++++ b/source/opt/CMakeLists.txt +@@ -283,6 +283,8 @@ target_include_directories(SPIRV-Tools-opt + target_link_libraries(SPIRV-Tools-opt + PUBLIC ${SPIRV_TOOLS_FULL_VISIBILITY}) + ++add_dependencies(SPIRV-Tools-opt core_tables) ++ + set_property(TARGET SPIRV-Tools-opt PROPERTY FOLDER "SPIRV-Tools libraries") + spvtools_check_symbol_exports(SPIRV-Tools-opt) + |