summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/libraries/libyuv/default.nix34
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 36 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libyuv/default.nix b/pkgs/development/libraries/libyuv/default.nix
new file mode 100644
index 00000000000..ac69ab8dacc
--- /dev/null
+++ b/pkgs/development/libraries/libyuv/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchgit
+, cmake
+, libjpeg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libyuv";
+  version = "1787"; # Defined in: include/libyuv/version.h
+
+  src = fetchgit {
+    url = "https://chromium.googlesource.com/libyuv/libyuv.git";
+    rev = "eb6e7bb63738e29efd82ea3cf2a115238a89fa51"; # refs/heads/stable
+    sha256 = "sha256-DtRYoaAXb9ZD2OLiKbzKzH5vzuu+Lzu4eHaDgPB9hjU=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  # NEON does not work on aarch64, we disable it
+  cmakeFlags = lib.optionals stdenv.isAarch64 ["-DCMAKE_CXX_FLAGS=-DLIBYUV_DISABLE_NEON"];
+
+  buildInputs = [ libjpeg ];
+
+  meta = with lib; {
+    homepage = "https://chromium.googlesource.com/libyuv/libyuv";
+    description = "Open source project that includes YUV scaling and conversion functionality";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ leixb ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0bc874b8c87..75d09e191e7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18924,6 +18924,8 @@ with pkgs;
 
   libyubikey = callPackage ../development/libraries/libyubikey { };
 
+  libyuv = callPackage ../development/libraries/libyuv { };
+
   libzapojit = callPackage ../development/libraries/libzapojit { };
 
   libzen = callPackage ../development/libraries/libzen { };