diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gstreamer')
35 files changed, 1260 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..8179806859c9 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix @@ -0,0 +1,92 @@ +{ 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 +, srt +}: + +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 + srt + ] + ++ 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 + +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/bad/fix_pkgconfig_includedir.patch b/nixpkgs/pkgs/development/libraries/gstreamer/bad/fix_pkgconfig_includedir.patch new file mode 100644 index 000000000000..c687fffc9c08 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/fix_pkgconfig_includedir.patch @@ -0,0 +1,15 @@ +diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build +index 271f327f3..7e2afa754 100644 +--- a/pkgconfig/meson.build ++++ b/pkgconfig/meson.build +@@ -2,8 +2,8 @@ pkgconf = configuration_data() + + pkgconf.set('prefix', join_paths(get_option('prefix'))) + pkgconf.set('exec_prefix', '${prefix}') +-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) +-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) ++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) ++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) + pkgconf.set('GST_API_VERSION', api_version) + pkgconf.set('VERSION', gst_version) + diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix new file mode 100644 index 000000000000..0acdf71fb72f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix @@ -0,0 +1,70 @@ +{ stdenv, fetchurl, fetchpatch, lib +, pkgconfig, meson, ninja, gettext, gobject-introspection +, python3, gstreamer, orc, pango, libtheora +, libintl, libopus +, enableX11 ? stdenv.isLinux, libXv +, enableWayland ? stdenv.isLinux, wayland +, enableAlsa ? stdenv.isLinux, alsaLib +, enableCocoa ? false, darwin +, enableCdparanoia ? (!stdenv.isDarwin), cdparanoia }: + +stdenv.mkDerivation rec { + name = "gst-plugins-base-${version}"; + version = "1.14.4"; + + meta = with lib; { + description = "Base plugins and helper libraries"; + homepage = https://gstreamer.freedesktop.org; + license = licenses.lgpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ matthewbauer ]; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz"; + sha256 = "0qbllw4kphchwhy4p7ivdysigx69i97gyw6q0rvkx1j81r4kjqfa"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkgconfig python3 gettext gobject-introspection ] + + # Broken meson with Darwin. Should hopefully be fixed soon. Tracking + # in https://bugzilla.gnome.org/show_bug.cgi?id=781148. + ++ lib.optionals (!stdenv.isDarwin) [ meson ninja ]; + + # TODO How to pass these to Meson? + configureFlags = [ + "--enable-x11=${if enableX11 then "yes" else "no"}" + "--enable-wayland=${if enableWayland then "yes" else "no"}" + "--enable-cocoa=${if enableCocoa then "yes" else "no"}" + ] + + # Introspection fails on my MacBook currently + ++ lib.optional stdenv.isDarwin "--disable-introspection"; + + buildInputs = [ orc libtheora libintl libopus ] + ++ lib.optional enableAlsa alsaLib + ++ lib.optionals enableX11 [ libXv pango ] + ++ lib.optional enableWayland wayland + ++ lib.optional enableCocoa darwin.apple_sdk.frameworks.Cocoa + ++ lib.optional enableCdparanoia cdparanoia; + + propagatedBuildInputs = [ gstreamer ]; + + postPatch = '' + patchShebangs . + ''; + + enableParallelBuilding = true; + + doCheck = false; # fails, wants DRI access for OpenGL + + patches = [ + (fetchpatch { + url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370414"; + sha256 = "07x43xis0sr0hfchf36ap0cibx0lkfpqyszb3r3w9dzz301fk04z"; + }) + ./fix_pkgconfig_includedir.patch + ]; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/base/fix_pkgconfig_includedir.patch b/nixpkgs/pkgs/development/libraries/gstreamer/base/fix_pkgconfig_includedir.patch new file mode 100644 index 000000000000..04486a4647f9 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/base/fix_pkgconfig_includedir.patch @@ -0,0 +1,15 @@ +diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build +index 04abfbee5..88c86b431 100644 +--- a/pkgconfig/meson.build ++++ b/pkgconfig/meson.build +@@ -2,8 +2,8 @@ pkgconf = configuration_data() + + pkgconf.set('prefix', get_option('prefix')) + pkgconf.set('exec_prefix', '${prefix}') +-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) +-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) ++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) ++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) + pkgconf.set('GST_API_VERSION', api_version) + pkgconf.set('VERSION', gst_version) + pkgconf.set('LIBM', libm.found() ? '-lm' : '') diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix new file mode 100644 index 000000000000..b69ab89df24d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchurl, fetchpatch, meson, ninja +, pkgconfig, gettext, gobject-introspection +, bison, flex, python3, glib, makeWrapper +, libcap,libunwind, darwin +, lib +}: + +stdenv.mkDerivation rec { + name = "gstreamer-${version}"; + version = "1.14.4"; + + meta = with lib ;{ + description = "Open source multimedia framework"; + homepage = https://gstreamer.freedesktop.org; + license = licenses.lgpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ ttuegel matthewbauer ]; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gstreamer/${name}.tar.xz"; + sha256 = "1izzhnlsy83rgr4zl3jcl1sryxqbbigrrqw3j4x3nnphqnb6ckzr"; + }; + + patches = [ + (fetchpatch { + url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370411"; + sha256 = "16plzzmkk906k4892zq68j3c9z8vdma5nxzlviq20jfv04ykhmk2"; + }) + ./fix_pkgconfig_includedir.patch + ]; + + outputs = [ "out" "dev" ]; + outputBin = "dev"; + + nativeBuildInputs = [ + meson ninja pkgconfig gettext bison flex python3 makeWrapper gobject-introspection + ]; + buildInputs = + lib.optionals stdenv.isLinux [ libcap libunwind ] + ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreServices; + + propagatedBuildInputs = [ glib ]; + + postInstall = '' + for prog in "$dev/bin/"*; do + # We can't use --suffix here due to quoting so we craft the export command by hand + wrapProgram "$prog" --run "export GST_PLUGIN_SYSTEM_PATH=\$GST_PLUGIN_SYSTEM_PATH"$\{GST_PLUGIN_SYSTEM_PATH:+:\}"\$(unset _tmp; for profile in \$NIX_PROFILES; do _tmp="\$profile/lib/gstreamer-1.0''$\{_tmp:+:\}\$_tmp"; done; printf "\$_tmp")" + done + ''; + + preConfigure= '' + patchShebangs . + ''; + + preFixup = '' + moveToOutput "share/bash-completion" "$dev" + ''; + + setupHook = ./setup-hook.sh; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch b/nixpkgs/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch new file mode 100644 index 000000000000..c388a82fa2a8 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch @@ -0,0 +1,15 @@ +diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build +index edb0586c2..7ed46dfce 100644 +--- a/pkgconfig/meson.build ++++ b/pkgconfig/meson.build +@@ -2,8 +2,8 @@ pkgconf = configuration_data() + + pkgconf.set('prefix', join_paths(get_option('prefix'))) + pkgconf.set('exec_prefix', '${prefix}') +-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) +-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) ++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) ++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) + pkgconf.set('GST_API_VERSION', apiversion) + pkgconf.set('VERSION', gst_version) + pkgconf.set('LIBM', mathlib.found() ? '-lm' : '') diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/setup-hook.sh b/nixpkgs/pkgs/development/libraries/gstreamer/core/setup-hook.sh new file mode 100644 index 000000000000..b8c741af578f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/setup-hook.sh @@ -0,0 +1,9 @@ +addGstreamer1LibPath () { + if test -d "$1/lib/gstreamer-1.0" + then + export GST_PLUGIN_SYSTEM_PATH_1_0="${GST_PLUGIN_SYSTEM_PATH_1_0}${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$1/lib/gstreamer-1.0" + fi +} + +addEnvHooks "$hostOffset" addGstreamer1LibPath + diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/default.nix new file mode 100644 index 000000000000..9aec87634040 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/default.nix @@ -0,0 +1,29 @@ +{ callPackage }: + +rec { + gstreamer = callPackage ./core { }; + + gstreamermm = callPackage ./gstreamermm { }; + + gst-plugins-base = callPackage ./base { inherit gstreamer; }; + + gst-plugins-good = callPackage ./good { inherit gst-plugins-base; }; + + gst-plugins-bad = callPackage ./bad { inherit gst-plugins-base; }; + + gst-plugins-ugly = callPackage ./ugly { inherit gst-plugins-base; }; + + gst-rtsp-server = callPackage ./rtsp-server { inherit gst-plugins-base; }; + + gst-libav = callPackage ./libav { inherit gst-plugins-base; }; + + gst-editing-services = callPackage ./ges { inherit gst-plugins-base; }; + + gst-vaapi = callPackage ./vaapi { + inherit gst-plugins-base gstreamer gst-plugins-bad; + }; + + gst-validate = callPackage ./validate { inherit gst-plugins-base; }; + + # note: gst-python is in ./python/default.nix - called under pythonPackages +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix new file mode 100644 index 000000000000..fb7a37a4f448 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, fetchpatch, meson, ninja +, pkgconfig, python, gst-plugins-base, libxml2 +, flex, perl, gettext, gobject-introspection +}: + +stdenv.mkDerivation rec { + name = "gstreamer-editing-services-${version}"; + version = "1.14.4"; + + meta = with stdenv.lib; { + description = "Library for creation of audio/video non-linear editors"; + homepage = "https://gstreamer.freedesktop.org"; + license = licenses.lgpl2Plus; + platforms = platforms.unix; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz"; + sha256 = "0pxk65jib3mqszjkyvlzklwia4kbdj6j2b6jw1d502b06mdx5lak"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ meson ninja pkgconfig gettext gobject-introspection python flex perl ]; + + propagatedBuildInputs = [ gst-plugins-base libxml2 ]; + + patches = [ + (fetchpatch { + url = "https://bug794856.bugzilla-attachments.gnome.org/attachment.cgi?id=370413"; + sha256 = "1xcgbs18g6n5p7z7kqj7ffakwmkxq7ijajyvhyl7p3zvqll9dc7x"; + }) + ./fix_pkgconfig_includedir.patch + ]; + + postPatch = '' + sed -i -r -e 's/p(bad|good) = .*/p\1 = pbase/' tests/check/meson.build + ''; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ges/fix_pkgconfig_includedir.patch b/nixpkgs/pkgs/development/libraries/gstreamer/ges/fix_pkgconfig_includedir.patch new file mode 100644 index 000000000000..1e12f3bbfbea --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/fix_pkgconfig_includedir.patch @@ -0,0 +1,15 @@ +diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build +index a612b21b..c017eaff 100644 +--- a/pkgconfig/meson.build ++++ b/pkgconfig/meson.build +@@ -2,8 +2,8 @@ pkgconf = configuration_data() + + pkgconf.set('prefix', get_option('prefix')) + pkgconf.set('exec_prefix', '${prefix}') +-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) +-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) ++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) ++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) + pkgconf.set('GST_API_VERSION', apiversion) + pkgconf.set('VERSION', gst_version) + diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix new file mode 100644 index 000000000000..247a74e3a325 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix @@ -0,0 +1,69 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, python +, gst-plugins-base, orc, bzip2, gettext +, libv4l, libdv, libavc1394, libiec61883 +, libvpx, speex, flac, taglib, libshout +, cairo, gdk_pixbuf, aalib, libcaca +, libsoup, libpulseaudio, libintl +, darwin, lame, mpg123, twolame +, gtkSupport ? false, gtk3 ? null +, libXdamage +, libXext +, libXfixes +, ncurses +}: + +assert gtkSupport -> gtk3 != null; + +let + inherit (stdenv.lib) optional optionals; +in +stdenv.mkDerivation rec { + name = "gst-plugins-good-${version}"; + version = "1.14.4"; + + meta = with stdenv.lib; { + description = "Gstreamer Good Plugins"; + homepage = "https://gstreamer.freedesktop.org"; + longDescription = '' + a set of plug-ins that we consider to have good quality code, + correct functionality, our preferred license (LGPL for the plug-in + code, LGPL or LGPL-compatible for the supporting library). + ''; + license = licenses.lgpl2Plus; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ matthewbauer ]; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz"; + sha256 = "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz"; + }; + + outputs = [ "out" "dev" ]; + + patches = [ ./fix_pkgconfig_includedir.patch ]; + + nativeBuildInputs = [ pkgconfig python meson ninja gettext ]; + + NIX_LDFLAGS = "-lncurses"; + + buildInputs = [ + gst-plugins-base orc bzip2 + libdv libvpx speex flac taglib + cairo gdk_pixbuf aalib libcaca + libsoup libshout lame mpg123 twolame libintl + # TODO: Remove the comments once https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/e234932dc703e51a0e1aa3b9c408f12758b12335 + # is merged and available in nixpkgs. + libXdamage # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553 + libXext # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553 + libXfixes # present feature but undeclared in meson_options.txt, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/553 + ncurses + ] + ++ optional gtkSupport gtk3 # for gtksink + ++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ] + ++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 ]; + + # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''" + doCheck = false; + +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch b/nixpkgs/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch new file mode 100644 index 000000000000..f68ad603a37c --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch @@ -0,0 +1,15 @@ +diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build +index b3bf0d4d4..3e6e576c0 100644 +--- a/pkgconfig/meson.build ++++ b/pkgconfig/meson.build +@@ -2,8 +2,8 @@ pkgconf = configuration_data() + + pkgconf.set('prefix', get_option('prefix')) + pkgconf.set('exec_prefix', '${prefix}') +-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) +-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) ++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) ++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) + pkgconf.set('GST_API_VERSION', api_version) + pkgconf.set('VERSION', gst_version) + diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix new file mode 100644 index 000000000000..35c278da03b1 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, file, glibmm, gst_all_1, gnome3 }: +stdenv.mkDerivation rec { + pname = "gstreamermm"; + version = "1.10.0"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0q4dx9sncqbwgpzma0zvj6zssc279yl80pn8irb95qypyyggwn5y"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkgconfig file ]; + + propagatedBuildInputs = [ glibmm gst_all_1.gst-plugins-base ]; + + enableParallelBuilding = true; + + passthru = { + updateScript = gnome3.updateScript { + packageName = pname; + versionPolicy = "none"; # Unpredictable version stability + }; + }; + + meta = with stdenv.lib; { + description = "C++ interface for GStreamer"; + homepage = "https://gstreamer.freedesktop.org/bindings/cplusplus.html"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ romildo ]; + }; + +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix new file mode 100644 index 000000000000..402074a4e5f4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, gst-plugins-base, gstreamer }: + +stdenv.mkDerivation rec { + name = "gnonlin-0.10.17"; + + src = fetchurl { + urls = [ + "https://gstreamer.freedesktop.org/src/gnonlin/${name}.tar.bz2" + "mirror://gentoo/distfiles/${name}.tar.bz2" + ]; + sha256 = "0dc9kvr6i7sh91cyhzlbx2bchwg84rfa4679ccppzjf0y65dv8p4"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gst-plugins-base gstreamer ]; + + meta = { + homepage = https://gstreamer.freedesktop.org/modules/gnonlin.html; + description = "Gstreamer Non-Linear Multimedia Editing Plugins"; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix new file mode 100644 index 000000000000..77465645d237 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix @@ -0,0 +1,36 @@ +{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base +, libdvdnav, libdvdread, orc }: + +stdenv.mkDerivation rec { + name = "gst-plugins-bad-0.10.23"; + + src = fetchurl { + urls = [ + "${meta.homepage}/src/gst-plugins-bad/${name}.tar.bz2" + "mirror://gentoo/distfiles/${name}.tar.bz2" + ]; + sha256 = "148lw51dm6pgw8vc6v0fpvm7p233wr11nspdzmvq7bjp2cd7vbhf"; + }; + + postInstall = '' + # Fixes CVE-2016-9447 + # Does not actually impact NSF playback + rm -v $out/lib/gstreamer-0.10/libgstnsf.so + ''; + + buildInputs = + [ pkgconfig glib gstreamer gst-plugins-base libdvdnav libdvdread orc ]; + + enableParallelBuilding = true; + + meta = { + homepage = https://gstreamer.freedesktop.org; + + description = "‘Bad’ (potentially low quality) plug-ins for GStreamer"; + + maintainers = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + + license = stdenv.lib.licenses.lgpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix new file mode 100644 index 000000000000..db75705c825a --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix @@ -0,0 +1,53 @@ +{ fetchurl, stdenv, pkgconfig, gstreamer, xorg, alsaLib, cdparanoia +, libogg, libtheora, libvorbis, freetype, pango, liboil, glib, cairo, orc +, libintl +, ApplicationServices +, # Whether to build no plugins that have external dependencies + # (except the ALSA plugin). + minimalDeps ? false +}: + +stdenv.mkDerivation rec { + name = "gst-plugins-base-0.10.36"; + + src = fetchurl { + urls = [ + "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz" + "mirror://gentoo/distfiles/${name}.tar.xz" + ]; + sha256 = "0jp6hjlra98cnkal4n6bdmr577q8mcyp3c08s3a02c4hjhw5rr0z"; + }; + + patchPhase = '' + sed -i 's@/bin/echo@echo@g' configure + sed -i -e 's/^ /\t/' docs/{libs,plugins}/Makefile.in + + patch -p1 < ${./gcc-4.9.patch} + ''; + + outputs = [ "out" "dev" ]; + + # TODO : v4l, libvisual + buildInputs = + [ pkgconfig glib cairo orc libintl ] + # can't build alsaLib on darwin + ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib + ++ stdenv.lib.optionals (!minimalDeps) + [ xorg.xlibsWrapper xorg.libXv libogg libtheora libvorbis freetype pango + liboil ] + # can't build cdparanoia on darwin + ++ stdenv.lib.optional (!minimalDeps && !stdenv.isDarwin) cdparanoia + ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices; + + propagatedBuildInputs = [ gstreamer ]; + + postInstall = "rm -rf $out/share/gtk-doc"; + + meta = with stdenv.lib; { + homepage = https://gstreamer.freedesktop.org; + description = "Base plug-ins for GStreamer"; + license = licenses.lgpl2Plus; + maintainers = with maintainers; [ lovek323 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch new file mode 100644 index 000000000000..fd9f6ea240d2 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch @@ -0,0 +1,38 @@ +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +From 9bd5a7ae5435469c3557a3d70e762791cb3dc5c7 Mon Sep 17 00:00:00 2001 +From: Antoine Jacoutot <ajacoutot@gnome.org> +Date: Mon, 20 Jan 2014 15:44:09 +0100 +Subject: [PATCH] audioresample: fix build on BSD + +On i386, EMMINTRIN is defined but not usable without sse so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 +--- + gst/audioresample/resample.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.8.5.3 + diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix new file mode 100644 index 000000000000..7ecb6c34b432 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix @@ -0,0 +1,52 @@ +{ fetchurl, stdenv, lib, pkgconfig, gst-plugins-base, aalib, cairo +, flac, libjpeg, speex, libpng, libdv, libcaca, libvpx +, taglib, libpulseaudio, gdk_pixbuf, orc +, glib, gstreamer, bzip2, libsoup, libshout, ncurses, libintl +, # Whether to build no plugins that have external dependencies + # (except the PulseAudio plugin). + minimalDeps ? false +}: + +stdenv.mkDerivation rec { + name = "gst-plugins-good-0.10.31"; + + src = fetchurl { + urls = [ + "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2" + "mirror://gentoo/distfiles/${name}.tar.bz2" + ]; + sha256 = "1ijswgcrdp243mfsyza31fpzq6plz40p4b83vkr2x4x7807889vy"; + }; + + patches = [ ./v4l.patch ./linux-headers-3.9.patch ]; + + configureFlags = [ "--enable-experimental" "--disable-oss" ]; + + buildInputs = + [ pkgconfig glib gstreamer gst-plugins-base libintl ] + ++ lib.optional stdenv.isLinux libpulseaudio + ++ lib.optionals (!minimalDeps) + [ aalib libcaca cairo libdv flac libjpeg libpng speex + taglib bzip2 libvpx gdk_pixbuf orc libsoup libshout ]; + + enableParallelBuilding = true; + + postInstall = lib.optionalString (!minimalDeps) '' + substituteInPlace $out/lib/gstreamer-0.10/libgstaasink.la \ + --replace "${ncurses.dev}/lib" "${ncurses.out}/lib" + ''; + + # fails 1 out of 65 tests with "Could not read TLS certificate from '../../tests/files/test-cert.pem': TLS support is not available" + doCheck = false; + + meta = { + homepage = https://gstreamer.freedesktop.org; + + description = "`Good' plug-ins for GStreamer"; + + maintainers = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.unix; + + license = stdenv.lib.licenses.lgpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch new file mode 100644 index 000000000000..f13d3a166714 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch @@ -0,0 +1,27 @@ +http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-plugins/gst-plugins-v4l2/files/gst-plugins-v4l2-0.10.31-linux-headers-3.9.patch + +From 8e633d2059cb835448021cf79becb487aff10975 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera <hadess@hadess.net> +Date: Mon, 18 Mar 2013 14:59:35 +0000 +Subject: v4l2: fix compilation against newer kernel headers as on FC19 + +--- +diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c +index 07d390a..4c10f4f 100644 +--- a/sys/v4l2/v4l2_calls.c ++++ b/sys/v4l2/v4l2_calls.c +@@ -291,8 +291,12 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) + break; + case V4L2_CID_HFLIP: + case V4L2_CID_VFLIP: ++#ifndef V4L2_CID_PAN_RESET + case V4L2_CID_HCENTER: ++#endif ++#ifndef V4L2_CID_TILT_RESET + case V4L2_CID_VCENTER: ++#endif + #ifdef V4L2_CID_PAN_RESET + case V4L2_CID_PAN_RESET: + #endif +-- +cgit v0.9.0.2-2-gbebe diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch new file mode 100644 index 000000000000..22cff574134f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch @@ -0,0 +1,11 @@ +diff -ru -x '*~' gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c +--- gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c 2011-12-30 14:59:13.000000000 +0100 ++++ gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c 2013-01-28 17:41:25.549523708 +0100 +@@ -181,7 +181,6 @@ + GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u", + ret->vbuffer.m.offset); + GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length); +- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input); + + data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix new file mode 100644 index 000000000000..2f46016adac8 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix @@ -0,0 +1,30 @@ +{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base +, libmad, libdvdread, a52dec, x264, orc, lame, libintl }: + +stdenv.mkDerivation rec { + name = "gst-plugins-ugly-0.10.19"; + + src = fetchurl { + urls = [ + "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.bz2" + "mirror://gentoo/distfiles/${name}.tar.bz2" + ]; + sha256 = "1w4d5iz9ffvh43l261zdp997i6s2iwd61lflf755s3sw4xch1a8w"; + }; + + buildInputs = + [ pkgconfig glib gstreamer gst-plugins-base libmad libdvdread a52dec x264 orc lame libintl ]; + + enableParallelBuilding = true; + + meta = { + homepage = https://gstreamer.freedesktop.org; + + description = "‘Ugly’ (potentially patent-encumbered) plug-ins for GStreamer"; + + maintainers = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.unix; + + license = stdenv.lib.licenses.lgpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix new file mode 100644 index 000000000000..c8414a7b681b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix @@ -0,0 +1,37 @@ +{ fetchurl, stdenv, pkgconfig, python2Packages, gstreamer, gst-plugins-base +}: + +let + inherit (python2Packages) python pygobject2; +in stdenv.mkDerivation rec { + name = "gst-python-0.10.22"; + + src = fetchurl { + urls = [ + "${meta.homepage}/src/gst-python/${name}.tar.bz2" + "mirror://gentoo/distfiles/${name}.tar.bz2" + ]; + sha256 = "0y1i4n5m1diljqr9dsq12anwazrhbs70jziich47gkdwllcza9lg"; + }; + + hardeningDisable = [ "bindnow" ]; + + # Need to disable the testFake test case due to bug in pygobject. + # See https://bugzilla.gnome.org/show_bug.cgi?id=692479 + patches = [ ./disable-testFake.patch ]; + + buildInputs = + [ pkgconfig gst-plugins-base pygobject2 ] + ; + + propagatedBuildInputs = [ gstreamer python ]; + + meta = { + homepage = https://gstreamer.freedesktop.org; + + description = "Python bindings for GStreamer"; + + license = stdenv.lib.licenses.lgpl2Plus; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch new file mode 100644 index 000000000000..d0c9960e5d22 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch @@ -0,0 +1,56 @@ +diff -Nurp gst-python-0.10.22.orig/testsuite/test_bin.py gst-python-0.10.22/testsuite/test_bin.py +--- gst-python-0.10.22.orig/testsuite/test_bin.py 2014-10-29 18:58:00.921827721 +0100 ++++ gst-python-0.10.22/testsuite/test_bin.py 2014-10-29 19:00:32.019353092 +0100 +@@ -131,52 +131,6 @@ class BinAddRemove(TestCase): + self.assertRaises(gst.AddError, self.bin.add, src, sink) + self.bin.remove(src, sink) + self.assertRaises(gst.RemoveError, self.bin.remove, src, sink) +- +-class Preroll(TestCase): +- def setUp(self): +- TestCase.setUp(self) +- self.bin = gst.Bin('bin') +- +- def tearDown(self): +- # FIXME: wait for state change thread to settle down +- while self.bin.__gstrefcount__ > 1: +- time.sleep(0.1) +- self.assertEquals(self.bin.__gstrefcount__, 1) +- del self.bin +- TestCase.tearDown(self) +- +- def testFake(self): +- src = gst.element_factory_make('fakesrc') +- sink = gst.element_factory_make('fakesink') +- self.bin.add(src) +- +- # bin will go to paused, src pad task will start and error out +- self.bin.set_state(gst.STATE_PAUSED) +- ret = self.bin.get_state() +- self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS) +- self.assertEquals(ret[1], gst.STATE_PAUSED) +- self.assertEquals(ret[2], gst.STATE_VOID_PENDING) +- +- # adding the sink will cause the bin to go in preroll mode +- gst.debug('adding sink and setting to PAUSED, should cause preroll') +- self.bin.add(sink) +- sink.set_state(gst.STATE_PAUSED) +- ret = self.bin.get_state(timeout=0) +- self.assertEquals(ret[0], gst.STATE_CHANGE_ASYNC) +- self.assertEquals(ret[1], gst.STATE_PAUSED) +- self.assertEquals(ret[2], gst.STATE_PAUSED) +- +- # to actually complete preroll, we need to link and re-enable fakesrc +- src.set_state(gst.STATE_READY) +- src.link(sink) +- src.set_state(gst.STATE_PAUSED) +- ret = self.bin.get_state() +- self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS) +- self.assertEquals(ret[1], gst.STATE_PAUSED) +- self.assertEquals(ret[2], gst.STATE_VOID_PENDING) +- +- self.bin.set_state(gst.STATE_NULL) +- self.bin.get_state() + + class ConstructorTest(TestCase): + def testGood(self): diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch new file mode 100644 index 000000000000..67dfc34434db --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch @@ -0,0 +1,14 @@ +diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c +index 60f709f..cdc7e75 100644 +--- a/gst/gstdatetime.c ++++ b/gst/gstdatetime.c +@@ -21,8 +21,8 @@ + #include "config.h" + #endif + +-#include "glib-compat-private.h" + #include "gst_private.h" ++#include "glib-compat-private.h" + #include "gstdatetime.h" + #include <glib.h> + #include <math.h> diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix new file mode 100644 index 000000000000..d03151e43444 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix @@ -0,0 +1,84 @@ +{ fetchurl, fetchpatch, stdenv, autoreconfHook +, perl, bison2, flex, pkgconfig, glib, libxml2, libintl +}: + +stdenv.mkDerivation rec { + name = "gstreamer-0.10.36"; + + src = fetchurl { + urls = + [ "${meta.homepage}/src/gstreamer/${name}.tar.xz" + "mirror://gentoo/distfiles/${name}.tar.xz" + ]; + sha256 = "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ autoreconfHook flex perl pkgconfig libintl bison2 glib ]; + propagatedBuildInputs = [ glib libxml2 ]; + + patches = [ + (fetchpatch { + url = "https://github.com/GStreamer/common/commit/03a0e5736761a72d4ed880e8c485bbf9e4a8ea47.patch"; + sha256 = "0rin3x01yy78ky3smmhbwlph18hhym18q4x9w6ddiqajg5lk4xhm"; + extraPrefix = "common/"; + stripLen = 1; + }) + (fetchpatch { + url = "https://github.com/GStreamer/common/commit/8aadeaaa8a948d7ce62008789ab03e9aa514c2b9.patch"; + sha256 = "0n2mqvq2al7jr2hflhz4l781i3jya5a9i725jvy508ambpgycz3x"; + extraPrefix = "common/"; + stripLen = 1; + }) + (fetchpatch { + url = "https://github.com/GStreamer/common/commit/7bb2bcecda471a0d514a964365a78150f3ee5747.patch"; + sha256 = "0famdj70m7wjvr1dpy7iywhrkqxmrshxz0rizz1bixgp42dvkhbq"; + extraPrefix = "common/"; + stripLen = 1; + }) + ] ++ + # See https://trac.macports.org/ticket/40783 for explanation of patch + stdenv.lib.optional stdenv.isDarwin ./darwin.patch; + + postPatch = '' + sed -i -e 's/^ /\t/' docs/gst/Makefile.in docs/libs/Makefile.in docs/plugins/Makefile.in + ''; + + configureFlags = [ + "--disable-examples" + "--localstatedir=/var" + "--disable-gtk-doc" + "--disable-docbook" + ]; + + doCheck = false; # fails. 2 tests crash + + postInstall = '' + # Hm, apparently --disable-gtk-doc is ignored... + rm -rf $out/share/gtk-doc + ''; + + setupHook = ./setup-hook.sh; + + meta = { + homepage = https://gstreamer.freedesktop.org; + + description = "Library for constructing graphs of media-handling components"; + + longDescription = '' + GStreamer is a library for constructing graphs of media-handling + components. The applications it supports range from simple + Ogg/Vorbis playback, audio/video streaming to complex audio + (mixing) and video (non-linear editing) processing. + + Applications can take advantage of advances in codec and filter + technology transparently. Developers can add new codecs and + filters by writing a simple plugin with a clean, generic + interface. + ''; + + license = stdenv.lib.licenses.lgpl2Plus; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh new file mode 100644 index 000000000000..65ce26112519 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh @@ -0,0 +1,8 @@ +addGstreamerLibPath () { + if test -d "$1/lib/gstreamer-0.10" + then + export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH}${GST_PLUGIN_SYSTEM_PATH:+:}$1/lib/gstreamer-0.10" + fi +} + +addEnvHooks "$hostOffset" addGstreamerLibPath diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix new file mode 100644 index 000000000000..8acaefcedf46 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, glibmm, gstreamer, gst-plugins-base, libsigcxx, libxmlxx, pkgconfig }: + +let + ver_maj = "0.10"; + ver_min = "11"; +in +stdenv.mkDerivation rec { + name = "gstreamermm-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/gstreamermm/${ver_maj}/gstreamermm-${ver_maj}.${ver_min}.tar.xz"; + sha256 = "12b5f377363594a69cb79f2f5cd0a8b1813ca6553680c3216e6354cfd682ebc6"; + }; + + doCheck = false; # Tests require pulseaudio in /homeless-shelter + + propagatedBuildInputs = [ + glibmm gstreamer gst-plugins-base libsigcxx libxmlxx + ]; + + nativeBuildInputs = [ pkgconfig ]; + + meta = with stdenv.lib; { + description = "C++ bindings for the GStreamer streaming multimedia library"; + homepage = https://www.gtkmm.org/; + license = licenses.lgpl2Plus; + maintainers = with maintainers; [ plcplc ]; + platforms = platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/boost1.48.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/boost1.48.patch new file mode 100644 index 000000000000..c48eec68a640 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/boost1.48.patch @@ -0,0 +1,49 @@ +Description: Work around moc limitations + Some parts of Boost, introduced in Boost 1.48 are not + understood by the limited C++ parser of moc. This + patch defines header guards that prevent the troublesome boost + headers from being processed. +Bug-Debian: #653796 +Author: Tobias Frost <tobi@coldtobi.de> +Reviewed-By: Steve Robbins <smr@debian.org> + +--- a/src/QGlib/connect.h ++++ b/src/QGlib/connect.h +@@ -19,6 +19,11 @@ + #ifndef QGLIB_CONNECT_H + #define QGLIB_CONNECT_H + ++#ifdef Q_MOC_RUN ++#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED ++#endif ++ ++ + #include "global.h" + #include "quark.h" + #include <QtCore/QObject> +--- a/src/QGst/bin.h ++++ b/src/QGst/bin.h +@@ -19,6 +19,10 @@ + #ifndef QGST_BIN_H + #define QGST_BIN_H + ++#ifdef Q_MOC_RUN ++#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED ++#endif ++ + #include "element.h" + #include "childproxy.h" + +--- a/src/QGst/Ui/videowidget.h ++++ b/src/QGst/Ui/videowidget.h +@@ -19,6 +19,10 @@ + #ifndef QGST_UI_VIDEOWIDGET_H + #define QGST_UI_VIDEOWIDGET_H + ++#ifdef Q_MOC_RUN ++#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED ++#endif ++ + #include "global.h" + #include "../element.h" + #include <QtGui/QWidget> diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix new file mode 100644 index 000000000000..9797f21c1685 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, gstreamer, gst-plugins-base, boost155, glib, qt4, cmake +, automoc4, flex, bison, pkgconfig }: + +stdenv.mkDerivation rec { + name = "${pname}-0.10.3"; + pname = "qt-gstreamer"; + + src = fetchurl { + url = "https://gstreamer.freedesktop.org/src/${pname}/${name}.tar.bz2"; + sha256 = "1pqg9sxzk8sdrf7pazb5v21hasqai9i4l203gbdqz29w2ll1ybsl"; + }; + + buildInputs = [ gstreamer gst-plugins-base glib qt4 ]; + propagatedBuildInputs = [ boost155 ]; + nativeBuildInputs = [ cmake automoc4 flex bison pkgconfig ]; + + cmakeFlags = "-DUSE_QT_PLUGIN_DIR=OFF -DUSE_GST_PLUGIN_DIR=OFF"; + + patches = [ ./boost1.48.patch ]; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix new file mode 100644 index 000000000000..7f7393bba28e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig +, python, yasm, gst-plugins-base, orc, bzip2 +, gettext, withSystemLibav ? true, libav ? null +}: + +# Note that since gst-libav-1.6, libav is actually ffmpeg. See +# https://gstreamer.freedesktop.org/releases/1.6/ for more info. + +assert withSystemLibav -> libav != null; + +stdenv.mkDerivation rec { + name = "gst-libav-${version}"; + version = "1.14.4"; + + meta = { + homepage = https://gstreamer.freedesktop.org; + license = stdenv.lib.licenses.lgpl2Plus; + platforms = stdenv.lib.platforms.unix; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gst-libav/${name}.tar.xz"; + sha256 = "1nk5g24z2xx5kaw5cg8dv8skdc516inahmkymcz8bxqxj28qbmyz"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = with stdenv.lib; + [ meson ninja gettext pkgconfig python ] + ++ optional (!withSystemLibav) yasm + ; + + buildInputs = with stdenv.lib; + [ gst-plugins-base orc bzip2 ] + ++ optional withSystemLibav libav + ; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix new file mode 100644 index 000000000000..a099643061a1 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, fetchpatch, gst_all_1, boost, glib, qt4, cmake +, automoc4, flex, bison, pkgconfig }: + +stdenv.mkDerivation rec { + name = "${pname}-1.2.0"; + pname = "qt-gstreamer"; + + src = fetchurl { + url = "https://gstreamer.freedesktop.org/src/${pname}/${name}.tar.xz"; + sha256 = "9f3b492b74cad9be918e4c4db96df48dab9c012f2ae5667f438b64a4d92e8fd4"; + }; + + patches = [ + (fetchpatch { + url = "https://cgit.freedesktop.org/gstreamer/qt-gstreamer/patch/?id=e2ca8094aa8d0eac1c3a98df66fe94ce0c754088"; + sha256 = "1qps0nlc26d74wk8h96xl5s3d9qrdx6c0ph0zpl1dnc691lgyf6s"; + }) + ]; + + outputs = [ "out" "dev" ]; + + buildInputs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base glib qt4 ]; + propagatedBuildInputs = [ boost ]; + nativeBuildInputs = [ cmake automoc4 flex bison pkgconfig ]; + + cmakeFlags = "-DUSE_QT_PLUGIN_DIR=OFF -DUSE_GST_PLUGIN_DIR=OFF"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + license = licenses.lgpl21; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix new file mode 100644 index 000000000000..6236edec6a40 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig +, gst-plugins-base, gettext, gobject-introspection +}: + +stdenv.mkDerivation rec { + name = "gst-rtsp-server-${version}"; + version = "1.14.4"; + + meta = with stdenv.lib; { + description = "Gstreamer RTSP server"; + homepage = "https://gstreamer.freedesktop.org"; + longDescription = '' + a library on top of GStreamer for building an RTSP server. + ''; + license = licenses.lgpl2Plus; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ bkchr ]; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz"; + sha256 = "1wc4d0y57hpfvv9sykjg8mxj86dw60mf696fbqbiqq6dzlmcw3ix"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ meson ninja gettext gobject-introspection pkgconfig ]; + + buildInputs = [ gst-plugins-base ]; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix new file mode 100644 index 000000000000..0cdfd1f4a7b6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, python +, gst-plugins-base, orc, gettext +, a52dec, libcdio, libdvdread +, libmad, libmpeg2, x264, libintl, lib +, darwin +}: + +stdenv.mkDerivation rec { + name = "gst-plugins-ugly-${version}"; + version = "1.14.4"; + + meta = with lib; { + description = "Gstreamer Ugly Plugins"; + homepage = "https://gstreamer.freedesktop.org"; + longDescription = '' + a set of plug-ins that have good quality and correct functionality, + but distributing them might pose problems. The license on either + the plug-ins or the supporting libraries might not be how we'd + like. The code might be widely known to present patent problems. + ''; + license = licenses.lgpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ matthewbauer ]; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz"; + sha256 = "08vd1xgwmapnviah47zv5h2r02qdd20y4f07rvv5zhv6y4vxh0mc"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ meson ninja gettext pkgconfig python ]; + + buildInputs = [ + gst-plugins-base orc + a52dec libcdio libdvdread + libmad libmpeg2 x264 + libintl + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; + [ IOKit CoreFoundation DiskArbitration ]); + + NIX_LDFLAGS = [ "-lm" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix new file mode 100644 index 000000000000..e84f8dce9125 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchurl, meson, ninja, pkgconfig, gst-plugins-base, bzip2, libva, wayland +, libdrm, udev, xorg, libGLU_combined, gstreamer, gst-plugins-bad, nasm +, libvpx, python +}: + +stdenv.mkDerivation rec { + name = "gst-vaapi-${version}"; + version = "1.14.4"; + + src = fetchurl { + url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz"; + sha256 = "18yha6119v7mwz47idv2vykzfssqfmh6hc824wqqsshwjvzdn66f"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ meson ninja pkgconfig bzip2 ]; + + buildInputs = [ + gstreamer gst-plugins-base gst-plugins-bad libva wayland libdrm udev + xorg.libX11 xorg.libXext xorg.libXv xorg.libXrandr xorg.libSM + xorg.libICE libGLU_combined nasm libvpx python + ]; + + preConfigure = '' + export GST_PLUGIN_PATH_1_0=$out/lib/gstreamer-1.0 + mkdir -p $GST_PLUGIN_PATH_1_0 + ''; + + meta = { + homepage = https://gstreamer.freedesktop.org; + license = stdenv.lib.licenses.lgpl21Plus; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ tstrobel ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix new file mode 100644 index 000000000000..916185bf7ecf --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gstreamer/validate/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, gstreamer, gst-plugins-base +, python, gobject-introspection, json-glib +}: + +stdenv.mkDerivation rec { + name = "gst-validate-${version}"; + version = "1.14.4"; + + meta = { + description = "Integration testing infrastructure for the GStreamer framework"; + homepage = https://gstreamer.freedesktop.org; + license = stdenv.lib.licenses.lgpl2Plus; + platforms = stdenv.lib.platforms.unix; + }; + + src = fetchurl { + url = "${meta.homepage}/src/gst-validate/${name}.tar.xz"; + sha256 = "1ismv4i7ldi04swq76pcpd5apxqd52yify5hvlyan2yw9flwrp0q"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + pkgconfig gobject-introspection + ]; + + buildInputs = [ + python json-glib + ]; + + propagatedBuildInputs = [ gstreamer gst-plugins-base ]; + + enableParallelBuilding = true; +} |