Name:		mediastreamer
Version:	2.16.1
Release:	1%{?dist}
URL:		https://github.com/BelledonneCommunications/mediastreamer2
Source0:	https://www.linphone.org/releases/sources/mediastreamer/%{name}-%{version}.tar.gz
# support for libsrtp2
Patch0:		mediastreamer-2.16.1-srtp2.patch
# add space for a null termination in a strncpy
Patch1:		mediastreamer-2.16.1-null-term.patch
# convert defines to strings before using them as part of a string
Patch2:		mediastreamer-2.16.1-define-string-fix.patch
# properly detect bcg729
Patch3:		mediastreamer-2.16.1-pkgconfig-libbcg729.patch
# use libmatroska
Patch4:		mediastreamer-2.16.1-use-libmatroska.patch
# upnp fix
Patch5:		mediaserver-upnp-fix.patch
License:	GPLv2+
Summary:	Audio/video real-time streaming and processing library
BuildRequires:	cmake
# a few C++ bits
BuildRequires:	gcc-c++
BuildRequires:	autoconf, automake, libtool
BuildRequires:	bctoolbox-devel
BuildRequires:	alsa-lib-devel
BuildRequires:	pulseaudio-libs-devel
BuildRequires:	speex-devel >= 1.2
BuildRequires:	speexdsp-devel >= 1.2
BuildRequires:	gsm-devel
# BuildRequires:	libebml-devel
# BuildRequires:	libmatroska-devel
BuildRequires:	spandsp-devel
BuildRequires:	libupnp-devel
BuildRequires:	opus-devel
BuildRequires:	libX11-devel
BuildRequires:	xorg-x11-proto-devel
BuildRequires:	libXv-devel
BuildRequires:	libglvnd-devel
BuildRequires:	glew-devel
BuildRequires:	libtheora-devel
BuildRequires:	libvpx-devel
BuildRequires:	kernel-headers
BuildRequires:	libv4l-devel
BuildRequires:	libpcap-devel
BuildRequires:	bctoolbox-devel
BuildRequires:	libsrtp-devel
BuildRequires:	bzrtp-devel, libxml2-devel
BuildRequires:	doxygen, git-core, python3
BuildRequires:	turbojpeg-devel
BuildRequires:	bcg729-devel
# for xxd
BuildRequires:	vim-common
BuildRequires:	ortp-devel >= 2:1.0.2
Requires:	ortp%{?_isa} >= 2:1.0.2

%description
Mediastreamer2 is a library to make audio and video real-time streaming and
processing. Written in pure C, it is based upon the ortp library.

%package devel
Summary:	Development libraries for mediastreamer
Requires:	%{name}%{?_isa} = %{version}-%{release}

%description devel
Development libraries for mediastreamer.

%prep
%setup -q
%patch0 -p1 -b .srtp2
%patch1 -p1 -b .nullterm
%patch2 -p1 -b .define-string
%patch3 -p1 -b .pkgconfig
# This part works, but the code is written for a rather ancient version of the libmatroska API...
# So... we're not applying this patch for now.
# %%patch4 -p1 -b .libmatroska
%patch5 -p1 -b .upnp

%build
%global optflags %{optflags} -Wno-error=cast-function-type -Wno-error=stringop-truncation -Wno-error=stringop-overflow=
%cmake . -DENABLE_FFMPEG=NO -DENABLE_STATIC=NO -DCMAKE_SKIP_RPATH=YES

make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}
rm -rf %{buildroot}%{_libdir}/*.la

%ldconfig_scriptlets

%files
%license COPYING
%doc README.md
%{_bindir}/mediastream
%{_bindir}/mediastreamer2_tester
%{_bindir}/mkvstream
%{_libdir}/libmediastreamer_*.so.10
%{_datadir}/images/nowebcamCIF.jpg
%{_datadir}/mediastreamer2_tester/

%files devel
%doc %{_datadir}/doc/%{name}2-%{version}/
%{_includedir}/mediastreamer2/
%{_libdir}/libmediastreamer_*.so
# cmake files here
%{_datadir}/Mediastreamer2/

%changelog
* Wed Jan  8 2020 Tom Callaway <spot@fedoraproject.org> - 2.16.1-1
- initial package