1{ lib, stdenv
2, fetchurl
3, meson
4, ninja
5, pkg-config
6, gst-plugins-base
7, bzip2
8, libva
9, wayland
10, wayland-protocols
11, libdrm
12, udev
13, xorg
14, libGLU
15, libGL
16, gstreamer
17, gst-plugins-bad
18, nasm
19, libvpx
20, python3
21# Checks meson.is_cross_build(), so even canExecute isn't enough.
22, enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, hotdoc
23}:
24
25stdenv.mkDerivation rec {
26 pname = "gstreamer-vaapi";
27 version = "1.22.3";
28
29 src = fetchurl {
30 url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
31 hash = "sha256-onhnBi6LaTBfylt9PxPtfDGLcD59cnVslDlb0wXHsyw=";
32 };
33
34 outputs = [
35 "out"
36 "dev"
37 ];
38
39 nativeBuildInputs = [
40 meson
41 ninja
42 pkg-config
43 python3
44 bzip2
45 wayland
46 ] ++ lib.optionals enableDocumentation [
47 hotdoc
48 ];
49
50 buildInputs = [
51 gstreamer
52 gst-plugins-base
53 gst-plugins-bad
54 libva
55 wayland
56 wayland-protocols
57 libdrm
58 udev
59 xorg.libX11
60 xorg.libXext
61 xorg.libXv
62 xorg.libXrandr
63 xorg.libSM
64 xorg.libICE
65 libGL
66 libGLU
67 nasm
68 libvpx
69 ];
70
71 strictDeps = true;
72
73 mesonFlags = [
74 "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
75 (lib.mesonEnable "doc" enableDocumentation)
76 ];
77
78 postPatch = ''
79 patchShebangs \
80 scripts/extract-release-date-from-doap-file.py
81 '';
82
83 meta = with lib; {
84 description = "Set of VAAPI GStreamer Plug-ins";
85 homepage = "https://gstreamer.freedesktop.org";
86 license = licenses.lgpl21Plus;
87 platforms = platforms.linux;
88 maintainers = with maintainers; [ lilyinstarlight ];
89 };
90}