diff --git a/flake.lock b/flake.lock index 7da1b9a..fd75085 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1741521711, - "narHash": "sha256-uV+olxh2H8GrB676m8lHpDujYVJ1K5rie6Y0GEFSMhI=", + "lastModified": 1741641627, + "narHash": "sha256-AkMboWm5a666QLh8ioLJaZlaee7oBOvkbjZZSVTU17Q=", "owner": "catppuccin", "repo": "nix", - "rev": "62424ccd65e280f3739754e0f30b85c901f6bcd9", + "rev": "4f56f4da1d6927eca769b78b1e22fcefd5ffaa73", "type": "github" }, "original": { @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1740485968, - "narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=", + "lastModified": 1741684000, + "narHash": "sha256-NQykaWIrn5zilncefIvW4jPQ76YMXVK/dMTzkSVDmdk=", "owner": "nix-community", "repo": "disko", - "rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940", + "rev": "2db1d64fc084b1d15e3871dffc02c62a94ed6ed7", "type": "github" }, "original": { @@ -122,11 +122,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1741598508, - "narHash": "sha256-t6EgzsVKgJ/3AbdChpNMzzQxk30/F67r3UaQueO2NB4=", + "lastModified": 1741692101, + "narHash": "sha256-2oLcNkpB39KELhEUMtSxUWr+OLIsYWUsyStMz4Mft4M=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "7a25a145b8a7f455e62185af431001d70471b199", + "rev": "04892169ec614a3ddeb1ca4a8e6a86e9d410d30c", "type": "github" }, "original": { @@ -387,11 +387,11 @@ ] }, "locked": { - "lastModified": 1741613526, - "narHash": "sha256-HUEfRLqCy47BQ7kOG4SRVhqE7J6lkFzAagnd13I17qk=", + "lastModified": 1741701235, + "narHash": "sha256-gBlb8R9gnjUAT5XabJeel3C2iEUiBHx3+91651y3Sqo=", "owner": "nix-community", "repo": "home-manager", - "rev": "3593ee59a44974b8518829a5239b2f77222e3c81", + "rev": "c630dfa8abcc65984cc1e47fb25d4552c81dd37e", "type": "github" }, "original": { @@ -464,11 +464,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1741556509, - "narHash": "sha256-Av7lhGzOjduWaq+0Wp1xR8jlTtkyhBmSZJy1G36hNtk=", + "lastModified": 1741700536, + "narHash": "sha256-0OJER7bI6UsCFnKfKdLtgjpOTNccbN3N1dDriP4XRwA=", "ref": "refs/heads/main", - "rev": "423a34393759d75683ed84b470239a8d8f9a84ed", - "revCount": 17628, + "rev": "be1491fa6aef638e0147b81ff172131d6db668d9", + "revCount": 17635, "type": "git", "url": "https://git@git.lix.systems/lix-project/lix" }, @@ -647,11 +647,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1741445498, - "narHash": "sha256-F5Em0iv/CxkN5mZ9hRn3vPknpoWdcdCyR0e4WklHwiE=", + "lastModified": 1741600792, + "narHash": "sha256-yfDy6chHcM7pXpMF4wycuuV+ILSTG486Z/vLx/Bdi6Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "52e3095f6d812b91b22fb7ad0bfc1ab416453634", + "rev": "ebe2788eafd539477f83775ef93c3c7e244421d3", "type": "github" }, "original": { @@ -695,11 +695,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1741379970, - "narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=", + "lastModified": 1741513245, + "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f", + "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1", "type": "github" }, "original": { diff --git a/packages/ffmpeg-rockchip/default.nix b/packages/ffmpeg-rockchip/default.nix new file mode 100644 index 0000000..ed2f637 --- /dev/null +++ b/packages/ffmpeg-rockchip/default.nix @@ -0,0 +1,149 @@ +# Stolen from https://github.com/nyanmisaka/ffmpeg-rockchip + +{ + ffmpeg-full, + fetchFromGitHub, + lib, + fetchpatch2, + gmp, + amf-headers, + libiec61883, + libavc1394, + meson, + ninja, + stdenv, + fetchurl, + cmake, + ... +}: + +let + ffmpeg-rockchip-version = "7.1"; + + rga_commit = "d7a0a485ed6c201f882c20b3a8881e801f131385"; + librga-multi = stdenv.mkDerivation { + pname = "librga-multi"; + version = "1.10.0"; + + src = fetchurl { + url = "https://github.com/JeffyCN/mirrors/archive/${rga_commit}.tar.gz"; + hash = "sha256-WjNxVfLVW8axEvNmIJ0+OCeboG4LiGWwJy6fW5Mkm5Y="; + }; + + # In Nixpkgs, meson comes with a setup hook that overrides the configure, check, and install phases. + # https://nixos.org/manual/nixpkgs/stable/#meson + nativeBuildInputs = [ + meson + ninja + ]; + + patches = [ + (fetchpatch2 { + name = "normalrga-cpp-add-10b-compact-endian-mode.patch"; + url = "https://raw.githubusercontent.com/7Ji-PKGBUILDs/librga-multi/615fb730b7656ad4a0cb169bfa9a52336820f99f/normalrga-cpp-add-10b-compact-endian-mode.patch"; + hash = "sha256-JvKZCBjWtkEsfx1Xsnysw9PjC3/60f1ni10tmR8fTHQ="; + }) + ]; + + meta = with lib; { + description = "Rockchip RGA User-Space Library"; + license = licenses.asl20; + }; + }; + + mpp = stdenv.mkDerivation { + pname = "mpp"; + version = "1.0.8"; + + src = fetchFromGitHub { + owner = "rockchip-linux"; + repo = "mpp"; + rev = "1.0.8"; + hash = "sha256-y1vWGz7VjwL02klPQWwoIh5ExpvS/vsDUHcMtMznVcI="; + }; + + nativeBuildInputs = [ cmake ]; + + configurePhase = '' + cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$out + ''; + + buildPhase = '' + cmake --build build + ''; + + installPhase = '' + cmake --install build + ''; + + meta = with lib; { + description = "Media Process Platform (MPP)"; + homepage = "https://github.com/rockchip-linux/mpp"; + license = licenses.asl20; + }; + }; +in + +(ffmpeg-full.override { + version = ffmpeg-rockchip-version; # Important! This sets the ABI. + source = fetchFromGitHub { + owner = "nyanmisaka"; + repo = "ffmpeg-rockchip"; + rev = "f5c7e0d63b52b4526b4251e2fcb2071f73367ed6"; + hash = "sha256-JM/YCvXS49jYz4oF0Ux/aGzrRzKHrD8N/Xm99gXLcqg="; + }; + withVulkan = false; +}).overrideAttrs + (old: { + pname = "ffmpeg-rockchip"; + + patches = [ ]; + # patches = old.patches ++ [ + # (fetchpatch2 + # { + # name = "add-av_stream_get_first_dts-for-chromium"; + # url = "https://raw.githubusercontent.com/7Ji-PKGBUILDs/ffmpeg-mpp-git/b32080c1992313df0e543440c6d70d351120fa36/add-av_stream_get_first_dts-for-chromium.patch"; + # hash = "sha256-DbH6ieJwDwTjKOdQ04xvRcSLeeLP2Z2qEmqeo8HsPr4="; + # } + # ) + # (fetchpatch2 + # { + # name = "flvdec-handle-unknown"; + # url = "https://raw.githubusercontent.com/obsproject/obs-deps/faa110d336922831b5cdc261a9559e3a2dd5db3c/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch"; + # hash = "sha256-WlGF9Uy89GcnY8zmh9G23bZiVJtpY32oJiec5Hl/V+8="; + # } + # ) + # (fetchpatch2 + # { + # name = "libaomenc-presets"; + # url = "https://raw.githubusercontent.com/obsproject/obs-deps/faa110d336922831b5cdc261a9559e3a2dd5db3c/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch"; + # hash = "sha256-1fFBDvsx/jHo6QXsPxDMt4Qd1VlMs1kcOyBedyMv0YM="; + # } + # ) + # ]; + + configureFlags = old.configureFlags ++ [ + "--extra-version=rockchip" + "--enable-gpl" + "--enable-version3" + "--enable-libdrm" + "--enable-rkmpp" + "--enable-rkrga" + ]; + + doCheck = false; # TODO remove (used to get faster builds) + + buildInputs = old.buildInputs ++ [ + gmp + amf-headers + libiec61883 + libavc1394 + mpp + librga-multi + ]; + + meta = with lib; { + homepage = "https://github.com/nyanmisaka/ffmpeg-rockchip"; + license = licenses.gpl3; + }; + }) diff --git a/packages/mali-panthor-g610-firmware/default.nix b/packages/mali-panthor-g610-firmware/default.nix new file mode 100644 index 0000000..c9b99b2 --- /dev/null +++ b/packages/mali-panthor-g610-firmware/default.nix @@ -0,0 +1,32 @@ +# Stolen from https://github.com/qbisi/nixos-rockchip + +{ + stdenv, + fetchurl, + ... +}: +stdenv.mkDerivation { + pname = "mali-panthor-g610-firmware"; + version = "arch10_8"; + + src = fetchurl { + url = "https://gitlab.com/firefly-linux/external/libmali/-/raw/firefly/firmware/g610/mali_csffw.bin"; + hash = "sha256-56C0b9Z3wy4IwLiBf9HFY8OsoBPax04XaR83O5cNu6s="; + }; + + dontUnpack = true; + + dontPatch = true; + + dontConfigure = true; + + dontBuild = true; + + installPhase = '' + install -Dm644 $src $out/lib/firmware/arm/mali/arch10.8/mali_csffw.bin + ''; + + passthru = { + compressFirmware = false; + }; +}