Bump buidlroot version to 2018.02.6

This commit is contained in:
jbnadal
2018-10-22 14:55:59 +02:00
parent 222960cedb
commit bec94fdb63
6150 changed files with 84803 additions and 117446 deletions

View File

@@ -1,33 +0,0 @@
From 63c255f1f5d68363f49193aceed343e602dc8bdf Mon Sep 17 00:00:00 2001
From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Date: Thu, 26 Dec 2013 21:17:10 +0100
Subject: [PATCH] Fixup include path
Patch originally taken from :
http://repository.timesys.com/buildsources/x/xbmc/xbmc-11.0/xbmc-11.0-fixups.patch
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
lib/enca/configure | 3 ---
lib/enca/configure.ac | 3 ---
lib/libdvd/libdvdread/misc/dvdread-config.sh | 6 +++---
lib/timidity/configure.in | 6 +++---
4 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/lib/libdvd/libdvdread/misc/dvdread-config.sh b/lib/libdvd/libdvdread/misc/dvdread-config.sh
index e170c7e..25ee893 100644
--- a/lib/libdvd/libdvdread/misc/dvdread-config.sh
+++ b/lib/libdvd/libdvdread/misc/dvdread-config.sh
@@ -48,9 +48,9 @@ if test "$echo_prefix" = "yes"; then
fi
if test "$echo_cflags" = "yes"; then
- echo -I$prefix/include $extracflags
+ echo $extracflags
fi
if test "$echo_libs" = "yes"; then
- echo -L$libdir $dvdreadlib
-fi
+ echo $dvdreadlib
+fi

View File

@@ -0,0 +1,42 @@
From 6604cce38fed748e98d3bd2bf9d0f368d67eeb3c Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 29 Jul 2015 23:13:33 +0200
Subject: [PATCH] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix
cross-compilation
When cross-compiling, the location at build time of the libraries is
not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable
is here to handle this difference, so use it in kodi-config.cmake.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(rebased and simplified for Kodi 17.0-Krypton)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
project/cmake/KodiConfig.cmake.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/project/cmake/KodiConfig.cmake.in b/project/cmake/KodiConfig.cmake.in
index 76626ec..ffb8e1d 100644
--- a/project/cmake/KodiConfig.cmake.in
+++ b/project/cmake/KodiConfig.cmake.in
@@ -7,7 +7,7 @@ if(NOT @APP_NAME_UC@_PREFIX)
set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
endif()
if(NOT @APP_NAME_UC@_INCLUDE_DIR)
- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
+ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@)
endif()
if(NOT @APP_NAME_UC@_LIB_DIR)
set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
@@ -18,7 +18,7 @@ endif()
if(NOT WIN32)
set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
endif()
-list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake)
string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@")
add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON)
--
2.5.0

View File

@@ -0,0 +1,39 @@
CMake: Remove dependency on gmp and libintl from FindPython.cmake
Downloaded from Openelec:
https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/mediacenter/kodi/patches/kodi-998.02-cmake-python.patch
The dependency for libintl and gmp was introduced by this commit
https://github.com/xbmc/xbmc/commit/8558d672e98b62f3ea0126ba491376add8ed71cb
without further explanation and, apparently, without necessity.
A question asking whether this is really needed was sent upstream:
https://github.com/xbmc/xbmc/pull/10973#pullrequestreview-34179550
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
diff -Naur kodi-17.1-Krypton/project/cmake/modules/FindPython.cmake kodi-17.1-Krypton.patch/project/cmake/modules/FindPython.cmake
--- kodi-17.1-Krypton/project/cmake/modules/FindPython.cmake 2017-03-20 17:17:49.000000000 +0100
+++ kodi-17.1-Krypton.patch/project/cmake/modules/FindPython.cmake 2017-03-30 11:10:01.065718667 +0200
@@ -16,14 +16,12 @@
if(KODI_DEPENDSBUILD)
find_library(FFI_LIBRARY ffi REQUIRED)
find_library(EXPAT_LIBRARY expat REQUIRED)
- find_library(INTL_LIBRARY intl REQUIRED)
- find_library(GMP_LIBRARY gmp REQUIRED)
if(NOT CORE_SYSTEM_NAME STREQUAL android)
set(PYTHON_DEP_LIBRARIES pthread dl util)
endif()
- set(PYTHON_LIBRARIES ${PYTHON_LIBRARY} ${FFI_LIBRARY} ${EXPAT_LIBRARY} ${INTL_LIBRARY} ${GMP_LIBRARY} ${PYTHON_DEP_LIBRARIES})
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARY} ${FFI_LIBRARY} ${EXPAT_LIBRARY} ${PYTHON_DEP_LIBRARIES})
else()
find_package(PythonLibs 2.7 REQUIRED)
list(APPEND PYTHON_LIBRARIES ${PC_PYTHON_STATIC_LIBRARIES})
@@ -36,4 +34,4 @@
set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR})
endif()
-mark_as_advanced(PYTHON_EXECUTABLE PYTHON_INCLUDE_DIRS PYTHON_INCLUDE_DIR PYTHON_LIBRARY PYTHON_LIBRARIES PYTHON_LDFLAGS FFI_LIBRARY EXPAT_LIBRARY INTL_LIBRARY GMP_LIBRARY)
+mark_as_advanced(PYTHON_EXECUTABLE PYTHON_INCLUDE_DIRS PYTHON_INCLUDE_DIR PYTHON_LIBRARY PYTHON_LIBRARIES PYTHON_LDFLAGS FFI_LIBRARY EXPAT_LIBRARY)

View File

@@ -1,16 +0,0 @@
Fix host compile
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
diff -uNr xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd.org/tools/depends/native/TexturePacker/Makefile xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd/tools/depends/native/TexturePacker/Makefile
--- xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd.org/tools/depends/native/TexturePacker/Makefile 2015-01-25 09:00:48.000000000 +0100
+++ xbmc-656cba5d5c7c5edb166196b48560825b9b1f03fd/tools/depends/native/TexturePacker/Makefile 2015-01-25 13:03:23.606140953 +0100
@@ -36,7 +36,7 @@
-rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
cd $(PLATFORM); cp -a $(SOURCE)/* .
cd $(PLATFORM); ./autogen.sh
- cd $(PLATFORM); ./configure --prefix=$(PREFIX) $(EXTRA_CONFIGURE) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
+ cd $(PLATFORM); ./configure --prefix=$(PREFIX) EXTRA_DEFINES="$(NATIVE_ARCH_DEFINES)"
$(APP): $(PLATFORM)

View File

@@ -1,67 +0,0 @@
Patch sent upstream:
https://github.com/xbmc/xbmc/pull/7551
From a6d6a1a36ff2dff2586fbad2a068e7df14b55fdc Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Sun, 19 Jul 2015 14:12:03 +0200
Subject: [PATCH 1/1] ALSA: fix device change event support
Current uClibc version 0.9.33.2 does not support eventfd_read/write.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
configure.ac | 5 ++++-
xbmc/linux/FDEventMonitor.cpp | 12 ++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index d321f7d..4c6c750 100644
--- a/configure.ac
+++ b/configure.ac
@@ -911,7 +911,7 @@ AC_FUNC_STRFTIME
AC_FUNC_STRTOD
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([atexit dup2 fdatasync floor fs_stat_dev ftime ftruncate getcwd gethostbyaddr gethostbyname gethostname getpagesize getpass gettimeofday inet_ntoa lchown localeconv memchr memmove memset mkdir modf munmap pow rmdir select setenv setlocale socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strspn strstr strtol strtoul sysinfo tzset utime posix_fadvise localtime_r])
+AC_CHECK_FUNCS([atexit dup2 fdatasync floor fs_stat_dev ftime ftruncate getcwd gethostbyaddr gethostbyname gethostname getpagesize getpass gettimeofday inet_ntoa lchown localeconv memchr memmove memset mkdir modf munmap pow rmdir select setenv setlocale socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strspn strstr strtol strtoul sysinfo tzset utime posix_fadvise localtime_r eventfd_read eventfd_write])
# Check for various sizes
AC_CHECK_SIZEOF([int])
@@ -2064,6 +2064,9 @@ fi
if test "$use_alsa" = "yes"; then
USE_ALSA=1
AC_DEFINE([USE_ALSA],[1],["Define to 1 if alsa is installed"])
+ if test "$ac_cv_func_eventfd_read" = "yes" -a "$ac_cv_func_eventfd_write" = "yes"; then
+ AC_DEFINE([HAVE_EVENTFD],[1],["Define to 1 if eventfd is installed"])
+ fi
final_message="$final_message\n ALSA:\t\tYes"
else
USE_ALSA=0
diff --git a/xbmc/linux/FDEventMonitor.cpp b/xbmc/linux/FDEventMonitor.cpp
index 4a41477..84efeb9 100644
--- a/xbmc/linux/FDEventMonitor.cpp
+++ b/xbmc/linux/FDEventMonitor.cpp
@@ -28,6 +28,18 @@
#include "FDEventMonitor.h"
+#ifndef HAVE_EVENTFD
+static int eventfd_read(int __fd, eventfd_t *__value)
+{
+ return read(__fd, __value, sizeof(eventfd_t)) == sizeof(eventfd_t) ? 0 : -1;
+}
+
+static int eventfd_write(int __fd, eventfd_t __value)
+{
+ return write(__fd, &__value, sizeof(eventfd_t)) == sizeof(eventfd_t) ? 0 : -1;
+}
+#endif
+
CFDEventMonitor::CFDEventMonitor() :
CThread("FDEventMonitor"),
m_nextID(0),
--
1.7.10.4

View File

@@ -0,0 +1,92 @@
From 70ab56d74aff8b2e3ac49fed6bdf3751c9b1457e Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Sun, 12 Feb 2017 14:24:18 +0100
Subject: [PATCH] [cmake] iconv is a required dependency
This patch adds support for libiconv currently only provided by the
autoconf-based build system:
https://github.com/xbmc/xbmc/blob/Krypton/configure.ac#L1172
This commit fixes an error during linking with an uClibc-based
buildroot toolchain:
[100%] Linking CXX executable kodi.bin
/home/buildroot/br8_ffmpeg3_kodi17_github/output/host/usr/lib/gcc/i586-buildroot-linux-uclibc/6.3.0/../../../../i586-buildroot-linux-uclibc/bin/ld: build/utils/utils.a(CharsetConverter.cpp.o): undefined reference to symbol 'libiconv_open'
/home/buildroot/br8_ffmpeg3_kodi17_github/output/host/usr/i586-buildroot-linux-uclibc/sysroot/usr/lib32/libiconv.so.2: error adding symbols: DSO missing from command line
Backported to Krypton from master branch commit:
https://github.com/xbmc/xbmc/commit/9a64537543e8dc8609ca8a98181ba17f30c53493
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
project/cmake/CMakeLists.txt | 2 +-
project/cmake/modules/FindIconv.cmake | 44 +++++++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 1 deletion(-)
create mode 100644 project/cmake/modules/FindIconv.cmake
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
index aeb1ff47c2..07c1d1a8d3 100644
--- a/project/cmake/CMakeLists.txt
+++ b/project/cmake/CMakeLists.txt
@@ -103,7 +103,7 @@ list(APPEND DEPLIBS ${CMAKE_THREAD_LIBS_INIT})
# Required dependencies
set(required_deps Sqlite3 FreeType PCRE Cpluff LibDvd
- TinyXML Python Yajl Cdio
+ TinyXML Python Yajl Cdio Iconv
Lzo2 Fribidi TagLib FFMPEG CrossGUID)
if(NOT WIN32)
list(APPEND required_deps ZLIB)
diff --git a/project/cmake/modules/FindIconv.cmake b/project/cmake/modules/FindIconv.cmake
new file mode 100644
index 0000000000..8ee01fb6b8
--- /dev/null
+++ b/project/cmake/modules/FindIconv.cmake
@@ -0,0 +1,44 @@
+#.rst:
+# FindICONV
+# --------
+# Finds the ICONV library
+#
+# This will will define the following variables::
+#
+# ICONV_FOUND - system has ICONV
+# ICONV_INCLUDE_DIRS - the ICONV include directory
+# ICONV_LIBRARIES - the ICONV libraries
+#
+# and the following imported targets::
+#
+# ICONV::ICONV - The ICONV library
+
+find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
+
+find_library(ICONV_LIBRARY NAMES iconv libiconv c)
+
+set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
+check_function_exists(iconv HAVE_ICONV_FUNCTION)
+if(NOT HAVE_ICONV_FUNCTION)
+ check_function_exists(libiconv HAVE_LIBICONV_FUNCTION2)
+ set(HAVE_ICONV_FUNCTION ${HAVE_LIBICONV_FUNCTION2})
+ unset(HAVE_LIBICONV_FUNCTION2)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Iconv
+ REQUIRED_VARS ICONV_LIBRARY ICONV_INCLUDE_DIR HAVE_ICONV_FUNCTION)
+
+if(ICONV_FOUND)
+ set(ICONV_LIBRARIES ${ICONV_LIBRARY})
+ set(ICONV_INCLUDE_DIRS ${ICONV_INCLUDE_DIR})
+
+ if(NOT TARGET ICONV::ICONV)
+ add_library(ICONV::ICONV UNKNOWN IMPORTED)
+ set_target_properties(ICONV::ICONV PROPERTIES
+ IMPORTED_LOCATION "${ICONV_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${ICONV_INCLUDE_DIR}")
+ endif()
+endif()
+
+mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIBRARY HAVE_ICONV_FUNCTION)
--
2.11.0

View File

@@ -1,41 +0,0 @@
From 6604cce38fed748e98d3bd2bf9d0f368d67eeb3c Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 29 Jul 2015 23:13:33 +0200
Subject: [PATCH] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix
cross-compilation
When cross-compiling, the location at build time of the libraries is
not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable
is here to handle this difference, so use it in kodi-config.cmake.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
project/cmake/kodi-config.cmake.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/project/cmake/kodi-config.cmake.in b/project/cmake/kodi-config.cmake.in
index 76626ec..ffb8e1d 100644
--- a/project/cmake/kodi-config.cmake.in
+++ b/project/cmake/kodi-config.cmake.in
@@ -7,15 +7,15 @@
SET(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
ENDIF()
IF(NOT @APP_NAME_UC@_INCLUDE_DIR)
- SET(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
+ SET(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@)
ENDIF()
IF(NOT @APP_NAME_UC@_LIB_DIR)
- SET(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
+ SET(@APP_NAME_UC@_LIB_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@)
ENDIF()
IF(NOT WIN32)
SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
ENDIF()
-LIST(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@)
+LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@)
ADD_DEFINITIONS(@ARCH_DEFINES@ -DBUILD_KODI_ADDON)
if(NOT CORE_SYSTEM_NAME)
--
2.5.0

View File

@@ -1,53 +0,0 @@
From 2b395fb3f07551ae1ce2e484c14ac59f36e192b0 Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Thu, 17 Mar 2016 21:47:53 +0100
Subject: [PATCH] native/TexturePacker: fix compilation with gcc 4.6
Kodi itself depends on gcc >= 4.7 due to its use of the C++11 standard.
When cross-compiling the host gcc currently also needs to be >= 4.7 due
to the texturepacker tool being needed as native binary to compile
Textures.xbt for the target system.
Cross-compiling on a system where host gcc is at version 4.6 fails atm
with this error:
cc1plus: error: unrecognized command line option '-std=c++11'
make[4]: *** [md5.o] Error 1
make[4]: *** Waiting for unfinished jobs....
cc1plus: error: unrecognized command line option '-std=c++11'
cc1plus: error: unrecognized command line option '-std=c++11'
make[4]: *** [DecoderManager.o] Error 1
make[4]: *** [XBTFWriter.o] Error 1
cc1plus: error: unrecognized command line option '-std=c++11'
make[4]: *** [TexturePacker.o] Error 1
cc1plus: error: unrecognized command line option '-std=c++11'
make[4]: *** [decoder/PNGDecoder.o] Error 1
make[3]: *** [all] Error 2
make[2]: *** [native/TexturePacker] Error 2
Using this patch the problem is fixed and a working TexturePacker host
binary is created.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Patch sent upstream: https://github.com/xbmc/xbmc/pull/9378
---
tools/depends/native/TexturePacker/src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/depends/native/TexturePacker/src/Makefile.am b/tools/depends/native/TexturePacker/src/Makefile.am
index c1fc8be..d075290 100644
--- a/tools/depends/native/TexturePacker/src/Makefile.am
+++ b/tools/depends/native/TexturePacker/src/Makefile.am
@@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = subdir-objects
AM_CFLAGS = -DTARGET_POSIX -DUSE_LZO_PACKING
AM_CFLAGS += @EXTRA_DEFINES@
-AM_CXXFLAGS = $(AM_CFLAGS) -std=c++11
+AM_CXXFLAGS = $(AM_CFLAGS) -std=c++0x
AM_CPPFLAGS = \
-I. \
--
2.7.0

View File

@@ -1,646 +0,0 @@
Add support for ffmpeg 3.0
Changes from original commit are only in file paths & quilt refresh.
commit c31b7d374062f87c7512d9872cbceac920465913
Author: Philip Langdale <philipl@overt.org>
Date: Mon Sep 21 19:49:36 2015 -0700
ffmpeg: Update AVPixelFormat and AV_PIX_FMT_* to compile with master
The deprecated PixelFormat and PIX_FMT_* names have been removed in
ffmpeg master.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[Downloaded from
https://gitweb.gentoo.org/repo/gentoo.git/tree/media-tv/kodi/files/kodi-16-ffmpeg3.patch]
Index: xbmc-16.0-Jarvis/xbmc/cores/FFmpeg.h
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/FFmpeg.h
+++ xbmc-16.0-Jarvis/xbmc/cores/FFmpeg.h
@@ -24,7 +24,6 @@
#include "utils/CPUInfo.h"
extern "C" {
-#include "libswscale/swscale.h"
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavutil/avutil.h"
@@ -33,23 +32,6 @@ extern "C" {
#include "libpostproc/postprocess.h"
}
-inline int SwScaleCPUFlags()
-{
- unsigned int cpuFeatures = g_cpuInfo.GetCPUFeatures();
- int flags = 0;
-
- if (cpuFeatures & CPU_FEATURE_MMX)
- flags |= SWS_CPU_CAPS_MMX;
- if (cpuFeatures & CPU_FEATURE_MMX2)
- flags |= SWS_CPU_CAPS_MMX2;
- if (cpuFeatures & CPU_FEATURE_3DNOW)
- flags |= SWS_CPU_CAPS_3DNOW;
- if (cpuFeatures & CPU_FEATURE_ALTIVEC)
- flags |= SWS_CPU_CAPS_ALTIVEC;
-
- return flags;
-}
-
inline int PPCPUFlags()
{
unsigned int cpuFeatures = g_cpuInfo.GetCPUFeatures();
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp
@@ -39,7 +39,7 @@ extern "C" {
#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;
@@ -264,13 +264,13 @@ DVDVideoPicture* CDVDCodecUtils::Convert
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_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
+ SWS_BILINEAR, NULL, NULL, NULL);
sws_scale(ctx, src, srcStride, 0, pSrc->iHeight, dst, dstStride);
sws_freeContext(ctx);
}
@@ -403,25 +403,25 @@ double CDVDCodecUtils::NormalizeFramedur
}
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;
@@ -431,10 +431,10 @@ ERenderFormat CDVDCodecUtils::EFormatFro
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;
}
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -77,8 +77,8 @@ enum DecoderState
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;
@@ -104,8 +104,8 @@ enum PixelFormat CDVDVideoCodecFFmpeg::G
avctx->hwaccel_context = 0;
}
- 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::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVDPAU))
@@ -137,7 +137,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::G
#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)
@@ -214,11 +214,11 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStre
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);
@@ -655,7 +655,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCom
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;
@@ -738,8 +738,8 @@ bool CDVDVideoCodecFFmpeg::GetPicture(DV
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;
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
@@ -46,7 +46,7 @@ public:
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 @@ public:
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();
@@ -119,7 +119,7 @@ protected:
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;
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp
@@ -554,11 +554,11 @@ void CDVDVideoCodecVDA::DisplayQueuePop(
void CDVDVideoCodecVDA::UYVY422_to_YUV420P(uint8_t *yuv422_ptr, int yuv422_stride, DVDVideoPicture *picture)
{
- // convert PIX_FMT_UYVY422 to PIX_FMT_YUV420P.
+ // convert AV_PIX_FMT_UYVY422 to AV_PIX_FMT_YUV420P.
struct SwsContext *swcontext = sws_getContext(
- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_UYVY422,
- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_YUV420P,
- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
+ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_UYVY422,
+ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_YUV420P,
+ SWS_FAST_BILINEAR, NULL, NULL, NULL);
if (swcontext)
{
uint8_t *src[] = { yuv422_ptr, 0, 0, 0 };
@@ -574,11 +574,11 @@ void CDVDVideoCodecVDA::UYVY422_to_YUV42
void CDVDVideoCodecVDA::BGRA_to_YUV420P(uint8_t *bgra_ptr, int bgra_stride, DVDVideoPicture *picture)
{
- // convert PIX_FMT_BGRA to PIX_FMT_YUV420P.
+ // convert AV_PIX_FMT_BGRA to AV_PIX_FMT_YUV420P.
struct SwsContext *swcontext = sws_getContext(
- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_BGRA,
- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_YUV420P,
- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
+ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_BGRA,
+ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_YUV420P,
+ SWS_FAST_BILINEAR, NULL, NULL, NULL);
if (swcontext)
{
uint8_t *src[] = { bgra_ptr, 0, 0, 0 };
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp
@@ -886,7 +886,7 @@ static bool CheckCompatibility(AVCodecCo
return true;
}
-bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum PixelFormat fmt, unsigned int surfaces)
+bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixelFormat fmt, unsigned int surfaces)
{
if (!CheckCompatibility(avctx))
return false;
@@ -1135,9 +1135,9 @@ bool CDecoder::OpenDecoder()
return true;
}
-bool CDecoder::Supports(enum PixelFormat fmt)
+bool CDecoder::Supports(enum AVPixelFormat fmt)
{
- if(fmt == PIX_FMT_DXVA2_VLD)
+ if(fmt == AV_PIX_FMT_DXVA2_VLD)
return true;
return false;
}
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h
@@ -141,7 +141,7 @@ class CDecoder
public:
CDecoder();
~CDecoder();
- virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces);
+ virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces);
virtual int Decode (AVCodecContext* avctx, AVFrame* frame);
virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture);
virtual int Check (AVCodecContext* avctx);
@@ -154,7 +154,7 @@ public:
int GetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags);
void RelBuffer(uint8_t *data);
- static bool Supports(enum PixelFormat fmt);
+ static bool Supports(enum AVPixelFormat fmt);
void CloseDXVADecoder();
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
@@ -479,7 +479,7 @@ CDecoder::~CDecoder()
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
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
@@ -406,7 +406,7 @@ public:
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();
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp
@@ -186,7 +186,7 @@ void CDecoder::Close()
m_bitstream = NULL;
}
-bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum PixelFormat fmt, unsigned int surfaces)
+bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixelFormat fmt, unsigned int surfaces)
{
Close();
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h
@@ -35,7 +35,7 @@ class CDecoder
public:
CDecoder();
~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 int Check(AVCodecContext* avctx);
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
@@ -486,7 +486,7 @@ CDecoder::CDecoder() : m_vdpauOutput(&m_
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();
@@ -760,7 +760,7 @@ int CDecoder::Check(AVCodecContext* avct
return 0;
}
-bool CDecoder::IsVDPAUFormat(PixelFormat format)
+bool CDecoder::IsVDPAUFormat(AVPixelFormat format)
{
if (format == AV_PIX_FMT_VDPAU)
return true;
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
@@ -556,7 +556,7 @@ public:
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 @@ public:
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);
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
@@ -1638,7 +1638,7 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPack
// 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)
@@ -1695,7 +1695,7 @@ bool CDVDDemuxFFmpeg::IsVideoReady()
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;
}
@@ -1708,7 +1708,7 @@ bool CDVDDemuxFFmpeg::IsVideoReady()
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;
}
Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDFileInfo.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDFileInfo.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDFileInfo.cpp
@@ -275,7 +275,7 @@ bool CDVDFileInfo::ExtractThumb(const st
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, NULL, NULL, NULL);
if (context)
{
Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
@@ -2932,7 +2932,7 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im
}
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 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im
}
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,8 +2965,8 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im
m_context = sws_getCachedContext(m_context,
im->width, im->height, (AVPixelFormat)srcFormat,
- im->width, im->height, (AVPixelFormat)PIX_FMT_BGRA,
- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
+ im->width, im->height, (AVPixelFormat)AV_PIX_FMT_BGRA,
+ SWS_FAST_BILINEAR, NULL, NULL, NULL);
uint8_t *dst[] = { m_rgbBuffer, 0, 0, 0 };
int dstStride[] = { (int)m_sourceWidth * 4, 0, 0, 0 };
@@ -2995,7 +2995,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I
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 @@ void CLinuxRendererGL::ToRGBFields(YV12I
}
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 @@ void CLinuxRendererGL::ToRGBFields(YV12I
}
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 @@ void CLinuxRendererGL::ToRGBFields(YV12I
}
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,8 +3045,8 @@ void CLinuxRendererGL::ToRGBFields(YV12I
m_context = sws_getCachedContext(m_context,
im->width, im->height >> 1, (AVPixelFormat)srcFormat,
- im->width, im->height >> 1, (AVPixelFormat)PIX_FMT_BGRA,
- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
+ im->width, im->height >> 1, (AVPixelFormat)AV_PIX_FMT_BGRA,
+ SWS_FAST_BILINEAR, NULL, NULL, NULL);
uint8_t *dstTop[] = { m_rgbBuffer, 0, 0, 0 };
uint8_t *dstBot[] = { m_rgbBuffer + m_sourceWidth * m_sourceHeight * 2, 0, 0, 0 };
int dstStride[] = { (int)m_sourceWidth * 4, 0, 0, 0 };
Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp
@@ -2006,8 +2006,8 @@ void CLinuxRendererGLES::UploadYV12Textu
#endif
{
m_sw_context = sws_getCachedContext(m_sw_context,
- im->width, im->height, PIX_FMT_YUV420P,
- im->width, im->height, PIX_FMT_RGBA,
+ im->width, im->height, AV_PIX_FMT_YUV420P,
+ im->width, im->height, AV_PIX_FMT_RGBA,
SWS_FAST_BILINEAR, NULL, NULL, NULL);
uint8_t *src[] = { im->plane[0], im->plane[1], im->plane[2], 0 };
Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/WinRenderer.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/WinRenderer.cpp
+++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/WinRenderer.cpp
@@ -94,16 +94,16 @@ CWinRenderer::~CWinRenderer()
UnInit();
}
-static enum PixelFormat PixelFormatFromFormat(ERenderFormat format)
+static enum AVPixelFormat PixelFormatFromFormat(ERenderFormat format)
{
- if (format == RENDER_FMT_DXVA) return PIX_FMT_NV12;
- if (format == RENDER_FMT_YUV420P) return PIX_FMT_YUV420P;
- if (format == RENDER_FMT_YUV420P10) return PIX_FMT_YUV420P10;
- if (format == RENDER_FMT_YUV420P16) return PIX_FMT_YUV420P16;
- if (format == RENDER_FMT_NV12) return PIX_FMT_NV12;
- if (format == RENDER_FMT_UYVY422) return PIX_FMT_UYVY422;
- if (format == RENDER_FMT_YUYV422) return PIX_FMT_YUYV422;
- return PIX_FMT_NONE;
+ if (format == RENDER_FMT_DXVA) return AV_PIX_FMT_NV12;
+ if (format == RENDER_FMT_YUV420P) return AV_PIX_FMT_YUV420P;
+ if (format == RENDER_FMT_YUV420P10) return AV_PIX_FMT_YUV420P10;
+ if (format == RENDER_FMT_YUV420P16) return AV_PIX_FMT_YUV420P16;
+ if (format == RENDER_FMT_NV12) return AV_PIX_FMT_NV12;
+ if (format == RENDER_FMT_UYVY422) return AV_PIX_FMT_UYVY422;
+ if (format == RENDER_FMT_YUYV422) return AV_PIX_FMT_YUYV422;
+ return AV_PIX_FMT_NONE;
}
void CWinRenderer::ManageTextures()
@@ -719,13 +719,13 @@ void CWinRenderer::Render(DWORD flags)
void CWinRenderer::RenderSW()
{
- enum PixelFormat format = PixelFormatFromFormat(m_format);
+ enum AVPixelFormat format = PixelFormatFromFormat(m_format);
// 1. convert yuv to rgb
m_sw_scale_ctx = sws_getCachedContext(m_sw_scale_ctx,
m_sourceWidth, m_sourceHeight, format,
- m_sourceWidth, m_sourceHeight, PIX_FMT_BGRA,
- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL);
+ m_sourceWidth, m_sourceHeight, AV_PIX_FMT_BGRA,
+ SWS_FAST_BILINEAR, NULL, NULL, NULL);
YUVBuffer* buf = (YUVBuffer*)m_VideoBuffers[m_iYV12RenderBuffer];
Index: xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/pictures/Picture.cpp
+++ xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp
@@ -342,9 +342,9 @@ bool CPicture::ScaleImage(uint8_t *in_pi
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,
- CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm) | SwScaleCPUFlags(), NULL, NULL, NULL);
+ struct SwsContext *context = sws_getContext(in_width, in_height, AV_PIX_FMT_BGRA,
+ out_width, out_height, AV_PIX_FMT_BGRA,
+ CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm), NULL, NULL, NULL);
uint8_t *src[] = { in_pixels, 0, 0, 0 };
int srcStride[] = { (int)in_pitch, 0, 0, 0 };
Index: xbmc-16.0-Jarvis/xbmc/video/FFmpegVideoDecoder.cpp
===================================================================
--- xbmc-16.0-Jarvis.orig/xbmc/video/FFmpegVideoDecoder.cpp
+++ xbmc-16.0-Jarvis/xbmc/video/FFmpegVideoDecoder.cpp
@@ -252,7 +252,7 @@ bool FFmpegVideoDecoder::nextFrame( CBas
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;
}
@@ -287,7 +287,7 @@ bool FFmpegVideoDecoder::nextFrame( CBas
// 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 );

View File

@@ -1,45 +0,0 @@
From f63563615e357b7d794a38e1d37276c325d1466f Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sat, 7 May 2016 13:47:42 +0100
Subject: [PATCH] [exif] Fix for out-of-memory errors with large numbers
of jpegs
This reverts part of https://github.com/xbmc/xbmc/pull/7472
Basically the commit made the 4 comments in the exif block increase
from 2K to 64K each, so you now need 256K per photo.
When opening a folder exif information for all photos is extracted.
So, for a folder of 5000 jpegs, 1.2GB of RAM is needed just for
the comments.
As a 64K comment string is of no use to kodi, just truncate them to 2K
like we used to.
See:
http://trac.kodi.tv/ticket/16193
http://forum.kodi.tv/showthread.php?tid=251908
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
(backported from upstream commit in master branch:
https://github.com/xbmc/xbmc/commit/f63563615e357b7d794a38e1d37276c325d1466f)
---
lib/libexif/libexif.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/libexif/libexif.h b/lib/libexif/libexif.h
index aa8da07..519ac30 100644
--- a/lib/libexif/libexif.h
+++ b/lib/libexif/libexif.h
@@ -81,7 +81,7 @@ typedef struct {
#define EXIF_COMMENT_CHARSET_UNICODE 3 // Exif: Unicode (UTF-16)
#define EXIF_COMMENT_CHARSET_JIS 4 // Exif: JIS X208-1990
-#define MAX_COMMENT 65533 // 2 bytes - 2 for the length param
+#define MAX_COMMENT 2000
#define MAX_DATE_COPIES 10
typedef struct {
--
2.8.1

View File

@@ -1,82 +0,0 @@
From 78571ed421e3fd3d5244cd76670e4e1bab69132f Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Fri, 27 May 2016 17:30:28 +0200
Subject: [PATCH 1/1] Fix nullpadding issue when reading certain id3v1 tags
backported from upstream commit to master branch:
https://github.com/xbmc/xbmc/commit/cdabf9dd9e82f4b2d639fb769db08227a7c52046
to fix problems with taglib-1.11:
http://trac.kodi.tv/ticket/16454
https://github.com/taglib/taglib/issues/741#issuecomment-218059031
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
xbmc/music/tags/TagLoaderTagLib.cpp | 21 ---------------------
xbmc/music/tags/TagLoaderTagLib.h | 3 +++
2 files changed, 3 insertions(+), 21 deletions(-)
diff --git a/xbmc/music/tags/TagLoaderTagLib.cpp b/xbmc/music/tags/TagLoaderTagLib.cpp
index b78a591..0fc346a 100644
--- a/xbmc/music/tags/TagLoaderTagLib.cpp
+++ b/xbmc/music/tags/TagLoaderTagLib.cpp
@@ -46,31 +46,12 @@
#include "utils/URIUtils.h"
#include "utils/log.h"
#include "utils/StringUtils.h"
-#include "utils/CharsetConverter.h"
#include "utils/Base64.h"
#include "settings/AdvancedSettings.h"
using namespace TagLib;
using namespace MUSIC_INFO;
-template<class T>
-class TagStringHandler : public T
-{
-public:
- TagStringHandler() {}
- virtual ~TagStringHandler() {}
- virtual String parse(const ByteVector &data) const
- {
- std::string strSource(data.data(), data.size());
- std::string strUTF8;
- g_charsetConverter.unknownToUTF8(strSource, strUTF8);
- return String(strUTF8, String::UTF8);
- }
-};
-
-static const TagStringHandler<ID3v1::StringHandler> ID3v1StringHandler;
-static const TagStringHandler<ID3v2::Latin1StringHandler> ID3v2StringHandler;
-
CTagLoaderTagLib::CTagLoaderTagLib()
{
}
@@ -824,8 +805,6 @@ bool CTagLoaderTagLib::Load(const std::string& strFileName, CMusicInfoTag& tag,
return false;
}
- ID3v1::Tag::setStringHandler(&ID3v1StringHandler);
- ID3v2::Tag::setLatin1StringHandler(&ID3v2StringHandler);
TagLib::File* file = NULL;
TagLib::APE::File* apeFile = NULL;
TagLib::ASF::File* asfFile = NULL;
diff --git a/xbmc/music/tags/TagLoaderTagLib.h b/xbmc/music/tags/TagLoaderTagLib.h
index f83ea4f..0edb84f 100644
--- a/xbmc/music/tags/TagLoaderTagLib.h
+++ b/xbmc/music/tags/TagLoaderTagLib.h
@@ -44,6 +44,9 @@
#include <taglib/mp4tag.h>
#include "ImusicInfoTagLoader.h"
+#include <string>
+#include <vector>
+
namespace MUSIC_INFO
{
class CMusicInfoTag;
--
2.8.1

View File

@@ -1,34 +0,0 @@
From 7d3c70b163bc67aeb1fdef8fd2347b39f311c584 Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Sun, 24 Jul 2016 20:24:07 +0200
Subject: [PATCH] Curl: Adjust multi_cleanup method which returns CURLMcode
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
(backported from upstream commit:
https://github.com/xbmc/xbmc/commit/2a8d3e7f6cffea52740b8392a3be8ec251d5ff70)
---
xbmc/filesystem/DllLibCurl.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xbmc/filesystem/DllLibCurl.h b/xbmc/filesystem/DllLibCurl.h
index db97f92..9e78a91 100644
--- a/xbmc/filesystem/DllLibCurl.h
+++ b/xbmc/filesystem/DllLibCurl.h
@@ -52,7 +52,7 @@ namespace XCURL
virtual CURLMcode multi_fdset(CURLM *multi_handle, fd_set *read_fd_set, fd_set *write_fd_set, fd_set *exc_fd_set, int *max_fd)=0;
virtual CURLMcode multi_timeout(CURLM *multi_handle, long *timeout)=0;
virtual CURLMsg* multi_info_read(CURLM *multi_handle, int *msgs_in_queue)=0;
- virtual void multi_cleanup(CURL_HANDLE * handle )=0;
+ virtual CURLMcode multi_cleanup(CURLM * handle )=0;
virtual struct curl_slist* slist_append(struct curl_slist *, const char *)=0;
virtual void slist_free_all(struct curl_slist *)=0;
};
@@ -77,7 +77,7 @@ namespace XCURL
DEFINE_METHOD5(CURLMcode, multi_fdset, (CURLM *p1, fd_set *p2, fd_set *p3, fd_set *p4, int *p5))
DEFINE_METHOD2(CURLMcode, multi_timeout, (CURLM *p1, long *p2))
DEFINE_METHOD2(CURLMsg*, multi_info_read, (CURLM *p1, int *p2))
- DEFINE_METHOD1(void, multi_cleanup, (CURLM *p1))
+ DEFINE_METHOD1(CURLMcode, multi_cleanup, (CURLM *p1))
DEFINE_METHOD2(struct curl_slist*, slist_append, (struct curl_slist * p1, const char * p2))
DEFINE_METHOD1(void, slist_free_all, (struct curl_slist * p1))
DEFINE_METHOD1(const char *, easy_strerror, (CURLcode p1))

View File

@@ -1,30 +0,0 @@
From a17e8d39cf01e26955574acd236b4ef5b54b8c3b Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Mon, 5 Sep 2016 12:34:20 +0200
Subject: [PATCH 2/2] xbmc_pvr_types.h: Fix compilation with gcc6
Backport of upstream commit from master branch:
https://github.com/xbmc/xbmc/commit/c8a346109926fa03bf6882c0b6e3885af0e0f8ed
This patch can be removed when Kodi is bumped to 17.0-Krypton.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
xbmc/addons/include/xbmc_pvr_types.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/xbmc/addons/include/xbmc_pvr_types.h b/xbmc/addons/include/xbmc_pvr_types.h
index c5ab20b..e518de1 100644
--- a/xbmc/addons/include/xbmc_pvr_types.h
+++ b/xbmc/addons/include/xbmc_pvr_types.h
@@ -34,6 +34,7 @@
#endif
#include <string.h>
#include <stdint.h>
+#include <stdio.h>
#include "xbmc_addon_types.h"
#include "xbmc_epg_types.h"
--
2.9.3

View File

@@ -1,38 +0,0 @@
commit 4bbb21aa5cee6b2f40759aa8b1bd65246a237f79
Author: Alex Deryskyba <alex@codesnake.com>
Date: Wed May 4 01:38:27 2016 +0200
[aml] Fix includes in amcodec/codec.h to make them relative
[Taken from upstream commit
https://github.com/xbmc/xbmc/commit/4bbb21aa5cee6b2f40759aa8b1bd65246a237f79.]
Signed-off-by: Dagg Stompler <daggs@gmx.com>
diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
index 187d4d5..632c24e 100644
--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
+++ b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
@@ -12,8 +12,8 @@
#ifndef CODEC_CTRL_H_
#define CODEC_CTRL_H_
-#include <codec_type.h>
-#include <codec_error.h>
+#include "codec_type.h"
+#include "codec_error.h"
int codec_init(codec_para_t *);
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
index a1a3447..1bf5a89 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
@@ -24,8 +24,6 @@ endif
ifeq (@USE_LIBAMCODEC@,1)
SRCS += AMLCodec.cpp
SRCS += DVDVideoCodecAmlogic.cpp
-INCLUDES += -I$(prefix)/include/amcodec
-INCLUDES += -I$(prefix)/include/amplayer
endif
ifeq (@USE_ANDROID@,1)

View File

@@ -1,16 +1,16 @@
config BR2_PACKAGE_KODI_ARCH_SUPPORTS
bool
default y if BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
# i386: needs sse (see upstream PR 10351)
depends on !(BR2_i386 && !BR2_X86_CPU_HAS_SSE)
depends on BR2_USE_MMU # libcdio, and others
default y if (BR2_arm || (BR2_mipsel && BR2_TOOLCHAIN_USES_GLIBC) || BR2_i386 || BR2_x86_64) \
&& BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS \
&& BR2_TOOLCHAIN_HAS_SYNC_8
comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.7, host gcc >= 4.6"
comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
|| !BR2_HOST_GCC_AT_LEAST_4_6 \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
|| BR2_TOOLCHAIN_USES_MUSL \
|| !BR2_PACKAGE_PYTHON \
|| BR2_PACKAGE_PYTHON_PYC_ONLY
@@ -20,38 +20,31 @@ config BR2_PACKAGE_KODI_EGL_GLES
default y
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_HAS_LIBGLES
depends on !BR2_PACKAGE_KODI_GL # prefer GL if available
depends on !BR2_PACKAGE_KODI_GL_EGL # prefer GL if available
config BR2_PACKAGE_KODI_GL
config BR2_PACKAGE_KODI_GL_EGL
bool
default y
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_HAS_LIBGL
depends on !BR2_arm # kodi needs egl/gles on arm
comment "kodi needs an OpenGL or an openGL ES and EGL backend"
depends on BR2_i386 || BR2_x86_64
depends on !BR2_PACKAGE_KODI_GL && !BR2_PACKAGE_KODI_EGL_GLES
comment "kodi requires an OpenGL ES and EGL backend"
depends on BR2_arm
depends on !BR2_PACKAGE_KODI_EGL_GLES
comment "kodi needs an OpenGL EGL with either an openGL or an OpenGL ES backend"
depends on !BR2_PACKAGE_KODI_GL_EGL && !BR2_PACKAGE_KODI_EGL_GLES
menuconfig BR2_PACKAGE_KODI
bool "kodi"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_HOST_GCC_AT_LEAST_4_6
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_TOOLCHAIN_USES_MUSL
depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL
depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL_EGL
depends on BR2_USE_WCHAR
depends on !BR2_STATIC_LIBS # libsquish, and others
depends on !BR2_STATIC_LIBS # python and others
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on BR2_PACKAGE_PYTHON
depends on !BR2_PACKAGE_PYTHON_PYC_ONLY
select BR2_NEEDS_HOST_JAVA
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_BOOST_THREAD
select BR2_PACKAGE_BZIP2
select BR2_PACKAGE_EXPAT
select BR2_PACKAGE_FFMPEG
@@ -60,27 +53,15 @@ menuconfig BR2_PACKAGE_KODI
select BR2_PACKAGE_FFMPEG_SWSCALE
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_FREETYPE
select BR2_PACKAGE_GIFLIB
select BR2_PACKAGE_JASPER
select BR2_PACKAGE_JPEG
select BR2_PACKAGE_LIBASS
select BR2_PACKAGE_LIBCDIO
select BR2_PACKAGE_LIBCROSSGUID
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBDCADEC
select BR2_PACKAGE_LIBFRIBIDI
select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_KODI_GL
select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_KODI_GL
select BR2_PACKAGE_LIBGCRYPT
select BR2_PACKAGE_LIBMPEG2
select BR2_PACKAGE_LIBOGG
select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_KODI_GL_EGL
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
select BR2_PACKAGE_LIBPLIST
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_LIBSAMPLERATE
select BR2_PACKAGE_LIBSQUISH
select BR2_PACKAGE_LIBVORBIS
select BR2_PACKAGE_LIBXML2
select BR2_PACKAGE_LIBXSLT
select BR2_PACKAGE_LZO
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_OPENSSL
@@ -98,10 +79,9 @@ menuconfig BR2_PACKAGE_KODI
select BR2_PACKAGE_READLINE
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_TAGLIB
select BR2_PACKAGE_TIFF
select BR2_PACKAGE_TINYXML
select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_KODI_GL
select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_GL
select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_KODI_GL_EGL
select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_GL_EGL
select BR2_PACKAGE_YAJL
select BR2_PACKAGE_ZLIB
select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
@@ -129,12 +109,28 @@ config BR2_PACKAGE_KODI_AVAHI
Enable Avahi support.
Select this if you want Kodi to support Bonjour protocol.
config BR2_PACKAGE_KODI_BLUEZ
bool "bluetooth"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 # bluez5_utils
depends on !BR2_PACKAGE_BLUEZ_UTILS # bluez5_utils
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # bluez5_utils
select BR2_PACKAGE_BLUEZ5_UTILS
help
Enable bluetooth support
config BR2_PACKAGE_KODI_DBUS
bool "dbus"
select BR2_PACKAGE_DBUS
help
Enable D-Bus support
config BR2_PACKAGE_KODI_EVENTCLIENTS
bool "eventclients"
help
Enable event clients support
https://github.com/xbmc/xbmc/blob/master/tools/EventClients/README.txt
config BR2_PACKAGE_KODI_LIBBLURAY
bool "blu-ray"
select BR2_PACKAGE_LIBBLURAY
@@ -153,6 +149,12 @@ config BR2_PACKAGE_KODI_LIBCEC
comment "hdmi cec support needs udev /dev management"
depends on !BR2_PACKAGE_HAS_UDEV
config BR2_PACKAGE_KODI_LCMS2
bool "lcms2"
select BR2_PACKAGE_LCMS2
help
Enable color management support.
config BR2_PACKAGE_KODI_LIRC
bool "lirc"
help
@@ -188,19 +190,24 @@ config BR2_PACKAGE_KODI_NONFREE
Enable components with non-free licenses. This option
currently only controls support for RAR archives.
config BR2_PACKAGE_KODI_RTMPDUMP
bool "rtmp"
select BR2_PACKAGE_RTMPDUMP
config BR2_PACKAGE_KODI_PULSEAUDIO
bool "pulseaudio"
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
# Pulseaudio support in kodi needs glib support in Pulseaudio,
# see FindPulseAudio.cmake. Kodi meets all dependencies of
# libglib2, so there is no need to propagate them here.
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_PULSEAUDIO
help
Enable RTMP input support.
Select this if you want to play back rtmp stream.
Enable Pulseaudio support.
config BR2_PACKAGE_KODI_LIBSHAIRPLAY
bool "shairport"
select BR2_PACKAGE_LIBSHAIRPLAY
help
Enable Shairport support.
Select this if you want to stream content from an Apple device.
Select this if you want to stream content from an Apple
device.
config BR2_PACKAGE_KODI_LIBSMBCLIENT
bool "samba"
@@ -233,19 +240,25 @@ config BR2_PACKAGE_KODI_LIBUSB
config BR2_PACKAGE_KODI_LIBVA
bool "va"
depends on BR2_PACKAGE_KODI_GL_EGL
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBVA
help
Enable libva support.
comment "libva support needs X.org with an openGL backend"
depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_KODI_GL_EGL
config BR2_PACKAGE_KODI_LIBVDPAU
bool "vdpau"
depends on BR2_PACKAGE_KODI_GL_EGL
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBVDPAU
help
Enable libvdpau support.
comment "libvdpau support needs X.org"
depends on !BR2_PACKAGE_XORG7
comment "libvdpau support needs X.org with an openGL backend"
depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_KODI_GL_EGL
config BR2_PACKAGE_KODI_UPNP
bool "upnp"
@@ -253,7 +266,9 @@ config BR2_PACKAGE_KODI_UPNP
Enable UPnP support
config BR2_PACKAGE_KODI_OPTICALDRIVE
bool
bool "optical drives"
help
Add support for optical drives, to read e.g. DVDs...
menu "Audio decoder addons"
source "package/kodi-audiodecoder-modplug/Config.in"
@@ -278,6 +293,17 @@ menu "Audio encoder addons"
source "package/kodi-audioencoder-wav/Config.in"
endmenu
menu "Peripheral addons"
source "package/kodi-peripheral-joystick/Config.in"
source "package/kodi-peripheral-steamcontroller/Config.in"
source "package/kodi-peripheral-xarcade/Config.in"
endmenu
menu "Inputstream addons"
source "package/kodi-inputstream-adaptive/Config.in"
source "package/kodi-inputstream-rtmp/Config.in"
endmenu
menu "PVR addons"
source "package/kodi-pvr-argustv/Config.in"
source "package/kodi-pvr-dvblink/Config.in"
@@ -313,9 +339,12 @@ menu "Screensavers"
source "package/kodi-screensaver-stars/Config.in"
endmenu
menu "Skins"
source "package/kodi-skin-confluence/Config.in"
endmenu
menu "Visualisations"
source "package/kodi-visualisation-fishbmc/Config.in"
source "package/kodi-visualisation-fountain/Config.in"
source "package/kodi-visualisation-goom/Config.in"
source "package/kodi-visualisation-shadertoy/Config.in"
source "package/kodi-visualisation-spectrum/Config.in"

View File

@@ -4,7 +4,7 @@
#
BIN=/usr/bin/br-kodi
KODI=/usr/lib/xbmc/kodi.bin
KODI=/usr/lib/kodi/kodi.bin
KODI_ARGS="--standalone -fs -n"
PIDFILE=/var/run/kodi.pid

View File

@@ -1,2 +1,8 @@
# Locally computed
sha256 7d82c8aff2715c83deecdf10c566e26105bec0473af530a1356d4c747ebdfd10 kodi-16.1-Jarvis.tar.gz
sha256 c8312fe92e5bab1cdac1da93d60baed88fa1574146c50c44e3c86d01671c2b1d kodi-17.6-Krypton.tar.gz
# Locally computed - libdvdcss
sha256 b6eb2d929ff56cb051152c32010afc5e7cf5fe8c5ae32dca412a2b46b6b57e34 2f12236.tar.gz
# Locally computed - libdvdnav
sha256 312b3d15bc448d24e92f4b2e7248409525eccc4e75776026d805478e51c5ef3d 981488f.tar.gz
# Locally computed - libdvdread
sha256 e7179b2054163652596a56301c9f025515cb08c6d6310b42b897c3ad11c0199b 17d99db.tar.gz

View File

@@ -4,48 +4,35 @@
#
################################################################################
KODI_VERSION = 16.1-Jarvis
# When updating the version, please also update kodi-jsonschemabuilder
# and kodi-texturepacker
KODI_VERSION = 17.6-Krypton
KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION))
KODI_LICENSE = GPLv2
KODI_LICENSE = GPL-2.0
KODI_LICENSE_FILES = LICENSE.GPL
# needed for binary addons
KODI_INSTALL_STAGING = YES
KODI_DEPENDENCIES = \
boost \
bzip2 \
expat \
ffmpeg \
fontconfig \
freetype \
giflib \
host-gawk \
host-gettext \
host-giflib \
host-gperf \
host-libjpeg \
host-libpng \
host-lzo \
host-kodi-jsonschemabuilder \
host-kodi-texturepacker \
host-nasm \
host-swig \
host-xmlstarlet \
host-zip \
jasper \
jpeg \
libass \
libcdio \
libcrossguid \
libcurl \
libdcadec \
libfribidi \
libgcrypt \
libmpeg2 \
libogg \
libplist \
libpng \
libsamplerate \
libsquish \
libvorbis \
libxml2 \
libxslt \
lzo \
ncurses \
openssl \
@@ -54,191 +41,296 @@ KODI_DEPENDENCIES = \
readline \
sqlite \
taglib \
tiff \
tinyxml \
yajl \
zlib
KODI_CONF_ENV = \
PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \
PYTHON_LDFLAGS="-lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm" \
PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)" \
PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" \
PYTHON_NOVERSIONCHECK="no-check" \
use_texturepacker_native=yes \
USE_TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr" \
TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
KODI_SUBDIR = project/cmake
KODI_CONF_OPTS += \
--with-ffmpeg=shared \
--disable-joystick \
--disable-openmax \
--disable-pulse \
--disable-vtbdecoder \
--enable-optimizations
KODI_LIBDVDCSS_VERSION = 2f12236
KODI_LIBDVDNAV_VERSION = 981488f
KODI_LIBDVDREAD_VERSION = 17d99db
ifeq ($(BR2_PACKAGE_KODI_MYSQL),y)
KODI_CONF_OPTS += --enable-mysql
KODI_CONF_ENV += ac_cv_path_MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config"
KODI_DEPENDENCIES += mysql
else
KODI_CONF_OPTS += --disable-mysql
endif
KODI_EXTRA_DOWNLOADS = \
https://github.com/xbmc/libdvdcss/archive/$(KODI_LIBDVDCSS_VERSION).tar.gz \
https://github.com/xbmc/libdvdnav/archive/$(KODI_LIBDVDNAV_VERSION).tar.gz \
https://github.com/xbmc/libdvdread/archive/$(KODI_LIBDVDREAD_VERSION).tar.gz
ifeq ($(BR2_PACKAGE_KODI_NONFREE),y)
KODI_CONF_OPTS += --enable-non-free
KODI_LICENSE := $(KODI_LICENSE), unrar
KODI_LICENSE_FILES += lib/UnrarXLib/license.txt
else
KODI_CONF_OPTS += --disable-non-free
KODI_CONF_OPTS += \
-DCMAKE_C_FLAGS="$(TARGET_CFLAGS) $(KODI_C_FLAGS)" \
-DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) $(KODI_CXX_FLAGS)" \
-DENABLE_CCACHE=OFF \
-DENABLE_DVDCSS=ON \
-DENABLE_INTERNAL_CROSSGUID=OFF \
-DENABLE_INTERNAL_FFMPEG=OFF \
-DKODI_DEPENDSBUILD=OFF \
-DENABLE_OPENSSL=ON \
-DNATIVEPREFIX=$(HOST_DIR) \
-DDEPENDS_PATH=$(@D) \
-DWITH_FFMPEG=$(STAGING_DIR)/usr \
-DWITH_TEXTUREPACKER=$(HOST_DIR)/bin/TexturePacker \
-DLIBDVDCSS_URL=$(DL_DIR)/$(KODI_LIBDVDCSS_VERSION).tar.gz \
-DLIBDVDNAV_URL=$(DL_DIR)/$(KODI_LIBDVDNAV_VERSION).tar.gz \
-DLIBDVDREAD_URL=$(DL_DIR)/$(KODI_LIBDVDREAD_VERSION).tar.gz \
-DENABLE_IMX=OFF
ifeq ($(BR2_ENABLE_LOCALE),)
KODI_DEPENDENCIES += libiconv
endif
ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
KODI_CONF_OPTS += -DCORE_SYSTEM_NAME=rbpi
KODI_DEPENDENCIES += rpi-userland
KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
KODI_INCLUDES += \
-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux
KODI_LIBS = -lvcos -lvchostif
# These CPU-specific options are only used on rbpi:
# https://github.com/xbmc/xbmc/blob/Krypton/project/cmake/scripts/rbpi/ArchSetup.cmake#L13
ifeq ($(BR2_arm1176jzf_s)$(BR2_cortex_a7)$(BR2_cortex_a53),y)
KODI_CONF_OPTS += -DWITH_CPU=$(BR2_GCC_TARGET_CPU)
endif
else
ifeq ($(BR2_arceb)$(BR2_arcle),y)
KODI_CONF_OPTS += -DWITH_ARCH=arc -DWITH_CPU=arc
else ifeq ($(BR2_armeb),y)
KODI_CONF_OPTS += -DWITH_ARCH=arm -DWITH_CPU=arm
else ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
KODI_CONF_OPTS += \
-DWITH_ARCH=mips$(if $(BR2_ARCH_IS_64),64) \
-DWITH_CPU=mips$(if $(BR2_ARCH_IS_64),64)
else ifeq ($(BR2_powerpc)$(BR2_powerpc64le),y)
KODI_CONF_OPTS += \
-DWITH_ARCH=powerpc$(if $(BR2_ARCH_IS_64),64) \
-DWITH_CPU=powerpc$(if $(BR2_ARCH_IS_64),64)
else ifeq ($(BR2_powerpc64)$(BR2_sparc64)$(BR2_sh4)$(BR2_xtensa),y)
KODI_CONF_OPTS += -DWITH_ARCH=$(BR2_ARCH) -DWITH_CPU=$(BR2_ARCH)
else
# Kodi auto-detects ARCH, tested: arm, aarch64, i386, x86_64
# see project/cmake/scripts/linux/ArchSetup.cmake
KODI_CONF_OPTS += -DWITH_CPU=$(BR2_ARCH)
endif
endif
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
KODI_CONF_OPTS += -D_SSE_OK=ON -D_SSE_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE_OK=OFF -D_SSE_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE2),y)
KODI_CONF_OPTS += -D_SSE2_OK=ON -D_SSE2_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE2_OK=OFF -D_SSE2_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE3),y)
KODI_CONF_OPTS += -D_SSE3_OK=ON -D_SSE3_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE3_OK=OFF -D_SSE3_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
KODI_CONF_OPTS += -D_SSSE3_OK=ON -D_SSSE3_TRUE=ON
else
KODI_CONF_OPTS += -D_SSSE3_OK=OFF -D_SSSE3_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE4),y)
KODI_CONF_OPTS += -D_SSE41_OK=ON -D_SSE41_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE41_OK=OFF -D_SSE41_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_SSE42),y)
KODI_CONF_OPTS += -D_SSE42_OK=ON -D_SSE42_TRUE=ON
else
KODI_CONF_OPTS += -D_SSE42_OK=OFF -D_SSE42_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_AVX),y)
KODI_CONF_OPTS += -D_AVX_OK=ON -D_AVX_TRUE=ON
else
KODI_CONF_OPTS += -D_AVX_OK=OFF -D_AVX_TRUE=OFF
endif
ifeq ($(BR2_X86_CPU_HAS_AVX2),y)
KODI_CONF_OPTS += -D_AVX2_OK=ON -D_AVX2_TRUE=ON
else
KODI_CONF_OPTS += -D_AVX2_OK=OFF -D_AVX2_TRUE=OFF
endif
# mips: uses __atomic_load_8
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
KODI_CXX_FLAGS += -latomic
endif
ifeq ($(BR2_PACKAGE_KODI_MYSQL),y)
KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=ON
KODI_DEPENDENCIES += mysql
else
KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_NONFREE),y)
KODI_CONF_OPTS += -DENABLE_NONFREE=ON
KODI_LICENSE := $(KODI_LICENSE), unrar
KODI_LICENSE_FILES += lib/UnrarXLib/license.txt
else
KODI_CONF_OPTS += -DENABLE_NONFREE=OFF
endif
ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
KODI_CONF_OPTS += -DCORE_SYSTEM_NAME=rbpi
KODI_DEPENDENCIES += rpi-userland
else
# Kodi considers "rpbi" and "linux" as two separate platforms. The
# below options, defined in
# project/cmake/scripts/linux/ArchSetup.cmake are only valid for the
# "linux" platforms. The "rpbi" platform has a different set of
# options, defined in project/cmake/scripts/rbpi/
KODI_CONF_OPTS += -DENABLE_LDGOLD=OFF
ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
KODI_CONF_OPTS += -DENABLE_AML=ON
KODI_DEPENDENCIES += libamcodec
else
KODI_CONF_OPTS += -DENABLE_AML=OFF
endif
endif
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
KODI_CONF_OPTS += -DENABLE_UDEV=ON
KODI_DEPENDENCIES += udev
KODI_CONF_OPTS += --enable-udev
else
KODI_CONF_OPTS += --disable-udev
KODI_CONF_OPTS += -DENABLE_UDEV=OFF
ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y)
KODI_CONF_OPTS += -DENABLE_LIBUSB=ON
KODI_DEPENDENCIES += libusb-compat
endif
ifeq ($(BR2_PACKAGE_IMX_VPUWRAP),y)
KODI_DEPENDENCIES += imx-vpuwrap
KODI_CONF_OPTS += --enable-codec=imxvpu
endif
ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
KODI_DEPENDENCIES += libamcodec
KODI_CONF_OPTS += --enable-codec=amcodec
KODI_INCLUDES += -I$(STAGING_DIR)/usr/include/amcodec
endif
KODI_CONF_ENV += \
INCLUDES="$(KODI_INCLUDES)" \
LIBS="$(KODI_LIBS)"
ifeq ($(BR2_PACKAGE_LIBCAP),y)
KODI_CONF_OPTS += --enable-libcap
KODI_CONF_OPTS += -DENABLE_CAP=ON
KODI_DEPENDENCIES += libcap
else
KODI_CONF_OPTS += --disable-libcap
KODI_CONF_OPTS += -DENABLE_CAP=OFF
endif
ifeq ($(BR2_PACKAGE_LIBXML2)$(BR2_PACKAGE_LIBXSLT),yy)
KODI_CONF_OPTS += -DENABLE_XSLT=ON
KODI_DEPENDENCIES += libxml2 libxslt
else
KODI_CONF_OPTS += -DENABLE_XSLT=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_BLUEZ),y)
KODI_CONF_OPTS += -DENABLE_BLUETOOTH=ON
KODI_DEPENDENCIES += bluez5_utils
else
KODI_CONF_OPTS += -DENABLE_BLUETOOTH=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_DBUS),y)
KODI_DEPENDENCIES += dbus
KODI_CONF_OPTS += --enable-dbus
KODI_CONF_OPTS += -DENABLE_DBUS=ON
else
KODI_CONF_OPTS += --disable-dbus
KODI_CONF_OPTS += -DENABLE_DBUS=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_EVENTCLIENTS),y)
KODI_CONF_OPTS += -DENABLE_EVENTCLIENTS=ON
else
KODI_CONF_OPTS += -DENABLE_EVENTCLIENTS=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_ALSA_LIB),y)
KODI_CONF_OPTS += -DENABLE_ALSA=ON
KODI_DEPENDENCIES += alsa-lib
KODI_CONF_OPTS += --enable-alsa
else
KODI_CONF_OPTS += --disable-alsa
KODI_CONF_OPTS += -DENABLE_ALSA=OFF
endif
# quote from kodi/configure.in: "GLES overwrites GL if both set to yes."
# we choose the opposite because opengl offers more features, like libva support
# GL means X11, and under X11, Kodi needs libdrm; libdrm is forcefully selected
# by a modular Xorg server, which Kodi already depends on.
ifeq ($(BR2_PACKAGE_KODI_GL),y)
KODI_DEPENDENCIES += libglew libglu libgl xlib_libX11 xlib_libXext \
xlib_libXmu xlib_libXrandr xlib_libXt libdrm
KODI_CONF_OPTS += --enable-gl --enable-x11 --disable-gles
ifeq ($(BR2_PACKAGE_KODI_GL_EGL),y)
KODI_DEPENDENCIES += libegl libglu libgl xlib_libX11 xlib_libXext \
xlib_libXrandr libdrm
KODI_CONF_OPTS += -DENABLE_OPENGL=ON -DENABLE_X11=ON -DENABLE_OPENGLES=OFF
else
KODI_CONF_OPTS += --disable-gl --disable-x11
KODI_CONF_OPTS += -DENABLE_OPENGL=OFF -DENABLE_X11=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_EGL_GLES),y)
KODI_DEPENDENCIES += libegl libgles
KODI_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`"
KODI_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`"
KODI_CONF_OPTS += --enable-gles
KODI_CONF_OPTS += \
-DENABLE_OPENGLES=ON
KODI_C_FLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`
KODI_CXX_FLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`
else
KODI_CONF_OPTS += --disable-gles
endif
endif
ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y)
KODI_DEPENDENCIES += libusb-compat
KODI_CONF_OPTS += --enable-libusb
else
KODI_CONF_OPTS += --disable-libusb
KODI_CONF_OPTS += -DENABLE_OPENGLES=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBMICROHTTPD),y)
KODI_CONF_OPTS += -DENABLE_MICROHTTPD=ON
KODI_DEPENDENCIES += libmicrohttpd
KODI_CONF_OPTS += --enable-webserver
else
KODI_CONF_OPTS += --disable-webserver
KODI_CONF_OPTS += -DENABLE_MICROHTTPD=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBSMBCLIENT),y)
KODI_DEPENDENCIES += samba4
KODI_CONF_OPTS += --enable-samba
KODI_CONF_OPTS += -DENABLE_SMBCLIENT=ON
else
KODI_CONF_OPTS += --disable-samba
KODI_CONF_OPTS += -DENABLE_SMBCLIENT=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBNFS),y)
KODI_DEPENDENCIES += libnfs
KODI_CONF_OPTS += --enable-nfs
KODI_CONF_OPTS += -DENABLE_NFS=ON
else
KODI_CONF_OPTS += --disable-nfs
endif
ifeq ($(BR2_PACKAGE_KODI_RTMPDUMP),y)
KODI_DEPENDENCIES += rtmpdump
KODI_CONF_OPTS += --enable-rtmp
else
KODI_CONF_OPTS += --disable-rtmp
KODI_CONF_OPTS += -DENABLE_NFS=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBBLURAY),y)
KODI_DEPENDENCIES += libbluray
KODI_CONF_OPTS += --enable-libbluray
KODI_CONF_OPTS += -DENABLE_BLURAY=ON
else
KODI_CONF_OPTS += --disable-libbluray
KODI_CONF_OPTS += -DENABLE_BLURAY=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBSHAIRPLAY),y)
KODI_DEPENDENCIES += libshairplay
KODI_CONF_OPTS += --enable-airplay
KODI_CONF_OPTS += -DENABLE_AIRTUNES=ON
else
KODI_CONF_OPTS += --disable-airplay
KODI_CONF_OPTS += -DENABLE_AIRTUNES=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBSSH),y)
KODI_DEPENDENCIES += libssh
KODI_CONF_OPTS += --enable-ssh
KODI_CONF_OPTS += -DENABLE_SSH=ON
else
KODI_CONF_OPTS += --disable-ssh
KODI_CONF_OPTS += -DENABLE_SSH=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_AVAHI),y)
KODI_DEPENDENCIES += avahi
KODI_CONF_OPTS += --enable-avahi
KODI_CONF_OPTS += -DENABLE_AVAHI=ON
else
KODI_CONF_OPTS += --disable-avahi
KODI_CONF_OPTS += -DENABLE_AVAHI=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBCEC),y)
KODI_DEPENDENCIES += libcec
KODI_CONF_OPTS += --enable-libcec
KODI_CONF_OPTS += -DENABLE_CEC=ON
else
KODI_CONF_OPTS += --disable-libcec
KODI_CONF_OPTS += -DENABLE_CEC=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LCMS2),y)
KODI_DEPENDENCIES += lcms2
KODI_CONF_OPTS += -DENABLE_LCMS2=ON
else
KODI_CONF_OPTS += -DENABLE_LCMS2=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIRC),y)
KODI_CONF_OPTS += --enable-lirc
KODI_CONF_OPTS += -DENABLE_LIRC=ON
else
KODI_CONF_OPTS += --disable-lirc
KODI_CONF_OPTS += -DENABLE_LIRC=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBTHEORA),y)
@@ -248,51 +340,48 @@ endif
# kodi needs libva & libva-glx
ifeq ($(BR2_PACKAGE_KODI_LIBVA)$(BR2_PACKAGE_MESA3D_DRI_DRIVER),yy)
KODI_DEPENDENCIES += mesa3d libva
KODI_CONF_OPTS += --enable-vaapi
KODI_CONF_OPTS += -DENABLE_VAAPI=ON
else
KODI_CONF_OPTS += --disable-vaapi
KODI_CONF_OPTS += -DENABLE_VAAPI=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_LIBVDPAU),y)
KODI_DEPENDENCIES += libvdpau
KODI_CONF_OPTS += --enable-vdpau
KODI_CONF_OPTS += -DENABLE_VDPAU=ON
else
KODI_CONF_OPTS += --disable-vdpau
KODI_CONF_OPTS += -DENABLE_VDPAU=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_UPNP),y)
KODI_CONF_OPTS += --enable-upnp
KODI_CONF_OPTS += -DENABLE_UPNP=ON
else
KODI_CONF_OPTS += --disable-upnp
KODI_CONF_OPTS += -DENABLE_UPNP=OFF
endif
ifeq ($(BR2_PACKAGE_KODI_OPTICALDRIVE),y)
KODI_CONF_OPTS += --enable-optical-drive --enable-dvdcss
KODI_CONF_OPTS += -DENABLE_OPTICAL=ON
else
KODI_CONF_OPTS += --disable-optical-drive --disable-dvdcss
KODI_CONF_OPTS += -DENABLE_OPTICAL=OFF
endif
# Add HOST_DIR to PATH for codegenerator.mk to find swig
define KODI_BOOTSTRAP
$(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/JsonSchemaBuilder
$(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/depends/native/TexturePacker
cd $(@D) && PATH=$(BR_PATH) ./bootstrap
endef
KODI_PRE_CONFIGURE_HOOKS += KODI_BOOTSTRAP
ifeq ($(BR2_PACKAGE_KODI_PULSEAUDIO),y)
KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=ON
KODI_DEPENDENCIES += pulseaudio
else
KODI_CONF_OPTS += -DENABLE_PULSEAUDIO=OFF
endif
# Remove versioncheck addon, updating Kodi is done by building a new
# buildroot image.
KODI_ADDON_MANIFEST = $(TARGET_DIR)/usr/share/kodi/system/addon-manifest.xml
define KODI_CLEAN_UNUSED_ADDONS
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.milkdrop
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.projectm
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.itunes
rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/service.xbmc.versioncheck
$(HOST_DIR)/bin/xml ed -L \
-d "/addons/addon[text()='service.xbmc.versioncheck']" \
$(KODI_ADDON_MANIFEST)
endef
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_UNUSED_ADDONS
define KODI_CLEAN_CONFLUENCE_SKIN
find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.png -delete
find $(TARGET_DIR)/usr/share/kodi/addons/skin.confluence/media -name *.jpg -delete
endef
KODI_POST_INSTALL_TARGET_HOOKS += KODI_CLEAN_CONFLUENCE_SKIN
define KODI_INSTALL_BR_WRAPPER
$(INSTALL) -D -m 0755 package/kodi/br-kodi \
$(TARGET_DIR)/usr/bin/br-kodi
@@ -327,4 +416,4 @@ define KODI_INSTALL_INIT_SYSTEMD
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/kodi.service
endef
$(eval $(autotools-package))
$(eval $(cmake-package))