diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix index 8f2358fdd6abb..cc19839bde742 100644 --- a/pkgs/applications/video/vlc/default.nix +++ b/pkgs/applications/video/vlc/default.nix @@ -44,7 +44,7 @@ , libmtp , liboggz , libopus -, libplacebo +, libplacebo_5 , libpulseaudio , libraw1394 , librsvg @@ -164,7 +164,7 @@ stdenv.mkDerivation (finalAttrs: { libmtp liboggz libopus - libplacebo + libplacebo_5 libpulseaudio libraw1394 librsvg diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix index 5ae6469c74353..b6ef374626c54 100644 --- a/pkgs/development/libraries/ffmpeg/generic.nix +++ b/pkgs/development/libraries/ffmpeg/generic.nix @@ -213,6 +213,7 @@ , libopenmpt , libopus , libplacebo +, libplacebo_5 , libpulseaudio , libraw1394 , librsvg @@ -577,7 +578,7 @@ stdenv.mkDerivation (finalAttrs: { ++ optionals withIconv [ libiconv ] # On Linux this should be in libc, do we really need it? ++ optionals withJack [ libjack2 ] ++ optionals withLadspa [ ladspaH ] - ++ optionals withLibplacebo [ libplacebo vulkan-headers ] + ++ optionals withLibplacebo [ (if (lib.versionAtLeast version "6.1") then libplacebo else libplacebo_5) vulkan-headers ] ++ optionals withLzma [ xz ] ++ optionals withMfx [ intel-media-sdk ] ++ optionals withModplug [ libmodplug ] diff --git a/pkgs/development/libraries/libplacebo/5.nix b/pkgs/development/libraries/libplacebo/5.nix new file mode 100644 index 0000000000000..f307a869e940b --- /dev/null +++ b/pkgs/development/libraries/libplacebo/5.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, ninja +, pkg-config +, python3Packages +, vulkan-headers +, vulkan-loader +, shaderc +, lcms2 +, libGL +, libX11 +, libunwind +, libdovi +}: + +stdenv.mkDerivation rec { + pname = "libplacebo"; + version = "5.264.1"; + + src = fetchFromGitLab { + domain = "code.videolan.org"; + owner = "videolan"; + repo = pname; + rev = "v${version}"; + hash = "sha256-YEefuEfJURi5/wswQKskA/J1UGzessQQkBpltJ0Spq8="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + vulkan-headers + python3Packages.jinja2 + python3Packages.glad2 + ]; + + buildInputs = [ + vulkan-loader + shaderc + lcms2 + libGL + libX11 + libunwind + libdovi + ]; + + mesonFlags = with lib; [ + (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml") + (mesonBool "demos" false) # Don't build and install the demo programs + (mesonEnable "d3d11" false) # Disable the Direct3D 11 based renderer + (mesonEnable "glslang" false) # rely on shaderc for GLSL compilation instead + ] ++ optionals stdenv.isDarwin [ + (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind` + ]; + + postPatch = '' + substituteInPlace meson.build \ + --replace 'python_env.append' '#' + ''; + + meta = with lib; { + description = "Reusable library for GPU-accelerated video/image rendering primitives"; + longDescription = '' + Reusable library for GPU-accelerated image/view processing primitives and + shaders, as well a batteries-included, extensible, high-quality rendering + pipeline (similar to mpv's vo_gpu). Supports Vulkan, OpenGL and Metal (via + MoltenVK). + ''; + homepage = "https://code.videolan.org/videolan/libplacebo"; + changelog = "https://code.videolan.org/videolan/libplacebo/-/tags/v${version}"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ primeos tadeokondrak ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix index 60a3f89895784..c303ffb295589 100644 --- a/pkgs/development/libraries/libplacebo/default.nix +++ b/pkgs/development/libraries/libplacebo/default.nix @@ -10,21 +10,22 @@ , shaderc , lcms2 , libGL -, xorg +, libX11 , libunwind , libdovi +, xxHash }: stdenv.mkDerivation rec { pname = "libplacebo"; - version = "5.264.1"; + version = "6.338.1"; src = fetchFromGitLab { domain = "code.videolan.org"; owner = "videolan"; repo = pname; rev = "v${version}"; - hash = "sha256-YEefuEfJURi5/wswQKskA/J1UGzessQQkBpltJ0Spq8="; + hash = "sha256-NZmwR3+lIC2PF+k+kqCjoMYkMM/PKOJmDwAq7t6YONY="; }; nativeBuildInputs = [ @@ -41,18 +42,19 @@ stdenv.mkDerivation rec { shaderc lcms2 libGL - xorg.libX11 + libX11 libunwind libdovi + xxHash ]; - mesonFlags = [ - "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml" - "-Ddemos=false" # Don't build and install the demo programs - "-Dd3d11=disabled" # Disable the Direct3D 11 based renderer - "-Dglslang=disabled" # rely on shaderc for GLSL compilation instead - ] ++ lib.optionals stdenv.isDarwin [ - "-Dunwind=disabled" # libplacebo doesn’t build with `darwin.libunwind` + mesonFlags = with lib; [ + (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml") + (mesonBool "demos" false) # Don't build and install the demo programs + (mesonEnable "d3d11" false) # Disable the Direct3D 11 based renderer + (mesonEnable "glslang" false) # rely on shaderc for GLSL compilation instead + ] ++ optionals stdenv.isDarwin [ + (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind` ]; postPatch = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d9d15824e3e92..aec5a259a7d67 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23418,6 +23418,7 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) Foundation; }; + libplacebo_5 = callPackage ../development/libraries/libplacebo/5.nix { }; libplacebo = callPackage ../development/libraries/libplacebo { }; libpng = callPackage ../development/libraries/libpng { };