about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix90
1 files changed, 90 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
new file mode 100644
index 000000000000..5d9c03b19190
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext
+, pkgconfig, python3, gst-plugins-base, orc
+, faacSupport ? false, faac ? null
+, faad2, libass, libkate, libmms, librdf, ladspaH
+, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
+, libbs2b, libmodplug, mpeg2dec
+, openjpeg, libopus, librsvg
+, wildmidi, fluidsynth, libvdpau, wayland
+, libwebp, xvidcore, gnutls, mjpegtools
+, libGLU_combined, libintl, libgme
+, openssl, x265, libxml2
+}:
+
+assert faacSupport -> faac != null;
+
+let
+  inherit (stdenv.lib) optional;
+in
+stdenv.mkDerivation rec {
+  name = "gst-plugins-bad-${version}";
+  version = "1.14.4";
+
+  meta = with stdenv.lib; {
+    description = "Gstreamer Bad Plugins";
+    homepage    = "https://gstreamer.freedesktop.org";
+    longDescription = ''
+      a set of plug-ins that aren't up to par compared to the
+      rest.  They might be close to being good quality, but they're missing
+      something - be it a good code review, some documentation, a set of tests,
+      a real live maintainer, or some actual wide use.
+    '';
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ matthewbauer ];
+  };
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  patches = [
+    (fetchpatch {
+        url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370409";
+        sha256 = "0hy0rcn35alq65yqwri4fqjz2hf3nyyg5c7rnndk51msmqjxpprk";
+    })
+    ./fix_pkgconfig_includedir.patch
+    # Enable bs2b compilation
+    # https://bugzilla.gnome.org/show_bug.cgi?id=794346
+    (fetchurl {
+      url = https://bugzilla.gnome.org/attachment.cgi?id=369724;
+      sha256 = "1716mp0h2866ab33w607isvfhv1zwyj71qb4jrkx5v0h276v1pwr";
+    })
+  ];
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
+    sha256 = "1r8dma3x127rbx42yab7kwq7q1bhkmvz2ykn0rnqnzl95q74w2wi";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ meson ninja pkgconfig python3 gettext ];
+
+  buildInputs = [
+    gst-plugins-base orc
+    faad2 libass libkate libmms
+    libnice webrtc-audio-processing # webrtc
+    libbs2b
+    ladspaH librdf # ladspa plug-in
+    lilv lv2 serd sord sratom # lv2 plug-in
+    libmodplug mpeg2dec
+    openjpeg libopus librsvg
+    fluidsynth libvdpau
+    libwebp xvidcore gnutls libGLU_combined
+    libgme openssl x265 libxml2
+    libintl
+  ]
+    ++ optional faacSupport faac
+    ++ optional stdenv.isLinux wayland
+    # wildmidi requires apple's OpenAL
+    # TODO: package apple's OpenAL, fix wildmidi, include on Darwin
+    ++ optional (!stdenv.isDarwin) wildmidi
+    # TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
+    ++ optional (!stdenv.isDarwin) mjpegtools;
+
+  enableParallelBuilding = true;
+
+  doCheck = false; # fails 20 out of 58 tests, expensive
+
+}