package/kodi: bump to version 17.1-Krypton
Removed unneeded patches - 0001-Fixup-include-path.patch (not needed after CMake switch) - 0005-native-TexturePacker-fix-compilation-with-gcc-4.6.patch (applied upstream) - 0006-ffmpeg30.patch (was backported from 17.0-Krypton to 16.0-Jarvis) - 0007-exif-Fix-for-out-of-memory-errors-with-large-numbers.patch (was backported from 17.0-Krypton to 16.0-Jarvis) - 0008-Fix-nullpadding-issue-when-reading-certain-id3v1-tag.patch (was backported from 17.0-Krypton to 16.0-Jarvis) - 0009-lib-cximage-6.0-fix-compilation-with-gcc6.patch (cximage was removed in bump from 16.x to 17.0) - 0010-curl-support-version-7.5.0-and-upwards.patch (applied upstream) - 0011-xbmc_pvr_types.h-Fix-compilation-with-gcc6.patch (applied upstream) - 0012-Fix_includes_in_amcodec.patch (was backported from 17.0-Krypton to 16.0-Jarvis) Rebased patches - 0004-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch also renamed to 0001-... Removed dependencies not needed anymore: - boost41ae93f091
- giflibd44338baf1
- jasper/tiff00724eb109
- jpeg7d5bdfb9a0
- libdcadec378eb2687c
- libglew03ff0d5ea0
- libgcrypt was already an optional dependency in Kodi 16, not part of the CMake buildsystem anymore - libmpeg2d22c829d67
- libogg/libvorbis4c60969177
- libpngbe6b50c6c3
- librtmp, the new rtmp inputstream addon will be added laterd04f43a4eb
- libsquished03f828be
- xlib_libXmu - xlib_libXt Switched to CMake, autoconf was deprecated: https://github.com/xbmc/xbmc/pull/10797 The dependency for egl/gles on arm, formerly enforced by the automake build system, was not ported to CMake. Bumped BR2_TOOLCHAIN_GCC_AT_LEAST to 4.8 to fix build errors with gcc-4.7 found while testing http://autobuild.buildroot.net/toolchains/configs/sourcery-x86.config For details please read http://lists.busybox.net/pipermail/buildroot/2017-April/190195.html Added hard-dependency for libegl, needed after0ac305f7cf
Libva support depends on X11 https://github.com/xbmc/xbmc/blob/Krypton/project/cmake/modules/FindVAAPI.cmake#L42 and OpenGL/EGL https://github.com/xbmc/xbmc/blob/Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.h#L23 Libvdpau support depends on X11 https://github.com/xbmc/xbmc/blob/Krypton/project/cmake/modules/FindVDPAU.cmake#L21 and OpenGL/EGL https://github.com/xbmc/xbmc/blob/Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Video/VDPAU.h#L43 Updated clean-up hook and added host-xmlstarlet as dependency to manipulate the list of default system addons in addon-manifest.xml. Added dependency to BR2_ENABLE_LOCALE, needs iconv_open: https://github.com/xbmc/xbmc/blob/Krypton/xbmc/utils/CharsetConverter.cpp#L200 Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> [Thomas: minor tweaks.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
e81839aff1
commit
24a07d58af
@ -145,6 +145,12 @@ endif
|
||||
###############################################################################
|
||||
comment "Legacy options removed in 2017.05"
|
||||
|
||||
config BR2_PACKAGE_KODI_RTMPDUMP
|
||||
bool "kodi rtmp has been removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Internal rtmp support was removed from Kodi.
|
||||
|
||||
config BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN
|
||||
bool "kodi-visualisation-fountain has been removed"
|
||||
select BR2_LEGACY
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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)
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 );
|
@ -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
|
||||
|
@ -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
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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))
|
@ -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
|
||||
|
@ -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)
|
@ -5,12 +5,13 @@ config BR2_PACKAGE_KODI_ARCH_SUPPORTS
|
||||
&& 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++, locale, 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_ENABLE_LOCALE \
|
||||
|| !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 +21,33 @@ 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
|
||||
depends on !BR2_PACKAGE_RPI_USERLAND # rpi depends on gles
|
||||
|
||||
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_ENABLE_LOCALE
|
||||
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,25 +56,14 @@ 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_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
|
||||
@ -98,10 +83,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
|
||||
@ -188,13 +172,6 @@ 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
|
||||
help
|
||||
Enable RTMP input support.
|
||||
Select this if you want to play back rtmp stream.
|
||||
|
||||
config BR2_PACKAGE_KODI_LIBSHAIRPLAY
|
||||
bool "shairport"
|
||||
select BR2_PACKAGE_LIBSHAIRPLAY
|
||||
@ -233,19 +210,25 @@ config BR2_PACKAGE_KODI_LIBUSB
|
||||
|
||||
config BR2_PACKAGE_KODI_LIBVA
|
||||
bool "va"
|
||||
depends on !BR2_PACKAGE_KODI_EGL_GLES
|
||||
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_EGL_GLES
|
||||
|
||||
config BR2_PACKAGE_KODI_LIBVDPAU
|
||||
bool "vdpau"
|
||||
depends on !BR2_PACKAGE_KODI_EGL_GLES
|
||||
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_EGL_GLES
|
||||
|
||||
config BR2_PACKAGE_KODI_UPNP
|
||||
bool "upnp"
|
||||
|
@ -1,3 +1,8 @@
|
||||
# Locally computed
|
||||
sha256 7d82c8aff2715c83deecdf10c566e26105bec0473af530a1356d4c747ebdfd10 kodi-16.1-Jarvis.tar.gz
|
||||
sha256 303f3903cbb57ccc2961f09cf3746505542bcb129a464f0687d7ca8601cebbee kodi-17.1-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
|
||||
|
@ -4,46 +4,35 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
KODI_VERSION = 16.1-Jarvis
|
||||
# When updating the version, please also update kodi-jsonschemabuilder
|
||||
# and kodi-texturepacker
|
||||
KODI_VERSION = 17.1-Krypton
|
||||
KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION))
|
||||
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 \
|
||||
@ -54,191 +43,238 @@ 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_LIBDVDCSS_VERSION = 2f12236
|
||||
KODI_LIBDVDNAV_VERSION = 981488f
|
||||
KODI_LIBDVDREAD_VERSION = 17d99db
|
||||
|
||||
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
|
||||
|
||||
KODI_CONF_OPTS += \
|
||||
--with-ffmpeg=shared \
|
||||
--disable-joystick \
|
||||
--disable-openmax \
|
||||
--disable-pulse \
|
||||
--disable-vtbdecoder \
|
||||
--enable-optimizations
|
||||
-DENABLE_CCACHE=OFF \
|
||||
-DENABLE_DVDCSS=ON \
|
||||
-DENABLE_INTERNAL_CROSSGUID=OFF \
|
||||
-DENABLE_INTERNAL_FFMPEG=OFF \
|
||||
-DKODI_DEPENDSBUILD=OFF \
|
||||
-DENABLE_OPENSSL=ON \
|
||||
-DNATIVEPREFIX=$(HOST_DIR)/usr \
|
||||
-DDEPENDS_PATH=$(@D) \
|
||||
-DWITH_TEXTUREPACKER=$(HOST_DIR)/usr/bin/TexturePacker \
|
||||
-DLIBDVDCSS_URL=$(BR2_DL_DIR)/$(KODI_LIBDVDCSS_VERSION).tar.gz \
|
||||
-DLIBDVDNAV_URL=$(BR2_DL_DIR)/$(KODI_LIBDVDNAV_VERSION).tar.gz \
|
||||
-DLIBDVDREAD_URL=$(BR2_DL_DIR)/$(KODI_LIBDVDREAD_VERSION).tar.gz
|
||||
|
||||
ifeq ($(BR2_arm),y)
|
||||
KODI_CONF_OPTS += -DWITH_ARCH=arm -DWITH_CPU=arm
|
||||
else ifeq ($(BR2_mips),y)
|
||||
KODI_CONF_OPTS += -DWITH_ARCH=mips -DWITH_CPU=mips
|
||||
else ifeq ($(BR2_i386),y)
|
||||
KODI_CONF_OPTS += -DWITH_ARCH=i486-linux -DWITH_CPU=$(BR2_GCC_TARGET_ARCH)
|
||||
else ifeq ($(BR2_x86_64),y)
|
||||
KODI_CONF_OPTS += -DWITH_ARCH=x86_64-linux -DWITH_CPU=x86_64
|
||||
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
|
||||
|
||||
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_CONF_OPTS += -DENABLE_MYSQLCLIENT=ON
|
||||
KODI_DEPENDENCIES += mysql
|
||||
else
|
||||
KODI_CONF_OPTS += --disable-mysql
|
||||
KODI_CONF_OPTS += -DENABLE_MYSQLCLIENT=OFF
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_KODI_NONFREE),y)
|
||||
KODI_CONF_OPTS += --enable-non-free
|
||||
KODI_CONF_OPTS += -DENABLE_NONFREE=ON
|
||||
KODI_LICENSE := $(KODI_LICENSE), unrar
|
||||
KODI_LICENSE_FILES += lib/UnrarXLib/license.txt
|
||||
else
|
||||
KODI_CONF_OPTS += --disable-non-free
|
||||
KODI_CONF_OPTS += -DENABLE_NONFREE=OFF
|
||||
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
|
||||
else
|
||||
# these options only exist on non-rpi systems
|
||||
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
|
||||
ifeq ($(BR2_PACKAGE_IMX_VPUWRAP),y)
|
||||
KODI_CONF_OPTS += -DENABLE_IMX=ON
|
||||
KODI_DEPENDENCIES += imx-vpuwrap
|
||||
else
|
||||
KODI_CONF_OPTS += -DENABLE_IMX=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_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_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 += \
|
||||
-DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`" \
|
||||
-DCMAKE_C_FLAGS="$(TARGET_CFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`" \
|
||||
-DENABLE_OPENGLES=ON
|
||||
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_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 +284,41 @@ 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
|
||||
|
||||
# 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)/usr/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 +353,4 @@ define KODI_INSTALL_INIT_SYSTEMD
|
||||
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/kodi.service
|
||||
endef
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(cmake-package))
|
||||
|
Loading…
Reference in New Issue
Block a user