diff options
| author | 2024-01-08 12:32:33 -0500 | |
|---|---|---|
| committer | 2024-01-08 12:32:33 -0500 | |
| commit | be3367fdbfaf7b62b94105cd55d1b9f1e30e9e58 (patch) | |
| tree | e593aaaefa37907b3ad81a1f81d2d538eef920de | |
| parent | 342e613fba5849c11a07d568f765f512f30ea6cf (diff) | |
| download | camu-be3367fdbfaf7b62b94105cd55d1b9f1e30e9e58.tar.gz camu-be3367fdbfaf7b62b94105cd55d1b9f1e30e9e58.tar.bz2 camu-be3367fdbfaf7b62b94105cd55d1b9f1e30e9e58.zip | |
Cleanup
Signed-off-by: Andrew Opalach <andrew@akon.city>
| -rw-r--r-- | cross/x86_64-w64-mingw32.txt | 17 | ||||
| -rw-r--r-- | flake.lock | 6 | ||||
| -rw-r--r-- | flake.nix | 73 | ||||
| -rw-r--r-- | src/bimu/handlers/codec_client.c | 6 | ||||
| -rw-r--r-- | src/bimu/handlers/codec_server.c | 3 | ||||
| -rw-r--r-- | src/buffer/video.c | 2 | ||||
| -rw-r--r-- | src/codec/meson.build | 19 | ||||
| -rw-r--r-- | src/libsink/sink.c | 2 | ||||
| -rw-r--r-- | src/mixer/audio_miniaudio.c | 1 | ||||
| -rw-r--r-- | subprojects/libakiyo.wrap | 4 | ||||
| -rw-r--r-- | subprojects/libalabaster.wrap | 4 | ||||
| -rw-r--r-- | subprojects/packagefiles/ffmpeg/meson.build | 31 |
12 files changed, 85 insertions, 83 deletions
diff --git a/cross/x86_64-w64-mingw32.txt b/cross/x86_64-w64-mingw32.txt new file mode 100644 index 0000000..05ba3b0 --- /dev/null +++ b/cross/x86_64-w64-mingw32.txt @@ -0,0 +1,17 @@ +# ubuntu: sudo apt install mingw-w64 mingw-w64-tools binutils-mingw-w64 meson cmake nasm libz-mingw-w64-dev + +[binaries] +c = 'x86_64-w64-mingw32-gcc' +cpp = 'x86_64-w64-mingw32-g++' +ar = 'x86_64-w64-mingw32-ar' +strip = 'x86_64-w64-mingw32-strip' +exe_wrapper = 'wine64' + +[properties] +needs_exe_wrapper = true + +[host_machine] +system = 'windows' +cpu_family = 'x86_64' +cpu = 'x86_64' +endian = 'little' @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1704194953, - "narHash": "sha256-RtDKd8Mynhe5CFnVT8s0/0yqtWFMM9LmCzXv/YKxnq4=", + "lastModified": 1704538339, + "narHash": "sha256-1734d3mQuux9ySvwf6axRWZRBhtcZA9Q8eftD6EZg6U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bd645e8668ec6612439a9ee7e71f7eac4099d4f6", + "rev": "46ae0210ce163b3cba6c7da08840c1d63de9c701", "type": "github" }, "original": { @@ -10,16 +10,16 @@ pkgs = import nixpkgs { inherit system; }; in with pkgs; - { - devShells.default = mkShell { - NIX_HARDENING_ENABLE = ""; + rec { + packages.default = stdenv.mkDerivation { + pname = "camu"; + version = "0.01"; + src = self; + outputs = [ "out" "dev" ]; nativeBuildInputs = [ + git gcc13 nasm - gdb - clang-tools - perf-tools - valgrind pkg-config libtool automake @@ -30,27 +30,16 @@ ant zulu8 wayland-scanner - python3 - python3.pkgs.requests - python3.pkgs.pip - python3.pkgs.cython - python3.pkgs.setuptools - nodePackages.pyright - gsettings-desktop-schemas - multimarkdown - asciidoc ]; buildInputs = [ curl - libsodium - libxml2 jansson ffmpeg_6-headless libcdio alsa-lib pipewire libpulseaudio - #libplacebo +# libplacebo xxHash lcms shaderc @@ -65,25 +54,35 @@ wayland-protocols egl-wayland notcurses - # TMP: - SDL2 - lz4 - glm - nlohmann_json - fftw - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - libuv - notcurses - # -- - wlroots - json_c - pcre2 - libevdev - libinput - libdrm ]; + mesonFlags = [ + "-Dwrap_mode=default" + ]; + meta = with lib; { + homepage = ""; + description = ""; + changelog = ""; + license = [ licenses.gpl3Only ]; + maintainers = with lib.maintainers; []; + }; + }; + + devShells.default = mkShell { + NIX_HARDENING_ENABLE = ""; + nativeBuildInputs = packages.default.nativeBuildInputs ++ [ + gdb + clang-tools_17 + perf-tools + valgrind + python3 + python3.pkgs.requests + python3.pkgs.pip + python3.pkgs.cython + python3.pkgs.setuptools + nodePackages.pyright + asciidoc + ]; + buildInputs = packages.default.buildInputs ++ []; shellHook = '' export NIX_SHELL=true unset SOURCE_DATE_EPOCH diff --git a/src/bimu/handlers/codec_client.c b/src/bimu/handlers/codec_client.c index eda453f..570ef97 100644 --- a/src/bimu/handlers/codec_client.c +++ b/src/bimu/handlers/codec_client.c @@ -1,10 +1,8 @@ +#include "../../codec/codec.h" #include "../../codec/libav/decoder.h" #include "../../codec/libav/packet_ext.h" -#include "../../codec/stb_image/decoder.h" -#include "../../codec/wuffs/decoder.h" -#include "../../codec/spng/decoder.h" -#include "../../bimu/local.h" +#include "../../bimu/client.h" #include "codec.h" diff --git a/src/bimu/handlers/codec_server.c b/src/bimu/handlers/codec_server.c index 99c4e71..ca1c1b8 100644 --- a/src/bimu/handlers/codec_server.c +++ b/src/bimu/handlers/codec_server.c @@ -1,9 +1,6 @@ #include "../../codec/codec.h" #include "../../codec/libav/demuxer.h" #include "../../codec/libav/packet_ext.h" -#include "../../codec/stb_image/demuxer.h" -#include "../../codec/wuffs/demuxer.h" -#include "../../codec/spng/demuxer.h" #include "../handler.h" diff --git a/src/buffer/video.c b/src/buffer/video.c index 106e40f..de1f025 100644 --- a/src/buffer/video.c +++ b/src/buffer/video.c @@ -5,7 +5,7 @@ //#define CAMU_VIDEO_BUFFER_FORCE_SCALER #define BUFFER_WATERMARK_LOW 16 // frames. -#define BUFFER_WATERMARK_BUFFERED 22 +#define BUFFER_WATERMARK_BUFFERED 12 #define BUFFER_WATERMARK_HIGH 28 #define BUFFER_WATERMARK_RESET BUFFER_WATERMARK_HIGH + 16. diff --git a/src/codec/meson.build b/src/codec/meson.build index b4472fb..a3951f0 100644 --- a/src/codec/meson.build +++ b/src/codec/meson.build @@ -11,15 +11,6 @@ av_src = [ av_inc = [] av_deps = [] -#libdir = meson.source_root() + '/build-mingw/subprojects/ffmpeg-6.0/dist/msys64/clang64lib' -#incdir = meson.source_root() + '/build-mingw/subprojects/ffmpeg-6.0/dist/msys64/clang64include' -#av_inc += [include_directories(incdir)] -#libavutil = compiler.find_library('avutil', dirs: libdir) -#libavformat = compiler.find_library('avformat', dirs: libdir) -#libavcodec = compiler.find_library('avcodec', dirs: libdir) -#libswresample = compiler.find_library('swresample', dirs: libdir) -#libswscale = compiler.find_library('swscale', dirs: libdir) - libavutil = dependency('libavutil', required: false) libavformat = dependency('libavformat', required: false) libavcodec = dependency('libavcodec', required: false) @@ -33,6 +24,12 @@ if not (libavutil.found() and libavformat.found() and libavcodec.found() and lib libavcodec = av_proj.get_variable('avcodec') libswresample = av_proj.get_variable('swresample') libswscale = av_proj.get_variable('swscale') + #libdir = av_proj.get_variable('libdir') + #libavutil = compiler.find_library('avutil', dirs: libdir) + #libavformat = compiler.find_library('avformat', dirs: libdir) + #libavcodec = compiler.find_library('avcodec', dirs: libdir) + #libswresample = compiler.find_library('swresample', dirs: libdir) + #libswscale = compiler.find_library('swscale', dirs: libdir) zlib = compiler.find_library('z', required: false) if zlib.found() av_deps += [zlib] @@ -41,9 +38,7 @@ if not (libavutil.found() and libavformat.found() and libavcodec.found() and lib if soxr.found() av_deps += [soxr] endif - if av_proj.get_variable('is_msvc') - av_deps += [compiler.find_library('Bcrypt', required: true)] - endif + av_deps += [compiler.find_library('bcrypt')] av_inc += [av_proj.get_variable('inc')] endif endif diff --git a/src/libsink/sink.c b/src/libsink/sink.c index d49e87b..58e3db3 100644 --- a/src/libsink/sink.c +++ b/src/libsink/sink.c @@ -317,7 +317,7 @@ static void client_callback(void *userdata, u8 op, struct bmu_client_stream *str break; } case BIMU_CLIENT_CONFIGURE: { - // No data can be sent before this step. + // No data can be sent until all active streams are configured. switch (stream->type) { case BIMU_STREAM_AUDIO: entry->audio.stream = stream; diff --git a/src/mixer/audio_miniaudio.c b/src/mixer/audio_miniaudio.c index 38cb91d..b77323a 100644 --- a/src/mixer/audio_miniaudio.c +++ b/src/mixer/audio_miniaudio.c @@ -4,7 +4,6 @@ static ma_backend backends[] = { #ifndef _WIN32 -// ma_backend_alsa, ma_backend_pulseaudio, #else ma_backend_wasapi diff --git a/subprojects/libakiyo.wrap b/subprojects/libakiyo.wrap new file mode 100644 index 0000000..2cd2caa --- /dev/null +++ b/subprojects/libakiyo.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url = https://git.akon.city/libakiyo +revision = master +depth = 1 diff --git a/subprojects/libalabaster.wrap b/subprojects/libalabaster.wrap new file mode 100644 index 0000000..c0358cf --- /dev/null +++ b/subprojects/libalabaster.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url = https://git.akon.city/libalabaster +revision = master +depth = 1 diff --git a/subprojects/packagefiles/ffmpeg/meson.build b/subprojects/packagefiles/ffmpeg/meson.build index 1466086..2faa65e 100644 --- a/subprojects/packagefiles/ffmpeg/meson.build +++ b/subprojects/packagefiles/ffmpeg/meson.build @@ -95,26 +95,15 @@ proj = ext_proj.add_project('configure', '--enable-parser=' + parsers, '--enable-bsf=' + bsfs, extra_options, - ], verbose: true) + ], + cross_configure_options: ['--enable-cross-compile'], + verbose: true) -inc = include_directories('.') +avutil = proj.dependency('avutil') +avformat = proj.dependency('avformat') +avcodec = proj.dependency('avcodec') +swresample = proj.dependency('swresample') +swscale = proj.dependency('swscale') -if is_msvc - # TODO: FFmpeg patch to fix all libs coming out as .a. - avutil = proj.dependency('libavutil') - avformat = proj.dependency('libavformat') - avcodec = proj.dependency('libavcodec') - swresample = proj.dependency('libswresample') - swscale = proj.dependency('libswscale') -else - avutil = proj.dependency('avutil') - avformat = proj.dependency('avformat') - avcodec = proj.dependency('avcodec') - swresample = proj.dependency('swresample') - swscale = proj.dependency('swscale') - if is_64bit and is_windows - lib_dir = meson.project_build_root() + '/distlib64' - else - lib_dir = meson.project_build_root() + '/dist/usr/local/lib64' - endif -endif +libdir = meson.project_build_root() + '/dist/usr/locallib' +inc = include_directories('.') |