1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-07 06:40:06 +00:00

multimedia/kodi-devel: Update to latest commit

- Reenable OSS backend
- Fix Wayland build the right way and drop a bunch of patches by
  syncing Linux' ExtraTargets.cmake with FreeBSD's.

Changes:	d571386e6f...f4489bffe2
This commit is contained in:
Tobias Kortkamp 2018-04-20 08:50:41 +00:00
parent 747630c2f7
commit 9289022178
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=467813
6 changed files with 203 additions and 58 deletions

View File

@ -1,8 +1,7 @@
# $FreeBSD$
PORTNAME= kodi
DISTVERSION= 18.0.g201803211302
PORTREVISION= 3
DISTVERSION= 18.0.g201804180937
CATEGORIES= multimedia
PKGNAMESUFFIX?= -devel
@ -54,7 +53,7 @@ USES= autoreconf:build cmake:outsource,noninja compiler:c++11-lib \
USE_GITHUB= yes
GH_ACCOUNT= xbmc
GH_PROJECT= xbmc
GH_TAGNAME= d571386e6f848db993ac7f855fc911abc23e308a
GH_TAGNAME= f4489bffe22487bc906e79130832c14360a42a8a
USE_GNOME= libxslt libxml2
USE_JAVA= yes
JAVA_BUILD= yes
@ -78,18 +77,15 @@ PLIST_SUB= ARCH=${KODIARCH_${ARCH}:U${ARCH}} OPSYS=${OPSYS:tl}
OPTIONS_DEFINE= AVAHI CEC DBUS LIBBLURAY MYSQL NFS SMB SSH UPNP VAAPI \
VDPAU WEBSERVER
OPTIONS_DEFAULT= LIBBLURAY SNDIO SSH UPNP VAAPI VDPAU WEBSERVER X11
OPTIONS_DEFAULT= LIBBLURAY SSH UPNP VAAPI VDPAU WEBSERVER X11
OPTIONS_SINGLE= PLATFORM
OPTIONS_SINGLE_PLATFORM= GBM RPI WAYLAND X11
OPTIONS_EXCLUDE_amd64= RPI
OPTIONS_EXCLUDE_i386= RPI
OPTIONS_SUB= yes
# Choosing one of SNDIO or PULSEAUDIO is mandatory right now if you
# want audio output. The OSS backend is currently not hooked into
# Kodi's audio sink factory due to recent refactorings.
OPTIONS_MULTI= SOUND
OPTIONS_MULTI_SOUND= PULSEAUDIO SNDIO
OPTIONS_GROUP= SOUND
OPTIONS_GROUP_SOUND= PULSEAUDIO SNDIO
CEC_DESC= CEC adapter support
GBM_DESC= GBM support (requires a kernel with evdev support)
@ -141,6 +137,7 @@ UPNP_CMAKE_BOOL= ENABLE_UPNP
# XXX: Upstream is https://github.com/plutinosoft/Neptune
UPNP_CXXFLAGS= -DNPT_CONFIG_HAVE_ARPA_INET_H \
-DNPT_CONFIG_HAVE_GETADDRINFO \
-DNPT_CONFIG_HAVE_GETIFADDRS \
-DNPT_CONFIG_HAVE_INET_NTOP \
-DNPT_CONFIG_HAVE_INET_PTON \
-DNPT_CONFIG_HAVE_NET_IF_DL_H \
@ -157,6 +154,7 @@ WAYLAND_BUILD_DEPENDS= wayland-protocols>=0:graphics/wayland-protocols
WAYLAND_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="wayland" \
-DWAYLAND_RENDER_SYSTEM:STRING="gl"
WAYLAND_LIB_DEPENDS= libwayland-client++.so:graphics/waylandpp \
libwayland-client.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon
WEBSERVER_LIB_DEPENDS= libmicrohttpd.so:www/libmicrohttpd
@ -180,6 +178,10 @@ post-patch:
@${CP} ${WRKSRC}/cmake/platform/linux/gbm.cmake \
${WRKSRC}/cmake/platform/linux/rbpi.cmake \
${WRKSRC}/cmake/platform/freebsd
@${CP} ${WRKSRC}/cmake/scripts/linux/ExtraTargets.cmake \
${WRKSRC}/cmake/scripts/freebsd/ExtraTargets.cmake
@${CP} ${WRKSRC}/system/settings/linux.xml \
${WRKSRC}/system/settings/freebsd.xml
.if ${SLAVE_PORT} == no
post-install:

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1515769119
SHA256 (xbmc-xbmc-18.0.g201803211302-d571386e6f848db993ac7f855fc911abc23e308a_GH0.tar.gz) = 310597a7ef631ff7220c3d1cfcbff1be4de3464e0b15f6b1ec16ce7fb2adee4d
SIZE (xbmc-xbmc-18.0.g201803211302-d571386e6f848db993ac7f855fc911abc23e308a_GH0.tar.gz) = 41177182
TIMESTAMP = 1524056987
SHA256 (xbmc-xbmc-18.0.g201804180937-f4489bffe22487bc906e79130832c14360a42a8a_GH0.tar.gz) = 8f77f6cff2bcab9b31c1df120b3e044acbd55c93cb96ecb63830e37aeaf30bc5
SIZE (xbmc-xbmc-18.0.g201804180937-f4489bffe22487bc906e79130832c14360a42a8a_GH0.tar.gz) = 41117210

View File

@ -0,0 +1,176 @@
--- xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp
@@ -23,6 +23,7 @@
#include <limits.h>
#include <unistd.h>
+#include "cores/AudioEngine/AESinkFactory.h"
#include "cores/AudioEngine/Utils/AEUtil.h"
#include "utils/log.h"
#include "threads/SingleLock.h"
@@ -71,6 +72,25 @@ CAESinkOSS::CAESinkOSS()
CAESinkOSS::~CAESinkOSS()
{
Deinitialize();
+}
+
+void CAESinkOSS::Register()
+{
+ AE::AESinkRegEntry entry;
+ entry.sinkName = "OSS";
+ entry.createFunc = CAESinkOSS::Create;
+ entry.enumerateFunc = CAESinkOSS::EnumerateDevicesEx;
+ AE::CAESinkFactory::RegisterSink(entry);
+}
+
+IAESink* CAESinkOSS::Create(std::string &device, AEAudioFormat& desiredFormat)
+{
+ IAESink* sink = new CAESinkOSS();
+ if (sink->Initialize(desiredFormat, device))
+ return sink;
+
+ delete sink;
+ return nullptr;
}
std::string CAESinkOSS::GetDeviceUse(const AEAudioFormat& format, const std::string &device)
--- xbmc/cores/AudioEngine/Sinks/AESinkOSS.h.orig 2018-04-18 09:37:24 UTC
+++ xbmc/cores/AudioEngine/Sinks/AESinkOSS.h
@@ -33,6 +33,10 @@ class CAESinkOSS : public IAESink (public)
CAESinkOSS();
~CAESinkOSS() override;
+ static void Register();
+ static IAESink* Create(std::string &device, AEAudioFormat &desiredFormat);
+ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false);
+
bool Initialize(AEAudioFormat &format, std::string &device) override;
void Deinitialize() override;
@@ -41,7 +45,6 @@ class CAESinkOSS : public IAESink (public)
double GetCacheTotal() override { return 0.0; } /* FIXME */
unsigned int AddPackets(uint8_t **data, unsigned int frames, unsigned int offset) override;
void Drain() override;
- static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false);
private:
int m_fd;
std::string m_device;
--- xbmc/platform/linux/OptionalsReg.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/platform/linux/OptionalsReg.cpp
@@ -58,6 +58,23 @@ bool OPTIONALS::PulseAudioRegister()
#endif
//-----------------------------------------------------------------------------
+// OSS
+//-----------------------------------------------------------------------------
+#ifdef TARGET_FREEBSD
+#include "cores/AudioEngine/Sinks/AESinkOSS.h"
+bool OPTIONALS::OSSRegister()
+{
+ CAESinkOSS::Register();
+ return false;
+}
+#else
+bool OPTIONALS::OSSRegister()
+{
+ return false;
+}
+#endif
+
+//-----------------------------------------------------------------------------
// sndio
//-----------------------------------------------------------------------------
--- xbmc/platform/linux/OptionalsReg.h.orig 2018-04-18 09:37:24 UTC
+++ xbmc/platform/linux/OptionalsReg.h
@@ -39,6 +39,15 @@ bool PulseAudioRegister();
}
//-----------------------------------------------------------------------------
+// OSS
+//-----------------------------------------------------------------------------
+
+namespace OPTIONALS
+{
+bool OSSRegister();
+}
+
+//-----------------------------------------------------------------------------
// sndio
//-----------------------------------------------------------------------------
--- xbmc/windowing/X11/WinSystemX11GLContext.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/windowing/X11/WinSystemX11GLContext.cpp
@@ -63,6 +63,10 @@ CWinSystemX11GLContext::CWinSystemX11GLContext()
{
OPTIONALS::PulseAudioRegister();
}
+ else if (StringUtils::EqualsNoCase(envSink, "OSS"))
+ {
+ OPTIONALS::OSSRegister();
+ }
else if (StringUtils::EqualsNoCase(envSink, "SNDIO"))
{
OPTIONALS::SndioRegister();
@@ -73,7 +77,10 @@ CWinSystemX11GLContext::CWinSystemX11GLContext()
{
if (!OPTIONALS::ALSARegister())
{
- OPTIONALS::SndioRegister();
+ if (!OPTIONALS::SndioRegister())
+ {
+ OPTIONALS::OSSRegister();
+ }
}
}
}
--- xbmc/windowing/gbm/WinSystemGbm.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/windowing/gbm/WinSystemGbm.cpp
@@ -54,6 +54,10 @@ CWinSystemGbm::CWinSystemGbm() :
{
OPTIONALS::PulseAudioRegister();
}
+ else if (StringUtils::EqualsNoCase(envSink, "OSS"))
+ {
+ OPTIONALS::OSSRegister();
+ }
else if (StringUtils::EqualsNoCase(envSink, "SNDIO"))
{
OPTIONALS::SndioRegister();
@@ -64,7 +68,10 @@ CWinSystemGbm::CWinSystemGbm() :
{
if (!OPTIONALS::ALSARegister())
{
- OPTIONALS::SndioRegister();
+ if (!OPTIONALS::SndioRegister())
+ {
+ OPTIONALS::OSSRegister();
+ }
}
}
}
--- xbmc/windowing/wayland/WinSystemWayland.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/windowing/wayland/WinSystemWayland.cpp
@@ -159,6 +159,10 @@ CWinSystemWayland::CWinSystemWayland()
{
OPTIONALS::PulseAudioRegister();
}
+ else if (StringUtils::EqualsNoCase(envSink, "OSS"))
+ {
+ OPTIONALS::OSSRegister();
+ }
else if (StringUtils::EqualsNoCase(envSink, "SNDIO"))
{
OPTIONALS::SndioRegister();
@@ -169,7 +173,10 @@ CWinSystemWayland::CWinSystemWayland()
{
if (!OPTIONALS::ALSARegister())
{
- OPTIONALS::SndioRegister();
+ if (!OPTIONALS::SndioRegister())
+ {
+ OPTIONALS::OSSRegister();
+ }
}
}
}

View File

@ -1,4 +1,4 @@
--- cmake/scripts/freebsd/ArchSetup.cmake.orig 2017-12-17 12:10:14 UTC
--- cmake/scripts/freebsd/ArchSetup.cmake.orig 2018-04-18 09:37:24 UTC
+++ cmake/scripts/freebsd/ArchSetup.cmake
@@ -1,4 +1,7 @@
set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_FREEBSD)
@ -24,7 +24,7 @@
else()
message(WARNING "unknown CPU: ${CPU}")
endif()
--- xbmc/windowing/rpi/WinSystemRpi.cpp.orig 2018-02-09 09:50:14 UTC
--- xbmc/windowing/rpi/WinSystemRpi.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/windowing/rpi/WinSystemRpi.cpp
@@ -32,9 +32,16 @@
#include "settings/DisplaySettings.h"
@ -40,7 +40,7 @@
+#ifdef HAS_SNDIO
+#include "cores/AudioEngine/Sinks/AESinkSNDIO.h"
+#endif
#include "powermanagement/linux/LinuxPowerSyscall.h"
#include "platform/linux/powermanagement/LinuxPowerSyscall.h"
#include <EGL/egl.h>
@@ -55,7 +62,36 @@ CWinSystemRpi::CWinSystemRpi()
@ -79,5 +79,5 @@
+#endif
+ }
CLinuxPowerSyscall::Register();
m_lirc.reset(OPTIONALS::LircRegister());
}

View File

@ -1,37 +1,15 @@
--- cmake/modules/FindWaylandpp.cmake.orig 2018-03-21 13:02:45 UTC
+++ cmake/modules/FindWaylandpp.cmake
@@ -10,7 +10,7 @@
# WAYLANDPP_DEFINITIONS - the waylandpp definitions
# WAYLANDPP_SCANNER - path to wayland-scanner++
-pkg_check_modules(WAYLANDPP wayland-client++ wayland-egl++ wayland-cursor++)
+pkg_check_modules(WAYLANDPP wayland-client++ wayland-client-extra++ wayland-egl++ wayland-cursor++)
pkg_check_modules(PC_WAYLANDPP_SCANNER wayland-scanner++)
if(WAYLANDPP_FOUND)
pkg_get_variable(PC_WAYLANDPP_PKGDATADIR wayland-client++ pkgdatadir)
--- cmake/treedata/freebsd/subdirs.txt.orig 2018-03-21 13:02:45 UTC
--- cmake/treedata/freebsd/subdirs.txt.orig 2018-04-18 09:37:24 UTC
+++ cmake/treedata/freebsd/subdirs.txt
@@ -9,4 +9,7 @@ xbmc/storage/linux storage/linux
xbmc/filesystem/posix filesystem/posix
xbmc/utils/posix utils_posix
xbmc/platform/posix posix
@@ -9,3 +9,6 @@ xbmc/platform/linux/powermanagement platform/linux/pow
xbmc/platform/linux/storage platform/linux/storage
xbmc/input/touch input/touch
xbmc/input/touch/generic input/touch/generic
+xbmc/cores/RetroPlayer/process/rbpi cores/RetroPlayer/process/rbpi
+xbmc/cores/VideoPlayer/Process/rbpi cores/VideoPlayer/Process/rbpi
xbmc/freebsd freebsdsupport
+xbmc/windowing/linux windowing/linux
--- xbmc/windowing/wayland/ShellSurfaceXdgShell.h.orig 2018-03-21 13:02:45 UTC
+++ xbmc/windowing/wayland/ShellSurfaceXdgShell.h
@@ -23,6 +23,7 @@
#include "ShellSurface.h"
#include <wayland-extra-protocols.hpp>
+#include <wayland-client-protocol-extra.hpp>
namespace KODI
{
--- xbmc/windowing/wayland/WinSystemWayland.cpp.orig 2018-03-21 13:02:45 UTC
+xbmc/windowing/linux windowing/linux
--- xbmc/windowing/wayland/WinSystemWayland.cpp.orig 2018-04-18 09:37:24 UTC
+++ xbmc/windowing/wayland/WinSystemWayland.cpp
@@ -1331,7 +1331,7 @@ void CWinSystemWayland::PrepareFramePresentation()
@@ -1333,7 +1333,7 @@ void CWinSystemWayland::PrepareFramePresentation()
};
feedback.on_presented() = [this,iter](std::uint32_t tvSecHi, std::uint32_t tvSecLo, std::uint32_t tvNsec, std::uint32_t refresh, std::uint32_t seqHi, std::uint32_t seqLo, wayland::presentation_feedback_kind flags)
{
@ -40,13 +18,3 @@
std::int64_t latency{KODI::LINUX::TimespecDifference(iter->submissionTime, tv)};
std::uint64_t msc{(static_cast<std::uint64_t>(seqHi) << 32) + seqLo};
m_presentationFeedbackHandlers.Invoke(tv, refresh, m_syncOutputID, m_syncOutputRefreshRate, msc);
--- xbmc/windowing/wayland/WinSystemWayland.h.orig 2018-03-21 13:02:45 UTC
+++ xbmc/windowing/wayland/WinSystemWayland.h
@@ -30,6 +30,7 @@
#include <wayland-client.hpp>
#include <wayland-cursor.hpp>
#include <wayland-extra-protocols.hpp>
+#include <wayland-client-protocol-extra.hpp>
#include "Connection.h"
#include "Output.h"

View File

@ -4,7 +4,6 @@ bin/kodi-standalone
include/kodi/AEChannelData.h
include/kodi/ActionIDs.h
include/kodi/AddonBase.h
include/kodi/AudioEngine.h
include/kodi/DemuxCrypto.h
include/kodi/DemuxPacket.h
include/kodi/Filesystem.h
@ -15,7 +14,6 @@ include/kodi/StreamCodec.h
include/kodi/StreamCrypto.h
include/kodi/TimingConstants.h
include/kodi/XBMC_vkeys.h
include/kodi/addon-instance/AudioDSP.h
include/kodi/addon-instance/AudioDecoder.h
include/kodi/addon-instance/AudioEncoder.h
include/kodi/addon-instance/ImageDecoder.h
@ -59,6 +57,7 @@ include/kodi/libKODI_game.h
include/kodi/libKODI_guilib.h
include/kodi/libXBMC_addon.h
include/kodi/libXBMC_pvr.h
include/kodi/platform/android/System.h
include/kodi/tools/DllHelper.h
include/kodi/versions.h
include/kodi/xbmc_addon_dll.h