nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
Emily 61922738bb treewide: optimistically unpin FFmpeg 7 dependencies
Per the adjusted FFmpeg pinning advice, packages that work on the
default version should use the unversioned variants to ease the
migration to future versions and reduce the number of packages that
end up referencing old versions.

I have left HandBrake pinned as it builds a custom patched FFmpeg.
2024-09-07 20:31:41 +01:00

103 lines
2.3 KiB
Nix

{ bctoolbox
, bzrtp
, cmake
, fetchFromGitLab
, fetchpatch2
, ffmpeg
, glew
, gsm
, lib
, libX11
, libXext
, libopus
, libpulseaudio
, libv4l
, libvpx
, ortp
, python3
, qtbase
, qtdeclarative
, speex
, srtp
, stdenv
}:
stdenv.mkDerivation rec {
pname = "mediastreamer2";
version = "5.2.111";
dontWrapQtApps = true;
src = fetchFromGitLab {
domain = "gitlab.linphone.org";
owner = "public";
group = "BC";
repo = pname;
rev = version;
hash = "sha256-Le52tsyzOpepmvb+GOGCPwwTriPUjhYpa6GM+y/6USA=";
};
patches = [
# Plugins directory is normally fixed during compile time. This patch makes
# it possible to set the plugins directory run time with an environment
# variable MEDIASTREAMER_PLUGINS_DIR. This makes it possible to construct a
# plugin directory with desired plugins and wrap executables so that the
# environment variable points to that directory.
./plugins_dir.patch
# Port to ffmpeg 5.0 API
(fetchpatch2 {
url = "https://salsa.debian.org/pkg-voip-team/linphone-stack/mediastreamer2/-/raw/4e7784802d2eac57dffe210c8c23e696f40ac6ec/debian/patches/ffmpeg_5_0_fixes.patch";
hash = "sha256-5ay4iVbx8IOX952HEFaKLBGKLRYUWRntufciApUVhh0=";
})
];
nativeBuildInputs = [
cmake
python3
qtbase
qtdeclarative
];
propagatedBuildInputs = [
# Made by BC
bctoolbox
bzrtp
ortp
ffmpeg
glew
libX11
libXext
libpulseaudio
libv4l
speex
srtp
# Optional
gsm # GSM audio codec
libopus # Opus audio codec
libvpx # VP8 video codec
];
strictDeps = true;
cmakeFlags = [
"-DENABLE_STATIC=NO" # Do not build static libraries
"-DENABLE_QT_GL=ON" # Build necessary MSQOGL plugin for Linphone desktop
"-DCMAKE_C_FLAGS=-DGIT_VERSION=\"v${version}\""
"-DENABLE_STRICT=NO" # Disable -Werror
"-DENABLE_UNIT_TESTS=NO" # Do not build test executables
];
NIX_LDFLAGS = "-lXext";
meta = with lib; {
description = "Powerful and lightweight streaming engine specialized for voice/video telephony applications. Part of the Linphone project";
homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ jluttine ];
};
}