diff options
Diffstat (limited to 'packages/media-libs')
7 files changed, 624 insertions, 0 deletions
diff --git a/packages/media-libs/libmysofa/libmysofa-1.3.5.exheres-0 b/packages/media-libs/libmysofa/libmysofa-1.3.5.exheres-0 new file mode 100644 index 0000000..dc31d82 --- /dev/null +++ b/packages/media-libs/libmysofa/libmysofa-1.3.5.exheres-0 @@ -0,0 +1,36 @@ +# Copyright 2026 Gurov <thuggerthugger1@duck.com> +# Distributed under the terms of the GNU General Public License v2 + +require cmake + +SUMMARY="Library for reading AES SOFA files" +HOMEPAGE="https://github.com/hoene/libmysofa" +DOWNLOADS="https://github.com/hoene/libmysofa/archive/refs/tags/v${PV}.tar.gz -> ${PNV}.tar.gz" + +LICENCES="BSD-3" +SLOT="0" +PLATFORMS="~amd64" + +DEPENDENCIES=" + build+run: + sys-libs/zlib + + test: + app-arch/bzip2 + dev-lang/node + dev-util/cunit +" + +CMAKE_SRC_CONFIGURE_PARAMS=( + -DBUILD_SHARED_LIBS=ON + -DBUILD_STATIC_LIBS=OFF +) + +CMAKE_SRC_CONFIGURE_TESTS=( + '-DBUILD_TESTS=ON -DBUILD_TESTS=OFF' +) + +src_install() { + cmake_src_install + edo rm -r "${IMAGE}/usr/share/libmysofa" +} diff --git a/packages/media-libs/nanosvg/files/nanosvg.patch b/packages/media-libs/nanosvg/files/nanosvg.patch new file mode 100644 index 0000000..dc11e93 --- /dev/null +++ b/packages/media-libs/nanosvg/files/nanosvg.patch @@ -0,0 +1,248 @@ +From abcd277ea45e9098bed752cf9c6875b533c0892f Mon Sep 17 00:00:00 2001 +From: AlbrechtS <AlbrechtS.svn@fltk.example.org> +Date: Sun, 4 Feb 2018 23:47:38 +0100 +Subject: [PATCH] Modify rasterizer to support non-square X,Y axes scaling. + +Add new function nsvgRasterizeXY() similar to nsvgRasterize() but with +separate scaling factors for x-axis and y-axis. +--- + src/nanosvgrast.h | 78 +++++++++++++++++++++++++++++++---------------- + 1 file changed, 51 insertions(+), 27 deletions(-) + +diff --git a/src/nanosvgrast.h b/src/nanosvgrast.h +index 17ba3b0..a83db27 100644 +--- a/src/nanosvgrast.h ++++ b/src/nanosvgrast.h +@@ -22,6 +22,12 @@ + * + */ + ++/* Modified by FLTK to support non-square X,Y axes scaling. ++ * ++ * Added: nsvgRasterizeXY() ++*/ ++ ++ + #ifndef NANOSVGRAST_H + #define NANOSVGRAST_H + +@@ -46,6 +52,9 @@ typedef struct NSVGrasterizer NSVGrasterizer; + unsigned char* img = malloc(w*h*4); + // Rasterize + nsvgRasterize(rast, image, 0,0,1, img, w, h, w*4); ++ ++ // For non-square X,Y scaling, use ++ nsvgRasterizeXY(rast, image, 0,0,1,1, img, w, h, w*4); + */ + + // Allocated rasterizer context. +@@ -55,7 +64,7 @@ NSVGrasterizer* nsvgCreateRasterizer(void); + // r - pointer to rasterizer context + // image - pointer to image to rasterize + // tx,ty - image offset (applied after scaling) +-// scale - image scale ++// scale - image scale (assumes square aspect ratio) + // dst - pointer to destination image data, 4 bytes per pixel (RGBA) + // w - width of the image to render + // h - height of the image to render +@@ -64,6 +73,12 @@ void nsvgRasterize(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride); + ++// As above, but allow X and Y axes to scale independently for non-square aspects ++void nsvgRasterizeXY(NSVGrasterizer* r, ++ NSVGimage* image, float tx, float ty, ++ float sx, float sy, ++ unsigned char* dst, int w, int h, int stride); ++ + // Deletes rasterizer context. + void nsvgDeleteRasterizer(NSVGrasterizer*); + +@@ -370,7 +385,7 @@ static void nsvg__flattenCubicBez(NSVGrasterizer* r, + nsvg__flattenCubicBez(r, x1234,y1234, x234,y234, x34,y34, x4,y4, level+1, type); + } + +-static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) ++static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy) + { + int i, j; + NSVGpath* path; +@@ -378,13 +393,13 @@ static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) + for (path = shape->paths; path != NULL; path = path->next) { + r->npoints = 0; + // Flatten path +- nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); ++ nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0); + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; +- nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, 0); ++ nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, 0); + } + // Close path +- nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); ++ nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0); + // Build edges + for (i = 0, j = r->npoints-1; i < r->npoints; j = i++) + nsvg__addEdge(r, r->points[j].x, r->points[j].y, r->points[i].x, r->points[i].y); +@@ -734,7 +749,7 @@ static void nsvg__prepareStroke(NSVGrasterizer* r, float miterLimit, int lineJoi + } + } + +-static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float scale) ++static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy) + { + int i, j, closed; + NSVGpath* path; +@@ -742,15 +757,16 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float + float miterLimit = shape->miterLimit; + int lineJoin = shape->strokeLineJoin; + int lineCap = shape->strokeLineCap; +- float lineWidth = shape->strokeWidth * scale; ++ const float sw = (sx + sy) / 2; // average scaling factor ++ const float lineWidth = shape->strokeWidth * sw; // FIXME (?) + + for (path = shape->paths; path != NULL; path = path->next) { + // Flatten path + r->npoints = 0; +- nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, NSVG_PT_CORNER); ++ nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, NSVG_PT_CORNER); + for (i = 0; i < path->npts-1; i += 3) { + float* p = &path->pts[i*2]; +- nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, NSVG_PT_CORNER); ++ nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, NSVG_PT_CORNER); + } + if (r->npoints < 2) + continue; +@@ -796,7 +812,7 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float + dashOffset -= shape->strokeDashArray[idash]; + idash = (idash + 1) % shape->strokeDashCount; + } +- dashLen = (shape->strokeDashArray[idash] - dashOffset) * scale; ++ dashLen = (shape->strokeDashArray[idash] - dashOffset) * sw; + + for (j = 1; j < r->npoints2; ) { + float dx = r->points2[j].x - cur.x; +@@ -818,7 +834,7 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float + // Advance dash pattern + dashState = !dashState; + idash = (idash+1) % shape->strokeDashCount; +- dashLen = shape->strokeDashArray[idash] * scale; ++ dashLen = shape->strokeDashArray[idash] * sw; + // Restart + cur.x = x; + cur.y = y; +@@ -987,7 +1003,7 @@ static inline int nsvg__div255(int x) + } + + static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* cover, int x, int y, +- float tx, float ty, float scale, NSVGcachedPaint* cache) ++ float tx, float ty, float sx, float sy, NSVGcachedPaint* cache) + { + + if (cache->type == NSVG_PAINT_COLOR) { +@@ -1028,9 +1044,9 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co + int i, cr, cg, cb, ca; + unsigned int c; + +- fx = ((float)x - tx) / scale; +- fy = ((float)y - ty) / scale; +- dx = 1.0f / scale; ++ fx = ((float)x - tx) / sx; ++ fy = ((float)y - ty) / sy; ++ dx = 1.0f / sx; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; +@@ -1073,9 +1089,9 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co + int i, cr, cg, cb, ca; + unsigned int c; + +- fx = ((float)x - tx) / scale; +- fy = ((float)y - ty) / scale; +- dx = 1.0f / scale; ++ fx = ((float)x - tx) / sx; ++ fy = ((float)y - ty) / sy; ++ dx = 1.0f / sx; + + for (i = 0; i < count; i++) { + int r,g,b,a,ia; +@@ -1114,7 +1130,7 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co + } + } + +-static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float scale, NSVGcachedPaint* cache, char fillRule) ++static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float sx, float sy, NSVGcachedPaint* cache, char fillRule) + { + NSVGactiveEdge *active = NULL; + int y, s; +@@ -1196,7 +1212,7 @@ static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, fl + if (xmin < 0) xmin = 0; + if (xmax > r->width-1) xmax = r->width-1; + if (xmin <= xmax) { +- nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, scale, cache); ++ nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, sx, sy, cache); + } + } + +@@ -1364,8 +1380,9 @@ static void dumpEdges(NSVGrasterizer* r, const char* name) + } + */ + +-void nsvgRasterize(NSVGrasterizer* r, +- NSVGimage* image, float tx, float ty, float scale, ++void nsvgRasterizeXY(NSVGrasterizer* r, ++ NSVGimage* image, float tx, float ty, ++ float sx, float sy, + unsigned char* dst, int w, int h, int stride) + { + NSVGshape *shape = NULL; +@@ -1396,7 +1413,7 @@ void nsvgRasterize(NSVGrasterizer* r, + r->freelist = NULL; + r->nedges = 0; + +- nsvg__flattenShape(r, shape, scale); ++ nsvg__flattenShape(r, shape, sx, sy); + + // Scale and translate edges + for (i = 0; i < r->nedges; i++) { +@@ -1414,14 +1431,14 @@ void nsvgRasterize(NSVGrasterizer* r, + // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule + nsvg__initPaint(&cache, &shape->fill, shape->opacity); + +- nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, shape->fillRule); ++ nsvg__rasterizeSortedEdges(r, tx,ty, sx, sy, &cache, shape->fillRule); + } +- if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * scale) > 0.01f) { ++ if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * sx) > 0.01f) { + nsvg__resetPool(r); + r->freelist = NULL; + r->nedges = 0; + +- nsvg__flattenShapeStroke(r, shape, scale); ++ nsvg__flattenShapeStroke(r, shape, sx, sy); + + // dumpEdges(r, "edge.svg"); + +@@ -1441,7 +1458,7 @@ void nsvgRasterize(NSVGrasterizer* r, + // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule + nsvg__initPaint(&cache, &shape->stroke, shape->opacity); + +- nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, NSVG_FILLRULE_NONZERO); ++ nsvg__rasterizeSortedEdges(r, tx,ty,sx, sy, &cache, NSVG_FILLRULE_NONZERO); + } + } + +@@ -1453,6 +1470,13 @@ void nsvgRasterize(NSVGrasterizer* r, + r->stride = 0; + } + ++void nsvgRasterize(NSVGrasterizer* r, ++ NSVGimage* image, float tx, float ty, float scale, ++ unsigned char* dst, int w, int h, int stride) ++{ ++ nsvgRasterizeXY(r,image, tx, ty, scale, scale, dst, w, h, stride); ++} ++ + #endif // NANOSVGRAST_IMPLEMENTATION + + #endif // NANOSVGRAST_H diff --git a/packages/media-libs/nanosvg/nanosvg-0.1.0.1.exheres-0 b/packages/media-libs/nanosvg/nanosvg-0.1.0.1.exheres-0 new file mode 100644 index 0000000..5b9838f --- /dev/null +++ b/packages/media-libs/nanosvg/nanosvg-0.1.0.1.exheres-0 @@ -0,0 +1,35 @@ +# Copyright 2026 Gurov <thuggerthugger1@duck.com> +# Distributed under the terms of the GNU General Public License v2 + +require cmake + +NANOSVG_COMMIT="9da543e8329fdd81b64eb48742d8ccb09377aed1" + +SUMMARY="Simple stupid SVG parser" +HOMEPAGE="https://github.com/memononen/nanosvg" + +DOWNLOADS=" + https://github.com/memononen/nanosvg/archive/${NANOSVG_COMMIT}.tar.gz + -> ${PNV}.tar.gz +" + +LICENCES="ZLIB" +SLOT="0" +PLATFORMS="~amd64" + +CMAKE_SOURCE="${WORKBASE}/nanosvg-${NANOSVG_COMMIT}" + +DEFAULT_SRC_PREPARE_PATCHES=( + "${FILES}/nanosvg.patch" +) + +CMAKE_SRC_CONFIGURE_PARAMS=( + -DBUILD_SHARED_LIBS=ON +) + +src_install() { + cmake_src_install + + insinto /usr/share/licenses/${PN} + newins "${CMAKE_SOURCE}/LICENSE.txt" LICENSE +} diff --git a/packages/media-libs/tg_owt/files/tg_owt-0_pre20260803-abseil.patch b/packages/media-libs/tg_owt/files/tg_owt-0_pre20260803-abseil.patch new file mode 100644 index 0000000..6305158 --- /dev/null +++ b/packages/media-libs/tg_owt/files/tg_owt-0_pre20260803-abseil.patch @@ -0,0 +1,159 @@ +--- a/cmake/libabsl.cmake ++++ b/cmake/libabsl.cmake +@@ -1,128 +1,37 @@ +-add_library(libabsl OBJECT EXCLUDE_FROM_ALL) +-init_target(libabsl) +-add_library(tg_owt::libabsl ALIAS libabsl) +- ++set(_tg_owt_build_shared_libs ${BUILD_SHARED_LIBS}) ++set(BUILD_SHARED_LIBS OFF) ++set(ABSL_ENABLE_INSTALL OFF) + set(libabsl_loc ${third_party_loc}/abseil-cpp) ++add_subdirectory(${libabsl_loc} ${CMAKE_CURRENT_BINARY_DIR}/abseil-cpp EXCLUDE_FROM_ALL) ++set(BUILD_SHARED_LIBS ${_tg_owt_build_shared_libs}) ++ ++add_library(libabsl INTERFACE) ++add_library(tg_owt::libabsl ALIAS libabsl) ++target_compile_features(libabsl INTERFACE cxx_std_20) + +-nice_target_sources(libabsl ${libabsl_loc} ++target_link_libraries(tg_owt + PRIVATE +- # absl/base/dynamic_annotations.cc +- # absl/base/internal/cycleclock.cc +- # absl/base/internal/exception_safety_testing.cc +- # absl/base/internal/exponential_biased.cc +- # absl/base/internal/low_level_alloc.cc +- # absl/base/internal/periodic_sampler.cc +- absl/base/internal/raw_logging.cc +- # absl/base/internal/scoped_set_env.cc +- # absl/base/internal/spinlock.cc +- # absl/base/internal/spinlock_wait.cc +- # absl/base/internal/strerror.cc +- # absl/base/internal/sysinfo.cc +- # absl/base/internal/thread_identity.cc +- absl/base/internal/throw_delegate.cc +- # absl/base/internal/unscaledcycleclock.cc +- # absl/base/log_severity.cc +- # absl/container/internal/hash_generator_testing.cc +- # absl/container/internal/hashtablez_sampler.cc +- # absl/container/internal/hashtablez_sampler_force_weak_definition.cc +- # absl/container/internal/raw_hash_set.cc +- # absl/container/internal/test_instance_tracker.cc +- # absl/debugging/failure_signal_handler.cc +- # absl/debugging/internal/address_is_readable.cc +- # absl/debugging/internal/demangle.cc +- # absl/debugging/internal/elf_mem_image.cc +- # absl/debugging/internal/examine_stack.cc +- # absl/debugging/internal/stack_consumption.cc +- # absl/debugging/internal/vdso_support.cc +- # absl/debugging/leak_check.cc +- # absl/debugging/leak_check_disable.cc +- # absl/debugging/stacktrace.cc +- # absl/debugging/symbolize.cc +- # absl/flags/flag.cc +- # absl/flags/flag_test_defs.cc +- # absl/flags/internal/commandlineflag.cc +- # absl/flags/internal/flag.cc +- # absl/flags/internal/program_name.cc +- # absl/flags/internal/registry.cc +- # absl/flags/internal/type_erased.cc +- # absl/flags/internal/usage.cc +- # absl/flags/marshalling.cc +- # absl/flags/parse.cc +- # absl/flags/usage.cc +- # absl/flags/usage_config.cc +- # absl/hash/internal/city.cc +- # absl/hash/internal/hash.cc +- absl/numeric/int128.cc +- # absl/random/discrete_distribution.cc +- # absl/random/gaussian_distribution.cc +- # absl/random/internal/chi_square.cc +- # absl/random/internal/distribution_test_util.cc +- # absl/random/internal/nanobenchmark.cc +- # absl/random/internal/pool_urbg.cc +- # absl/random/internal/randen.cc +- # absl/random/internal/randen_detect.cc +- # absl/random/internal/randen_hwaes.cc +- # absl/random/internal/randen_slow.cc +- # absl/random/internal/seed_material.cc +- # absl/random/seed_gen_exception.cc +- # absl/random/seed_sequences.cc +- # absl/status/status.cc +- # absl/status/status_payload_printer.cc +- absl/strings/ascii.cc +- absl/strings/charconv.cc +- absl/strings/cord.cc +- absl/strings/escaping.cc +- absl/strings/internal/charconv_bigint.cc +- absl/strings/internal/charconv_parse.cc +- absl/strings/internal/escaping.cc +- absl/strings/internal/memutil.cc +- absl/strings/internal/ostringstream.cc +- absl/strings/internal/pow10_helper.cc +- absl/strings/internal/str_format/arg.cc +- absl/strings/internal/str_format/bind.cc +- absl/strings/internal/str_format/extension.cc +- absl/strings/internal/str_format/float_conversion.cc +- absl/strings/internal/str_format/output.cc +- absl/strings/internal/str_format/parser.cc +- absl/strings/internal/utf8.cc +- absl/strings/match.cc +- absl/strings/numbers.cc +- absl/strings/str_cat.cc +- absl/strings/str_replace.cc +- absl/strings/str_split.cc +- absl/strings/string_view.cc +- absl/strings/substitute.cc +- # absl/synchronization/barrier.cc +- # absl/synchronization/blocking_counter.cc +- # absl/synchronization/internal/create_thread_identity.cc +- # absl/synchronization/internal/graphcycles.cc +- # absl/synchronization/internal/per_thread_sem.cc +- # absl/synchronization/internal/waiter.cc +- # absl/synchronization/mutex.cc +- # absl/synchronization/notification.cc +- # absl/time/civil_time.cc +- # absl/time/clock.cc +- # absl/time/duration.cc +- # absl/time/format.cc +- # absl/time/internal/cctz/src/civil_time_detail.cc +- # absl/time/internal/cctz/src/time_zone_fixed.cc +- # absl/time/internal/cctz/src/time_zone_format.cc +- # absl/time/internal/cctz/src/time_zone_if.cc +- # absl/time/internal/cctz/src/time_zone_impl.cc +- # absl/time/internal/cctz/src/time_zone_info.cc +- # absl/time/internal/cctz/src/time_zone_libc.cc +- # absl/time/internal/cctz/src/time_zone_lookup.cc +- # absl/time/internal/cctz/src/time_zone_posix.cc +- # absl/time/internal/cctz/src/zone_info_source.cc +- # absl/time/internal/test_util.cc +- # absl/time/time.cc +- # absl/types/bad_any_cast.cc +- absl/types/bad_optional_access.cc +- absl/types/bad_variant_access.cc ++ absl::algorithm_container ++ absl::bind_front ++ absl::config ++ absl::cord ++ absl::core_headers ++ absl::flat_hash_map ++ absl::inlined_vector ++ absl::flags ++ absl::flags_parse ++ absl::flags_usage ++ absl::memory ++ absl::optional ++ absl::str_format ++ absl::strings ++ absl::synchronization ++ absl::type_traits ++ absl::variant + ) + + target_include_directories(libabsl +-PUBLIC ++INTERFACE + $<BUILD_INTERFACE:${libabsl_loc}> + $<INSTALL_INTERFACE:${webrtc_includedir}/third_party/abseil-cpp> + ) diff --git a/packages/media-libs/tg_owt/tg_owt-0_pre20260803.exheres-0 b/packages/media-libs/tg_owt/tg_owt-0_pre20260803.exheres-0 new file mode 100644 index 0000000..8d7f3eb --- /dev/null +++ b/packages/media-libs/tg_owt/tg_owt-0_pre20260803.exheres-0 @@ -0,0 +1,90 @@ +# Copyright 2026 Gurov <thuggerthugger1@duck.com> +# Distributed under the terms of the GNU General Public License v2 + +require cmake flag-o-matic + +TG_OWT_COMMIT="26068e29bfa8d74a9dc9c8f7f94172fafbc262b8" +LIBYUV_COMMIT="04821d1e7d60845525e8db55c7bcd41ef5be9406" +CRC32C_COMMIT="21fc8ef30415a635e7351ffa0e5d5367943d4a94" +ABSEIL_COMMIT="d7aaad83b488fd62bd51c81ecf16cd938532cc0a" + +SUMMARY="WebRTC build for Telegram" +HOMEPAGE="https://github.com/desktop-app/tg_owt" +DOWNLOADS=" + https://github.com/desktop-app/tg_owt/archive/${TG_OWT_COMMIT}.tar.gz -> ${PNV}.tar.gz + https://gitlab.com/chromiumsrc/libyuv/-/archive/${LIBYUV_COMMIT}/libyuv-${LIBYUV_COMMIT}.tar.bz2 + https://github.com/google/crc32c/archive/${CRC32C_COMMIT}.tar.gz -> crc32c-${CRC32C_COMMIT}.tar.gz + https://github.com/abseil/abseil-cpp/archive/${ABSEIL_COMMIT}.tar.gz -> abseil-cpp-${ABSEIL_COMMIT}.tar.gz +" + +LICENCES="Apache-2.0 BSD-3" +SLOT="0" +PLATFORMS="~amd64" + +DEPENDENCIES=" + build: + virtual/pkg-config + x11-proto/xorgproto + + build+run: + dev-libs/glib:2 + dev-libs/libglvnd + dev-libs/openssl + media-libs/libjpeg-turbo + media-libs/libvpx[>=1.10] + media-libs/openh264 + media-libs/opus + media/ffmpeg + media/pipewire + media-sound/pulseaudio + net-libs/libsrtp + sys-sound/alsa-lib + x11-dri/libdrm + x11-dri/mesa + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst +" + +CMAKE_SOURCE="${WORKBASE}/tg_owt-${TG_OWT_COMMIT}" + +DEFAULT_SRC_PREPARE_PATCHES=( + "${FILES}/${PNV}-abseil.patch" +) + +CMAKE_SRC_CONFIGURE_PARAMS=( + -DCMAKE_DISABLE_FIND_PACKAGE_absl=ON + -DCMAKE_CXX_STANDARD=20 + -DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,defs + -DBUILD_SHARED_LIBS=ON + -DTG_OWT_USE_X11=ON + -DTG_OWT_USE_PIPEWIRE=ON + -DTG_OWT_DLOPEN_PIPEWIRE=ON + -DTG_OWT_BUILD_AUDIO_BACKENDS=ON +) + +src_prepare() { + edo rmdir "${CMAKE_SOURCE}/src/third_party/libyuv" + edo mv "${WORKBASE}/libyuv-${LIBYUV_COMMIT}" "${CMAKE_SOURCE}/src/third_party/libyuv" + edo rmdir "${CMAKE_SOURCE}/src/third_party/crc32c/src" + edo mv "${WORKBASE}/crc32c-${CRC32C_COMMIT}" "${CMAKE_SOURCE}/src/third_party/crc32c/src" + edo rmdir "${CMAKE_SOURCE}/src/third_party/abseil-cpp" + edo mv "${WORKBASE}/abseil-cpp-${ABSEIL_COMMIT}" "${CMAKE_SOURCE}/src/third_party/abseil-cpp" + edo cd "${CMAKE_SOURCE}" + default +} + +src_configure() { + append-cxxflags -DNDEBUG + cmake_src_configure +} + +src_install() { + cmake_src_install + edo find "${IMAGE}/usr/$(exhost --target)/include/tg_owt" -depth -type d -empty -delete +} diff --git a/packages/media-libs/zita-convolver/files/zita-convolver-4.0.3-makefile.patch b/packages/media-libs/zita-convolver/files/zita-convolver-4.0.3-makefile.patch new file mode 100644 index 0000000..625fa55 --- /dev/null +++ b/packages/media-libs/zita-convolver/files/zita-convolver-4.0.3-makefile.patch @@ -0,0 +1,23 @@ +diff -urN zita-convolver-4.0.3.orig/source/Makefile zita-convolver-4.0.3/source/Makefile +--- zita-convolver-4.0.3.orig/source/Makefile 2018-08-26 16:35:37.000000000 +0300 ++++ zita-convolver-4.0.3/source/Makefile 2019-04-13 22:32:29.558347119 +0300 +@@ -33,8 +33,7 @@ + + CPPFLAGS += -I. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS + CPPFLAGS += -DENABLE_VECTOR_MODE +-CXXFLAGS += -fPIC -Wall -ffast-math -funroll-loops -O2 +-CXXFLAGS += -march=native ++CXXFLAGS += -fPIC -Wall -ffast-math -funroll-loops + LDLFAGS += + LDLIBS += + +@@ -56,8 +55,8 @@ + install -d $(DESTDIR)$(LIBDIR) + install -m 644 $(ZITA-CONVOLVER_H) $(DESTDIR)$(INCDIR) + install -m 755 $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR) +- ldconfig + ln -sf $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-CONVOLVER_SO) ++ ln -sf $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-CONVOLVER_MAJ) + + uninstall: + rm -rf $(DESTDIR)$(INCDIR)/$(ZITA-CONVOLVER_H) diff --git a/packages/media-libs/zita-convolver/zita-convolver-4.0.3.exheres-0 b/packages/media-libs/zita-convolver/zita-convolver-4.0.3.exheres-0 new file mode 100644 index 0000000..91bb41e --- /dev/null +++ b/packages/media-libs/zita-convolver/zita-convolver-4.0.3.exheres-0 @@ -0,0 +1,33 @@ +# Copyright 2026 Gurov <thuggerthugger1@duck.com> +# Distributed under the terms of the GNU General Public License v2 + +SUMMARY="Real-time convolution matrix library" +HOMEPAGE="https://kokkinizita.linuxaudio.org/linuxaudio/" +DOWNLOADS="https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${PNV}.tar.bz2" + +LICENCES="GPL-3+" +SLOT="4" +PLATFORMS="~amd64" + +DEPENDENCIES=" + build+run: + sci-libs/fftw +" + +DEFAULT_SRC_PREPARE_PATCHES=( + "${FILES}/${PNV}-makefile.patch" +) + +src_compile() { + emake -C source CXX="${CXX}" +} + +src_install() { + emake -C source install \ + CXX="${CXX}" \ + DESTDIR="${IMAGE}" \ + PREFIX="/usr/$(exhost --target)" \ + LIBDIR="/usr/$(exhost --target)/lib" + + emagicdocs +} |
