[packages/kodi] up to 19.3

atler atler at pld-linux.org
Fri Nov 12 00:15:09 CET 2021


commit 9ba2f18ce725b802a8c55c43076619352ff2c81d
Author: Jan Palus <atler at pld-linux.org>
Date:   Thu Nov 11 23:13:21 2021 +0100

    up to 19.3
    
    - cleaned up unused patches
    - cleaned up unused bconds
    - dropped old autotools invocation
    - support for all platforms (x11/wayland/gbm)
    - updated dependencies
    - -devel subpackage for binary addons
    - dropped obsolete workarounds

 assert.patch          |  37 ----
 dvdread.patch         | 141 ---------------
 ffmpeg3.patch         | 420 ---------------------------------------------
 fmt.patch             |  26 ---
 gcc5.patch            |  38 ----
 jpeglib-boolean.patch |  53 ------
 kodi.spec             | 370 +++++++++++++++++++--------------------
 microhttpd.patch      | 467 --------------------------------------------------
 8 files changed, 176 insertions(+), 1376 deletions(-)
---
diff --git a/kodi.spec b/kodi.spec
index ca77d3b..3829193 100644
--- a/kodi.spec
+++ b/kodi.spec
@@ -6,187 +6,173 @@
 #
 # Conditional build:
 # Features:
-%bcond_with	afpclient	# AFP support via libafpclient
-%bcond_without	airplay		# AirPlay support
 %bcond_with	airtunes	# AirTunes support
-%bcond_without	alsa		# ALSA support
-%bcond_without	avahi		# Avahi support
-%bcond_without	dbus		# DBUS support
 %bcond_without	dvdcss		# DVDCSS support
-%bcond_without	opengl		# OpenGL rendering
-%bcond_with	gtest		# configure Google Test Framework
-%bcond_without	joystick	# SDL joystick support
-%bcond_without	libcap		# libcap support
-%bcond_with	libcec		# libcec support
-%bcond_without	gif		# GIF support via giflib
-%bcond_without	libusb		# libusb support
-%bcond_with	mdnsembedded	# mDNSEmbedded support
-%bcond_without	mysql		# MySQL
-%bcond_without	nfs		# NFS support via libnfs
-%bcond_without	nonfree		# componentents with non-compliant licenses
-%bcond_with	openmax		# OpenMax decoding, requires OpenGLES
+%bcond_without	gbm		# GBM platform
 %bcond_without	optical_drive	# optical drive
-%bcond_without	projectm	# ProjectM visualisation
-%bcond_without	pulse		# PulseAudio support
-%bcond_without	rtmp		# RTMP support via librtmp
-%bcond_without	samba		# SAMBA support
-%bcond_without	sdl		# SDL
-%bcond_without	ssh		# SSH SFTP support
-%bcond_without	texturepacker	# texturepacker support
-%bcond_without	udev		# udev support
 %bcond_without	upnp		# UPnP support
-%bcond_without	vaapi		# VAAPI decoding
-%bcond_without	vdpau		# VDPAU decoding
-%bcond_with	vtbdecoder	# VTBDecoder decoding (VTB Decoder not supported on this platform)
-%bcond_without	webserver	# webserver
-%bcond_without	x11		# x11 'Linux Only'
-%bcond_without	xrandr		# XRandR support
-%bcond_with	asap_codec	# ASAP ADPCM support
+%bcond_without	x11		# X11 platform
 %bcond_with	gles		# OpenGLES rendering
-%bcond_without	libbluray	# libbluray support
-%bcond_without	mid		# MID support
-%bcond_with	profiling	# gprof profiling
-%bcond_with	tegra		# Tegra2 arm
-%bcond_with	wayland		# wayland
+%bcond_without	wayland		# Wayland platform
 # System libs:
 %bcond_without	system_ffmpeg	# build with system ffmpeg
-%bcond_with	system_dvdread	# build with system dvdread
+# CPU instructions
+%bcond_with	avx		# use AVX instructions
+%bcond_with	avx2		# use AVX2 instructions
+%bcond_with	neon		# use NEON instructions
+%bcond_with	sse		# use SSE instructions
+%bcond_with	sse2		# use SSE2 instructions
+%bcond_with	sse3		# use SSE3 instructions
+%bcond_with	ssse3		# use SSSE3 instructions
+%bcond_with	sse41		# use SSE4.1 instructions
+%bcond_with	sse42		# use SSE4.2 instructions
 
-%define	codename Leia
+%ifarch %{arm_with_neon}
+%define		with_neon	1
+%endif
+%ifarch %{x86_with_sse}
+%define		with_sse	1
+%endif
+%ifarch %{x86_with_sse2}
+%define		with_sse2	1
+%endif
+
+%define	codename Matrix
 #define	subver	rc1
 Summary:	Kodi is a free and open source media-player and entertainment hub
 Name:		kodi
-Version:	18.4
-Release:	8
+Version:	19.3
+Release:	1
 License:	GPL v2+ and GPL v3+
 Group:		Applications/Multimedia
 #Source0Download: https://github.com/xbmc/xbmc/releases
 Source0:	https://github.com/xbmc/xbmc/archive/%{version}-%{codename}.tar.gz
-# Source0-md5:	5e5e1e2527c2619785597b04e35fda6c
-Patch0:		jpeglib-boolean.patch
-Patch1:		disable-static.patch
-Patch2:		dvdread.patch
-Patch3:		ffmpeg3.patch
-Patch4:		gcc5.patch
-Patch5:		libdvd.patch
-Patch6:		microhttpd.patch
-Patch7:		assert.patch
-Patch8:		fmt.patch
+# Source0-md5:	623583e6eac14668468d6c5628b8f1c5
+Patch0:		disable-static.patch
+Patch1:		libdvd.patch
 URL:		https://kodi.tv/
 BuildRequires:	EGL-devel
+%{?with_gbm:BuildRequires:	Mesa-libgbm-devel}
+# for eglextchromium.h
+%{?with_x11:BuildRequires:	Mesa-libEGL-devel}
+%if %{without gles}
 BuildRequires:	OpenGL-GLU-devel
 BuildRequires:	OpenGL-devel
-BuildRequires:	SDL2-devel
-BuildRequires:	alsa-lib-devel
+%if %{with x11}
+BuildRequires:	OpenGL-GLX-devel
+%endif
+%endif
+%{?with_gles:BuildRequires:	OpenGLES-devel}
+BuildRequires:	alsa-lib-devel >= 1.0.27
 BuildRequires:	avahi-devel
 BuildRequires:	bluez-libs-devel >= 4.99
-BuildRequires:	bzip2-devel
 BuildRequires:	cmake >= 3.4
 BuildRequires:	crossguid-devel
 BuildRequires:	curl-devel
+BuildRequires:	dav1d-devel
 BuildRequires:	dbus-devel
-BuildRequires:	libfmt-devel >= 3.0.1
-BuildRequires:	rapidjson-devel >= 1.1.0
-# libavcodec >= 56.26.100 libavfilter >= 5.11.102 libavformat >= 56.25.101 libavutil >= 54.20.100 libpostproc >= 53.3.100 libswscale >= 3.1.101 libswresample >= 1.1.100
-%{?with_system_ffmpeg:BuildRequires:	ffmpeg-devel >= 2.4.4}
-BuildRequires:	flac-devel
+# libavcodec >= 58.91.100 libavfilter >= 7.85.100 libavformat >= 58.45.100 libavutil >= 56.51.100 libpostproc >= 55.7.100 libswscale >= 5.7.100 libswresample >= 3.7.100
+%{?with_system_ffmpeg:BuildRequires:	ffmpeg-devel >= 4.3}
 BuildRequires:	flatbuffers-devel >= 1.9.0
 BuildRequires:	fontconfig-devel
 BuildRequires:	freetype-devel
 BuildRequires:	fribidi-devel
-BuildRequires:	gawk
-BuildRequires:	gettext-autopoint
+BuildRequires:	fstrcmp-devel >= 0.7
 BuildRequires:	gettext-tools
-%{?with_gif:BuildRequires:	giflib-devel}
-BuildRequires:	gperf
-BuildRequires:	jre
+BuildRequires:	giflib-devel >= 5
 BuildRequires:	lcms2-devel
 BuildRequires:	libass-devel
 BuildRequires:	libatomic-devel
-BuildRequires:	libbluray-devel >= 0.7.0
+BuildRequires:	libbluray-devel >= 0.9.3
 BuildRequires:	libcap-devel
-BuildRequires:	libcdio-devel
-%{?with_libcec:BuildRequires:	libcec-devel >= 3.0.0}
-BuildRequires:	libdrm-devel
-BuildRequires:	libdvdcss-devel >= 1.4.1
-%{?with_system_dvdread:BuildRequires:	libdvdread-devel}
-BuildRequires:	libgcrypt-devel
+BuildRequires:	libcdio-c++-devel >= 2.1.0
+BuildRequires:	libcdio-devel >= 2.1.0
+BuildRequires:	libcec-devel >= 3.0.0
+BuildRequires:	libdrm-devel >= 2.4.95
+%{?with_dvdcss:BuildRequires:	libdvdcss-devel >= 1.4.1}
+BuildRequires:	libdvdnav-devel
+BuildRequires:	libdvdread-devel
+BuildRequires:	libfmt-devel >= 6.1.2
+%{?with_gbm:BuildRequires:	libinput-devel}
 BuildRequires:	libjpeg-devel
-BuildRequires:	libltdl-devel
 BuildRequires:	libmicrohttpd-devel >= 0.9.40
-BuildRequires:	libogg-devel
-BuildRequires:	libplist-devel
+BuildRequires:	libnfs-devel
+BuildRequires:	libplist-devel >= 2.0
 BuildRequires:	libpng-devel
-BuildRequires:	librtmp-devel
 BuildRequires:	libsmbclient-devel
-BuildRequires:	libssh-devel
-BuildRequires:	libstdc++-devel
-BuildRequires:	libtool
+BuildRequires:	libstdc++-devel >= 6:5
+BuildRequires:	libudfread-devel >= 1.0.0
 BuildRequires:	libuuid-devel
 BuildRequires:	libva-devel
-BuildRequires:	libva-x11-devel
+BuildRequires:	libva-drm-devel
+%{?with_wayland:BuildRequires:	libva-wayland-devel}
+%{?with_x11:BuildRequires:	libva-x11-devel}
+%if %{with x11} && %{without gles}
 BuildRequires:	libvdpau-devel
-BuildRequires:	libvorbis-devel
+%endif
 BuildRequires:	libxml2-devel >= 2.0
 BuildRequires:	libxslt-devel
-BuildRequires:	lzo-devel
+BuildRequires:	lirc-devel
+BuildRequires:	lzo-devel >= 2
 BuildRequires:	mysql-devel
-%ifarch %{ix86}
-BuildRequires:	nasm
-%endif
-BuildRequires:	fstrcmp-devel >= 0.7
-BuildRequires:	openssl-devel
+BuildRequires:	openssl-devel >= 1.0.2
 BuildRequires:	pcre-cxx-devel
 BuildRequires:	pkgconfig
-BuildRequires:	pkgconfig(egl)
-BuildRequires:	pkgconfig(gl)
-BuildRequires:	pkgconfig(glu)
-BuildRequires:	pulseaudio-devel >= 1.0
-BuildRequires:	python-devel >= 1:2.6
+BuildRequires:	pulseaudio-devel >= 11.0.0
+BuildRequires:	python3-devel >= 1:3.8
+BuildRequires:	rapidjson-devel >= 1.1.0
 BuildRequires:	rpm-pythonprov
-BuildRequires:	rpmbuild(macros) >= 1.566
+BuildRequires:	rpmbuild(macros) >= 2.007
 BuildRequires:	sed >= 4.0
+BuildRequires:	spdlog-devel >= 1.5.0
 BuildRequires:	sqlite3-devel
 BuildRequires:	swig
-BuildRequires:	taglib-devel >= 1.8
+BuildRequires:	taglib-devel >= 1.9.0
 BuildRequires:	tinyxml-devel >= 2.6.2
 BuildRequires:	udev-devel
-BuildRequires:	unzip
+%if %{with wayland}
+BuildRequires:	wayland-protocols >= 1.7
+BuildRequires:	waylandpp-devel >= 0.2.2
+%endif
+%if %{with x11}
 BuildRequires:	xorg-lib-libX11-devel
 BuildRequires:	xorg-lib-libXext-devel
 BuildRequires:	xorg-lib-libXrandr-devel
-BuildRequires:	yajl-devel >= 2
-BuildRequires:	zip
+%endif
+%if %{with gbm} || %{with wayland}
+BuildRequires:	xorg-lib-libxkbcommon-devel >= 0.4.1
+%endif
 BuildRequires:	zlib-devel
-# kodi uses it's own, modified squish
-BuildConflicts:	squish-devel
-#https://github.com/sahlberg/libnfs
-BuildRequires:	libnfs-devel
-#http://sites.google.com/site/alexthepuffin/home
-#BuildRequires:	afpfs-ng-devel
-#BuildRequires:	shairplay-devel
+Requires:	%{name}-common = %{version}-%{release}
 Requires:	/usr/bin/glxinfo
-Requires:	SDL >= 1.2.14-5
+Requires:	alsa-lib >= 1.0.27
+Requires:	desktop-file-utils
+Requires:	ffmpeg-libs >= 4.3
+Requires:	flatbuffers >= 1.9.0
+Requires:	hicolor-icon-theme
+Requires:	libbluray >= 0.9.3
+Requires:	libcdio >= 2.1.0
+Requires:	libcdio-c++ >= 2.1.0
+Requires:	libcec >= 3.0.0
+Requires:	libdrm >= 2.4.95
+%{?with_dvdcss:Requires:	libdvdcss >= 1.4.1}
+Requires:	libfmt >= 6.1.2
+Requires:	libmicrohttpd >= 0.9.40
+Requires:	libplist >= 2.0
+Requires:	libudfread >= 1.0.0
 Requires:	lsb-release
-Requires:	xorg-app-xdpyinfo
-# dlopened libraries:
-# grep 'DLL_PATH_.*lib.*\.so' xbmc/DllPaths_generated.h | grep -v special://
-Requires:	curl-libs
-Requires:	libass
-Requires:	libbluray
-Requires:	libmodplug
-Requires:	libmpeg2-libs
-Requires:	libogg
-Requires:	libplist
-Requires:	libvorbis
+Requires:	openssl >= 1.0.2
+Requires:	pulseaudio-libs >= 11.0.0
+Requires:	spdlog >= 1.5.0
+Requires:	taglib >= 1.9.0
+Requires:	tinyxml >= 2.6.2
+%{?with_wayland:Requires:	waylandpp >= 0.2.2}
+%if %{with gbm} || %{with wayland}
+Requires:	xorg-lib-libxkbcommon >= 0.4.1
+%endif
 Obsoletes:	xbmc < 14.0
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-# extracting debug info from /home/users/glen/tmp/kodi-18.0-root-glen/usr/lib64/kodi/kodi-x11
-# /usr/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character
-%define		_noautostrip    kodi-x11
-%define		_enable_debug_packages	0
-
 %description
 Kodi Entertainment Center (formerly XBMC) is a free and open-source
 media player software developed by the XBMC Foundation, a non-profit
@@ -196,17 +182,25 @@ for use with televisions and remote controls. It allows users to play
 and view most videos, music, such as podcasts from the internet, and
 all common digital media files from local and network storage media.
 
+%package common
+Summary:	Common files for Kodi
+BuildArch:	noarch
+
+%description common
+Common files for Kodi.
+
+%package devel
+Summary:	Header files for Kodi
+Group:		Development/Libraries
+Requires:	%{name}-common = %{version}-%{release}
+
+%description devel
+Header files for Kodi.
+
 %prep
 %setup -q -n xbmc-%{version}%{?subver}-%{codename}
-#%patch0 -p1
+%patch0 -p1
 %patch1 -p1
-%{?with_system_dvdread:%patch2 -p1}
-#%patch3 -p1
-#%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
 
 %{__rm} -r lib/win32
 
@@ -215,72 +209,40 @@ all common digital media files from local and network storage media.
 %endif
 
 %build
-install -d build
-cd build
-# cmake not picking up include path from pkgconfig
-# https://trac.kodi.tv/ticket/16861
-%define	specflags -I/usr/include/freetype2
-%cmake \
-	-DENABLE_AIRTUNES=%{__true_false airtunes} \
-	-DENABLE_DVDCSS=%{__true_false dvdcss} \
-	-DENABLE_INTERNAL_CROSSGUID=OFF \
-	-DENABLE_INTERNAL_FFMPEG=%{!?with_system_ffmpeg:ON}%{?with_system_ffmpeg:OFF} \
-	-DENABLE_INTERNAL_LIBDVD=OFF \
-	-DENABLE_OPTICAL=%{__true_false optical_drive} \
-	-DENABLE_UPNP=%{__true_false upnp} \
-	..
-%if 0
-%configure \
-	ac_cv_type__Bool=yes \
-	--disable-silent-rules \
-	--disable-debug \
-	--disable-ccache \
-	--with-ffmpeg=%{!?with_system_ffmpeg:force}%{?with_system_ffmpeg:shared} \
-	%{__enable_disable afpclient} \
-	%{__enable_disable airplay} \
-	%{__enable_disable alsa} \
-	%{__enable_disable asap_codec asap-codec} \
-	%{__enable_disable avahi} \
-	%{__enable_disable dbus} \
-	%{__enable_disable gles} \
-	%{__enable_disable opengl gl} \
-	%{__enable_disable gtest} \
-	%{__enable_disable joystick} \
-	%{__enable_disable libbluray} \
-	%{__enable_disable libcap} \
-	%{__enable_disable libcec} \
-	%{__enable_disable gif libgif} \
-	%{__enable_disable libusb} \
-	%{__enable_disable mdnsembedded} \
-	%{__enable_disable mid} \
-	%{__enable_disable mysql} \
-	%{__enable_disable nfs} \
-	%{__enable_disable nonfree non-free} \
-	%{__enable_disable openmax} \
-	%{__enable_disable profiling} \
-	%{__enable_disable pulse} \
-	%{__enable_disable rtmp} \
-	%{__enable_disable samba} \
-	%{__enable_disable sdl} \
-	%{__enable_disable ssh} \
-	%{__enable_disable tegra} \
-	%{__enable_disable texturepacker} \
-	%{__enable_disable udev} \
-	%{__enable_disable upnp} \
-	%{__enable_disable vaapi} \
-	%{__enable_disable vdpau} \
-	%{__enable_disable vtbdecoder} \
-	%{__enable_disable wayland} \
-	%{__enable_disable webserver} \
-	%{__enable_disable x11} \
-	%{__enable_disable xrandr} \
-	%{nil}
-%endif
+%cmake -B build \
+	-DAPP_RENDER_SYSTEM=%{!?with_gles:gl}%{?with_gles:gles} \
+	-DCORE_PLATFORM_NAME="%{?with_gbm:GBM;}%{?with_x11:X11;}%{?with_wayland:WAYLAND;}" \
+	%{cmake_on_off airtunes ENABLE_AIRTUNES} \
+	%{cmake_on_off dvdcss ENABLE_DVDCSS} \
+	-DENABLE_INTERNAL_CROSSGUID:BOOL=OFF \
+	-DENABLE_INTERNAL_DAV1D:BOOL=OFF \
+	-DENABLE_INTERNAL_FFMPEG:BOOLD=%{?with_system_ffmpeg:OFF}%{!?with_system_ffmpeg:ON} \
+	-DENABLE_INTERNAL_FLATBUFFERS:BOOL=OFF \
+	-DENABLE_INTERNAL_FMT:BOOL=OFF \
+	-DENABLE_INTERNAL_FSTRCMP:BOOL=OFF \
+	-DENABLE_INTERNAL_LIBDVD:BOOL=OFF \
+	-DENABLE_INTERNAL_RapidJSON:BOOL=OFF \
+	-DENABLE_INTERNAL_SPDLOG:BOOL=OFF \
+	-DENABLE_INTERNAL_UDFREAD:BOOL=OFF \
+	-DENABLE_LDGOLD:BOOL=OFF \
+	-DENABLE_TESTING:BOOL=OFF \
+	%{cmake_on_off optical_drive ENABLE_OPTICAL} \
+	%{cmake_on_off upnp ENABLE_UPNP} \
+	%{cmake_on_off avx ENABLE_AVX} \
+	%{cmake_on_off avx2 ENABLE_AVX2} \
+	%{cmake_on_off neon ENABLE_NEON} \
+	%{cmake_on_off sse ENABLE_SSE} \
+	%{cmake_on_off sse2 ENABLE_SSE2} \
+	%{cmake_on_off sse3 ENABLE_SSE3} \
+	%{cmake_on_off ssse3 ENABLE_SSSE3} \
+	%{cmake_on_off sse41 ENABLE_SSE4_1} \
+	%{cmake_on_off sse42 ENABLE_SSE4_2}
 
-%{__make}
+%{__make} -C build
 
 %install
 rm -rf $RPM_BUILD_ROOT
+
 %{__make} -C build install \
 	DESTDIR=$RPM_BUILD_ROOT
 
@@ -289,20 +251,40 @@ rm -rf $RPM_BUILD_ROOT
 # not packaged
 %{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/kodi-*.xml
 
-# no -devel package yet
-%{__rm} -r $RPM_BUILD_ROOT%{_includedir}/kodi
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+%update_icon_cache hicolor
+%update_desktop_database
+
+%postun
+%update_icon_cache hicolor
+%update_desktop_database_postun
+
 %files
 %defattr(644,root,root,755)
 %doc README.md docs/README.Linux.md
+%attr(755,root,root) %{_bindir}/JsonSchemaBuilder
 %attr(755,root,root) %{_bindir}/TexturePacker
 %attr(755,root,root) %{_bindir}/kodi
 %attr(755,root,root) %{_bindir}/kodi-standalone
-%{_datadir}/%{name}
+%{_datadir}/%{name}/addons
+%{_datadir}/%{name}/media
+%{_datadir}/%{name}/privacy-policy.txt
+%{_datadir}/%{name}/system
+%{_datadir}/%{name}/userdata
 %attr(755,root,root) %{_libdir}/%{name}
 %{_desktopdir}/kodi.desktop
 %{_iconsdir}/hicolor/*/apps/%{name}.png
+%{_datadir}/metainfo/org.xbmc.kodi.metainfo.xml
 %{_datadir}/xsessions/kodi.desktop
+
+%files common
+%defattr(644,root,root,755)
+%dir %{_datadir}/%{name}
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/kodi
+%{_datadir}/%{name}/cmake
diff --git a/assert.patch b/assert.patch
deleted file mode 100644
index d4fb96e..0000000
--- a/assert.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From bbfc36f06c191d3bdea19cacc498afb86bd25404 Mon Sep 17 00:00:00 2001
-From: Craig Andrews <candrews at integralblue.com>
-Date: Thu, 5 Dec 2019 14:49:50 -0500
-Subject: [PATCH] Add missing cassert includes
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without these includes, ‘assert’ was not declared in this scope errors
-occur.
----
- xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp | 1 +
- xbmc/windowing/GraphicContext.cpp                  | 2 ++
- 2 files changed, 3 insertions(+)
-
-
---- xbmc-18.4-Leia/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp~	2019-08-31 11:34:13.000000000 +0000
-+++ xbmc-18.4-Leia/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp	2021-08-20 09:13:44.012432476 +0000
-@@ -8,6 +8,7 @@
-
- #include "GUIDialogProfileSettings.h"
- 
-+#include <cassert>
- #include <utility>
- 
- #include "dialogs/GUIDialogFileBrowser.h"
---- xbmc-18.4-Leia/xbmc/windowing/GraphicContext.cpp~	2019-08-31 11:34:13.000000000 +0000
-+++ xbmc-18.4-Leia/xbmc/windowing/GraphicContext.cpp	2021-08-20 09:16:14.469325393 +0000
-@@ -24,6 +24,8 @@
- #include "guilib/GUIWindowManager.h"
- #include "guilib/TextureManager.h"
- 
-+#include <cassert>
-+
- using namespace KODI::MESSAGING;
- 
- CGraphicContext::CGraphicContext(void) = default;
diff --git a/dvdread.patch b/dvdread.patch
deleted file mode 100644
index 1b17355..0000000
--- a/dvdread.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-origin:
-http://cvs.rpmfusion.org/viewvc/rpms/kodi/devel/xbmc-13.0-dvdread.patch?revision=1.1&root=free&view=markup
-
-From 7bc0877dc9715e891159392abf669f970722dece Mon Sep 17 00:00:00 2001
-From: Ken Dreyer <ktdreyer at ktdreyer.com>
-Date: Mon, 6 May 2013 17:07:40 -0600
-Subject: [PATCH 1/3] Fedora: use external dvdread
-
-Original patch by Alex Lancaster <alexlan[AT]fedoraproject org>
-(cherry picked from commit 9f9845af842a376d5bdf70742785e7727695fd03)
----
- bootstrap.mk           |  5 -----
- configure.in           | 19 -------------------
- lib/libdvd/Makefile.in | 20 +++++++-------------
- 3 files changed, 7 insertions(+), 37 deletions(-)
-
-diff --git a/bootstrap.mk b/bootstrap.mk
-index 8bc4795..1fc31a4 100644
---- a/bootstrap.mk
-+++ b/bootstrap.mk
-@@ -8,7 +8,6 @@ ifneq ($(wildcard lib/libdvd/libdvdcss/configure.ac),)
- BOOTSTRAP_SUBDIRS += lib/libdvd/libdvdcss/configure.ac
- DVD_CSS=lib/libdvd/libdvdcss/configure
- endif
--BOOTSTRAP_SUBDIRS += lib/libdvd/libdvdread/configure.ac
- BOOTSTRAP_SUBDIRS += lib/libdvd/libdvdnav/configure.ac
- 
- ifneq ($(wildcard pvr-addons/Makefile.am),)
-@@ -18,10 +17,6 @@ endif
- BOOTSTRAP_TARGETS=$(basename $(BOOTSTRAP_SUBDIRS))
- all: $(BOOTSTRAP_TARGETS)
- 
--#preserve order for libdvd. dvdcss (if present) -> dvdread -> dvdnav.
--lib/libdvd/libdvdread/configure: $(DVD_CSS)
--lib/libdvd/libdvdnav/configure: lib/libdvd/libdvdread/configure
--
- %: %.ac
- 	autoreconf -vif $(@D)
- 	- at rm -rf $(@D)/autom4te.cache
-diff --git a/configure.ac b/configure.ac
-index beb8aac..343292e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2860,27 +2860,9 @@
-     --with-pic
- ], [$SKIP_CONFIG_DVDCSS])
- 
--XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
--  ./configure2 \
--    --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src $DROID_DVDLIB_SEEK64" \
--    --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
--    --host=$host_alias \
--    --build=$build_alias \
--    --target=$target_alias \      
--    --enable-static \
--    --disable-shared \
--    --disable-strip \
--    --disable-opts \
--    --cc="$CC" &&
--  mkdir -p `pwd`/../includes/dvdread
--  cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
--  cp `pwd`/../libdvdread/src/dvdread/*.h `pwd`/../includes/dvdread
--], [0])
--
- XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
-   ./configure2 \
-     --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes $DROID_DVDLIB_SEEK64" \
--    --extra-ldflags="-L`pwd`/../libdvdread/obj" \
-     --with-dvdread-config="`pwd`/../dvdread-config" \
-     --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
-     --host=$host_alias \
-diff --git a/lib/libdvd/Makefile.in b/lib/libdvd/Makefile.in
-index 69d2286..1f5eebb 100644
---- a/lib/libdvd/Makefile.in
-+++ b/lib/libdvd/Makefile.in
-@@ -5,8 +5,7 @@ CXX=@CXX@
- 
- SYSDIR=@abs_top_srcdir@/system/players/dvdplayer
- SOS= libdvdnav-$(ARCH).so
--DIRS=	libdvdread \
--	libdvdnav
-+DIRS=	libdvdnav
- 
- WRAPPER=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
- WRAPPER_MACH_ALIAS=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_alias
-@@ -14,7 +13,7 @@ WRAPPER_MACH_ALIAS=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_al
- ifeq ($(findstring osx,$(ARCH)),osx)
- LDFLAGS +=-bundle -undefined dynamic_lookup -read_only_relocs suppress
- else
--LDFLAGS += -shared -fPIC -rdynamic
-+LDFLAGS += -shared -fPIC -rdynamic -ldvdread
- endif
- 
- ifeq ($(ARCH), powerpc-osx)
-@@ -35,8 +34,7 @@ SLIB=$(addprefix $(SYSDIR)/, $(SOS))
- 
- DISTCLEAN_FILES=includes/dvdread/*.h \
- 		includes/dvdcss/*.h \
--		libdvdnav/config.h \
--		libdvdread/config.h
-+		libdvdnav/config.h
- 
- .PHONY: $(DIRS) compile
- 
-@@ -48,9 +46,9 @@ $(SYSDIR)/libdvdcss-$(ARCH).so:  $($(WRAPPER)) libdvdcss/src/.libs/libdvdcss.a
- 	$(CC) $(LDFLAGS) -Wl,-alias_list,$(WRAPPER_MACH_ALIAS) -o $@ \
- 		$(WRAPPER) libdvdcss/src/*.o $(BUNDLE1_O)
- 
--$(SYSDIR)/libdvdnav-$(ARCH).so: $($(WRAPPER)) $(DVDCSS_A) libdvdread/obj/libdvdread.a libdvdnav/obj/libdvdnav.a
-+$(SYSDIR)/libdvdnav-$(ARCH).so: $($(WRAPPER)) $(DVDCSS_A) libdvdnav/obj/libdvdnav.a
- 	$(CC) $(LDFLAGS) -Wl,-alias_list,$(WRAPPER_MACH_ALIAS) -o $@ \
--		$(WRAPPER) $(DVDCSS_O) libdvdread/obj/*.o libdvdnav/obj/*.o $(BUNDLE1_O)
-+		$(WRAPPER) $(DVDCSS_O) libdvdnav/obj/*.o $(BUNDLE1_O)
- 
- else
- 
-@@ -59,8 +57,8 @@ $(SYSDIR)/libdvdcss-$(ARCH).so: $(WRAPPER) libdvdcss/src/.libs/libdvdcss.a
- 		libdvdcss/src/*.o -Wl,--unresolved-symbols=ignore-all -lm \
- 		`cat $(WRAPPER:.o=.def)` $(WRAPPER)
- 
--$(SYSDIR)/libdvdnav-$(ARCH).so: $(WRAPPER) $(DVDCSS_A) libdvdread/obj/libdvdread.a libdvdnav/obj/libdvdnav.a
--	$(CC) -o $@ $(LDFLAGS) -Wl,--soname,$@ $(DVDCSS_O) libdvdread/obj/*.o libdvdnav/obj/*.o -lm \
-+$(SYSDIR)/libdvdnav-$(ARCH).so: $(WRAPPER) $(DVDCSS_A) libdvdnav/obj/libdvdnav.a
-+	$(CC) -o $@ $(LDFLAGS) -Wl,--soname,$@ $(DVDCSS_O) libdvdnav/obj/*.o -lm \
- 		-Wl,--unresolved-symbols=ignore-all \
- 		`cat $(WRAPPER:.o=.def)` $(WRAPPER)
- 
-@@ -70,10 +68,6 @@ libdvdcss/src/.libs/libdvdcss.a: libdvdcss;
- libdvdcss: compile
- 	$(MAKE) -C $@
- 
--libdvdread/obj/libdvdread.a: libdvdread;
--libdvdread: compile
--	$(MAKE) -C $@
--
- libdvdnav/obj/libdvdnav.a: libdvdnav;
- libdvdnav: compile
- 	$(MAKE) -C $@
--- 
-1.8.5.3
-
diff --git a/ffmpeg3.patch b/ffmpeg3.patch
deleted file mode 100644
index 79e7d85..0000000
--- a/ffmpeg3.patch
+++ /dev/null
@@ -1,420 +0,0 @@
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp	2016-03-31 21:13:02.941888135 +0900
-@@ -42,7 +42,7 @@
- #include "libswscale/swscale.h"
- }
- 
--// allocate a new picture (PIX_FMT_YUV420P)
-+// allocate a new picture (AV_PIX_FMT_YUV420P)
- DVDVideoPicture* CDVDCodecUtils::AllocatePicture(int iWidth, int iHeight)
- {
-   DVDVideoPicture* pPicture = new DVDVideoPicture;
-@@ -267,11 +267,11 @@
- 
-         int dstformat;
-         if (format == RENDER_FMT_UYVY422)
--          dstformat = PIX_FMT_UYVY422;
-+          dstformat = AV_PIX_FMT_UYVY422;
-         else
--          dstformat = PIX_FMT_YUYV422;
-+          dstformat = AV_PIX_FMT_YUYV422;
- 
--        struct SwsContext *ctx = sws_getContext(pSrc->iWidth, pSrc->iHeight, PIX_FMT_YUV420P,
-+        struct SwsContext *ctx = sws_getContext(pSrc->iWidth, pSrc->iHeight, AV_PIX_FMT_YUV420P,
-                                                            pPicture->iWidth, pPicture->iHeight, (AVPixelFormat)dstformat,
-                                                            SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
-         sws_scale(ctx, src, srcStride, 0, pSrc->iHeight, dst, dstStride);
-@@ -464,25 +464,25 @@
- }
- 
- struct EFormatMap {
--  PixelFormat   pix_fmt;
-+  AVPixelFormat   pix_fmt;
-   ERenderFormat format;
- };
- 
- static const EFormatMap g_format_map[] = {
--   { PIX_FMT_YUV420P,     RENDER_FMT_YUV420P    }
--,  { PIX_FMT_YUVJ420P,    RENDER_FMT_YUV420P    }
--,  { PIX_FMT_YUV420P10,   RENDER_FMT_YUV420P10  }
--,  { PIX_FMT_YUV420P16,   RENDER_FMT_YUV420P16  }
--,  { PIX_FMT_UYVY422,     RENDER_FMT_UYVY422    }
--,  { PIX_FMT_YUYV422,     RENDER_FMT_YUYV422    }
--,  { PIX_FMT_VAAPI_VLD,   RENDER_FMT_VAAPI      }
--,  { PIX_FMT_DXVA2_VLD,   RENDER_FMT_DXVA       }
--,  { PIX_FMT_NONE     ,   RENDER_FMT_NONE       }
-+   { AV_PIX_FMT_YUV420P,     RENDER_FMT_YUV420P    }
-+,  { AV_PIX_FMT_YUVJ420P,    RENDER_FMT_YUV420P    }
-+,  { AV_PIX_FMT_YUV420P10,   RENDER_FMT_YUV420P10  }
-+,  { AV_PIX_FMT_YUV420P16,   RENDER_FMT_YUV420P16  }
-+,  { AV_PIX_FMT_UYVY422,     RENDER_FMT_UYVY422    }
-+,  { AV_PIX_FMT_YUYV422,     RENDER_FMT_YUYV422    }
-+,  { AV_PIX_FMT_VAAPI_VLD,   RENDER_FMT_VAAPI      }
-+,  { AV_PIX_FMT_DXVA2_VLD,   RENDER_FMT_DXVA       }
-+,  { AV_PIX_FMT_NONE     ,   RENDER_FMT_NONE       }
- };
- 
- ERenderFormat CDVDCodecUtils::EFormatFromPixfmt(int fmt)
- {
--  for(const EFormatMap *p = g_format_map; p->pix_fmt != PIX_FMT_NONE; ++p)
-+  for(const EFormatMap *p = g_format_map; p->pix_fmt != AV_PIX_FMT_NONE; ++p)
-   {
-     if(p->pix_fmt == fmt)
-       return p->format;
-@@ -492,10 +492,10 @@
- 
- int CDVDCodecUtils::PixfmtFromEFormat(ERenderFormat fmt)
- {
--  for(const EFormatMap *p = g_format_map; p->pix_fmt != PIX_FMT_NONE; ++p)
-+  for(const EFormatMap *p = g_format_map; p->pix_fmt != AV_PIX_FMT_NONE; ++p)
-   {
-     if(p->format == fmt)
-       return p->pix_fmt;
-   }
--  return PIX_FMT_NONE;
-+  return AV_PIX_FMT_NONE;
- }
---- xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp~	2016-04-15 00:11:54.000000000 +0300
-+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp	2016-04-15 00:17:02.509741123 +0300
-@@ -79,8 +79,8 @@
-   STATE_SW_MULTI
- };
- 
--enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
--                                                , const PixelFormat * fmt )
-+enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
-+                                                , const AVPixelFormat * fmt )
- {
-   CDVDVideoCodecFFmpeg* ctx  = (CDVDVideoCodecFFmpeg*)avctx->opaque;
- 
-@@ -97,8 +97,8 @@
-     return avcodec_default_get_format(avctx, fmt);
-   }
- 
--  const PixelFormat * cur = fmt;
--  while(*cur != PIX_FMT_NONE)
-+  const AVPixelFormat * cur = fmt;
-+  while(*cur != AV_PIX_FMT_NONE)
-   {
- #ifdef HAVE_LIBVDPAU
-     if(VDPAU::CDecoder::IsVDPAUFormat(*cur) && CSettings::Get().GetBool("videoplayer.usevdpau"))
-@@ -137,7 +137,7 @@
- #endif
- #ifdef HAVE_LIBVA
-     // mpeg4 vaapi decoding is disabled
--    if(*cur == PIX_FMT_VAAPI_VLD && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVAAPI))
-+    if(*cur == AV_PIX_FMT_VAAPI_VLD && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVAAPI))
-     {
-       VAAPI::CDecoder* dec = new VAAPI::CDecoder();
-       if(dec->Open(avctx, ctx->m_pCodecContext, *cur, ctx->m_uSurfacesCount) == true)
-@@ -216,11 +216,11 @@
- 
-   for(std::vector<ERenderFormat>::iterator it = options.m_formats.begin(); it != options.m_formats.end(); ++it)
-   {
--    m_formats.push_back((PixelFormat)CDVDCodecUtils::PixfmtFromEFormat(*it));
-+    m_formats.push_back((AVPixelFormat)CDVDCodecUtils::PixfmtFromEFormat(*it));
-     if(*it == RENDER_FMT_YUV420P)
--      m_formats.push_back(PIX_FMT_YUVJ420P);
-+      m_formats.push_back(AV_PIX_FMT_YUVJ420P);
-   }
--  m_formats.push_back(PIX_FMT_NONE); /* always add none to get a terminated list in ffmpeg world */
-+  m_formats.push_back(AV_PIX_FMT_NONE); /* always add none to get a terminated list in ffmpeg world */
- 
-   pCodec = avcodec_find_decoder(hints.codec);
- 
-@@ -660,7 +660,7 @@
-   pDvdVideoPicture->color_transfer = m_pCodecContext->color_trc;
-   pDvdVideoPicture->color_matrix = m_pCodecContext->colorspace;
-   if(m_pCodecContext->color_range == AVCOL_RANGE_JPEG
--  || m_pCodecContext->pix_fmt     == PIX_FMT_YUVJ420P)
-+  || m_pCodecContext->pix_fmt     == AV_PIX_FMT_YUVJ420P)
-     pDvdVideoPicture->color_range = 1;
-   else
-     pDvdVideoPicture->color_range = 0;
-@@ -743,8 +743,8 @@
-   pDvdVideoPicture->iFlags |= pDvdVideoPicture->data[0] ? 0 : DVP_FLAG_DROPPED;
-   pDvdVideoPicture->extended_format = 0;
- 
--  PixelFormat pix_fmt;
--  pix_fmt = (PixelFormat)m_pFrame->format;
-+  AVPixelFormat pix_fmt;
-+  pix_fmt = (AVPixelFormat)m_pFrame->format;
- 
-   pDvdVideoPicture->format = CDVDCodecUtils::EFormatFromPixfmt(pix_fmt);
-   return true;
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h	2016-03-31 21:00:47.697798052 +0900
-@@ -46,7 +46,7 @@
-     public:
-              IHardwareDecoder() {}
-     virtual ~IHardwareDecoder() {};
--    virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces) = 0;
-+    virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces) = 0;
-     virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame) = 0;
-     virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) = 0;
-     virtual int  Check     (AVCodecContext* avctx) = 0;
-@@ -77,7 +77,7 @@
-   void               SetHardware(IHardwareDecoder* hardware);
- 
- protected:
--  static enum PixelFormat GetFormat(struct AVCodecContext * avctx, const PixelFormat * fmt);
-+  static enum AVPixelFormat GetFormat(struct AVCodecContext * avctx, const AVPixelFormat * fmt);
- 
-   int  FilterOpen(const std::string& filters, bool scale);
-   void FilterClose();
-@@ -121,7 +121,7 @@
-   int m_iLastKeyframe;
-   double m_dts;
-   bool   m_started;
--  std::vector<PixelFormat> m_formats;
-+  std::vector<AVPixelFormat> m_formats;
-   double m_decoderPts;
-   int    m_skippedDeint;
-   bool   m_requestSkipDeint;
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp	2016-03-31 21:16:03.131015505 +0900
-@@ -479,7 +479,7 @@
-   Close();
- }
- 
--bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat fmt, unsigned int surfaces)
-+bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat fmt, unsigned int surfaces)
- {
-   // don't support broken wrappers by default
-   // nvidia cards with a vaapi to vdpau wrapper
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h	2016-03-31 21:14:41.633219057 +0900
-@@ -406,7 +406,7 @@
-   CDecoder();
-   virtual ~CDecoder();
- 
--  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0);
-+  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0);
-   virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame);
-   virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
-   virtual void Reset();
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp	2016-03-31 21:15:34.730618946 +0900
-@@ -483,7 +483,7 @@
-   m_vdpauConfig.context = 0;
- }
- 
--bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat fmt, unsigned int surfaces)
-+bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat fmt, unsigned int surfaces)
- {
-   // check if user wants to decode this format with VDPAU
-   std::string gpuvendor = g_Windowing.GetRenderVendor();
-@@ -757,7 +757,7 @@
-   return 0;
- }
- 
--bool CDecoder::IsVDPAUFormat(PixelFormat format)
-+bool CDecoder::IsVDPAUFormat(AVPixelFormat format)
- {
-   if (format == AV_PIX_FMT_VDPAU)
-     return true;
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h	2016-03-31 21:14:26.429677869 +0900
-@@ -556,7 +556,7 @@
-   CDecoder();
-   virtual ~CDecoder();
- 
--  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0);
-+  virtual bool Open      (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0);
-   virtual int  Decode    (AVCodecContext* avctx, AVFrame* frame);
-   virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
-   virtual void Reset();
-@@ -571,7 +571,7 @@
-   bool Supports(VdpVideoMixerFeature feature);
-   bool Supports(EINTERLACEMETHOD method);
-   EINTERLACEMETHOD AutoInterlaceMethod();
--  static bool IsVDPAUFormat(PixelFormat fmt);
-+  static bool IsVDPAUFormat(AVPixelFormat fmt);
- 
-   static void FFReleaseBuffer(void *opaque, uint8_t *data);
-   static int FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags);
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp	2016-03-31 21:16:43.421582924 +0900
-@@ -1617,7 +1617,7 @@
- 
-   // for video we need a decoder to get desired information into codec context
-   if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO && st->codec->extradata &&
--      (!st->codec->width || st->codec->pix_fmt == PIX_FMT_NONE))
-+      (!st->codec->width || st->codec->pix_fmt == AV_PIX_FMT_NONE))
-   {
-     // open a decoder, it will be cleared down by ffmpeg on closing the stream
-     if (!st->codec->codec)
-@@ -1674,7 +1674,7 @@
-       st = m_pFormatContext->streams[idx];
-       if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
-       {
--        if (st->codec->width && st->codec->pix_fmt != PIX_FMT_NONE)
-+        if (st->codec->width && st->codec->pix_fmt != AV_PIX_FMT_NONE)
-           return true;
-         hasVideo = true;
-       }
-@@ -1687,7 +1687,7 @@
-       st = m_pFormatContext->streams[i];
-       if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
-       {
--        if (st->codec->width && st->codec->pix_fmt != PIX_FMT_NONE)
-+        if (st->codec->width && st->codec->pix_fmt != AV_PIX_FMT_NONE)
-           return true;
-         hasVideo = true;
-       }
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDFileInfo.cpp xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDFileInfo.cpp
---- xbmc-15.0-Isengard.orig/xbmc/cores/dvdplayer/DVDFileInfo.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/dvdplayer/DVDFileInfo.cpp	2016-03-31 21:10:31.139940012 +0900
-@@ -275,7 +275,7 @@
- 
-             uint8_t *pOutBuf = new uint8_t[nWidth * nHeight * 4];
-             struct SwsContext *context = sws_getContext(picture.iWidth, picture.iHeight,
--                  PIX_FMT_YUV420P, nWidth, nHeight, PIX_FMT_BGRA, SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
-+                  AV_PIX_FMT_YUV420P, nWidth, nHeight, AV_PIX_FMT_BGRA, SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
- 
-             if (context)
-             {
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/FFmpeg.h xbmc-15.0-Isengard/xbmc/cores/FFmpeg.h
---- xbmc-15.0-Isengard.orig/xbmc/cores/FFmpeg.h	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/FFmpeg.h	2016-03-31 21:09:46.016055600 +0900
-@@ -39,13 +39,13 @@
-   int flags = 0;
- 
-   if (cpuFeatures & CPU_FEATURE_MMX)
--    flags |= SWS_CPU_CAPS_MMX;
-+    flags |= PP_CPU_CAPS_MMX;
-   if (cpuFeatures & CPU_FEATURE_MMX2)
--    flags |= SWS_CPU_CAPS_MMX2;
-+    flags |= PP_CPU_CAPS_MMX2;
-   if (cpuFeatures & CPU_FEATURE_3DNOW)
--    flags |= SWS_CPU_CAPS_3DNOW;
-+    flags |= PP_CPU_CAPS_3DNOW;
-   if (cpuFeatures & CPU_FEATURE_ALTIVEC)
--    flags |= SWS_CPU_CAPS_ALTIVEC;
-+    flags |= PP_CPU_CAPS_ALTIVEC;
- 
-   return flags;
- }
-diff -ur xbmc-15.0-Isengard.orig/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp xbmc-15.0-Isengard/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
---- xbmc-15.0-Isengard.orig/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp	2016-03-31 21:18:55.470144206 +0900
-@@ -2932,7 +2932,7 @@
-   }
-   else if (m_format == RENDER_FMT_NV12)
-   {
--    srcFormat = PIX_FMT_NV12;
-+    srcFormat = AV_PIX_FMT_NV12;
-     for (int i = 0; i < 2; i++)
-     {
-       src[i]       = im->plane[i];
-@@ -2941,13 +2941,13 @@
-   }
-   else if (m_format == RENDER_FMT_YUYV422)
-   {
--    srcFormat    = PIX_FMT_YUYV422;
-+    srcFormat    = AV_PIX_FMT_YUYV422;
-     src[0]       = im->plane[0];
-     srcStride[0] = im->stride[0];
-   }
-   else if (m_format == RENDER_FMT_UYVY422)
-   {
--    srcFormat    = PIX_FMT_UYVY422;
-+    srcFormat    = AV_PIX_FMT_UYVY422;
-     src[0]       = im->plane[0];
-     srcStride[0] = im->stride[0];
-   }
-@@ -2965,7 +2965,7 @@
- 
-   m_context = sws_getCachedContext(m_context,
-                                                  im->width, im->height, (AVPixelFormat)srcFormat,
--                                                 im->width, im->height, (AVPixelFormat)PIX_FMT_BGRA,
-+                                                 im->width, im->height, (AVPixelFormat)AV_PIX_FMT_BGRA,
-                                                  SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
- 
-   uint8_t *dst[]       = { m_rgbBuffer, 0, 0, 0 };
-@@ -2995,7 +2995,7 @@
- 
-   if (m_format == RENDER_FMT_YUV420P)
-   {
--    srcFormat = PIX_FMT_YUV420P;
-+    srcFormat = AV_PIX_FMT_YUV420P;
-     for (int i = 0; i < 3; i++)
-     {
-       srcTop[i]       = im->plane[i];
-@@ -3006,7 +3006,7 @@
-   }
-   else if (m_format == RENDER_FMT_NV12)
-   {
--    srcFormat = PIX_FMT_NV12;
-+    srcFormat = AV_PIX_FMT_NV12;
-     for (int i = 0; i < 2; i++)
-     {
-       srcTop[i]       = im->plane[i];
-@@ -3017,7 +3017,7 @@
-   }
-   else if (m_format == RENDER_FMT_YUYV422)
-   {
--    srcFormat       = PIX_FMT_YUYV422;
-+    srcFormat       = AV_PIX_FMT_YUYV422;
-     srcTop[0]       = im->plane[0];
-     srcStrideTop[0] = im->stride[0] * 2;
-     srcBot[0]       = im->plane[0] + im->stride[0];
-@@ -3025,7 +3025,7 @@
-   }
-   else if (m_format == RENDER_FMT_UYVY422)
-   {
--    srcFormat       = PIX_FMT_UYVY422;
-+    srcFormat       = AV_PIX_FMT_UYVY422;
-     srcTop[0]       = im->plane[0];
-     srcStrideTop[0] = im->stride[0] * 2;
-     srcBot[0]       = im->plane[0] + im->stride[0];
-@@ -3045,7 +3045,7 @@
- 
-   m_context = sws_getCachedContext(m_context,
-                                                  im->width, im->height >> 1, (AVPixelFormat)srcFormat,
--                                                 im->width, im->height >> 1, (AVPixelFormat)PIX_FMT_BGRA,
-+                                                 im->width, im->height >> 1, (AVPixelFormat)AV_PIX_FMT_BGRA,
-                                                  SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
-   uint8_t *dstTop[]    = { m_rgbBuffer, 0, 0, 0 };
-   uint8_t *dstBot[]    = { m_rgbBuffer + m_sourceWidth * m_sourceHeight * 2, 0, 0, 0 };
-diff -ur xbmc-15.0-Isengard.orig/xbmc/video/FFmpegVideoDecoder.cpp xbmc-15.0-Isengard/xbmc/video/FFmpegVideoDecoder.cpp
---- xbmc-15.0-Isengard.orig/xbmc/video/FFmpegVideoDecoder.cpp	2015-07-22 03:41:29.000000000 +0900
-+++ xbmc-15.0-Isengard/xbmc/video/FFmpegVideoDecoder.cpp	2016-03-31 21:37:37.869490415 +0900
-@@ -248,7 +248,7 @@
-       return false;
- 
-     // Due to a bug in swsscale we need to allocate one extra line of data
--    if ( avpicture_alloc( m_pFrameRGB, PIX_FMT_RGB32, m_frameRGBwidth, m_frameRGBheight + 1 ) < 0 )
-+    if ( avpicture_alloc( m_pFrameRGB, AV_PIX_FMT_RGB32, m_frameRGBwidth, m_frameRGBheight + 1 ) < 0 )
-       return false;
-   }
- 
-@@ -283,7 +283,7 @@
- 
-   // We got the video frame, render it into the picture buffer
-   struct SwsContext * context = sws_getContext( m_pCodecCtx->width, m_pCodecCtx->height, m_pCodecCtx->pix_fmt,
--                           m_frameRGBwidth, m_frameRGBheight, PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL );
-+                           m_frameRGBwidth, m_frameRGBheight, AV_PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL );
- 
-   sws_scale( context, m_pFrame->data, m_pFrame->linesize, 0, m_pCodecCtx->height,
-                                                                      m_pFrameRGB->data, m_pFrameRGB->linesize );
---- xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp~	2016-02-20 17:21:19.000000000 +0200
-+++ xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp	2016-04-15 00:56:59.263272399 +0300
-@@ -342,8 +342,8 @@
-                           uint8_t *out_pixels, unsigned int out_width, unsigned int out_height, unsigned int out_pitch,
-                           CPictureScalingAlgorithm::Algorithm scalingAlgorithm /* = CPictureScalingAlgorithm::NoAlgorithm */)
- {
--  struct SwsContext *context = sws_getContext(in_width, in_height, PIX_FMT_BGRA,
--                                                         out_width, out_height, PIX_FMT_BGRA,
-+  struct SwsContext *context = sws_getContext(in_width, in_height, AV_PIX_FMT_BGRA,
-+                                                         out_width, out_height, AV_PIX_FMT_BGRA,
-                                                          CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm) | SwScaleCPUFlags(), NULL, NULL, NULL);
- 
-   uint8_t *src[] = { in_pixels, 0, 0, 0 };
diff --git a/fmt.patch b/fmt.patch
deleted file mode 100644
index 458666c..0000000
--- a/fmt.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 18ff80a9c169fb969b75e2143d9f1f234b71a730 Mon Sep 17 00:00:00 2001
-From: Craig Andrews <candrews at integralblue.com>
-Date: Thu, 24 Jun 2021 20:41:11 -0400
-Subject: [PATCH] [utils] include fmt/xchar.h
-
-fmt 8 moved wchar/custom char overloads to xchar.h, so for fmt 8 compatibility, xchar.h must be included
-
-See https://github.com/fmtlib/fmt/commit/76ee490468212f8705a1421b4c88f8f814b2d351
----
- xbmc/utils/StringUtils.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/xbmc/utils/StringUtils.h b/xbmc/utils/StringUtils.h
-index ca6f82953d90a..2dc5c3f03af2f 100644
---- a/xbmc/utils/StringUtils.h
-+++ b/xbmc/utils/StringUtils.h
-@@ -36,6 +36,9 @@
- #if FMT_VERSION >= 40000
- #include <fmt/printf.h>
- #endif
-+#if FMT_VERSION >= 80000
-+#include <fmt/xchar.h>
-+#endif
- 
- #include "XBDateTime.h"
- #include "utils/params_check_macros.h"
diff --git a/gcc5.patch b/gcc5.patch
deleted file mode 100644
index 07a76a2..0000000
--- a/gcc5.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- xbmc-16.1-Jarvis/xbmc/filesystem/FTPParse.cpp.orig	2016-04-24 08:48:30.000000000 +0200
-+++ xbmc-16.1-Jarvis/xbmc/filesystem/FTPParse.cpp	2017-12-11 17:11:03.079955624 +0100
-@@ -34,6 +34,8 @@
- #include <cmath>
- #include "FTPParse.h"
- 
-+using std::string;
-+
- CFTPParse::CFTPParse()
- {
-   m_flagtrycwd = 0;
---- xbmc-16.1-Jarvis/lib/cximage-6.0/CxImage/ximadsp.cpp.orig	2016-04-24 08:48:30.000000000 +0200
-+++ xbmc-16.1-Jarvis/lib/cximage-6.0/CxImage/ximadsp.cpp	2017-12-11 18:34:55.026753161 +0100
-@@ -3,12 +3,14 @@
-  * CxImage version 6.0.0 02/Feb/2008
-  */
- 
-+#if CXIMAGE_SUPPORT_DSP
-+// include <queue> before any local headers, as they define min/max as macros
-+#include <queue>
-+
- #include "ximage.h"
- 
- #include "ximaiter.h"
- 
--#if CXIMAGE_SUPPORT_DSP
--
- ////////////////////////////////////////////////////////////////////////////////
- /**
-  * Converts the image to B&W.
-@@ -3477,7 +3479,6 @@
- }
- 
- ////////////////////////////////////////////////////////////////////////////////
--#include <queue>
- ////////////////////////////////////////////////////////////////////////////////
- /**
-  * Flood Fill
diff --git a/jpeglib-boolean.patch b/jpeglib-boolean.patch
deleted file mode 100644
index 52283b8..0000000
--- a/jpeglib-boolean.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- xbmc-12.3-Frodo/xbmc/guilib/JpegIO.cpp~	2013-12-12 22:47:49.000000000 +0100
-+++ xbmc-12.3-Frodo/xbmc/guilib/JpegIO.cpp	2014-01-03 18:43:06.138467273 +0100
-@@ -341,7 +341,7 @@
-   else
-   {
-     jpeg_save_markers (&m_cinfo, JPEG_APP0 + 1, 0xFFFF);
--    jpeg_read_header(&m_cinfo, true);
-+    jpeg_read_header(&m_cinfo, TRUE);
- 
-     /*  libjpeg can scale the image for us if it is too big. It must be in the format
-     num/denom, where (for our purposes) that is [1-8]/8 where 8/8 is the unscaled image.
---- xbmc-12.3-Frodo/xbmc/guilib/JpegIO.h~	2014-01-03 11:07:38.000000000 +0100
-+++ xbmc-12.3-Frodo/xbmc/guilib/JpegIO.h	2014-01-03 11:08:16.622039556 +0100
-@@ -26,6 +26,8 @@
- #pragma comment(lib, "turbojpeg-static.lib")
- #endif
- 
-+#undef TRUE
-+#undef FALSE
- #include <jpeglib.h>
- #include "utils/StdString.h"
- 
---- xbmc-12.3-Frodo/lib/cximage-6.0/CxImage/ximajpg.cpp~	2013-12-12 22:47:49.000000000 +0100
-+++ xbmc-12.3-Frodo/lib/cximage-6.0/CxImage/ximajpg.cpp	2014-01-03 11:52:50.862020197 +0100
-@@ -10,7 +10,7 @@
- #if CXIMAGE_SUPPORT_JPG
- 
- #ifdef _LINUX
--#include <jmorecfg.h>
-+//#include <jmorecfg.h>
- #else
- #include "../jpeg/jmorecfg.h"
- #endif
-@@ -659,7 +659,7 @@
- 	if ((GetCodecOption(CXIMAGE_FORMAT_JPG) & ENCODE_SMOOTHING) != 0)
- 		cinfo.smoothing_factor = m_nSmoothing;
- 
--	jpeg_set_quality(&cinfo, GetJpegQuality(), (GetCodecOption(CXIMAGE_FORMAT_JPG) & ENCODE_BASELINE) != 0);
-+	jpeg_set_quality(&cinfo, GetJpegQuality(), (boolean)((GetCodecOption(CXIMAGE_FORMAT_JPG) & ENCODE_BASELINE) != 0));
- 
- //#ifdef C_PROGRESSIVE_SUPPORTED
- 	if ((GetCodecOption(CXIMAGE_FORMAT_JPG) & ENCODE_PROGRESSIVE) != 0)
---- xbmc-12.3-Frodo/lib/cximage-6.0/CxImage/ximajpg.h~	2014-01-03 11:51:37.000000000 +0100
-+++ xbmc-12.3-Frodo/lib/cximage-6.0/CxImage/ximajpg.h	2014-01-03 18:05:40.095150198 +0100
-@@ -29,6 +29,8 @@
- 
- extern "C" {
- #ifdef _LINUX
-+#undef TRUE
-+#undef FALSE
-  #include <jpeglib.h>
-  #include <jerror.h>
- #else
diff --git a/microhttpd.patch b/microhttpd.patch
deleted file mode 100644
index 63c0626..0000000
--- a/microhttpd.patch
+++ /dev/null
@@ -1,467 +0,0 @@
-From 59f9ee47dc60386f05bc331da9fd0420e22ed344 Mon Sep 17 00:00:00 2001
-From: Craig Andrews <candrews at integralblue.com>
-Date: Thu, 2 Jul 2020 14:36:09 -0400
-Subject: [PATCH] Compatibility with libmicrohttpd 0.9.71
-
-From the libmicrohttpd 0.9.71 release notes:
-
-The release introduces an 'enum MHD_Result' instead of
-for certain API misuse bugs by providing better types (not everything is
-an 'int').  While this does NOT change the binary API, this change
-_will_ cause compiler warnings for all legacy code -- until 'int' is
-replaced with 'enum MHD_Result'.
----
- xbmc/network/WebServer.cpp                    | 45 ++++++++++---------
- xbmc/network/WebServer.h                      | 30 ++++++-------
- .../httprequesthandler/HTTPFileHandler.cpp    |  2 +-
- .../httprequesthandler/HTTPFileHandler.h      |  2 +-
- .../HTTPImageTransformationHandler.cpp        |  2 +-
- .../HTTPImageTransformationHandler.h          |  2 +-
- .../httprequesthandler/HTTPJsonRpcHandler.cpp |  2 +-
- .../httprequesthandler/HTTPJsonRpcHandler.h   |  2 +-
- .../httprequesthandler/HTTPPythonHandler.cpp  |  2 +-
- .../httprequesthandler/HTTPPythonHandler.h    |  2 +-
- .../HTTPRequestHandlerUtils.cpp               |  4 +-
- .../HTTPRequestHandlerUtils.h                 |  4 +-
- .../HTTPWebinterfaceAddonsHandler.cpp         |  2 +-
- .../HTTPWebinterfaceAddonsHandler.h           |  2 +-
- .../httprequesthandler/IHTTPRequestHandler.h  |  8 +++-
- 15 files changed, 60 insertions(+), 51 deletions(-)
-
-diff --git a/xbmc/network/WebServer.cpp b/xbmc/network/WebServer.cpp
-index 783404227785..53549aafa9ce 100644
---- a/xbmc/network/WebServer.cpp
-+++ b/xbmc/network/WebServer.cpp
-@@ -86,7 +86,7 @@ static MHD_Response* create_response(size_t size, const void* data, int free, in
-   return MHD_create_response_from_buffer(size, const_cast<void*>(data), mode);
- }
- 
--int CWebServer::AskForAuthentication(const HTTPRequest& request) const
-+MHD_RESULT CWebServer::AskForAuthentication(const HTTPRequest& request) const
- {
-   struct MHD_Response *response = create_response(0, nullptr, MHD_NO, MHD_NO);
-   if (!response)
-@@ -95,7 +95,7 @@ int CWebServer::AskForAuthentication(const HTTPRequest& request) const
-     return MHD_NO;
-   }
- 
--  int ret = AddHeader(response, MHD_HTTP_HEADER_CONNECTION, "close");
-+  MHD_RESULT ret = AddHeader(response, MHD_HTTP_HEADER_CONNECTION, "close");
-   if (!ret)
-   {
-     CLog::Log(LOGERROR, "CWebServer[%hu]: unable to prepare HTTP Unauthorized response", m_port);
-@@ -105,7 +105,10 @@ int CWebServer::AskForAuthentication(const HTTPRequest& request) const
- 
-   LogResponse(request, MHD_HTTP_UNAUTHORIZED);
- 
--  ret = MHD_queue_basic_auth_fail_response(request.connection, "XBMC", response);
-+  // This MHD_RESULT cast is only necessary for libmicrohttpd 0.9.71
-+  // The return type of MHD_queue_basic_auth_fail_response was fixed for future versions
-+  // See https://git.gnunet.org/libmicrohttpd.git/commit/?id=860b42e9180da4dcd7e8690a3fcdb4e37e5772c5
-+  ret = static_cast<MHD_RESULT>(MHD_queue_basic_auth_fail_response(request.connection, "XBMC", response));
-   MHD_destroy_response(response);
- 
-   return ret;
-@@ -135,7 +138,7 @@ bool CWebServer::IsAuthenticated(const HTTPRequest& request) const
-   return authenticated;
- }
- 
--int CWebServer::AnswerToConnection(void *cls, struct MHD_Connection *connection,
-+MHD_RESULT CWebServer::AnswerToConnection(void *cls, struct MHD_Connection *connection,
-                       const char *url, const char *method,
-                       const char *version, const char *upload_data,
-                       size_t *upload_data_size, void **con_cls)
-@@ -163,7 +166,7 @@ int CWebServer::AnswerToConnection(void *cls, struct MHD_Connection *connection,
-   return webServer->HandlePartialRequest(connection, connectionHandler, request, upload_data, upload_data_size, con_cls);
- }
- 
--int CWebServer::HandlePartialRequest(struct MHD_Connection *connection, ConnectionHandler* connectionHandler, const HTTPRequest& request, const char *upload_data, size_t *upload_data_size, void **con_cls)
-+MHD_RESULT CWebServer::HandlePartialRequest(struct MHD_Connection *connection, ConnectionHandler* connectionHandler, const HTTPRequest& request, const char *upload_data, size_t *upload_data_size, void **con_cls)
- {
-   std::unique_ptr<ConnectionHandler> conHandler(connectionHandler);
- 
-@@ -276,7 +279,7 @@ int CWebServer::HandlePartialRequest(struct MHD_Connection *connection, Connecti
-   return SendErrorResponse(request, MHD_HTTP_NOT_FOUND, request.method);
- }
- 
--int CWebServer::HandlePostField(void *cls, enum MHD_ValueKind kind, const char *key,
-+MHD_RESULT CWebServer::HandlePostField(void *cls, enum MHD_ValueKind kind, const char *key,
-                                 const char *filename, const char *content_type,
-                                 const char *transfer_encoding, const char *data, uint64_t off,
-                                 size_t size)
-@@ -294,13 +297,13 @@ int CWebServer::HandlePostField(void *cls, enum MHD_ValueKind kind, const char *
-   return MHD_YES;
- }
- 
--int CWebServer::HandleRequest(const std::shared_ptr<IHTTPRequestHandler>& handler)
-+MHD_RESULT CWebServer::HandleRequest(const std::shared_ptr<IHTTPRequestHandler>& handler)
- {
-   if (handler == nullptr)
-     return MHD_NO;
- 
-   HTTPRequest request = handler->GetRequest();
--  int ret = handler->HandleRequest();
-+  MHD_RESULT ret = handler->HandleRequest();
-   if (ret == MHD_NO)
-   {
-     CLog::Log(LOGERROR, "CWebServer[%hu]: failed to handle HTTP request for %s", m_port, request.pathUrl.c_str());
-@@ -348,7 +351,7 @@ int CWebServer::HandleRequest(const std::shared_ptr<IHTTPRequestHandler>& handle
-   return FinalizeRequest(handler, responseDetails.status, response);
- }
- 
--int CWebServer::FinalizeRequest(const std::shared_ptr<IHTTPRequestHandler>& handler, int responseStatus, struct MHD_Response *response)
-+MHD_RESULT CWebServer::FinalizeRequest(const std::shared_ptr<IHTTPRequestHandler>& handler, int responseStatus, struct MHD_Response *response)
- {
-   if (handler == nullptr || response == nullptr)
-     return MHD_NO;
-@@ -562,7 +565,7 @@ void CWebServer::FinalizePostDataProcessing(ConnectionHandler *connectionHandler
-   MHD_destroy_post_processor(connectionHandler->postprocessor);
- }
- 
--int CWebServer::CreateMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const
-+MHD_RESULT CWebServer::CreateMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const
- {
-   if (handler == nullptr)
-     return MHD_NO;
-@@ -620,7 +623,7 @@ int CWebServer::CreateMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestH
-   return CreateRangedMemoryDownloadResponse(handler, response);
- }
- 
--int CWebServer::CreateRangedMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const
-+MHD_RESULT CWebServer::CreateRangedMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const
- {
-   if (handler == nullptr)
-     return MHD_NO;
-@@ -700,7 +703,7 @@ int CWebServer::CreateRangedMemoryDownloadResponse(const std::shared_ptr<IHTTPRe
-   return CreateMemoryDownloadResponse(request.connection, result.c_str(), result.size(), false, true, response);
- }
- 
--int CWebServer::CreateRedirect(struct MHD_Connection *connection, const std::string &strURL, struct MHD_Response *&response) const
-+MHD_RESULT CWebServer::CreateRedirect(struct MHD_Connection *connection, const std::string &strURL, struct MHD_Response *&response) const
- {
-   response = create_response(0, nullptr, MHD_NO, MHD_NO);
-   if (response == nullptr)
-@@ -713,7 +716,7 @@ int CWebServer::CreateRedirect(struct MHD_Connection *connection, const std::str
-   return MHD_YES;
- }
- 
--int CWebServer::CreateFileDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const
-+MHD_RESULT CWebServer::CreateFileDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const
- {
-   if (handler == nullptr)
-     return MHD_NO;
-@@ -850,7 +853,7 @@ int CWebServer::CreateFileDownloadResponse(const std::shared_ptr<IHTTPRequestHan
-   return MHD_YES;
- }
- 
--int CWebServer::CreateErrorResponse(struct MHD_Connection *connection, int responseType, HTTPMethod method, struct MHD_Response *&response) const
-+MHD_RESULT CWebServer::CreateErrorResponse(struct MHD_Connection *connection, int responseType, HTTPMethod method, struct MHD_Response *&response) const
- {
-   size_t payloadSize = 0;
-   const void *payload = nullptr;
-@@ -881,7 +884,7 @@ int CWebServer::CreateErrorResponse(struct MHD_Connection *connection, int respo
-   return MHD_YES;
- }
- 
--int CWebServer::CreateMemoryDownloadResponse(struct MHD_Connection *connection, const void *data, size_t size, bool free, bool copy, struct MHD_Response *&response) const
-+MHD_RESULT CWebServer::CreateMemoryDownloadResponse(struct MHD_Connection *connection, const void *data, size_t size, bool free, bool copy, struct MHD_Response *&response) const
- {
-   response = create_response(size, const_cast<void*>(data), free ? MHD_YES : MHD_NO, copy ? MHD_YES : MHD_NO);
-   if (response == nullptr)
-@@ -893,20 +896,20 @@ int CWebServer::CreateMemoryDownloadResponse(struct MHD_Connection *connection,
-   return MHD_YES;
- }
- 
--int CWebServer::SendResponse(const HTTPRequest& request, int responseStatus, MHD_Response *response) const
-+MHD_RESULT CWebServer::SendResponse(const HTTPRequest& request, int responseStatus, MHD_Response *response) const
- {
-   LogResponse(request, responseStatus);
- 
--  int ret = MHD_queue_response(request.connection, responseStatus, response);
-+  MHD_RESULT ret = MHD_queue_response(request.connection, responseStatus, response);
-   MHD_destroy_response(response);
- 
-   return ret;
- }
- 
--int CWebServer::SendErrorResponse(const HTTPRequest& request, int errorType, HTTPMethod method) const
-+MHD_RESULT CWebServer::SendErrorResponse(const HTTPRequest& request, int errorType, HTTPMethod method) const
- {
-   struct MHD_Response *response = nullptr;
--  int ret = CreateErrorResponse(request.connection, errorType, method, response);
-+  MHD_RESULT ret = CreateErrorResponse(request.connection, errorType, method, response);
-   if (ret == MHD_NO)
-     return MHD_NO;
- 
-@@ -1296,10 +1299,10 @@ std::string CWebServer::CreateMimeTypeFromExtension(const char *ext)
-   return CMime::GetMimeType(ext);
- }
- 
--int CWebServer::AddHeader(struct MHD_Response *response, const std::string &name, const std::string &value) const
-+MHD_RESULT CWebServer::AddHeader(struct MHD_Response *response, const std::string &name, const std::string &value) const
- {
-   if (response == nullptr || name.empty())
--    return 0;
-+    return MHD_NO;
- 
-   CLog::Log(LOGDEBUG, LOGWEBSERVER, "CWebServer[%hu] [OUT] %s: %s", m_port, name.c_str(), value.c_str());
- 
-diff --git a/xbmc/network/WebServer.h b/xbmc/network/WebServer.h
-index c7a909304a21..1274a2e0ed40 100644
---- a/xbmc/network/WebServer.h
-+++ b/xbmc/network/WebServer.h
-@@ -56,17 +56,17 @@ class CWebServer
- 
-   virtual void LogRequest(const char* uri) const;
- 
--  virtual int HandlePartialRequest(struct MHD_Connection *connection, ConnectionHandler* connectionHandler, const HTTPRequest& request,
-+  virtual MHD_RESULT HandlePartialRequest(struct MHD_Connection *connection, ConnectionHandler* connectionHandler, const HTTPRequest& request,
-                                    const char *upload_data, size_t *upload_data_size, void **con_cls);
--  virtual int HandleRequest(const std::shared_ptr<IHTTPRequestHandler>& handler);
--  virtual int FinalizeRequest(const std::shared_ptr<IHTTPRequestHandler>& handler, int responseStatus, struct MHD_Response *response);
-+  virtual MHD_RESULT HandleRequest(const std::shared_ptr<IHTTPRequestHandler>& handler);
-+  virtual MHD_RESULT FinalizeRequest(const std::shared_ptr<IHTTPRequestHandler>& handler, int responseStatus, struct MHD_Response *response);
- 
- private:
-   struct MHD_Daemon* StartMHD(unsigned int flags, int port);
- 
-   std::shared_ptr<IHTTPRequestHandler> FindRequestHandler(const HTTPRequest& request) const;
- 
--  int AskForAuthentication(const HTTPRequest& request) const;
-+  MHD_RESULT AskForAuthentication(const HTTPRequest& request) const;
-   bool IsAuthenticated(const HTTPRequest& request) const;
- 
-   bool IsRequestCacheable(const HTTPRequest& request) const;
-@@ -76,18 +76,18 @@ class CWebServer
-   bool ProcessPostData(const HTTPRequest& request, ConnectionHandler *connectionHandler, const char *upload_data, size_t *upload_data_size, void **con_cls) const;
-   void FinalizePostDataProcessing(ConnectionHandler *connectionHandler) const;
- 
--  int CreateMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const;
--  int CreateRangedMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const;
-+  MHD_RESULT CreateMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const;
-+  MHD_RESULT CreateRangedMemoryDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const;
- 
--  int CreateRedirect(struct MHD_Connection *connection, const std::string &strURL, struct MHD_Response *&response) const;
--  int CreateFileDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const;
--  int CreateErrorResponse(struct MHD_Connection *connection, int responseType, HTTPMethod method, struct MHD_Response *&response) const;
--  int CreateMemoryDownloadResponse(struct MHD_Connection *connection, const void *data, size_t size, bool free, bool copy, struct MHD_Response *&response) const;
-+  MHD_RESULT CreateRedirect(struct MHD_Connection *connection, const std::string &strURL, struct MHD_Response *&response) const;
-+  MHD_RESULT CreateFileDownloadResponse(const std::shared_ptr<IHTTPRequestHandler>& handler, struct MHD_Response *&response) const;
-+  MHD_RESULT CreateErrorResponse(struct MHD_Connection *connection, int responseType, HTTPMethod method, struct MHD_Response *&response) const;
-+  MHD_RESULT CreateMemoryDownloadResponse(struct MHD_Connection *connection, const void *data, size_t size, bool free, bool copy, struct MHD_Response *&response) const;
- 
--  int SendResponse(const HTTPRequest& request, int responseStatus, MHD_Response *response) const;
--  int SendErrorResponse(const HTTPRequest& request, int errorType, HTTPMethod method) const;
-+  MHD_RESULT SendResponse(const HTTPRequest& request, int responseStatus, MHD_Response *response) const;
-+  MHD_RESULT SendErrorResponse(const HTTPRequest& request, int errorType, HTTPMethod method) const;
- 
--  int AddHeader(struct MHD_Response *response, const std::string &name, const std::string &value) const;
-+  MHD_RESULT AddHeader(struct MHD_Response *response, const std::string &name, const std::string &value) const;
- 
-   void LogRequest(const HTTPRequest& request) const;
-   void LogResponse(const HTTPRequest& request, int responseStatus) const;
-@@ -100,11 +100,11 @@ class CWebServer
-   static ssize_t ContentReaderCallback (void *cls, uint64_t pos, char *buf, size_t max);
-   static void ContentReaderFreeCallback(void *cls);
- 
--  static int AnswerToConnection (void *cls, struct MHD_Connection *connection,
-+  static MHD_RESULT AnswerToConnection (void *cls, struct MHD_Connection *connection,
-                         const char *url, const char *method,
-                         const char *version, const char *upload_data,
-                         size_t *upload_data_size, void **con_cls);
--  static int HandlePostField(void *cls, enum MHD_ValueKind kind, const char *key,
-+  static MHD_RESULT HandlePostField(void *cls, enum MHD_ValueKind kind, const char *key,
-                              const char *filename, const char *content_type,
-                              const char *transfer_encoding, const char *data, uint64_t off,
-                              size_t size);
-diff --git a/xbmc/network/httprequesthandler/HTTPFileHandler.cpp b/xbmc/network/httprequesthandler/HTTPFileHandler.cpp
-index 2101d49f0911..26e53901dbfa 100644
---- a/xbmc/network/httprequesthandler/HTTPFileHandler.cpp
-+++ b/xbmc/network/httprequesthandler/HTTPFileHandler.cpp
-@@ -23,7 +23,7 @@ CHTTPFileHandler::CHTTPFileHandler(const HTTPRequest &request)
-     m_lastModified()
- { }
- 
--int CHTTPFileHandler::HandleRequest()
-+MHD_RESULT CHTTPFileHandler::HandleRequest()
- {
-   return !m_url.empty() ? MHD_YES : MHD_NO;
- }
-diff --git a/xbmc/network/httprequesthandler/HTTPFileHandler.h b/xbmc/network/httprequesthandler/HTTPFileHandler.h
-index 3c74b5275092..6121315c6f5f 100644
---- a/xbmc/network/httprequesthandler/HTTPFileHandler.h
-+++ b/xbmc/network/httprequesthandler/HTTPFileHandler.h
-@@ -19,7 +19,7 @@ class CHTTPFileHandler : public IHTTPRequestHandler
- public:
-   ~CHTTPFileHandler() override = default;
- 
--  int HandleRequest() override;
-+  MHD_RESULT HandleRequest() override;
- 
-   bool CanHandleRanges() const override { return m_canHandleRanges; }
-   bool CanBeCached() const override { return m_canBeCached; }
-diff --git a/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.cpp b/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.cpp
-index de42e7fd3017..6902be012532 100644
---- a/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.cpp
-+++ b/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.cpp
-@@ -104,7 +104,7 @@ bool CHTTPImageTransformationHandler::CanHandleRequest(const HTTPRequest &reques
-           options.find(TRANSFORMATION_OPTION_HEIGHT) != options.end());
- }
- 
--int CHTTPImageTransformationHandler::HandleRequest()
-+MHD_RESULT CHTTPImageTransformationHandler::HandleRequest()
- {
-   if (m_response.type == HTTPError)
-     return MHD_YES;
-diff --git a/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.h b/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.h
-index c55015ec4eb0..0d17afc3250a 100644
---- a/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.h
-+++ b/xbmc/network/httprequesthandler/HTTPImageTransformationHandler.h
-@@ -23,7 +23,7 @@ class CHTTPImageTransformationHandler : public IHTTPRequestHandler
-   IHTTPRequestHandler* Create(const HTTPRequest &request) const override { return new CHTTPImageTransformationHandler(request); }
-   bool CanHandleRequest(const HTTPRequest &request)const  override;
- 
--  int HandleRequest() override;
-+  MHD_RESULT HandleRequest() override;
- 
-   bool CanHandleRanges() const override { return true; }
-   bool CanBeCached() const override { return true; }
-diff --git a/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.cpp b/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.cpp
-index e8e2fa36924b..a4c3c198eba3 100644
---- a/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.cpp
-+++ b/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.cpp
-@@ -25,7 +25,7 @@ bool CHTTPJsonRpcHandler::CanHandleRequest(const HTTPRequest &request) const
-   return (request.pathUrl.compare("/jsonrpc") == 0);
- }
- 
--int CHTTPJsonRpcHandler::HandleRequest()
-+MHD_RESULT CHTTPJsonRpcHandler::HandleRequest()
- {
-   CHTTPClient client(m_request.method);
-   bool isRequest = false;
-diff --git a/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.h b/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.h
-index 67c14b666ef6..2659fd549c25 100644
---- a/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.h
-+++ b/xbmc/network/httprequesthandler/HTTPJsonRpcHandler.h
-@@ -24,7 +24,7 @@ class CHTTPJsonRpcHandler : public IHTTPRequestHandler
-   IHTTPRequestHandler* Create(const HTTPRequest &request) const override { return new CHTTPJsonRpcHandler(request); }
-   bool CanHandleRequest(const HTTPRequest &request) const override;
- 
--  int HandleRequest() override;
-+  MHD_RESULT HandleRequest() override;
- 
-   HttpResponseRanges GetResponseData() const override;
- 
-diff --git a/xbmc/network/httprequesthandler/HTTPPythonHandler.cpp b/xbmc/network/httprequesthandler/HTTPPythonHandler.cpp
-index 5f9aeef10f2e..a07ef0d3ac31 100644
---- a/xbmc/network/httprequesthandler/HTTPPythonHandler.cpp
-+++ b/xbmc/network/httprequesthandler/HTTPPythonHandler.cpp
-@@ -112,7 +112,7 @@ bool CHTTPPythonHandler::CanHandleRequest(const HTTPRequest &request) const
-   return true;
- }
- 
--int CHTTPPythonHandler::HandleRequest()
-+MHD_RESULT CHTTPPythonHandler::HandleRequest()
- {
-   if (m_response.type == HTTPError || m_response.type == HTTPRedirect)
-     return MHD_YES;
-diff --git a/xbmc/network/httprequesthandler/HTTPPythonHandler.h b/xbmc/network/httprequesthandler/HTTPPythonHandler.h
-index 03c150693ff4..166430e68d51 100644
---- a/xbmc/network/httprequesthandler/HTTPPythonHandler.h
-+++ b/xbmc/network/httprequesthandler/HTTPPythonHandler.h
-@@ -25,7 +25,7 @@ class CHTTPPythonHandler : public IHTTPRequestHandler
-   bool CanBeCached() const override { return false; }
-   bool GetLastModifiedDate(CDateTime &lastModified) const override;
- 
--  int HandleRequest() override;
-+  MHD_RESULT HandleRequest() override;
- 
-   HttpResponseRanges GetResponseData() const override { return m_responseRanges; }
- 
-diff --git a/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.cpp b/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.cpp
-index 80d1d6733475..f2ea1f2e51ed 100644
---- a/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.cpp
-+++ b/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.cpp
-@@ -61,7 +61,7 @@ bool HTTPRequestHandlerUtils::GetRequestedRanges(struct MHD_Connection *connecti
-   return ranges.Parse(GetRequestHeaderValue(connection, MHD_HEADER_KIND, MHD_HTTP_HEADER_RANGE), totalLength);
- }
- 
--int HTTPRequestHandlerUtils::FillArgumentMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
-+MHD_RESULT HTTPRequestHandlerUtils::FillArgumentMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
- {
-   if (cls == nullptr || key == nullptr)
-     return MHD_NO;
-@@ -72,7 +72,7 @@ int HTTPRequestHandlerUtils::FillArgumentMap(void *cls, enum MHD_ValueKind kind,
-   return MHD_YES;
- }
- 
--int HTTPRequestHandlerUtils::FillArgumentMultiMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
-+MHD_RESULT HTTPRequestHandlerUtils::FillArgumentMultiMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
- {
-   if (cls == nullptr || key == nullptr)
-     return MHD_NO;
-diff --git a/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.h b/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.h
-index 9a07801914e4..0ec5ed1bf706 100644
---- a/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.h
-+++ b/xbmc/network/httprequesthandler/HTTPRequestHandlerUtils.h
-@@ -25,6 +25,6 @@ class HTTPRequestHandlerUtils
- private:
-   HTTPRequestHandlerUtils() = delete;
- 
--  static int FillArgumentMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value);
--  static int FillArgumentMultiMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value);
-+  static MHD_RESULT FillArgumentMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value);
-+  static MHD_RESULT FillArgumentMultiMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value);
- };
-diff --git a/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.cpp b/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.cpp
-index 01a6b503bdf6..0716a5df96ca 100644
---- a/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.cpp
-+++ b/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.cpp
-@@ -18,7 +18,7 @@ bool CHTTPWebinterfaceAddonsHandler::CanHandleRequest(const HTTPRequest &request
-   return (request.pathUrl.compare("/addons") == 0 || request.pathUrl.compare("/addons/") == 0);
- }
- 
--int CHTTPWebinterfaceAddonsHandler::HandleRequest()
-+MHD_RESULT CHTTPWebinterfaceAddonsHandler::HandleRequest()
- {
-   m_responseData = ADDON_HEADER;
-   ADDON::VECADDONS addons;
-diff --git a/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.h b/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.h
-index e9b1c6d29a41..23cea36d1436 100644
---- a/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.h
-+++ b/xbmc/network/httprequesthandler/HTTPWebinterfaceAddonsHandler.h
-@@ -21,7 +21,7 @@ class CHTTPWebinterfaceAddonsHandler : public IHTTPRequestHandler
-   IHTTPRequestHandler* Create(const HTTPRequest &request) const override { return new CHTTPWebinterfaceAddonsHandler(request); }
-   bool CanHandleRequest(const HTTPRequest &request) const override;
- 
--  int HandleRequest() override;
-+  MHD_RESULT HandleRequest() override;
- 
-   HttpResponseRanges GetResponseData() const override;
- 
-diff --git a/xbmc/network/httprequesthandler/IHTTPRequestHandler.h b/xbmc/network/httprequesthandler/IHTTPRequestHandler.h
-index 4b1e40a587a7..567c8e55ee9b 100644
---- a/xbmc/network/httprequesthandler/IHTTPRequestHandler.h
-+++ b/xbmc/network/httprequesthandler/IHTTPRequestHandler.h
-@@ -22,6 +22,12 @@
- 
- #include "utils/HttpRangeUtils.h"
- 
-+#if MHD_VERSION >= 0x00097002
-+using MHD_RESULT = MHD_Result;
-+#else
-+using MHD_RESULT = int;
-+#endif
-+
- class CDateTime;
- class CWebServer;
- 
-@@ -114,7 +120,7 @@ class IHTTPRequestHandler
-    *
-    * \return MHD_NO if a severe error has occurred otherwise MHD_YES.
-    */
--  virtual int HandleRequest() = 0;
-+  virtual MHD_RESULT HandleRequest() = 0;
- 
-   /*!
-    * \brief Whether the HTTP response could also be provided in ranges.
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kodi.git/commitdiff/9ba2f18ce725b802a8c55c43076619352ff2c81d



More information about the pld-cvs-commit mailing list