biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / video / obs-studio / plugins / obs-vaapi / default.nix
blob59be77c454de84311c7b277f68e968957685a5f8
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , gst_all_1
5 , pciutils
6 , pkg-config
7 , meson
8 , ninja
9 , obs-studio
12 stdenv.mkDerivation rec {
13   pname = "obs-vaapi";
14   version = "0.4.2";
16   src = fetchFromGitHub {
17     owner = "fzwoch";
18     repo = pname;
19     rev = version;
20     hash = "sha256-ykiLsHL3hoe0ibxMxp4zrqeSeQfgnJfNg7Yb5i9HDJQ=";
21   };
23   nativeBuildInputs = [ pkg-config meson ninja ];
24   buildInputs = with gst_all_1; [ gstreamer gst-plugins-base obs-studio pciutils ];
26   # - We need "getLib" instead of default derivation, otherwise it brings gstreamer-bin;
27   # - without gst-plugins-base it won't even show proper errors in logs;
28   # - Without gst-plugins-bad it won't find element "vapostproc";
29   # - gst-vaapi adds "VA-API" to "Encoder type";
30   # Tip: "could not link appsrc to videoconvert1" can mean a lot of things, enable GST_DEBUG=2 for help.
31   passthru.obsWrapperArguments =
32     let
33       gstreamerHook = package: "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${lib.getLib package}/lib/gstreamer-1.0";
34     in
35     with gst_all_1; builtins.map gstreamerHook [
36       gstreamer
37       gst-plugins-base
38       gst-plugins-bad
39       gst-vaapi
40     ];
42   # Fix output directory
43   postInstall = ''
44     mkdir $out/lib/obs-plugins
45     mv $out/lib/obs-vaapi.so $out/lib/obs-plugins/
46   '';
48   meta = with lib; {
49     description = "OBS Studio VAAPI support via GStreamer";
50     homepage = "https://github.com/fzwoch/obs-vaapi";
51     changelog = "https://github.com/fzwoch/obs-vaapi/releases/tag/${version}";
52     maintainers = with maintainers; [ ahuzik pedrohlc ];
53     license = licenses.gpl2Plus;
54     platforms = [ "x86_64-linux" "i686-linux" ];
55   };