Merge pull request #98 from lrusak/kodi-17

Kodi 17 (redo)
This commit is contained in:
MilhouseVH 2016-04-18 15:25:02 +01:00
commit 1090f0d882
101 changed files with 1138 additions and 107804 deletions

View File

@ -2,8 +2,8 @@
LIBREELEC_VERSION="devel" LIBREELEC_VERSION="devel"
# OS_VERSION: OS Version # OS_VERSION: OS Version
OS_VERSION="7.0" OS_VERSION="8.0"
# ADDON_VERSION: Addon version # ADDON_VERSION: Addon version
ADDON_VERSION="7.0" ADDON_VERSION="8.0"

View File

@ -20,13 +20,13 @@
# Mediacenter to use (kodi / no) # Mediacenter to use (kodi / no)
MEDIACENTER="kodi" MEDIACENTER="kodi"
# Skins to install (Confluence) # Skins to install (Estuary)
# Space separated list is supported, # Space separated list is supported,
# e.g. SKINS="Confluence" # e.g. SKINS="Estuary"
SKINS="Confluence" SKINS="Estuary"
# Default Skin (Confluence) # Default Skin (Estuary)
SKIN_DEFAULT="Confluence" SKIN_DEFAULT="Estuary"
# install extra subtitle Fonts for KODI (yes / no) # install extra subtitle Fonts for KODI (yes / no)
KODI_EXTRA_FONTS="yes" KODI_EXTRA_FONTS="yes"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="asplib" PKG_NAME="asplib"
PKG_VERSION="2fac1bf" PKG_VERSION="da66f51"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -1,20 +1,21 @@
diff -Naur a/CMakeLists.txt b/CMakeLists.txt diff -Naur a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2016-01-12 22:24:43.000000000 +0100 --- a/CMakeLists.txt 2016-03-09 15:16:52.000000000 -0800
+++ b/CMakeLists.txt 2016-01-12 22:47:16.624139358 +0100 +++ b/CMakeLists.txt 2016-03-30 22:45:01.502582518 -0700
@@ -1,64 +1,17 @@ @@ -1,46 +1,15 @@
project(asplib) project(asplib)
cmake_minimum_required(VERSION 2.6) cmake_minimum_required(VERSION 2.6)
-enable_language(CXX) -enable_language(CXX)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})
- -
-include(UseMultiArch.cmake) -include(cmake/UseMultiArch.cmake)
include(cmake/asplib_helpers.cmake)
set(asplib_NAME asplib) set(asplib_NAME asplib)
set(asplib_DESCRIPTION "asplib (Achim's Signal Processing LIBrary), is a small and lightweight C++ library for digital signal processing.") set(asplib_DESCRIPTION "asplib (Achim's Signal Processing LIBrary), is a small and lightweight C++ library for digital signal processing.")
-set(asplib_VERSION_MAJOR ${APP_VERSION_MAJOR}) -set(asplib_VERSION_MAJOR 0)
-set(asplib_VERSION_MINOR ${APP_VERSION_MINOR}) -set(asplib_VERSION_MINOR 2)
-set(asplib_VERSION_PATCH 0) -set(asplib_VERSION_PATCH 0)
- -
-if(NOT WIN32) -if(NOT WIN32)
@ -27,111 +28,65 @@ diff -Naur a/CMakeLists.txt b/CMakeLists.txt
- -
-if(CMAKE_SYSTEM_NAME MATCHES "Windows") -if(CMAKE_SYSTEM_NAME MATCHES "Windows")
- set(CMAKE_CXX_FLAGS "-DTARGET_WINDOWS") - set(CMAKE_CXX_FLAGS "-DTARGET_WINDOWS")
- # Enable the orginization of projects with folders
- set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-endif() -endif()
- -
-#set(asplib_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR} "${CMAKE_INSTALL_PREFIX}/include/kodi")
-#set(asplib_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${TINYXML_LIBRARIES})
-
-if (NOT WIN32) -if (NOT WIN32)
- add_definitions(-fPIC -g -O2) - add_definitions(-fPIC -g -O2)
-endif() -endif()
- -
-include_directories(${PROJECT_SOURCE_DIR} -set(asplib_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}
- ${PROJECT_SOURCE_DIR}/Biquads) - ${PROJECT_SOURCE_DIR}/Biquads
- ${CMAKE_INSTALL_PREFIX}/include/asplib)
-
-include_directories(${asplib_INCLUDE_DIRS})
-set(SOURCES asplib_utils/computeDeviceInfo/cpuInfo.cpp set(SOURCES Biquads/Biquad_Native/asplib_Biquad_Native.cpp
- Biquads/Biquad_Native/asplib_Biquad_Native.cpp
+set(SOURCES Biquads/Biquad_Native/asplib_Biquad_Native.cpp
Biquads/apslib_BiquadFactory.cpp) Biquads/apslib_BiquadFactory.cpp)
-
+
set(HEADERS interfaces/asplib_IBaseBiquad.h
Biquads/apslib_BiquadFactory.h
Biquads/Biquad_Native/asplib_Biquad_Native.h
@@ -54,35 +23,13 @@
asplib_utils/os/linux/linux_definitions.h
asplib_utils/os/raspberry_pi/raspberry_pi_definitions.h
asplib_utils/os/windows/windows_definitions.h)
-
-asplib_source_group("${SOURCES}")
-asplib_source_group("${HEADERS}")
-set(HEADERS interfaces/asplib_IBaseBiquad.h -add_library(asplib ${SOURCES} ${HEADERS})
- asplib_utils/constants_typedefs/asplib_constants.h
- asplib_utils/constants_typedefs/asplib_typedefs.h
- asplib_utils/os/asplib_base_os.h
- asplib_utils/os/windows/windows_definitions.h
- asplib_utils/os/linux/linux_definitions.h
- asplib_utils/computeDeviceInfo/cpuInfo_types.h
- asplib_utils/computeDeviceInfo/cpuInfo.h
- Biquads/apslib_BiquadFactory.h
- Biquads/Biquad_Native/asplib_Biquad_Native.h)
-
-
-#include_directories(${TINYXML_INCLUDE_DIR} ${KODI_INCLUDE_DIR})
-
-add_library(asplib ${SOURCES} ${PLAT_SOURCES})
-target_link_libraries(asplib ${asplib_LIBRARIES}) -target_link_libraries(asplib ${asplib_LIBRARIES})
-#set_target_properties(asplib PROPERTIES VERSION ${asplib_VERSION_MAJOR}.${asplib_VERSION_MINOR}.${asplib_VERSION_PATCH} -set_target_properties(asplib PROPERTIES VERSION ${asplib_VERSION_MAJOR}.${asplib_VERSION_MINOR}.${asplib_VERSION_PATCH}
-# SOVERSION ${asplib_VERSION_MAJOR}.0) - SOVERSION ${asplib_VERSION_MAJOR}.0)
+add_library(asplib STATIC ${SOURCES}) +asplib_install_with_folder("${HEADERS}" ${CMAKE_INSTALL_PREFIX}/include/asplib)
+add_library(asplib STATIC ${SOURCES} ${HEADERS})
-install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_LIBDIR})
+include_directories(${PROJECT_SOURCE_DIR} +include_directories(${PROJECT_SOURCE_DIR}
+ ${PROJECT_SOURCE_DIR}/Biquads) + ${PROJECT_SOURCE_DIR}/Biquads)
install(DIRECTORY ${PROJECT_SOURCE_DIR}/interfaces/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/interfaces +install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
FILES_MATCHING PATTERN "*.h") asplib_install_with_folder("${HEADERS}" ${CMAKE_INSTALL_PREFIX}/include/asplib)
@@ -66,8 +19,6 @@
FILES_MATCHING PATTERN "*.h")
install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/os/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/os/
FILES_MATCHING PATTERN "*.h")
-install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/os/windows/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/os/windows/
- FILES_MATCHING PATTERN "*.h")
install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/os/linux/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/os/linux/
FILES_MATCHING PATTERN "*.h")
install(DIRECTORY ${PROJECT_SOURCE_DIR}/asplib_utils/computeDeviceInfo/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/asplib_utils/computeDeviceInfo/
@@ -77,54 +28,4 @@
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Biquads/Biquad_Native/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib/Biquads/Biquad_Native/
FILES_MATCHING PATTERN "*.h")
-
-# install(FILES interfaces/asplib_IBaseBiquad.h
- # asplib_utils/constants_typedefs/asplib_constants.h
- # asplib_utils/constants_typedefs/asplib_typedefs.h
-
- # DESTINATION include/asplib/asplib_utils/constants_typedefs/)
-
- # asplib_utils/os/asplib_base_os.h
- # asplib_utils/os/windows/windows_definitions.h
- # asplib_utils/os/linux/linux_definitions.h
- # utils/computeDeviceInfo/cpuInfo_types.h
- # utils/computeDeviceInfo/cpuInfo.h
- # Biquads/apslib_BiquadFactory.h
- # Biquads/Biquad_Native/asplib_Biquad_Native.h
- # )
-
-# install(FILES interfaces/asplib_IBaseBiquad.h
- # DESTINATION include/asplib/interfaces)
-# install(FILES constants_typedefs/asplib_constants.h
- # constants_typedefs/asplib_typedefs.h
- # DESTINATION include/asplib/constants_typedefs)
-# install(FILES utils/computeDeviceInfo/cpuInfo_types.h
- # utils/computeDeviceInfo/cpuInfo.h
- # DESTINATION include/asplib/utils)
-# install(FILES Biquads/apslib_BiquadFactory.h
- # Biquads/Biquad_Native/asplib_Biquad_Native.h
- # DESTINATION include/asplib/Biquads)
- -
-#install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/asplib) -IF(NOT WIN32)
-
-#IF(NOT WIN32)
- # Pkgconfig - # Pkgconfig
- #include(PkgConfigHandler.cmake) - include(cmake/PkgConfigHandler.cmake)
- #configure_pc_file(kodiutilities kodiutilities.pc.in - configure_pc_file(asplib asplib.pc.in
- # kodiutilities.pc - asplib.pc
- # ${CMAKE_INSTALL_PREFIX} - ${CMAKE_INSTALL_PREFIX}
- # ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} - ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
- # ${CMAKE_INSTALL_PREFIX}/include) - ${CMAKE_INSTALL_PREFIX}/include)
- -
-# install(FILES ${CMAKE_BINARY_DIR}/kodiutilities.pc - install(FILES ${CMAKE_BINARY_DIR}/asplib.pc
-# DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/pkgconfig) - DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/pkgconfig)
-#ENDIF(NOT WIN32) -ENDIF(NOT WIN32)
- -
-# config mode -# config mode
-#configure_file (kodiutilities-config.cmake.in -configure_file(asplib-config.cmake.in
-# kodiutilities-config.cmake @ONLY) - asplib-config.cmake @ONLY)
-#install(FILES ${CMAKE_BINARY_DIR}/kodiutilities-config.cmake -install(FILES ${CMAKE_BINARY_DIR}/asplib-config.cmake
-# DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/kodiutilities) - DESTINATION ${CMAKE_INSTALL_LIBDIR_NOARCH}/asplib)
-
-# Quell warnings with in-tree builds
-#set(KODI_BUILD_DIR ${KODI_BUILD_DIR})
+install(TARGETS asplib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)

View File

@ -17,14 +17,13 @@
################################################################################ ################################################################################
PKG_NAME="libcec" PKG_NAME="libcec"
PKG_VERSION="3.0.1" PKG_VERSION="6d68d21"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://libcec.pulse-eight.com/" PKG_SITE="http://libcec.pulse-eight.com/"
PKG_URL="https://github.com/Pulse-Eight/libcec/archive/$PKG_NAME-$PKG_VERSION.tar.gz" PKG_URL="https://github.com/Pulse-Eight/libcec/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_DIR="$PKG_NAME-$PKG_NAME-$PKG_VERSION" PKG_DEPENDS_TARGET="toolchain systemd lockdev p8-platform"
PKG_DEPENDS_TARGET="toolchain systemd lockdev platform"
PKG_PRIORITY="optional" PKG_PRIORITY="optional"
PKG_SECTION="system" PKG_SECTION="system"
PKG_SHORTDESC="libCEC is an open-source dual licensed library designed for communicating with the Pulse-Eight USB - CEC Adaptor" PKG_SHORTDESC="libCEC is an open-source dual licensed library designed for communicating with the Pulse-Eight USB - CEC Adaptor"

View File

@ -820,13 +820,13 @@ index 828cdb2..8b47795 100644
--- a/src/libcec/cmake/CheckPlatformSupport.cmake --- a/src/libcec/cmake/CheckPlatformSupport.cmake
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake +++ b/src/libcec/cmake/CheckPlatformSupport.cmake
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
# HAVE_RANDR 1 if xrandr is supported # HAVE_RANDR 1 if xrandr is supported
# HAVE_LIBUDEV 1 if udev is supported # HAVE_LIBUDEV 1 if udev is supported
# HAVE_RPI_API 1 if Raspberry Pi is supported # HAVE_RPI_API 1 if Raspberry Pi is supported
+# HAVE_IMX_API 1 if i.MX is supported +# HAVE_IMX_API 1 if i.MX is supported
# HAVE_TDA995X_API 1 if TDA995X is supported # HAVE_TDA995X_API 1 if TDA995X is supported
# HAVE_EXYNOS_API 1 if Exynos is supported # HAVE_EXYNOS_API 1 if Exynos is supported
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected # HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
@@ -87,6 +88,15 @@ else() @@ -87,6 +88,15 @@ else()
list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_RPI}) list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_RPI})
endif() endif()

View File

@ -1,859 +0,0 @@
From ec982e9800ae312972d306b67779215a2add6cde Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 24 Oct 2014 13:45:21 +0100
Subject: [PATCH 1/6] Make released key polling wait for exact time until key
gets released
---
src/libcec/CECClient.cpp | 16 ++++++++++++++--
src/libcec/CECClient.h | 2 +-
src/libcec/CECProcessor.cpp | 8 +++++---
src/libcec/LibCEC.cpp | 10 ++++++++--
src/libcec/LibCEC.h | 4 +++-
5 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
index 35c2d3e..e307c0e 100644
--- a/src/libcec/CECClient.cpp
+++ b/src/libcec/CECClient.cpp
@@ -1067,7 +1067,7 @@ void CCECClient::SetCurrentButton(const cec_user_control_code iButtonCode)
AddKey(key);
}
-void CCECClient::CheckKeypressTimeout(void)
+uint16_t CCECClient::CheckKeypressTimeout(void)
{
cec_keypress key;
@@ -1091,12 +1091,24 @@ void CCECClient::CheckKeypressTimeout(void)
}
else
{
- return;
+ // time when this keypress will be released and we'd like to be called again
+ unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
+ timeout = iTimeoutMs - (iNow - m_buttontime) + 1;
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
+ timeout = CEC_BUTTON_TIMEOUT - (iNow - m_buttontime) + 1;
+ if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
+ {
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_buttontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
+ timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
+ }
+ return timeout;
}
}
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key auto-released: %s (%1x)", ToString(key.keycode), key.keycode);
QueueAddKey(key);
+ return CEC_PROCESSOR_SIGNAL_WAIT_TIME;
}
bool CCECClient::EnableCallbacks(void *cbParam, ICECCallbacks *callbacks)
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
index 12f8a3b..c9ce5e3 100644
--- a/src/libcec/CECClient.h
+++ b/src/libcec/CECClient.h
@@ -272,7 +272,7 @@ namespace CEC
virtual void AddKey(bool bSendComboKey = false);
virtual void AddKey(const cec_keypress &key);
virtual void SetCurrentButton(const cec_user_control_code iButtonCode);
- virtual void CheckKeypressTimeout(void);
+ virtual uint16_t CheckKeypressTimeout(void);
virtual void SourceActivated(const cec_logical_address logicalAddress);
virtual void SourceDeactivated(const cec_logical_address logicalAddress);
diff --git a/src/libcec/CECProcessor.cpp b/src/libcec/CECProcessor.cpp
index 99f71aa..604b950 100644
--- a/src/libcec/CECProcessor.cpp
+++ b/src/libcec/CECProcessor.cpp
@@ -52,7 +52,6 @@
using namespace CEC;
using namespace PLATFORM;
-#define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000
#define ACTIVE_SOURCE_CHECK_INTERVAL 500
#define TV_PRESENT_CHECK_INTERVAL 30000
@@ -260,6 +259,7 @@ bool CCECProcessor::OnCommandReceived(const cec_command &command)
void *CCECProcessor::Process(void)
{
+ uint16_t timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
m_libcec->AddLog(CEC_LOG_DEBUG, "processor thread started");
if (!m_connCheck)
@@ -274,13 +274,13 @@ void *CCECProcessor::Process(void)
while (!IsStopped() && m_communication->IsOpen())
{
// wait for a new incoming command, and process it
- if (m_inBuffer.Pop(command, CEC_PROCESSOR_SIGNAL_WAIT_TIME))
+ if (m_inBuffer.Pop(command, timeout))
ProcessCommand(command);
if (CECInitialised() && !IsStopped())
{
// check clients for keypress timeouts
- m_libcec->CheckKeypressTimeout();
+ timeout = m_libcec->CheckKeypressTimeout();
// check if we need to replace handlers
ReplaceHandlers();
@@ -311,6 +311,8 @@ void *CCECProcessor::Process(void)
tvPresentCheck.Init(TV_PRESENT_CHECK_INTERVAL);
}
}
+ else
+ timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
}
return NULL;
diff --git a/src/libcec/LibCEC.cpp b/src/libcec/LibCEC.cpp
index af36b79..5ccb8dd 100644
--- a/src/libcec/LibCEC.cpp
+++ b/src/libcec/LibCEC.cpp
@@ -361,11 +361,17 @@ bool CLibCEC::IsValidPhysicalAddress(uint16_t iPhysicalAddress)
iPhysicalAddress <= CEC_MAX_PHYSICAL_ADDRESS;
}
-void CLibCEC::CheckKeypressTimeout(void)
+uint16_t CLibCEC::CheckKeypressTimeout(void)
{
+ uint16_t timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
// check all clients
for (std::vector<CECClientPtr>::iterator it = m_clients.begin(); it != m_clients.end(); it++)
- (*it)->CheckKeypressTimeout();
+ {
+ uint16_t t = (*it)->CheckKeypressTimeout();
+ if (t < timeout)
+ timeout = t;
+ }
+ return timeout;
}
void CLibCEC::AddLog(const cec_log_level level, const char *strFormat, ...)
diff --git a/src/libcec/LibCEC.h b/src/libcec/LibCEC.h
index 6d9a229..d9d1e7b 100644
--- a/src/libcec/LibCEC.h
+++ b/src/libcec/LibCEC.h
@@ -39,6 +39,8 @@
#include "CECTypeUtils.h"
#include <memory>
+#define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000
+
namespace CEC
{
class CAdapterCommunication;
@@ -125,7 +127,7 @@ namespace CEC
void AddLog(const cec_log_level level, const char *strFormat, ...);
void AddCommand(const cec_command &command);
- void CheckKeypressTimeout(void);
+ uint16_t CheckKeypressTimeout(void);
void Alert(const libcec_alert type, const libcec_parameter &param);
static bool IsValidPhysicalAddress(uint16_t iPhysicalAddress);
--
1.9.1
From 41f0f3ec9ac136da3565c96fd5a7075499f3938d Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 24 Oct 2014 13:51:34 +0100
Subject: [PATCH 2/6] Keep track of time since initial button press and last
button update
---
src/libcec/CECClient.cpp | 44 +++++++++++++++++++++++++++-----------------
src/libcec/CECClient.h | 3 ++-
2 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
index e307c0e..e7935b9 100644
--- a/src/libcec/CECClient.cpp
+++ b/src/libcec/CECClient.cpp
@@ -54,7 +54,8 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
m_bInitialised(false),
m_bRegistered(false),
m_iCurrentButton(CEC_USER_CONTROL_CODE_UNKNOWN),
- m_buttontime(0),
+ m_initialButtontime(0),
+ m_updateButtontime(0),
m_iPreventForwardingPowerOffCommand(0),
m_iLastKeypressTime(0)
{
@@ -981,9 +982,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
CLockObject lock(m_mutex);
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
{
- key.duration = (unsigned int) (GetTimeMs() - m_buttontime);
+ unsigned int duration = (unsigned int) (GetTimeMs() - m_updateButtontime);
+ key.duration = (unsigned int) (GetTimeMs() - m_initialButtontime);
- if (key.duration > m_configuration.iComboKeyTimeoutMs ||
+ if (duration > m_configuration.iComboKeyTimeoutMs ||
m_configuration.iComboKeyTimeoutMs == 0 ||
m_iCurrentButton != m_configuration.comboKey ||
bSendComboKey)
@@ -991,14 +993,15 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
key.keycode = m_iCurrentButton;
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
- m_buttontime = 0;
+ m_initialButtontime = 0;
+ m_updateButtontime = 0;
}
}
}
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
{
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x)", ToString(key.keycode), key.keycode);
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
QueueAddKey(key);
}
}
@@ -1012,7 +1015,7 @@ void CCECClient::AddKey(const cec_keypress &key)
AddKey();
return;
}
-
+ bool isrepeat = false;
cec_keypress transmitKey(key);
cec_user_control_code comboKey(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
m_configuration.comboKey : CEC_USER_CONTROL_CODE_STOP);
@@ -1035,22 +1038,27 @@ void CCECClient::AddKey(const cec_keypress &key)
AddKey(true);
}
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x) current(%lx) duration(%d)", ToString(transmitKey.keycode), transmitKey.keycode, m_iCurrentButton, key.duration);
+
if (m_iCurrentButton == key.keycode)
{
- m_buttontime = GetTimeMs();
+ m_updateButtontime = GetTimeMs();
+ isrepeat = true;
}
else
{
- AddKey();
+ if (m_iCurrentButton != transmitKey.keycode)
+ AddKey();
if (key.duration == 0)
{
m_iCurrentButton = transmitKey.keycode;
- m_buttontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
+ m_initialButtontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
+ m_updateButtontime = m_initialButtontime;
}
}
}
- if (key.keycode != comboKey || key.duration > 0)
+ if (!isrepeat && (key.keycode != comboKey || key.duration > 0))
{
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x)", ToString(transmitKey.keycode), transmitKey.keycode);
QueueAddKey(transmitKey);
@@ -1074,32 +1082,34 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
{
CLockObject lock(m_mutex);
uint64_t iNow = GetTimeMs();
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s T:%.3f", __FUNCTION__, iNow*1e-3);
cec_user_control_code comboKey(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
m_configuration.comboKey : CEC_USER_CONTROL_CODE_STOP);
uint32_t iTimeoutMs(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_buttontime > iTimeoutMs) ||
- (m_iCurrentButton != comboKey && iNow - m_buttontime > CEC_BUTTON_TIMEOUT)))
+ ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime > iTimeoutMs) ||
+ (m_iCurrentButton != comboKey && iNow - m_updateButtontime > CEC_BUTTON_TIMEOUT)))
{
- key.duration = (unsigned int) (iNow - m_buttontime);
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = m_iCurrentButton;
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
- m_buttontime = 0;
+ m_initialButtontime = 0;
+ m_updateButtontime = 0;
}
else
{
// time when this keypress will be released and we'd like to be called again
unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
- timeout = iTimeoutMs - (iNow - m_buttontime) + 1;
+ timeout = iTimeoutMs - (iNow - m_updateButtontime) + 1;
else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
- timeout = CEC_BUTTON_TIMEOUT - (iNow - m_buttontime) + 1;
+ timeout = CEC_BUTTON_TIMEOUT - (iNow - m_updateButtontime) + 1;
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
{
- LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_buttontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
}
return timeout;
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
index c9ce5e3..611c68b 100644
--- a/src/libcec/CECClient.h
+++ b/src/libcec/CECClient.h
@@ -404,7 +404,8 @@ namespace CEC
PLATFORM::CMutex m_mutex; /**< mutex for changes to this instance */
PLATFORM::CMutex m_cbMutex; /**< mutex that is held when doing anything with callbacks */
cec_user_control_code m_iCurrentButton; /**< the control code of the button that's currently held down (if any) */
- int64_t m_buttontime; /**< the timestamp when the button was pressed (in seconds since epoch), or 0 if none was pressed. */
+ int64_t m_initialButtontime; /**< the timestamp when the button was initially pressed (in seconds since epoch), or 0 if none was pressed. */
+ int64_t m_updateButtontime; /**< the timestamp when the button was updated (in seconds since epoch), or 0 if none was pressed. */
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
--
1.9.1
From 273ead6980b69eddf98810eb1eb33d94a7d74fce Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 28 Oct 2014 00:09:18 +0000
Subject: [PATCH 3/6] Support repeating button presses with configurable repeat
rate
---
include/cectypes.h | 6 ++
src/libcec/CECClient.cpp | 100 +++++++++++++++++++----
src/libcec/CECClient.h | 6 +-
src/libcec/implementations/CECCommandHandler.cpp | 2 +-
4 files changed, 96 insertions(+), 18 deletions(-)
diff --git a/include/cectypes.h b/include/cectypes.h
index acff259..8f098ef 100644
--- a/include/cectypes.h
+++ b/include/cectypes.h
@@ -1493,6 +1493,8 @@ struct libcec_configuration
XXX changed meaning in 2.2.0 to not break binary compatibility. next major (3.0) release will fix it in a nicer way */
cec_user_control_code comboKey; /*!< key code that initiates combo keys. defaults to CEC_USER_CONTROL_CODE_F1_BLUE. CEC_USER_CONTROL_CODE_UNKNOWN to disable. added in 2.0.5 */
uint32_t iComboKeyTimeoutMs; /*!< timeout until the combo key is sent as normal keypress */
+ uint32_t iButtonRepeatRateMs; /*!< rate at which buttons autorepeat. 0 means rely on CEC device */
+ uint32_t iButtonReleaseDelayMs;/*!< duration after last update until a button is considered released */
#ifdef __cplusplus
libcec_configuration(void) { Clear(); }
@@ -1527,6 +1529,8 @@ struct libcec_configuration
cecVersion == other.cecVersion &&
adapterType == other.adapterType &&
iDoubleTapTimeout50Ms == other.iDoubleTapTimeout50Ms &&
+ iButtonRepeatRateMs == other.iButtonRepeatRateMs &&
+ iButtonReleaseDelayMs == other.iButtonReleaseDelayMs &&
(other.clientVersion <= LIBCEC_VERSION_TO_UINT(2, 0, 4) || comboKey == other.comboKey) &&
(other.clientVersion <= LIBCEC_VERSION_TO_UINT(2, 0, 4) || iComboKeyTimeoutMs == other.iComboKeyTimeoutMs) &&
(other.clientVersion < LIBCEC_VERSION_TO_UINT(2, 1, 0) || bPowerOnScreensaver == other.bPowerOnScreensaver));
@@ -1567,6 +1571,8 @@ struct libcec_configuration
iDoubleTapTimeout50Ms = CEC_DOUBLE_TAP_TIMEOUT_50_MS;
comboKey = CEC_USER_CONTROL_CODE_STOP;
iComboKeyTimeoutMs = CEC_DEFAULT_COMBO_TIMEOUT_MS;
+ iButtonRepeatRateMs = 0;
+ iButtonReleaseDelayMs = CEC_BUTTON_TIMEOUT;
memset(strDeviceName, 0, 13);
deviceTypes.Clear();
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
index e7935b9..598628d 100644
--- a/src/libcec/CECClient.cpp
+++ b/src/libcec/CECClient.cpp
@@ -56,6 +56,10 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
m_iCurrentButton(CEC_USER_CONTROL_CODE_UNKNOWN),
m_initialButtontime(0),
m_updateButtontime(0),
+ m_repeatButtontime(0),
+ m_releaseButtontime(0),
+ m_pressedButtoncount(0),
+ m_releasedButtoncount(0),
m_iPreventForwardingPowerOffCommand(0),
m_iLastKeypressTime(0)
{
@@ -851,6 +855,9 @@ bool CCECClient::GetCurrentConfiguration(libcec_configuration &configuration)
configuration.bMonitorOnly = m_configuration.bMonitorOnly;
configuration.cecVersion = m_configuration.cecVersion;
configuration.adapterType = m_configuration.adapterType;
+ configuration.iDoubleTapTimeout50Ms = m_configuration.iDoubleTapTimeout50Ms;
+ configuration.iButtonRepeatRateMs = m_configuration.iButtonRepeatRateMs;
+ configuration.iButtonReleaseDelayMs = m_configuration.iButtonReleaseDelayMs;
return true;
}
@@ -894,6 +901,9 @@ bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
m_configuration.cecVersion = configuration.cecVersion;
m_configuration.adapterType = configuration.adapterType;
m_configuration.iDoubleTapTimeout50Ms = configuration.iDoubleTapTimeout50Ms;
+ m_configuration.iButtonRepeatRateMs = configuration.iButtonRepeatRateMs;
+ m_configuration.iButtonReleaseDelayMs = configuration.iButtonReleaseDelayMs;
+
m_configuration.deviceTypes.Add(configuration.deviceTypes[0]);
if (m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5))
@@ -950,6 +960,7 @@ bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
primary->ActivateSource();
}
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s: %d:%d:%d", __FUNCTION__, DoubleTapTimeoutMS(), m_configuration.iButtonRepeatRateMs, m_configuration.iButtonReleaseDelayMs);
return true;
}
@@ -973,11 +984,15 @@ void CCECClient::AddCommand(const cec_command &command)
}
}
-void CCECClient::AddKey(bool bSendComboKey /* = false */)
+void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /* = false */)
{
cec_keypress key;
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
+ // we ignore button releases when supporting repeating keys
+ if (bButtonRelease && m_configuration.iButtonRepeatRateMs && m_configuration.iButtonReleaseDelayMs)
+ return;
+
{
CLockObject lock(m_mutex);
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
@@ -995,6 +1010,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
m_initialButtontime = 0;
m_updateButtontime = 0;
+ m_repeatButtontime = 0;
+ m_releaseButtontime = 0;
+ m_pressedButtoncount = 0;
+ m_releasedButtoncount = 0;
}
}
}
@@ -1012,6 +1031,7 @@ void CCECClient::AddKey(const cec_keypress &key)
key.keycode < CEC_USER_CONTROL_CODE_SELECT)
{
// send back the previous key if there is one
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Unexpected key %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
AddKey();
return;
}
@@ -1035,7 +1055,10 @@ void CCECClient::AddKey(const cec_keypress &key)
transmitKey.keycode = CEC_USER_CONTROL_CODE_DOT;
// default, send back the previous key
else
+ {
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Combo key %s (%1x) D%dms:", ToString(key.keycode), key.keycode, key.duration);
AddKey(true);
+ }
}
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x) current(%lx) duration(%d)", ToString(transmitKey.keycode), transmitKey.keycode, m_iCurrentButton, key.duration);
@@ -1043,17 +1066,44 @@ void CCECClient::AddKey(const cec_keypress &key)
if (m_iCurrentButton == key.keycode)
{
m_updateButtontime = GetTimeMs();
- isrepeat = true;
+ m_releaseButtontime = m_updateButtontime + (m_configuration.iButtonReleaseDelayMs ? m_configuration.iButtonReleaseDelayMs : CEC_BUTTON_TIMEOUT);
+ // want to have seen some updated before considering a repeat
+ if (m_configuration.iButtonRepeatRateMs)
+ {
+ if (!m_repeatButtontime && m_pressedButtoncount > 1)
+ m_repeatButtontime = m_initialButtontime + DoubleTapTimeoutMS();
+ isrepeat = true;
+ }
+ m_pressedButtoncount++;
}
else
{
if (m_iCurrentButton != transmitKey.keycode)
+ {
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Changed key %s (%1x) D:%dms cur:%lx", ToString(transmitKey.keycode), transmitKey.keycode, transmitKey.duration, m_iCurrentButton);
AddKey();
+ }
if (key.duration == 0)
{
m_iCurrentButton = transmitKey.keycode;
- m_initialButtontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
- m_updateButtontime = m_initialButtontime;
+ if (m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN)
+ {
+ m_initialButtontime = 0;
+ m_updateButtontime = 0;
+ m_repeatButtontime = 0;
+ m_releaseButtontime = 0;
+ m_pressedButtoncount = 0;
+ m_releasedButtoncount = 0;
+ }
+ else
+ {
+ m_initialButtontime = GetTimeMs();
+ m_updateButtontime = m_initialButtontime;
+ m_repeatButtontime = 0; // set this on next update
+ m_releaseButtontime = m_initialButtontime + (m_configuration.iButtonReleaseDelayMs ? m_configuration.iButtonReleaseDelayMs : CEC_BUTTON_TIMEOUT);
+ m_pressedButtoncount = 1;
+ m_releasedButtoncount = 0;
+ }
}
}
}
@@ -1072,12 +1122,16 @@ void CCECClient::SetCurrentButton(const cec_user_control_code iButtonCode)
key.duration = 0;
key.keycode = iButtonCode;
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "SetCurrentButton %s (%1x) D:%dms cur:%lx", ToString(key.keycode), key.keycode, key.duration);
AddKey(key);
}
uint16_t CCECClient::CheckKeypressTimeout(void)
{
+ // time when we'd like to be called again
+ unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
cec_keypress key;
+ key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
{
CLockObject lock(m_mutex);
@@ -1089,8 +1143,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime > iTimeoutMs) ||
- (m_iCurrentButton != comboKey && iNow - m_updateButtontime > CEC_BUTTON_TIMEOUT)))
+ ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs) ||
+ (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)))
{
key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = m_iCurrentButton;
@@ -1098,27 +1152,41 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
m_initialButtontime = 0;
m_updateButtontime = 0;
+ m_repeatButtontime = 0;
+ m_releaseButtontime = 0;
+ m_pressedButtoncount = 0;
+ m_releasedButtoncount = 0;
+ }
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
+ (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
+ {
+ key.duration = 0;
+ key.keycode = m_iCurrentButton;
+ m_repeatButtontime = iNow + m_configuration.iButtonRepeatRateMs;
+ timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
}
else
{
- // time when this keypress will be released and we'd like to be called again
- unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
- timeout = iTimeoutMs - (iNow - m_updateButtontime) + 1;
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
- timeout = CEC_BUTTON_TIMEOUT - (iNow - m_updateButtontime) + 1;
+ timeout = std::min((uint64_t)timeout, m_updateButtontime - iNow + iTimeoutMs);
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_releaseButtontime)
+ timeout = std::min((uint64_t)timeout, m_releaseButtontime - iNow);
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_repeatButtontime)
+ timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
{
- LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, m_releaseButtontime*1e-3, m_iCurrentButton);
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
}
- return timeout;
}
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key %s: %s (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : key.duration ? "released" : "repeated",
+ ToString(m_iCurrentButton), m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
}
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key auto-released: %s (%1x)", ToString(key.keycode), key.keycode);
- QueueAddKey(key);
- return CEC_PROCESSOR_SIGNAL_WAIT_TIME;
+ if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
+ QueueAddKey(key);
+
+ return timeout;
}
bool CCECClient::EnableCallbacks(void *cbParam, ICECCallbacks *callbacks)
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
index 611c68b..adeb5af 100644
--- a/src/libcec/CECClient.h
+++ b/src/libcec/CECClient.h
@@ -269,7 +269,7 @@ namespace CEC
// callbacks
virtual void Alert(const libcec_alert type, const libcec_parameter &param) { QueueAlert(type, param); }
virtual void AddLog(const cec_log_message &message) { QueueAddLog(message); }
- virtual void AddKey(bool bSendComboKey = false);
+ virtual void AddKey(bool bSendComboKey = false, bool bButtonRelease = false);
virtual void AddKey(const cec_keypress &key);
virtual void SetCurrentButton(const cec_user_control_code iButtonCode);
virtual uint16_t CheckKeypressTimeout(void);
@@ -406,6 +406,10 @@ namespace CEC
cec_user_control_code m_iCurrentButton; /**< the control code of the button that's currently held down (if any) */
int64_t m_initialButtontime; /**< the timestamp when the button was initially pressed (in seconds since epoch), or 0 if none was pressed. */
int64_t m_updateButtontime; /**< the timestamp when the button was updated (in seconds since epoch), or 0 if none was pressed. */
+ int64_t m_repeatButtontime; /**< the timestamp when the button will next repeat (in seconds since epoch), or 0 if repeat is disabled. */
+ int64_t m_releaseButtontime; /**< the timestamp when the button will be released (in seconds since epoch), or 0 if none was pressed. */
+ int32_t m_pressedButtoncount; /**< the number of times a button released message has been seen for this press. */
+ int32_t m_releasedButtoncount; /**< the number of times a button pressed message has been seen for this press. */
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
diff --git a/src/libcec/implementations/CECCommandHandler.cpp b/src/libcec/implementations/CECCommandHandler.cpp
index 6d6244e..d64186f 100644
--- a/src/libcec/implementations/CECCommandHandler.cpp
+++ b/src/libcec/implementations/CECCommandHandler.cpp
@@ -770,7 +770,7 @@ int CCECCommandHandler::HandleUserControlRelease(const cec_command &command)
CECClientPtr client = m_processor->GetClient(command.destination);
if (client)
- client->AddKey();
+ client->AddKey(false, true);
return COMMAND_HANDLED;
}
--
1.9.1
From 3336d0827f7fd159430f3431642b07090c06c869 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 28 Oct 2014 01:21:35 +0000
Subject: [PATCH 4/6] Skip double press removal. It is handled through other
means.
---
src/libcec/CECClient.cpp | 18 +-----------------
src/libcec/CECClient.h | 2 --
2 files changed, 1 insertion(+), 19 deletions(-)
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
index 598628d..dccd874 100644
--- a/src/libcec/CECClient.cpp
+++ b/src/libcec/CECClient.cpp
@@ -60,11 +60,8 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
m_releaseButtontime(0),
m_pressedButtoncount(0),
m_releasedButtoncount(0),
- m_iPreventForwardingPowerOffCommand(0),
- m_iLastKeypressTime(0)
+ m_iPreventForwardingPowerOffCommand(0)
{
- m_lastKeypress.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
- m_lastKeypress.duration = 0;
m_configuration.Clear();
// set the initial configuration
SetConfiguration(configuration);
@@ -1647,20 +1644,7 @@ void CCECClient::CallbackAddKey(const cec_keypress &key)
{
CLockObject lock(m_cbMutex);
if (m_configuration.callbacks && m_configuration.callbacks->CBCecKeyPress)
- {
- // prevent double taps
- int64_t now = GetTimeMs();
- if (m_lastKeypress.keycode != key.keycode ||
- key.duration > 0 ||
- now - m_iLastKeypressTime >= DoubleTapTimeoutMS())
- {
- // no double tap
- if (key.duration == 0)
- m_iLastKeypressTime = now;
- m_lastKeypress = key;
m_configuration.callbacks->CBCecKeyPress(m_configuration.callbackParam, key);
- }
- }
}
void CCECClient::CallbackAddLog(const cec_log_message &message)
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
index adeb5af..43a713b 100644
--- a/src/libcec/CECClient.h
+++ b/src/libcec/CECClient.h
@@ -411,8 +411,6 @@ namespace CEC
int32_t m_pressedButtoncount; /**< the number of times a button released message has been seen for this press. */
int32_t m_releasedButtoncount; /**< the number of times a button pressed message has been seen for this press. */
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
- int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
- cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
PLATFORM::SyncedBuffer<CCallbackWrap*> m_callbackCalls;
};
}
--
1.9.1
From 0dd0234f620a546bfa843172648383f83d88088c Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 3 Nov 2014 23:28:04 +0000
Subject: [PATCH 5/6] Pass through duration on all button repeats
---
src/libcec/CECClient.cpp | 34 ++++++++++++++++++++++++----------
1 file changed, 24 insertions(+), 10 deletions(-)
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
index dccd874..1946148 100644
--- a/src/libcec/CECClient.cpp
+++ b/src/libcec/CECClient.cpp
@@ -986,10 +986,6 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /*
cec_keypress key;
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
- // we ignore button releases when supporting repeating keys
- if (bButtonRelease && m_configuration.iButtonRepeatRateMs && m_configuration.iButtonReleaseDelayMs)
- return;
-
{
CLockObject lock(m_mutex);
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
@@ -1015,6 +1011,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /*
}
}
+ // we don't forward releases when supporting repeating keys
+ if (bButtonRelease && m_configuration.iButtonRepeatRateMs)
+ return;
+
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
{
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
@@ -1107,7 +1107,7 @@ void CCECClient::AddKey(const cec_keypress &key)
if (!isrepeat && (key.keycode != comboKey || key.duration > 0))
{
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x)", ToString(transmitKey.keycode), transmitKey.keycode);
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x, %d)", ToString(transmitKey.keycode), transmitKey.keycode, transmitKey.duration);
QueueAddKey(transmitKey);
}
}
@@ -1129,6 +1129,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
cec_keypress key;
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
+ key.duration = 0;
{
CLockObject lock(m_mutex);
@@ -1140,8 +1141,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs) ||
- (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)))
+ m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
{
key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = m_iCurrentButton;
@@ -1155,9 +1155,23 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
m_releasedButtoncount = 0;
}
else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
+ m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
+ {
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
+ key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
+
+ m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
+ m_initialButtontime = 0;
+ m_updateButtontime = 0;
+ m_repeatButtontime = 0;
+ m_releaseButtontime = 0;
+ m_pressedButtoncount = 0;
+ m_releasedButtoncount = 0;
+ }
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
(m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
{
- key.duration = 0;
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = m_iCurrentButton;
m_repeatButtontime = iNow + m_configuration.iButtonRepeatRateMs;
timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
@@ -1176,8 +1190,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
}
}
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key %s: %s (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : key.duration ? "released" : "repeated",
- ToString(m_iCurrentButton), m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Key %s: %s (duration:%d) (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", ToString(m_iCurrentButton), key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : m_repeatButtontime ? "repeated" : "released", key.duration,
+ m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
}
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
--
1.9.1
From 1ea01f59d8186d4d53af41961aaccbbc11651115 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Wed, 5 Nov 2014 21:04:25 +0000
Subject: [PATCH 6/6] squash: Fix for stop needing to be pressed twice
---
src/libcec/CECClient.cpp | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
index 1946148..f4f114b 100644
--- a/src/libcec/CECClient.cpp
+++ b/src/libcec/CECClient.cpp
@@ -1131,6 +1131,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
key.duration = 0;
+ if (m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN)
+ return timeout;
{
CLockObject lock(m_mutex);
uint64_t iNow = GetTimeMs();
@@ -1140,8 +1142,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
uint32_t iTimeoutMs(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
- m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
+ if (m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
{
key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = m_iCurrentButton;
@@ -1154,8 +1155,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
m_pressedButtoncount = 0;
m_releasedButtoncount = 0;
}
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
- m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
+ else if (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
{
key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
@@ -1168,8 +1168,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
m_pressedButtoncount = 0;
m_releasedButtoncount = 0;
}
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
- (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
+ else if (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime)
{
key.duration = (unsigned int) (iNow - m_initialButtontime);
key.keycode = m_iCurrentButton;
@@ -1178,11 +1177,11 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
}
else
{
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
+ if (m_iCurrentButton == comboKey && iTimeoutMs > 0)
timeout = std::min((uint64_t)timeout, m_updateButtontime - iNow + iTimeoutMs);
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_releaseButtontime)
+ if (m_iCurrentButton != comboKey && m_releaseButtontime)
timeout = std::min((uint64_t)timeout, m_releaseButtontime - iNow);
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_repeatButtontime)
+ if (m_iCurrentButton != comboKey && m_repeatButtontime)
timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
{
--
1.9.1

View File

@ -1,18 +0,0 @@
# see upstream commit, https://github.com/Pulse-Eight/libcec/commit/678739a0d8aa5897fa1906a8fdeeb67b83f7d1e9
diff -Naur a/src/libcec/platform/drm/drm-edid.cpp b/src/libcec/platform/drm/drm-edid.cpp
--- a/src/libcec/platform/drm/drm-edid.cpp 2015-07-03 10:20:49.000000000 -0700
+++ b/src/libcec/platform/drm/drm-edid.cpp 2015-11-10 13:09:14.902629922 -0800
@@ -51,6 +51,12 @@
DIR *dir = opendir(baseDir.c_str());
+ // DRM subfolder may not exist on some systems
+ if (dir == NULL)
+ {
+ return iPA;
+ }
+
struct dirent *entry = readdir(dir);
std::string enablededid;
std::string line;

View File

@ -1,8 +1,33 @@
From 111381e98e7a2544c052a12211349346ed2b47d6 Mon Sep 17 00:00:00 2001
From: Gerald Dachs <gda@dachsweb.de>
Date: Thu, 3 Mar 2016 09:38:44 +0100
Subject: [PATCH] new adapter for amlogic devices
---
README.md | 6 +
include/cectypes.h | 13 +-
src/libcec/CMakeLists.txt | 3 +
src/libcec/adapter/AdapterFactory.cpp | 24 +-
src/libcec/adapter/Amlogic/AmlogicCEC.h | 41 +++
.../Amlogic/AmlogicCECAdapterCommunication.cpp | 305 +++++++++++++++++++++
.../Amlogic/AmlogicCECAdapterCommunication.h | 105 +++++++
.../adapter/Amlogic/AmlogicCECAdapterDetection.cpp | 50 ++++
.../adapter/Amlogic/AmlogicCECAdapterDetection.h | 46 ++++
src/libcec/cmake/CheckPlatformSupport.cmake | 13 +
src/libcec/cmake/DisplayPlatformSupport.cmake | 6 +
src/libcec/env.h.in | 3 +
12 files changed, 613 insertions(+), 2 deletions(-)
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCEC.h
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.cpp
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.h
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.cpp
create mode 100644 src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.h
diff --git a/README.md b/README.md diff --git a/README.md b/README.md
index dfaf4d6..0dffdcf 100644 index dfaf4d6..0dffdcf 100644
--- a/README.md --- a/README.md
+++ b/README.md +++ b/README.md
@@ -58,6 +58,12 @@ @@ -93,6 +93,12 @@ To compile in support for Exynos devices, you have to pass the argument -DHAVE_E
cmake -DHAVE_EXYNOS_API=1 .. cmake -DHAVE_EXYNOS_API=1 ..
``` ```
@ -12,18 +37,17 @@ index dfaf4d6..0dffdcf 100644
+cmake -DHAVE_AMLOGIC_API=1 .. +cmake -DHAVE_AMLOGIC_API=1 ..
+``` +```
+ +
## TDA995x ## ### TDA995x
To compile in support for TDA995x devices, you have to pass the argument -DHAVE_TDA995X_API=1 to cmake: To compile in support for TDA995x devices, you have to pass the argument -DHAVE_TDA995X_API=1 to cmake:
``` ```
diff --git a/include/cectypes.h b/include/cectypes.h diff --git a/include/cectypes.h b/include/cectypes.h
index e28c8df..c0b9476 100644 index 0fdd48e..b7e1932 100644
--- a/include/cectypes.h --- a/include/cectypes.h
+++ b/include/cectypes.h +++ b/include/cectypes.h
@@ -318,6 +318,15 @@ namespace CEC { @@ -309,6 +309,16 @@ namespace CEC {
*/ #define CEC_EXYNOS_VIRTUAL_COM "Exynos"
#define CEC_IMX_VIRTUAL_COM "i.MX"
+/*! /*!
+ * the path to use for the Amlogic HDMI CEC device + * the path to use for the Amlogic HDMI CEC device
+ */ + */
+#define CEC_AMLOGIC_PATH "/dev/AmlogicCEC" +#define CEC_AMLOGIC_PATH "/dev/AmlogicCEC"
@ -32,10 +56,12 @@ index e28c8df..c0b9476 100644
+ * the name of the virtual COM port to use for the AMLOGIC' CEC wire + * the name of the virtual COM port to use for the AMLOGIC' CEC wire
+ */ + */
+#define CEC_AMLOGIC_VIRTUAL_COM "Amlogic" +#define CEC_AMLOGIC_VIRTUAL_COM "Amlogic"
+
/*! +/*!
* Mimimum client version * Mimimum client version
@@ -889,7 +898,8 @@ typedef enum cec_adapter_type */
#define CEC_MIN_LIB_VERSION 3
@@ -899,7 +899,8 @@
ADAPTERTYPE_RPI = 0x100, ADAPTERTYPE_RPI = 0x100,
ADAPTERTYPE_TDA995x = 0x200, ADAPTERTYPE_TDA995x = 0x200,
ADAPTERTYPE_EXYNOS = 0x300, ADAPTERTYPE_EXYNOS = 0x300,
@ -60,11 +86,11 @@ index a494533..e94b094 100644
adapter/Pulse-Eight/USBCECAdapterCommunication.h adapter/Pulse-Eight/USBCECAdapterCommunication.h
adapter/Pulse-Eight/USBCECAdapterCommands.h adapter/Pulse-Eight/USBCECAdapterCommands.h
diff --git a/src/libcec/adapter/AdapterFactory.cpp b/src/libcec/adapter/AdapterFactory.cpp diff --git a/src/libcec/adapter/AdapterFactory.cpp b/src/libcec/adapter/AdapterFactory.cpp
index 92e378b..55703b9 100644 index da05725..824c5ff 100644
--- a/src/libcec/adapter/AdapterFactory.cpp --- a/src/libcec/adapter/AdapterFactory.cpp
+++ b/src/libcec/adapter/AdapterFactory.cpp +++ b/src/libcec/adapter/AdapterFactory.cpp
@@ -63,6 +63,11 @@ @@ -58,6 +58,11 @@
#include "IMX/IMXCECAdapterCommunication.h" #include "Exynos/ExynosCECAdapterCommunication.h"
#endif #endif
+#if defined(HAVE_AMLOGIC_API) +#if defined(HAVE_AMLOGIC_API)
@ -75,16 +101,7 @@ index 92e378b..55703b9 100644
using namespace CEC; using namespace CEC;
int8_t CAdapterFactory::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) int8_t CAdapterFactory::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */)
@@ -131,8 +136,6 @@ int8_t CAdapterFactory::DetectAdapters(cec_adapter_descriptor *deviceList, uint8 @@ -151,8 +151,19 @@
}
#endif
-
-
#if defined(HAVE_IMX_API)
if (iAdaptersFound < iBufSize && CIMXCECAdapterDetection::FindAdapter() &&
(!strDevicePath || !strcmp(strDevicePath, CEC_IMX_VIRTUAL_COM)))
@@ -146,8 +149,20 @@ int8_t CAdapterFactory::DetectAdapters(cec_adapter_descriptor *deviceList, uint8
} }
#endif #endif
@ -101,13 +118,12 @@ index 92e378b..55703b9 100644
+#endif +#endif
-#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API) -#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API)
+
+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API) && !defined(HAVE_AMLOGIC_API) +#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API) && !defined(HAVE_AMLOGIC_API)
#error "libCEC doesn't have support for any type of adapter. please check your build system or configuration" #error "libCEC doesn't have support for any type of adapter. please check your build system or configuration"
#endif #endif
@@ -176,11 +191,16 @@ IAdapterCommunication *CAdapterFactory::GetInstance(const char *strPort, uint16_ @@ -146,6 +163,11 @@ IAdapterCommunication *CAdapterFactory::GetInstance(const char *strPort, uint16_
return new CIMXCECAdapterCommunication(m_lib->m_cec); return new CExynosCECAdapterCommunication(m_lib->m_cec);
#endif #endif
+#if defined(HAVE_AMLOGIC_API) +#if defined(HAVE_AMLOGIC_API)
@ -115,15 +131,9 @@ index 92e378b..55703b9 100644
+ return new CAmlogicCECAdapterCommunication(m_lib->m_cec); + return new CAmlogicCECAdapterCommunication(m_lib->m_cec);
+#endif +#endif
+ +
#if defined(HAVE_P8_USB) #if defined(HAVE_RPI_API)
return new CUSBCECAdapterCommunication(m_lib->m_cec, strPort, iBaudRate); if (!strcmp(strPort, CEC_RPI_VIRTUAL_COM))
#endif return new CRPiCECAdapterCommunication(m_lib->m_cec);
-#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API)
+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API) && !defined(HAVE_AMLOGIC_API)
return NULL;
#endif
}
diff --git a/src/libcec/adapter/Amlogic/AmlogicCEC.h b/src/libcec/adapter/Amlogic/AmlogicCEC.h diff --git a/src/libcec/adapter/Amlogic/AmlogicCEC.h b/src/libcec/adapter/Amlogic/AmlogicCEC.h
new file mode 100644 new file mode 100644
index 0000000..7b86982 index 0000000..7b86982
@ -223,10 +233,10 @@ index 0000000..5aeddda
+ +
+#include "CECTypeUtils.h" +#include "CECTypeUtils.h"
+#include "LibCEC.h" +#include "LibCEC.h"
+#include <platform/util/buffer.h> +#include <p8-platform/util/buffer.h>
+ +
+using namespace CEC; +using namespace CEC;
+using namespace PLATFORM; +using namespace P8PLATFORM;
+ +
+#define LIB_CEC m_callback->GetLib() +#define LIB_CEC m_callback->GetLib()
+ +
@ -528,14 +538,14 @@ index 0000000..0e99cf8
+ +
+#if defined(HAVE_AMLOGIC_API) +#if defined(HAVE_AMLOGIC_API)
+ +
+#include <platform/threads/mutex.h> +#include <p8-platform/threads/mutex.h>
+#include <platform/threads/threads.h> +#include <p8-platform/threads/threads.h>
+#include "../AdapterCommunication.h" +#include "../AdapterCommunication.h"
+#include <map> +#include <map>
+ +
+namespace CEC +namespace CEC
+{ +{
+ class CAmlogicCECAdapterCommunication : public IAdapterCommunication, public PLATFORM::CThread + class CAmlogicCECAdapterCommunication : public IAdapterCommunication, public P8PLATFORM::CThread
+ { + {
+ public: + public:
+ /*! + /*!
@ -575,7 +585,7 @@ index 0000000..0e99cf8
+ void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {} + void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {}
+ ///} + ///}
+ +
+ /** @name PLATFORM::CThread implementation */ + /** @name P8PLATFORM::CThread implementation */
+ ///{ + ///{
+ void *Process(void); + void *Process(void);
+ ///} + ///}
@ -588,7 +598,7 @@ index 0000000..0e99cf8
+ +
+ bool m_bLogicalAddressChanged; + bool m_bLogicalAddressChanged;
+ cec_logical_addresses m_logicalAddresses; + cec_logical_addresses m_logicalAddresses;
+ PLATFORM::CMutex m_mutex; + P8PLATFORM::CMutex m_mutex;
+ int m_fd; + int m_fd;
+ }; + };
+}; +};
@ -702,18 +712,18 @@ index 0000000..8a7418d
+ }; + };
+} +}
diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
index dc5bc25..64003d9 100644 index b8a16c8..311cb52 100644
--- a/src/libcec/cmake/CheckPlatformSupport.cmake --- a/src/libcec/cmake/CheckPlatformSupport.cmake
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake +++ b/src/libcec/cmake/CheckPlatformSupport.cmake
@@ -11,6 +11,7 @@ @@ -9,6 +9,7 @@
# HAVE_IMX_API 1 if i.MX is supported # HAVE_RPI_API 1 if Raspberry Pi is supported
# HAVE_TDA995X_API 1 if TDA995X is supported # HAVE_TDA995X_API 1 if TDA995X is supported
# HAVE_EXYNOS_API 1 if Exynos is supported # HAVE_EXYNOS_API 1 if Exynos is supported
+# HAVE_AMLOGIC_API 1 if Amlogic is supported +# HAVE_AMLOGIC_API 1 if Amlogic is supported
# HAVE_P8_USB 1 if Pulse-Eight devices are supported
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected # HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
# # HAVE_DRM_EDID_PARSER 1 if DRM EDID parsing is supported
@@ -132,6 +133,18 @@ else()
@@ -142,6 +143,18 @@ else()
else() else()
set(HAVE_EXYNOS_API 0) set(HAVE_EXYNOS_API 0)
endif() endif()
@ -733,10 +743,10 @@ index dc5bc25..64003d9 100644
# rt # rt
diff --git a/src/libcec/cmake/DisplayPlatformSupport.cmake b/src/libcec/cmake/DisplayPlatformSupport.cmake diff --git a/src/libcec/cmake/DisplayPlatformSupport.cmake b/src/libcec/cmake/DisplayPlatformSupport.cmake
index 4e24def..1890cac 100644 index 9dcaacf..464252e 100644
--- a/src/libcec/cmake/DisplayPlatformSupport.cmake --- a/src/libcec/cmake/DisplayPlatformSupport.cmake
+++ b/src/libcec/cmake/DisplayPlatformSupport.cmake +++ b/src/libcec/cmake/DisplayPlatformSupport.cmake
@@ -50,6 +50,12 @@ else() @@ -44,6 +44,12 @@ else()
message(STATUS "DRM support: no") message(STATUS "DRM support: no")
endif() endif()
@ -750,10 +760,10 @@ index 4e24def..1890cac 100644
message(STATUS "Python support: version ${PYTHONLIBS_VERSION_STRING} (${PYTHON_VERSION})") message(STATUS "Python support: version ${PYTHONLIBS_VERSION_STRING} (${PYTHON_VERSION})")
else() else()
diff --git a/src/libcec/env.h.in b/src/libcec/env.h.in diff --git a/src/libcec/env.h.in b/src/libcec/env.h.in
index 384f1c7..c3f00bc 100644 index 0496aa0..971f769 100644
--- a/src/libcec/env.h.in --- a/src/libcec/env.h.in
+++ b/src/libcec/env.h.in +++ b/src/libcec/env.h.in
@@ -75,6 +75,9 @@ @@ -72,6 +72,9 @@
/* Define to 1 for Exynos support */ /* Define to 1 for Exynos support */
#cmakedefine HAVE_EXYNOS_API @HAVE_EXYNOS_API@ #cmakedefine HAVE_EXYNOS_API @HAVE_EXYNOS_API@

View File

@ -1,43 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="jasper"
PKG_VERSION="1.900.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OpenSource"
PKG_SITE="http://www.ece.uvic.ca/~mdadams/jasper/"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS_TARGET="toolchain libjpeg-turbo"
PKG_PRIORITY="optional"
PKG_SECTION="graphics"
PKG_SHORTDESC="jasper: JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1) implementation"
PKG_LONGDESC="This distribution contains the public release of the an open-source implementation of the ISO/IEC 15444-1 also known as JPEG-2000 standard for image compression."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static"
pre_configure_target() {
export CFLAGS="$CFLAGS -fPIC -DPIC"
}
post_makeinstall_target() {
rm -rf $INSTALL/usr/bin
}

View File

@ -17,30 +17,26 @@
################################################################################ ################################################################################
PKG_NAME="soil" PKG_NAME="soil"
PKG_VERSION="1.07" PKG_VERSION="1.16"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="PD" PKG_LICENSE="CCPL"
PKG_SITE="http://www.lonesock.net/soil.html" PKG_SITE="http://www.lonesock.net/soil.html"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="mesa" PKG_DEPENDS_TARGET="toolchain mesa"
PKG_PRIORITY="optional" PKG_PRIORITY="optional"
PKG_SECTION="graphics" PKG_SECTION="graphics"
PKG_SHORTDESC="libsoil: Simple OpenGL Image Library" PKG_SHORTDESC="A tiny C lib primarily for loading textures into OpenGL"
PKG_LONGDESC="libsoil: Simple OpenGL Image Library" PKG_LONGDESC="A tiny C lib primarily for loading textures into OpenGL"
PKG_IS_ADDON="no" PKG_IS_ADDON="no"
PKG_AUTORECONF="no" PKG_AUTORECONF="no"
make_target() { pre_make_target() {
mkdir projects/makefile/obj sed "s/1.07-20071110/$PKG_VERSION/" -i Makefile
make CXX="$CXX" CC="$CC" LD="$CC" AR="$AR" CFLAGS="-fPIC -O2" CXXFLAGS="-fPIC -O2" -C projects/makefile export CFLAGS="$CFLAGS -fPIC"
} }
makeinstall_target() { pre_makeinstall_target() {
mkdir -p $SYSROOT_PREFIX/usr/lib export DESTDIR=$SYSROOT_PREFIX
cp -PR lib/libSOIL.a $SYSROOT_PREFIX/usr/lib
mkdir -p $SYSROOT_PREFIX/usr/include/SOIL
cp -P src/SOIL.h $SYSROOT_PREFIX/usr/include/SOIL
} }

View File

@ -0,0 +1,47 @@
--- /dev/null 2015-06-05 20:37:04.396503995 +0200
+++ b/Makefile 2016-01-27 22:47:09.795982961 +0100
@@ -0,0 +1,44 @@
+CC ?= gcc
+INSTALL_FILE = install -p -m 644
+INSTALL_DIR = install -p -d
+LN = ln -s
+RM = rm -fv
+CFLAGS += -c -O2 -Wall
+LDFLAGS +=
+
+SRC = src
+CFILES = $(SRC)/image_DXT.c $(SRC)/image_helper.c $(SRC)/SOIL.c $(SRC)/stb_image_aug.c
+OFILES = $(CFILES:.c=.o)
+LIBNAME = libSOIL
+VERSION = 1.07-20071110
+MAJOR = 1
+
+HFILES = $(SRC)/SOIL.h $(SRC)/image_DXT.h $(SRC)/image_helper.h \
+ $(SRC)/stbi_DDS_aug.h $(SRC)/stbi_DDS_aug_c.h $(SRC)/stb_image_aug.h
+AFILE = libSOIL.a
+INCLUDEDIR = /usr/include/SOIL
+LIBDIR = /usr/lib
+
+all: $(OFILES) lib
+
+%.o: %.c
+ $(CC) $(CFLAGS) $< -o $@
+
+lib: $(OFILES)
+ # create static library
+ $(AR) -cvq $(LIBNAME).a $(OFILES)
+
+install:
+ $(INSTALL_DIR) $(DESTDIR)/$(INCLUDEDIR)
+ $(INSTALL_FILE) $(HFILES) $(DESTDIR)/$(INCLUDEDIR)
+ $(INSTALL_DIR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL_FILE) $(AFILE) $(DESTDIR)/$(LIBDIR)
+
+clean:
+ $(RM) *.o
+ $(RM) *~
+
+distclean:
+ $(RM) $(AFILE) $(SOFILE)
+
+.PHONY: all lib clean distclean

View File

@ -0,0 +1,49 @@
diff --git a/skins/Default/720p/mainWindow.xml b/skins/Default/720p/mainWindow.xml
index 19c7676..c63f688 100644
--- a/skins/Default/720p/mainWindow.xml
+++ b/skins/Default/720p/mainWindow.xml
@@ -75,7 +75,7 @@
<width>220</width>
<height>80</height>
<aspectratio>keep</aspectratio>
- <texture>$INFO[Container(5533).Property(DIST_MEDIA)]/Logo.png</texture>
+ <texture>$INFO[Window.Property(DIST_MEDIA)]/Logo.png</texture>
</control>
<control type="image">
<left>268</left>
@@ -267,7 +267,7 @@
<textcolor>white</textcolor>
<align>left</align>
<aligny>center</aligny>
- <label>$INFO[Container(5533).Property(Distri)] ($INFO[Container(5533).Property(build)])</label>
+ <label>$INFO[Window.Property(Distri)] ($INFO[Window.Property(build)])</label>
</control>
<control type="label">
<left>20</left>
@@ -289,7 +289,7 @@
<textcolor>white</textcolor>
<align>left</align>
<aligny>center</aligny>
- <label>$INFO[Container(5533).Property(Version)]</label>
+ <label>$INFO[Window.Property(Version)]</label>
</control>
<control type="label">
<left>20</left>
@@ -311,7 +311,7 @@
<textcolor>white</textcolor>
<align>left</align>
<aligny>center</aligny>
- <label>$INFO[Container(5533).Property(Arch)]</label>
+ <label>$INFO[Window.Property(Arch)]</label>
</control>
<control type="textbox">
<left>20</left>
@@ -1246,7 +1246,7 @@
<width>740</width>
<height>100</height>
<font>font12</font>
- <label>$INFO[Container(5533).Property(InfoText)]</label>
+ <label>$INFO[Window.Property(InfoText)]</label>
<align>left</align>
<textcolor>white</textcolor>
<shadowcolor>black</shadowcolor>

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="adsp.basic" PKG_NAME="adsp.basic"
PKG_VERSION="cb56e0e" PKG_VERSION="5cf12e8"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="adsp.biquad.filters" PKG_NAME="adsp.biquad.filters"
PKG_VERSION="d63d8ac" PKG_VERSION="af575f3"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="adsp.freesurround" PKG_NAME="adsp.freesurround"
PKG_VERSION="08b691d" PKG_VERSION="6dc533b"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.modplug" PKG_NAME="audiodecoder.modplug"
PKG_VERSION="03b772d" PKG_VERSION="3faec25"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.ncsf" PKG_NAME="audiodecoder.ncsf"
PKG_VERSION="b452778" PKG_VERSION="db9517f"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.nosefart" PKG_NAME="audiodecoder.nosefart"
PKG_VERSION="bfab543" PKG_VERSION="646a7cb"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.organya" PKG_NAME="audiodecoder.organya"
PKG_VERSION="ed0d3a5" PKG_VERSION="88d8a0f"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.qsf" PKG_NAME="audiodecoder.qsf"
PKG_VERSION="83b18d7" PKG_VERSION="4330729"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.sidplay" PKG_NAME="audiodecoder.sidplay"
PKG_VERSION="d832f05" PKG_VERSION="4631114"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.snesapu" PKG_NAME="audiodecoder.snesapu"
PKG_VERSION="db62e88" PKG_VERSION="c5a182b"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.stsound" PKG_NAME="audiodecoder.stsound"
PKG_VERSION="759ae7e" PKG_VERSION="65f0e06"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.timidity" PKG_NAME="audiodecoder.timidity"
PKG_VERSION="1aa2378" PKG_VERSION="f649d32"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audiodecoder.vgmstream" PKG_NAME="audiodecoder.vgmstream"
PKG_VERSION="cb2892a" PKG_VERSION="6695178"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audioencoder.flac" PKG_NAME="audioencoder.flac"
PKG_VERSION="f8a9cd0" PKG_VERSION="176288b"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audioencoder.lame" PKG_NAME="audioencoder.lame"
PKG_VERSION="52f84dd" PKG_VERSION="ffaf9cb"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audioencoder.vorbis" PKG_NAME="audioencoder.vorbis"
PKG_VERSION="42620de" PKG_VERSION="47a0676"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="audioencoder.wav" PKG_NAME="audioencoder.wav"
PKG_VERSION="0c6ec77" PKG_VERSION="a12bcd1"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -0,0 +1,60 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="inputstream.mpd"
PKG_VERSION="4323ce6"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/liberty-developer/inputstream.mpd/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_SECTION=""
PKG_SHORTDESC="inputstream.mpd"
PKG_LONGDESC="inputstream.mpd"
PKG_IS_ADDON="yes"
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
post_make_target() {
mkdir -p wv && cd wv
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
$ROOT/$PKG_BUILD/wvdecrypter
make
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/decrypter/
cp -P $PKG_BUILD/.$TARGET_NAME/wv/libssd_wv.so $ADDON_BUILD/$PKG_ADDON_ID/lib/
ln -sf /storage/decrypters/libwidevinecdm.so $ADDON_BUILD/$PKG_ADDON_ID/decrypter/libwidevinecdm.so
}

View File

@ -0,0 +1,45 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="inputstream.smoothstream"
PKG_VERSION="1813bbb"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_SECTION=""
PKG_SHORTDESC="inputstream.smoothstream"
PKG_LONGDESC="inputstream.smoothstream"
PKG_IS_ADDON="yes"
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
}

View File

@ -0,0 +1,50 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="peripheral.joystick"
PKG_VERSION="76b7c40"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/kodi-game/peripheral.joystick"
PKG_URL="https://github.com/kodi-game/peripheral.joystick/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform p8-platform"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="peripheral.joystick: Joystick support in Kodi"
PKG_LONGDESC="peripheral.joystick provides joystick support and button mapping"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="kodi.peripheral"
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
}

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.argustv" PKG_NAME="pvr.argustv"
PKG_VERSION="654715b" PKG_VERSION="974820a"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.demo" PKG_NAME="pvr.demo"
PKG_VERSION="46d7bfb" PKG_VERSION="e74822f"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.dvblink" PKG_NAME="pvr.dvblink"
PKG_VERSION="88849a2" PKG_VERSION="82c7b4d"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.dvbviewer" PKG_NAME="pvr.dvbviewer"
PKG_VERSION="21423d4" PKG_VERSION="6ab861f"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.filmon" PKG_NAME="pvr.filmon"
PKG_VERSION="54ae595" PKG_VERSION="0d8dd5b"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.hdhomerun" PKG_NAME="pvr.hdhomerun"
PKG_VERSION="ae94e4c" PKG_VERSION="fd9daf4"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.hts" PKG_NAME="pvr.hts"
PKG_VERSION="3c673b5" PKG_VERSION="0f88a35"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.iptvsimple" PKG_NAME="pvr.iptvsimple"
PKG_VERSION="1d95cd0" PKG_VERSION="b741cac"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.mediaportal.tvserver" PKG_NAME="pvr.mediaportal.tvserver"
PKG_VERSION="330d90b" PKG_VERSION="96f415e"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.mythtv" PKG_NAME="pvr.mythtv"
PKG_VERSION="f6b0483" PKG_VERSION="f8d25fd"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.nextpvr" PKG_NAME="pvr.nextpvr"
PKG_VERSION="9214bc0" PKG_VERSION="d445c5a"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.njoy" PKG_NAME="pvr.njoy"
PKG_VERSION="480c159" PKG_VERSION="b9b0ae4"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.pctv" PKG_NAME="pvr.pctv"
PKG_VERSION="0096770" PKG_VERSION="f188048"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.stalker" PKG_NAME="pvr.stalker"
PKG_VERSION="92893c7" PKG_VERSION="14a7c70"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.vbox" PKG_NAME="pvr.vbox"
PKG_VERSION="15e864d" PKG_VERSION="e70146d"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.vdr.vnsi" PKG_NAME="pvr.vdr.vnsi"
PKG_VERSION="76652c2" PKG_VERSION="1236405"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.vuplus" PKG_NAME="pvr.vuplus"
PKG_VERSION="815ea2f" PKG_VERSION="d8c6f9b"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="pvr.wmc" PKG_NAME="pvr.wmc"
PKG_VERSION="6c8d668" PKG_VERSION="898e2da"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -0,0 +1,54 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="screensaver.asterwave"
PKG_VERSION="0dc2c48"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/notspiff/screensaver.asterwave"
PKG_URL="https://github.com/notspiff/screensaver.asterwave/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform soil"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="screensaver.asterwave"
PKG_LONGDESC="screensaver.asterwave"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.ui.screensaver"
if [ "$OPENGL" = "no" ] ; then
exit 0
fi
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
}

View File

@ -0,0 +1,54 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="screensaver.cpblobs"
PKG_VERSION="87a3abf"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/notspiff/screensaver.cpblobs"
PKG_URL="https://github.com/notspiff/screensaver.cpblobs/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform soil"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="screensaver.cpblobs"
PKG_LONGDESC="screensaver.cpblobs"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.ui.screensaver"
if [ "$OPENGL" = "no" ] ; then
exit 0
fi
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
}

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="screensaver.shadertoy" PKG_NAME="screensaver.shadertoy"
PKG_VERSION="7a6f6fe" PKG_VERSION="394de3d"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -0,0 +1,50 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="visualization.pictureit"
PKG_VERSION="e11d577"
PKG_REV="1"
PKG_ARCH="x86_64"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/linuxwhatelse/visualization.pictureit/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain kodi-platform"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="visualization.pictureit"
PKG_LONGDESC="visualization.pictureit"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.player.musicviz"
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=$SYSROOT_PREFIX/usr/lib/kodi \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/
cp -R $PKG_BUILD/.install_pkg/usr/share/kodi/addons/$PKG_NAME/* $ADDON_BUILD/$PKG_ADDON_ID/
ADDONSO=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$PKG_ADDON_ID/addon.xml)
cp -L $PKG_BUILD/.install_pkg/usr/lib/kodi/addons/$PKG_NAME/$ADDONSO $ADDON_BUILD/$PKG_ADDON_ID/
}

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="visualization.shadertoy" PKG_NAME="visualization.shadertoy"
PKG_VERSION="f998800" PKG_VERSION="5b64785"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################ ################################################################################
PKG_NAME="visualization.spectrum" PKG_NAME="visualization.spectrum"
PKG_VERSION="9dbe53a" PKG_VERSION="d662ffe"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"

View File

@ -1,39 +0,0 @@
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2016-03-03 12:18:48.000000000 -0800
+++ b/CMakeLists.txt 2016-04-11 12:38:06.499927119 -0700
@@ -6,8 +6,8 @@
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
find_package(kodi REQUIRED)
-#find_package(platform REQUIRED)
-find_package(p8-platform REQUIRED)
+find_package(platform REQUIRED)
+#find_package(p8-platform REQUIRED)
find_package(kodiplatform REQUIRED)
find_package(CURL REQUIRED)
#find_package(yajl REQUIRED) #why is it so damn difficult to include Kodi's libraries???
@@ -94,9 +94,9 @@
endif()
include_directories(${INCLUDES}
- ${CURL_INCLUDE_DIR}
+ ${CURL_INCLUDE_DIR}
${KODI_INCLUDE_DIR}
- ${p8-platform_INCLUDE_DIRS}
+ ${platform_INCLUDE_DIRS}
${kodiplatform_INCLUDE_DIRS})
# ${YAJL_INCLUDE_DIR}
# ${platform_INCLUDE_DIRS}
diff -Naur a/src/WavforHue_Kodi.h b/src/WavforHue_Kodi.h
--- a/src/WavforHue_Kodi.h 2016-03-03 12:18:48.000000000 -0800
+++ b/src/WavforHue_Kodi.h 2016-04-11 12:38:06.500927127 -0700
@@ -23,6 +23,6 @@
// Is this worth it?
//#include <libKODI_guilib.h>
#include <libXBMC_addon.h>
-#include "p8-platform/util/util.h"
+#include "platform/util/util.h"
extern ADDON::CHelper_libXBMC_addon *XBMC;
-#endif
+#endif
\ No newline at end of file

View File

@ -17,13 +17,13 @@
################################################################################ ################################################################################
PKG_NAME="kodi-platform" PKG_NAME="kodi-platform"
PKG_VERSION="15edaf7" PKG_VERSION="fed924e"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv" PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/xbmc/kodi-platform/archive/$PKG_VERSION.tar.gz" PKG_URL="https://github.com/xbmc/kodi-platform/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain tinyxml kodi platform" PKG_DEPENDS_TARGET="toolchain tinyxml kodi p8-platform"
PKG_PRIORITY="optional" PKG_PRIORITY="optional"
PKG_SECTION="multimedia" PKG_SECTION="multimedia"
PKG_SHORTDESC="kodi-platform:" PKG_SHORTDESC="kodi-platform:"

View File

@ -1,10 +1,10 @@
diff -Naur kodi-platform-15edaf7.orig/CMakeLists.txt kodi-platform-15edaf7/CMakeLists.txt diff -Naur a/CMakeLists.txt b/CMakeLists.txt
--- kodi-platform-15edaf7.orig/CMakeLists.txt 2015-10-22 17:44:43.034540766 -0700 --- a/CMakeLists.txt 2016-01-06 00:56:44.616186365 +0100
+++ kodi-platform-15edaf7/CMakeLists.txt 2015-10-22 17:46:38.851326343 -0700 +++ b/CMakeLists.txt 2016-01-06 00:59:03.502490684 +0100
@@ -9,7 +9,6 @@ @@ -9,7 +9,6 @@
find_package(TinyXML REQUIRED) find_package(TinyXML REQUIRED)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
find_package(platform REQUIRED) find_package(p8-platform REQUIRED)
-include(UseMultiArch.cmake) -include(UseMultiArch.cmake)
include(CheckAtomic.cmake) include(CheckAtomic.cmake)

View File

@ -1,14 +0,0 @@
--- a/720p/IncludesHomeMenuItems.xml 2012-07-22 21:56:07.000000000 +0400
+++ b/720p/IncludesHomeMenuItems.xml 2012-09-13 23:34:16.975470148 +0400
@@ -189,6 +189,11 @@
<label>5</label>
<onclick>ActivateWindow(Settings)</onclick>
</control>
+ <control type="button" id="90120">
+ <include>ButtonHomeSubCommonValues</include>
+ <label>@DISTRONAME@</label>
+ <onclick>RunAddon(service.libreelec.settings)</onclick>
+ </control>
<control type="button" id="90123">
<include>ButtonHomeSubCommonValues</include>
<label>7</label>

View File

@ -16,8 +16,8 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>. # along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################ ################################################################################
PKG_NAME="kodi-theme-Confluence" PKG_NAME="kodi-theme-Estuary"
PKG_VERSION="16.1-rc2-a7caa16" PKG_VERSION="17.0-alpha1-2c72ac9"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
@ -26,7 +26,7 @@ PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain kodi:host" PKG_DEPENDS_TARGET="toolchain kodi:host"
PKG_PRIORITY="optional" PKG_PRIORITY="optional"
PKG_SECTION="mediacenter" PKG_SECTION="mediacenter"
PKG_SHORTDESC="kodi-theme-Confluence: Kodi Mediacenter default theme" PKG_SHORTDESC="kodi-theme-Estuary: Kodi Mediacenter default theme"
PKG_LONGDESC="Kodi Media Center (which was formerly named Xbox Media Center and XBMC) is a free and open source cross-platform media player and home entertainment system software with a 10-foot user interface designed for the living-room TV. Its graphical user interface allows the user to easily manage video, photos, podcasts, and music from a computer, optical disk, local network, and the internet using a remote control." PKG_LONGDESC="Kodi Media Center (which was formerly named Xbox Media Center and XBMC) is a free and open source cross-platform media player and home entertainment system software with a 10-foot user interface designed for the living-room TV. Its graphical user interface allows the user to easily manage video, photos, podcasts, and music from a computer, optical disk, local network, and the internet using a remote control."
PKG_IS_ADDON="no" PKG_IS_ADDON="no"
@ -37,19 +37,28 @@ make_target() {
-output Textures.xbt \ -output Textures.xbt \
-dupecheck \ -dupecheck \
-use_none -use_none
for theme in themes/*; do
TexturePacker -input $theme \
-output $(basename $theme).xbt \
-dupecheck
done
} }
makeinstall_target() { makeinstall_target() {
mkdir -p $INSTALL/usr/share/kodi/addons/skin.confluence mkdir -p $INSTALL/usr/share/kodi/addons/skin.estuary
cp -R */ $INSTALL/usr/share/kodi/addons/skin.confluence cp -R */ $INSTALL/usr/share/kodi/addons/skin.estuary
cp *.txt $INSTALL/usr/share/kodi/addons/skin.confluence cp *.txt $INSTALL/usr/share/kodi/addons/skin.estuary
cp *.xml $INSTALL/usr/share/kodi/addons/skin.confluence cp *.xml $INSTALL/usr/share/kodi/addons/skin.estuary
cp *.png $INSTALL/usr/share/kodi/addons/skin.confluence cp *.png $INSTALL/usr/share/kodi/addons/skin.estuary
rm -rf $INSTALL/usr/share/kodi/addons/skin.confluence/media rm -rf $INSTALL/usr/share/kodi/addons/skin.estuary/media
mkdir -p $INSTALL/usr/share/kodi/addons/skin.confluence/media mkdir -p $INSTALL/usr/share/kodi/addons/skin.estuary/media
cp Textures.xbt $INSTALL/usr/share/kodi/addons/skin.confluence/media cp Textures.xbt $INSTALL/usr/share/kodi/addons/skin.estuary/media
for theme in themes/*; do
cp $(basename $theme).xbt $INSTALL/usr/share/kodi/addons/skin.estuary/media
done
# Rebrand # Rebrand
sed -e "s,@DISTRONAME@,$DISTRONAME,g" -i $INSTALL/usr/share/kodi/addons/skin.confluence/720p/IncludesHomeMenuItems.xml sed -e "s,@DISTRONAME@,$DISTRONAME,g" -i $INSTALL/usr/share/kodi/addons/skin.estuary/1080i/Home.xml
} }

View File

@ -0,0 +1,16 @@
diff -Naur a/1080i/Home.xml b/1080i/Home.xml
--- a/1080i/Home.xml 2016-03-29 23:29:42.616607010 +0100
+++ b/1080i/Home.xml 2016-03-29 23:30:49.205150336 +0100
@@ -1090,6 +1090,12 @@
<property name="id">weather</property>
<visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible>
</item>
+ <item>
+ <label>@DISTRONAME@</label>
+ <onclick>RunAddon(service.libreelec.settings)</onclick>
+ <thumb>icons/home/libreelec.png</thumb>
+ <property name="id">libreelec</property>
+ </item>
</content>
</control>
</control>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="repository.libreelec.tv" <addon id="repository.libreelec.tv"
name="LibreELEC Add-ons" name="LibreELEC Add-ons"
version="7.0.0" version="8.0.0"
provider-name="Team LibreELEC"> provider-name="Team LibreELEC">
<extension point="xbmc.addon.repository" <extension point="xbmc.addon.repository"
name="LibreELEC Add-ons"> name="LibreELEC Add-ons">

View File

@ -17,13 +17,13 @@
################################################################################ ################################################################################
PKG_NAME="kodi" PKG_NAME="kodi"
PKG_VERSION="16.1-rc2-a7caa16" PKG_VERSION="17.0-alpha1-2c72ac9"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv" PKG_SITE="http://www.kodi.tv"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host libsquish boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass curl rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libogg libcdio libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis ffmpeg crossguid giflib" PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host Python zlib bzip2 systemd pciutils lzo pcre swig:host libass curl rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng freetype libogg libcdio taglib libxml2 libxslt yajl sqlite libvorbis ffmpeg crossguid giflib"
PKG_DEPENDS_HOST="lzo:host libpng:host libjpeg-turbo:host giflib:host" PKG_DEPENDS_HOST="lzo:host libpng:host libjpeg-turbo:host giflib:host"
PKG_PRIORITY="optional" PKG_PRIORITY="optional"
PKG_SECTION="mediacenter" PKG_SECTION="mediacenter"
@ -49,7 +49,7 @@ fi
if [ ! "$OPENGL" = "no" ]; then if [ ! "$OPENGL" = "no" ]; then
# for OpenGL (GLX) support # for OpenGL (GLX) support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu glew" PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu"
KODI_OPENGL="--enable-gl" KODI_OPENGL="--enable-gl"
else else
KODI_OPENGL="--disable-gl" KODI_OPENGL="--disable-gl"
@ -228,14 +228,14 @@ export CXXFLAGS_FOR_BUILD="$HOST_CXXFLAGS"
export CFLAGS_FOR_BUILD="$HOST_CFLAGS" export CFLAGS_FOR_BUILD="$HOST_CFLAGS"
export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS" export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS"
export PYTHON_VERSION="2.7" export PYTHON_VERSION=2.7
export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION" export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION"
export PYTHON_LDFLAGS="-L$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION -lpython$PYTHON_VERSION" export PYTHON_LDFLAGS="-L$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION -lpython$PYTHON_VERSION"
export PYTHON_SITE_PKG="$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION/site-packages" export PYTHON_SITE_PKG="$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION/site-packages"
export ac_python_version="$PYTHON_VERSION"
PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
ac_cv_lib_bluetooth_hci_devid=no \ ac_python_version=$PYTHON_VERSION \
--disable-libbluetooth \
--disable-debug \ --disable-debug \
--disable-optimizations \ --disable-optimizations \
$KODI_OPENGL \ $KODI_OPENGL \
@ -279,34 +279,41 @@ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
pre_configure_host() { pre_configure_host() {
# kodi fails to build in subdirs # kodi fails to build in subdirs
cd $ROOT/$PKG_BUILD rm -rf $ROOT/$PKG_BUILD/.$HOST_NAME
rm -rf .$HOST_NAME }
configure_host() {
: # not needed
} }
make_host() { make_host() {
make -C tools/depends/native/JsonSchemaBuilder mkdir -p $ROOT/$PKG_BUILD/tools/depends/native/JsonSchemaBuilder/bin && cd $_
make -C tools/depends/native/TexturePacker cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
..
make
mkdir -p $ROOT/$PKG_BUILD/tools/depends/native/TexturePacker/bin && cd $_
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCORE_SOURCE_DIR=$ROOT/$PKG_BUILD \
-DCMAKE_CXX_FLAGS="-std=c++11 -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -I$ROOT/$PKG_BUILD/xbmc/linux" \
..
make
} }
makeinstall_host() { makeinstall_host() {
cp -PR tools/depends/native/JsonSchemaBuilder/native/JsonSchemaBuilder $ROOT/$TOOLCHAIN/bin cp -P $ROOT/$PKG_BUILD/tools/depends/native/TexturePacker/bin/TexturePacker $ROOT/$TOOLCHAIN/bin
rm -f $ROOT/$TOOLCHAIN/bin/TexturePacker
cp -PR tools/depends/native/TexturePacker/native/TexturePacker $ROOT/$TOOLCHAIN/bin
} }
pre_build_target() { pre_build_target() {
# adding fake Makefile for stripped skin # adding fake Makefile for stripped skin
mkdir -p $PKG_BUILD/addons/skin.confluence/media mkdir -p $ROOT/$PKG_BUILD/addons/skin.estuary/media
touch $PKG_BUILD/addons/skin.confluence/media/Makefile.in touch $ROOT/$PKG_BUILD/addons/skin.estuary/media/Makefile.in
# autoreconf
BOOTSTRAP_STANDALONE=1 make -C $PKG_BUILD -f bootstrap.mk
} }
pre_configure_target() { pre_configure_target() {
# kodi fails to build in subdirs # kodi fails to build in subdirs
cd $ROOT/$PKG_BUILD rm -rf $ROOT/$PKG_BUILD/.$TARGET_NAME
rm -rf .$TARGET_NAME
# kodi should never be built with lto # kodi should never be built with lto
strip_lto strip_lto
@ -316,6 +323,9 @@ pre_configure_target() {
export LIBS="$LIBS -lz" export LIBS="$LIBS -lz"
export JSON_BUILDER=$ROOT/$TOOLCHAIN/bin/JsonSchemaBuilder export JSON_BUILDER=$ROOT/$TOOLCHAIN/bin/JsonSchemaBuilder
# autoreconf
BOOTSTRAP_STANDALONE=1 make -f $ROOT/$PKG_BUILD/bootstrap.mk
} }
make_target() { make_target() {
@ -323,8 +333,8 @@ make_target() {
SKIN_DIR="skin.`tolower $SKIN_DEFAULT`" SKIN_DIR="skin.`tolower $SKIN_DEFAULT`"
# setup default skin inside the sources # setup default skin inside the sources
sed -i -e "s|skin.confluence|$SKIN_DIR|g" $ROOT/$PKG_BUILD/xbmc/settings/Settings.h sed -i -e "s|skin.estuary|$SKIN_DIR|g" $ROOT/$PKG_BUILD/xbmc/system.h
sed -i -e "s|skin.confluence|$SKIN_DIR|g" $ROOT/$PKG_BUILD/system/settings/settings.xml sed -i -e "s|skin.estuary|$SKIN_DIR|g" $ROOT/$PKG_BUILD/system/settings/settings.xml
make externals make externals
make kodi.bin make kodi.bin
@ -340,9 +350,12 @@ post_makeinstall_target() {
rm -rf $INSTALL/usr/bin/xbmc rm -rf $INSTALL/usr/bin/xbmc
rm -rf $INSTALL/usr/bin/xbmc-standalone rm -rf $INSTALL/usr/bin/xbmc-standalone
rm -rf $INSTALL/usr/lib/kodi/*.cmake rm -rf $INSTALL/usr/lib/kodi/*.cmake
rm -rf $INSTALL/usr/share/applications
# more binaddons cross compile badness meh rm -rf $INSTALL/usr/share/icons
sed -i -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" $SYSROOT_PREFIX/usr/lib/kodi/kodi-config.cmake rm -rf $INSTALL/usr/share/kodi/addons/skin.estouchy
rm -rf $INSTALL/usr/share/kodi/addons/service.xbmc.versioncheck
rm -rf $INSTALL/usr/share/kodi/addons/visualization.vortex
rm -rf $INSTALL/usr/share/xsessions
mkdir -p $INSTALL/usr/lib/kodi mkdir -p $INSTALL/usr/lib/kodi
cp $PKG_DIR/scripts/kodi-config $INSTALL/usr/lib/kodi cp $PKG_DIR/scripts/kodi-config $INSTALL/usr/lib/kodi
@ -361,12 +374,6 @@ post_makeinstall_target() {
rm -rf $INSTALL/usr/lib/kodi/kodi-xrandr rm -rf $INSTALL/usr/lib/kodi/kodi-xrandr
fi fi
rm -rf $INSTALL/usr/share/applications
rm -rf $INSTALL/usr/share/icons
rm -rf $INSTALL/usr/share/kodi/addons/service.xbmc.versioncheck
rm -rf $INSTALL/usr/share/kodi/addons/visualization.vortex
rm -rf $INSTALL/usr/share/xsessions
mkdir -p $INSTALL/usr/share/kodi/addons mkdir -p $INSTALL/usr/share/kodi/addons
cp -R $PKG_DIR/config/os.openelec.tv $INSTALL/usr/share/kodi/addons cp -R $PKG_DIR/config/os.openelec.tv $INSTALL/usr/share/kodi/addons
$SED "s|@OS_VERSION@|$OS_VERSION|g" -i $INSTALL/usr/share/kodi/addons/os.openelec.tv/addon.xml $SED "s|@OS_VERSION@|$OS_VERSION|g" -i $INSTALL/usr/share/kodi/addons/os.openelec.tv/addon.xml
@ -375,8 +382,8 @@ post_makeinstall_target() {
cp -R $PKG_DIR/config/repository.libreelec.tv $INSTALL/usr/share/kodi/addons cp -R $PKG_DIR/config/repository.libreelec.tv $INSTALL/usr/share/kodi/addons
$SED "s|@ADDON_URL@|$ADDON_URL|g" -i $INSTALL/usr/share/kodi/addons/repository.libreelec.tv/addon.xml $SED "s|@ADDON_URL@|$ADDON_URL|g" -i $INSTALL/usr/share/kodi/addons/repository.libreelec.tv/addon.xml
mkdir -p $INSTALL/usr/lib/python"$PYTHON_VERSION"/site-packages/kodi mkdir -p $INSTALL/usr/lib/python$PYTHON_VERSION/site-packages/kodi
cp -R tools/EventClients/lib/python/* $INSTALL/usr/lib/python"$PYTHON_VERSION"/site-packages/kodi cp -R tools/EventClients/lib/python/* $INSTALL/usr/lib/python$PYTHON_VERSION/site-packages/kodi
mkdir -p $INSTALL/usr/share/kodi/config mkdir -p $INSTALL/usr/share/kodi/config
cp $PKG_DIR/config/guisettings.xml $INSTALL/usr/share/kodi/config cp $PKG_DIR/config/guisettings.xml $INSTALL/usr/share/kodi/config
@ -405,6 +412,19 @@ post_makeinstall_target() {
cp $PKG_DIR/config/appliance.xml $INSTALL/usr/share/kodi/system/settings cp $PKG_DIR/config/appliance.xml $INSTALL/usr/share/kodi/system/settings
fi fi
# update addon manifest
ADDON_MANIFEST=$INSTALL/usr/share/kodi/system/addon-manifest.xml
xmlstarlet ed -L -d "/addons/addon[text()='service.xbmc.versioncheck']" $ADDON_MANIFEST
xmlstarlet ed -L -d "/addons/addon[text()='skin.estouchy']" $ADDON_MANIFEST
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "peripheral.joystick" $ADDON_MANIFEST
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "os.libreelec.tv" $ADDON_MANIFEST
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "repository.libreelec.tv" $ADDON_MANIFEST
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "service.libreelec.settings" $ADDON_MANIFEST
# more binaddons cross compile badness meh
sed -i -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" $SYSROOT_PREFIX/usr/lib/kodi/kodi-config.cmake
if [ "$KODI_EXTRA_FONTS" = yes ]; then if [ "$KODI_EXTRA_FONTS" = yes ]; then
mkdir -p $INSTALL/usr/share/kodi/media/Fonts mkdir -p $INSTALL/usr/share/kodi/media/Fonts
cp $PKG_DIR/fonts/*.ttf $INSTALL/usr/share/kodi/media/Fonts cp $PKG_DIR/fonts/*.ttf $INSTALL/usr/share/kodi/media/Fonts

View File

@ -121,14 +121,14 @@ index c46cba1..ed3f35f 100644
bool m_AppFocused; bool m_AppFocused;
bool m_renderGUI; bool m_renderGUI;
diff --git a/xbmc/main/main.cpp b/xbmc/main/main.cpp diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp
index 01027f8..4cfb04e 100644 index 01027f8..4cfb04e 100644
--- a/xbmc/main/main.cpp --- a/xbmc/platform/posix/main.cpp
+++ b/xbmc/main/main.cpp +++ b/xbmc/platform/posix/main.cpp
@@ -41,12 +41,27 @@ @@ -41,12 +41,27 @@
#include "input/linux/LIRC.h" #include "input/linux/LIRC.h"
#endif #endif
#include "XbmcContext.h" #include "platform/XbmcContext.h"
+#include "Application.h" +#include "Application.h"
+ +
+void xbmc_term_handler(int signum) +void xbmc_term_handler(int signum)

View File

@ -12,13 +12,13 @@ index 5ac2482..cb84940 100644
--- a/xbmc/windowing/X11/WinSystemX11.h --- a/xbmc/windowing/X11/WinSystemX11.h
+++ b/xbmc/windowing/X11/WinSystemX11.h +++ b/xbmc/windowing/X11/WinSystemX11.h
@@ -54,6 +54,7 @@ public: @@ -54,6 +54,7 @@ public:
virtual bool ResizeWindow(int newWidth, int newHeight, int newLeft, int newTop); bool ResizeWindow(int newWidth, int newHeight, int newLeft, int newTop) override;
virtual bool SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays); bool SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays) override;
virtual void UpdateResolutions(); void UpdateResolutions() override;
+ virtual bool CanDoWindowed() { return false; } + bool CanDoWindowed() override { return false; }
virtual int GetNumScreens() { return 1; } int GetNumScreens() override { return 1; }
virtual int GetCurrentScreen() { return m_nScreen; } int GetCurrentScreen() override { return m_nScreen; }
virtual void ShowOSMouse(bool show); void ShowOSMouse(bool show) override;
-- --
2.5.0 2.5.0

View File

@ -1,17 +1,18 @@
From b70f963a0963735e627b12cf361e4e30d6c2a799 Mon Sep 17 00:00:00 2001 From cd60daafb0c6b1e1de94dbc944bb247a8f810b50 Mon Sep 17 00:00:00 2001
From: Lukas Rusak <lorusak@gmail.com> From: fritsch <peter.fruehberger@gmail.com>
Date: Tue, 26 Jan 2016 08:31:52 +0100 Date: Fri, 29 Jan 2016 16:32:06 +0100
Subject: [PATCH] change pulseaudio default device name to Bluetooth Audio Subject: [PATCH] [PATCH] change pulseaudio default device name to Bluetooth
Audio
--- ---
xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp | 4 +++- xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-) 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
index 67b7b90..8537163 100644 index 7c669b7..043d0d5 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp --- a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
@@ -362,12 +362,14 @@ static void SinkInfoRequestCallback(pa_context *c, const pa_sink_info *i, int eo @@ -394,13 +394,15 @@ static void SinkInfoRequestCallback(pa_context *c, const pa_sink_info *i, int eo
CAEDeviceInfo defaultDevice; CAEDeviceInfo defaultDevice;
defaultDevice.m_deviceName = std::string("Default"); defaultDevice.m_deviceName = std::string("Default");
defaultDevice.m_displayName = std::string("Default"); defaultDevice.m_displayName = std::string("Default");
@ -21,6 +22,7 @@ index 67b7b90..8537163 100644
defaultDevice.m_channels = CAEChannelInfo(AE_CH_LAYOUT_2_0); defaultDevice.m_channels = CAEChannelInfo(AE_CH_LAYOUT_2_0);
defaultDevice.m_sampleRates.assign(defaultSampleRates, defaultSampleRates + ARRAY_SIZE(defaultSampleRates)); defaultDevice.m_sampleRates.assign(defaultSampleRates, defaultSampleRates + ARRAY_SIZE(defaultSampleRates));
defaultDevice.m_deviceType = AE_DEVTYPE_PCM; defaultDevice.m_deviceType = AE_DEVTYPE_PCM;
defaultDevice.m_wantsIECPassthrough = true;
sinkStruct->list->push_back(defaultDevice); sinkStruct->list->push_back(defaultDevice);
+ // OE only wants the default device - so we are done here + // OE only wants the default device - so we are done here
+ return; + return;
@ -28,5 +30,5 @@ index 67b7b90..8537163 100644
if (i && i->name) if (i && i->name)
{ {
-- --
1.9.3 2.5.0

View File

@ -0,0 +1,19 @@
diff -Naur a/Makefile.in b/Makefile.in
--- a/Makefile.in 2016-02-25 15:54:54.305799646 +0000
+++ b/Makefile.in 2016-02-25 15:55:30.609990228 +0000
@@ -11,7 +11,6 @@
DVDPCODECS_DIRS= \
lib \
- lib/libdvd
VideoPlayer_ARCHIVES=xbmc/cores/VideoPlayer/VideoPlayer.a \
xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecs.a \
@@ -332,7 +331,6 @@
$(MAKE) -C lib/addons/library.kodi.peripheral
$(MAKE) -C lib/addons/library.xbmc.pvr
dvdpcodecs: dllloader
- $(MAKE) -C lib/libdvd
dvdpextcodecs:

View File

@ -1,40 +1,8 @@
From ae4e63aa165583ef5eaab4759e7af24eeffbb197 Mon Sep 17 00:00:00 2001 diff -Naur a/configure.ac b/configure.ac
From: croniccorey <cronmod.dev@gmail.com> --- a/configure.ac 2016-02-14 00:19:36.000000000 +0100
Date: Sun, 13 Dec 2015 16:37:05 -0500 +++ b/configure.ac 2016-03-02 09:15:52.504860258 +0100
Subject: [PATCH] KODI: Add support for aarch64 platform @@ -641,6 +641,18 @@
use_gl=no
---
addons/library.xbmc.addon/libXBMC_addon.h | 2 ++
configure.ac | 12 ++++++++++++
m4/xbmc_arch.m4 | 2 +-
xbmc/cores/DllLoader/DllLoader.h | 2 +-
xbmc/cores/DllLoader/ldt_keeper.c | 2 +-
xbmc/cores/VideoRenderers/LinuxRendererGL.h | 2 +-
xbmc/linux/PlatformDefs.h | 2 +-
xbmc/threads/Atomics.cpp | 2 +-
xbmc/utils/CPUInfo.cpp | 2 +-
xbmc/utils/MathUtils.h | 3 ++-
10 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/addons/library.xbmc.addon/libXBMC_addon.h b/addons/library.xbmc.addon/libXBMC_addon.h
index c3ed54f..76190b6 100644
--- a/addons/library.xbmc.addon/libXBMC_addon.h
+++ b/addons/library.xbmc.addon/libXBMC_addon.h
@@ -55,6 +55,8 @@ typedef intptr_t ssize_t;
#define ADDON_HELPER_ARCH "powerpc64-linux"
#elif defined(__ARMEL__)
#define ADDON_HELPER_ARCH "arm"
+#elif defined(__aarch64__)
+#define ADDON_HELPER_ARCH "aarch64"
#elif defined(__mips__)
#define ADDON_HELPER_ARCH "mips"
#else
diff --git a/configure.ac b/configure.ac
index c767357..80f3807 100644
--- a/configure.ac
+++ b/configure.ac
@@ -691,6 +691,18 @@ case $host in
use_wayland=no
USE_STATIC_FFMPEG=1 USE_STATIC_FFMPEG=1
;; ;;
+ aarch64*-*-linux-gnu*) + aarch64*-*-linux-gnu*)
@ -52,11 +20,10 @@ index c767357..80f3807 100644
arm*-*linux-android*) arm*-*linux-android*)
target_platform=target_android target_platform=target_android
use_arch="arm" use_arch="arm"
diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 diff -Naur a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
index 0b66a82..fa08537 100644 --- a/m4/xbmc_arch.m4 2016-02-14 00:19:42.000000000 +0100
--- a/m4/xbmc_arch.m4 +++ b/m4/xbmc_arch.m4 2016-03-02 09:16:33.341943374 +0100
+++ b/m4/xbmc_arch.m4 @@ -60,7 +60,7 @@
@@ -60,7 +60,7 @@ case $host in
powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*) powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64") AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
;; ;;
@ -65,95 +32,3 @@ index 0b66a82..fa08537 100644
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX") AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
;; ;;
mips*-*-linux-gnu*|mips*-*-linux-uclibc*) mips*-*-linux-gnu*|mips*-*-linux-uclibc*)
diff --git a/xbmc/cores/DllLoader/DllLoader.h b/xbmc/cores/DllLoader/DllLoader.h
index 070aee6..e669203 100644
--- a/xbmc/cores/DllLoader/DllLoader.h
+++ b/xbmc/cores/DllLoader/DllLoader.h
@@ -23,7 +23,7 @@
#include "coffldr.h"
#include "LibraryLoader.h"
-#if defined(__linux__) && !defined(__powerpc__) && !defined(__arm__) && !defined(__mips__)
+#if defined(__linux__) && !defined(__powerpc__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
#define USE_LDT_KEEPER
#include "ldt_keeper.h"
#endif
diff --git a/xbmc/cores/DllLoader/ldt_keeper.c b/xbmc/cores/DllLoader/ldt_keeper.c
index 8af9a86..1c0cdb2 100644
--- a/xbmc/cores/DllLoader/ldt_keeper.c
+++ b/xbmc/cores/DllLoader/ldt_keeper.c
@@ -19,7 +19,7 @@
*/
//#ifndef __powerpc__
-#if !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__mips__)
+#if !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
#include "ldt_keeper.h"
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.h b/xbmc/cores/VideoRenderers/LinuxRendererGL.h
index fcdea8d..5a3e3df 100644
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.h
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.h
@@ -323,7 +323,7 @@ class CLinuxRendererGL : public CBaseRenderer
inline int NP2( unsigned x ) {
-#if defined(TARGET_POSIX) && !defined(__POWERPC__) && !defined(__PPC__) && !defined(__arm__) && !defined(__mips__)
+#if defined(TARGET_POSIX) && !defined(__POWERPC__) && !defined(__PPC__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
// If there are any issues compiling this, just append a ' && 0'
// to the above to make it '#if defined(TARGET_POSIX) && 0'
diff --git a/xbmc/linux/PlatformDefs.h b/xbmc/linux/PlatformDefs.h
index 4350075..2c6fff4 100644
--- a/xbmc/linux/PlatformDefs.h
+++ b/xbmc/linux/PlatformDefs.h
@@ -161,7 +161,7 @@
#define __int64 long long
#define __uint64 unsigned long long
-#if defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined (__arm__) || defined(__mips__) // should this be powerpc64 only?
+#if defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined (__arm__) || defined(__mips__) || defined(__aarch64__)
#define __stdcall
#else /* !__x86_64__ */
#define __stdcall __attribute__((__stdcall__))
diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
index 417b2b6..c172867 100644
--- a/xbmc/threads/Atomics.cpp
+++ b/xbmc/threads/Atomics.cpp
@@ -106,7 +106,7 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
///////////////////////////////////////////////////////////////////////////
long long cas2(volatile long long* pAddr, long long expectedVal, long long swapVal)
{
-#if defined(__ppc__) || defined(__powerpc__) || defined(__arm__)// PowerPC and ARM
+#if defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || defined(__aarch64__) // PowerPC and ARM
// Not available/required
// Hack to allow compilation
throw "cas2 is not implemented";
diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
index 9e709e7..d7fef37 100644
--- a/xbmc/utils/CPUInfo.cpp
+++ b/xbmc/utils/CPUInfo.cpp
@@ -914,7 +914,7 @@ void CCPUInfo::ReadCPUFeatures()
#endif
#elif defined(LINUX)
// empty on purpose, the implementation is in the constructor
-#elif !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__)
+#elif !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__aarch64__)
m_cpuFeatures |= CPU_FEATURE_MMX;
#elif defined(__powerpc__) || defined(__ppc__)
m_cpuFeatures |= CPU_FEATURE_ALTIVEC;
diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
index 08140b7..249b4dd 100644
--- a/xbmc/utils/MathUtils.h
+++ b/xbmc/utils/MathUtils.h
@@ -35,7 +35,8 @@
#if defined(__ppc__) || \
defined(__powerpc__) || \
defined(__mips__) || \
- defined(__arm__)
+ defined(__arm__) || \
+ defined(__aarch64__)
#define DISABLE_MATHUTILS_ASM_ROUND_INT
#endif

View File

@ -1,7 +1,7 @@
diff -Naur a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp diff -Naur a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-02 23:09:39.000000000 +0100 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-14 00:19:32.000000000 +0100
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-10 07:01:28.941399058 +0100 +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-03-02 09:36:04.503330833 +0100
@@ -1598,7 +1598,7 @@ @@ -1601,7 +1601,7 @@
am_private->gcodec.param = (void*)(EXTERNAL_PTS | SYNC_OUTSIDE); am_private->gcodec.param = (void*)(EXTERNAL_PTS | SYNC_OUTSIDE);
break; break;
} }
@ -10,15 +10,3 @@ diff -Naur a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdp
// translate from generic to firemware version dependent // translate from generic to firemware version dependent
m_dll->codec_init_para(&am_private->gcodec, &am_private->vcodec); m_dll->codec_init_para(&am_private->gcodec, &am_private->vcodec);
diff -Naur a/xbmc/guilib/GUIFontTTFGL.cpp b/xbmc/guilib/GUIFontTTFGL.cpp
--- a/xbmc/guilib/GUIFontTTFGL.cpp 2016-02-02 23:09:39.000000000 +0100
+++ b/xbmc/guilib/GUIFontTTFGL.cpp 2016-02-10 06:59:49.261293006 +0100
@@ -232,7 +232,7 @@
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glMatrixModview.Get());
// Bind the buffer to the OpenGL context's GL_ARRAY_BUFFER binding point
- glBindBuffer(GL_ARRAY_BUFFER, (GLuint) m_vertexTrans[i].vertexBuffer->bufferHandle);
+ glBindBuffer(GL_ARRAY_BUFFER, (unsigned long) m_vertexTrans[i].vertexBuffer->bufferHandle);
// Do the actual drawing operation, split into groups of characters no
// larger than the pre-determined size of the element array

View File

@ -1,35 +0,0 @@
From ee014b442eac3e85178c89d04691f4fc73cf89e4 Mon Sep 17 00:00:00 2001
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
Date: Sun, 18 Oct 2015 11:24:00 +0200
Subject: [PATCH] FIX: Only handle 3D bitmap subs in TAB
3D bitmap subs cannot be detected in SBS, and there is always the option
to play with Kodi 3D disabled
---
xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
index dca4bdf..c9a0008 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp
@@ -257,18 +257,13 @@ CDVDOverlay* CDVDOverlayCodecFFmpeg::GetOverlay()
}
RENDER_STEREO_MODE render_stereo_mode = g_graphicsContext.GetStereoMode();
- if (render_stereo_mode != RENDER_STEREO_MODE_OFF)
+ if (render_stereo_mode == RENDER_STEREO_MODE_SPLIT_HORIZONTAL)
{
if (rect.h > m_height / 2)
{
m_height /= 2;
rect.h /= 2;
}
- else if (rect.w > m_width / 2)
- {
- m_width /= 2;
- rect.w /= 2;
- }
}
CDVDOverlayImage* overlay = new CDVDOverlayImage();

View File

@ -1,63 +0,0 @@
diff -Naur kodi-16.0-beta5-19fc4fa/system/keymaps/keyboard.xml kodi-16.0-beta5-19fc4fa.patch/system/keymaps/keyboard.xml
--- kodi-16.0-beta5-19fc4fa/system/keymaps/keyboard.xml 2015-12-15 00:07:12.000000000 +0100
+++ kodi-16.0-beta5-19fc4fa.patch/system/keymaps/keyboard.xml 2016-01-05 06:41:50.857902588 +0100
@@ -113,6 +113,7 @@
<sleep>ActivateWindow(shutdownmenu)</sleep>
<!-- PVR windows -->
<e>ActivateWindow(TVGuide)</e>
+ <epg>ActivateWindow(TVGuide)</epg>
<h>ActivateWindow(TVChannels)</h>
<j>ActivateWindow(RadioChannels)</j>
<k>ActivateWindow(TVRecordings)</k>
@@ -268,6 +269,7 @@
<TVGuide>
<keyboard>
<e>PreviousMenu</e>
+ <epg>PreviousMenu</epg>
</keyboard>
</TVGuide>
<MyFiles>
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/linux/LinuxInputDevices.cpp kodi-16.0-beta5-19fc4fa.patch/xbmc/input/linux/LinuxInputDevices.cpp
--- kodi-16.0-beta5-19fc4fa/xbmc/input/linux/LinuxInputDevices.cpp 2015-12-15 00:07:12.000000000 +0100
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/linux/LinuxInputDevices.cpp 2016-01-05 06:41:13.847846527 +0100
@@ -268,6 +268,7 @@
{ KEY_FILE , XBMCK_LAUNCH_FILE_BROWSER},
{ KEY_SELECT , XBMCK_RETURN },
{ KEY_CONFIG , XBMCK_CONFIG },
+ { KEY_EPG , XBMCK_EPG },
// The Little Black Box Remote Additions
{ 384 , XBMCK_LEFT }, // Red
{ 378 , XBMCK_RIGHT }, // Green
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keysym.h kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keysym.h
--- kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keysym.h 2015-12-15 00:07:12.000000000 +0100
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keysym.h 2016-01-05 06:41:13.847846527 +0100
@@ -229,6 +229,7 @@
XBMCK_FAVORITES = 0x14d,
XBMCK_HOMEPAGE = 0x14e,
XBMCK_CONFIG = 0x14f,
+ XBMCK_EPG = 0x150,
// Add any other keys here
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keytable.cpp kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keytable.cpp
--- kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_keytable.cpp 2015-12-15 00:07:12.000000000 +0100
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_keytable.cpp 2016-01-05 06:41:13.848846528 +0100
@@ -243,6 +243,7 @@
, { XBMCK_FAVORITES, 0, 0, XBMCVK_FAVORITES, "favorites" }
, { XBMCK_HOMEPAGE , 0, 0, XBMCVK_HOMEPAGE, "homepage" }
, { XBMCK_CONFIG, 0, 0, XBMCVK_CONFIG, "config" }
+, { XBMCK_EPG , 0, 0, XBMCVK_EPG, "epg" }
};
static int XBMCKeyTableSize = sizeof(XBMCKeyTable)/sizeof(XBMCKEYTABLE);
diff -Naur kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_vkeys.h kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_vkeys.h
--- kodi-16.0-beta5-19fc4fa/xbmc/input/XBMC_vkeys.h 2015-12-15 00:07:12.000000000 +0100
+++ kodi-16.0-beta5-19fc4fa.patch/xbmc/input/XBMC_vkeys.h 2016-01-05 06:41:13.848846528 +0100
@@ -221,6 +221,7 @@
XBMCVK_FAVORITES = 0xE9,
XBMCVK_HOMEPAGE = 0xEA,
XBMCVK_CONFIG = 0xEB,
+ XBMCVK_EPG = 0xEC,
XBMCVK_LAST = 0xFF
} XBMCVKey;

View File

@ -23,7 +23,7 @@
chmod +x /storage/.kodi/addons/*/bin/* chmod +x /storage/.kodi/addons/*/bin/*
# Nasty hack to work around OE to LE migration - Addons*.db needs to forget all about OE addons # Nasty hack to work around OE to LE migration - Addons*.db needs to forget all about OE addons
ADDONSDB=$(ls -1 /storage/.kodi/userdata/Database/Addons20.db 2>/dev/null) ADDONSDB=$(ls -1 /storage/.kodi/userdata/Database/Addons23.db 2>/dev/null)
if [ -n "${ADDONSDB}" ]; then if [ -n "${ADDONSDB}" ]; then
OEREPO="'repository.openelec.tv'" OEREPO="'repository.openelec.tv'"

View File

@ -16,18 +16,19 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>. # along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################ ################################################################################
PKG_NAME="platform" PKG_NAME="p8-platform"
PKG_VERSION="081032f" PKG_VERSION="38343e0"
PKG_REV="1" PKG_REV="1"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="GPL" PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv" PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/Pulse-Eight/platform/archive/$PKG_VERSION.tar.gz" PKG_URL="https://github.com/Pulse-Eight/platform/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_DIR="platform-$PKG_VERSION*"
PKG_DEPENDS_TARGET="toolchain" PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional" PKG_PRIORITY="optional"
PKG_SECTION="multimedia" PKG_SECTION="multimedia"
PKG_SHORTDESC="platform:" PKG_SHORTDESC="Platform support library used by libCEC and binary add-ons for Kodi"
PKG_LONGDESC="platform:" PKG_LONGDESC="Platform support library used by libCEC and binary add-ons for Kodi"
PKG_IS_ADDON="no" PKG_IS_ADDON="no"
PKG_AUTORECONF="no" PKG_AUTORECONF="no"

View File

@ -0,0 +1,28 @@
From f91594676d1f75530addd87363ccbc6510efb84e Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 8 May 2015 11:19:42 +0300
Subject: [PATCH] revert cc badness
this reverts upstream commit 68f8418
---
CMakeLists.txt | 6 ------
1 file changed, 6 deletions(-)
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2016-01-05 23:58:40.000000000 +0100
+++ b/CMakeLists.txt 2016-01-06 01:26:52.004076744 +0100
@@ -22,12 +22,6 @@
src/windows/os-threads.cpp)
endif()
-set(p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform")
-IF(WIN32)
- LIST(APPEND p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform/windows")
-ENDIF(WIN32)
-set(p8-platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
-
if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
if(${CORE_SYSTEM_NAME} STREQUAL "osx" OR ${CORE_SYSTEM_NAME} STREQUAL "ios")
list(APPEND p8-platform_LIBRARIES "-framework CoreVideo -framework IOKit")
--
1.7.10.4

View File

@ -1,30 +0,0 @@
From f91594676d1f75530addd87363ccbc6510efb84e Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 8 May 2015 11:19:42 +0300
Subject: [PATCH] revert cc badness
this reverts upstream commit 68f8418
---
CMakeLists.txt | 6 ------
1 file changed, 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73fae2e..dc3e1b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,12 +22,6 @@ if(WIN32)
src/windows/os-threads.cpp)
endif()
-set(platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/platform")
-IF(WIN32)
- LIST(APPEND platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/platform/windows")
-ENDIF(WIN32)
-set(platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
-
if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
if(${CORE_SYSTEM_NAME} STREQUAL "darwin" OR ${CORE_SYSTEM_NAME} STREQUAL "ios")
list(APPEND platform_LIBRARIES "-framework CoreVideo -framework IOKit")
--
1.7.10.4

View File

@ -37,7 +37,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
--enable-drm \ --enable-drm \
--enable-x11 \ --enable-x11 \
--enable-glx \ --enable-glx \
--disable-egl \ --enable-egl \
--disable-wayland \ --disable-wayland \
--disable-dummy-driver \ --disable-dummy-driver \
--with-drivers-path=/usr/lib/va" --with-drivers-path=/usr/lib/va"

View File

@ -1,117 +0,0 @@
From 01759c5adfb050b1ba0c8a8fc4e20a875a98c0e5 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 10 Aug 2014 18:58:37 +0100
Subject: [PATCH 1/2] confluence: Remove media-overlay.jpg for when video is
backgrounded
---
720p/IncludesBackgroundBuilding.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/720p/IncludesBackgroundBuilding.xml b/720p/IncludesBackgroundBuilding.xml
index cc996da..d6aa595 100644
--- a/720p/IncludesBackgroundBuilding.xml
+++ b/720p/IncludesBackgroundBuilding.xml
@@ -32,7 +32,7 @@
</control>
<control type="image">
<include>BackgroundDimensions</include>
- <texture>special://skin/backgrounds/media-overlay.jpg</texture>
+ <!--texture>special://skin/backgrounds/media-overlay.jpg</texture-->
<visible>[Player.HasVideo + !Skin.HasSetting(ShowBackgroundVideo)] + !Window.IsVisible(TVChannels) + !Window.IsVisible(RadioChannels)</visible>
<include>VisibleFadeEffect</include>
</control>
--
2.5.0
From d99f70c094006144f07bdf739f5847b733030245 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 22 Jul 2013 23:19:15 +0100
Subject: [PATCH 2/2] [confluence] Use animated gif as a cheaper working
spinner
---
720p/DialogBusy.xml | 4 ++--
media/busy.gif | Bin 0 -> 3199 bytes
2 files changed, 2 insertions(+), 2 deletions(-)
create mode 100644 media/busy.gif
diff --git a/720p/DialogBusy.xml b/720p/DialogBusy.xml
index b5df91f..8e84fed 100644
--- a/720p/DialogBusy.xml
+++ b/720p/DialogBusy.xml
@@ -25,9 +25,9 @@
<top>20</top>
<width>32</width>
<height>32</height>
- <texture>busy.png</texture>
+ <texture>busy.gif</texture>
<aspectratio>keep</aspectratio>
- <animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation>
+ <!--animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation-->
</control>
<control type="label">
<description>Busy label</description>
diff --git a/media/busy.gif b/media/busy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f856ed0b44fdc7e9b0520c7e39a9bebc04136897
GIT binary patch
literal 3199
zcmc(fX;f2Z9>y=ZH#f_@I(Toefj|vNK&XX)Kv`7?5Fj9nfFK|eqk^a)i$D+vOGrT0
z5Y~W_Kw^kiL|j0tWs!ndI9M0djt<b)1^0UFSf^(ku;<M510Uv`Ij8e}c;7GYd*1VV
z{?GGp{e7KX5|{uJcmpi14<9}_J39-7LO(x0fj}@eHm22TEi5dIjEuazyk=%*-oJnU
z@#5lU`YS}SUp)V5#7Wzkkg-$1%u32gWG3uM$ljZhAh1c=zbgeW{eW!p3E#}|4DqqI
zVS{=L57sWeUi=h*9_f$yCnc!oCm!*6V)Hg%)Sx4b;3*G3y_Tf5-#ll{cC@v<x=)pA
zDy$p)mTgGTcQYShbM#tm2>#Zlzxi?2cy3&gq6Zb5u5$@@ybycc*-E=i(!PE0#hKFr
z8YwHA>k$o6chjKaEI)p!$wAoDL&l~=#<s>v-6#Yi*r{$k>ZaBy{Iun&<0smBO`6!}
z&StP`{nE=0r$xK_71$KwBW33sD3@jYuko!${Lx^a-L6nm0XI6%X29c~=ih=uThmJ)
z0`sx_;Y1skXCCRh-xeI%QSoNyoC$Wv8mqotx(oQi`#)m+fqj0FJ-Ty#;#jn=BdyK1
z=B6qP9+rpm>D&te;)?^%P6X=O1hYo3EX2|KvKf!7<in@|#EeC0w2e)Mm}q{`poK|>
zPC<6`-z>t4dt|sDMs?7$3qAAwp-9+}MG!&<X;8uHJ!}cJinh0cyE~Vi50<$Xx>HJG
zR56mo+HAFw+XYc`x>Q}qx+NXw8e)#H8!s@v;-0BxXf+|F!d7fF@#<yem8N9j5SC=r
zc$J(})qZ_E@sRLVqKtdLWG-?<)m``mc;5dsHW7am(_Qrv810mnzqP3UthRm2kuT0W
z&lrxG68`O#Kj6Puz_+qnz<*@Nbri&j*VHS+Mo-Jb?JMMa0!wm-Z@4q@m?_7ZAll^_
zDtpS%N^D4F2KKG&^e2?Q+9#gy(T;AXoq>p{m^y-r6hhl}(OBf7Z9T-XA592wChCS0
zghE0dyCjN1p_XlCgFCZKa-d{)QY(vcG`ORqtd3Hv5q9cwWnZ4q9qQ6`p6gJt`i)yI
z(k}USCso)D$=T8}kwkOttLQTdyk*$=N_P3zvI>gu=+%v7SlP7u{o}wK&@wvs;D^UR
z_hrU2=hu&--McI1v8!sb^Bc*rSV@S1`PqwVQ`z9M6-zo`(fwU?)%?V6L!Su!wg%>{
z_Ap6;JlsqFZs&4*_Hyca%X9UeJIQa&rOjqikQOUh?PJH$+b_COMJv9VKYa@bFkHLx
zuWLOM>d88zwur244toBqkoynF%QKPCmFw0Ka@mD&l3lo%OWd7hoRh}_r7X*^);1h%
zS0Y48mAJw~sY5l#+K!_g>SODUoZ~jI`sJw?F0nP#X1q5bEJf^ykCn3huW0t=Buk;;
z><OG4E{)F{TT=~)r?<_`<?!07($8YgTA!>>ir2ELZoSz5-s3JdcW?Z_9fzG0p9c+f
zF75u0<G0q%Pgq*{s0DHLH8@=}91=$HB+Fe*zx;<VO;%Lb%Fn7>#&QywaXZ%t%wx<X
zvUdSJpAPsYepv&92^b?33aQ+l$}%1*we|81iQN&gY;M_x@Tm;K7TZ*q#I*>{@Fph2
z8>d4#CVRatgPNLgq_yn;r95LtQ=1x5s+u(jzg=bD(&G)*)dYbk>S|JZ)~LT9sTL@u
zECM`$!UZY^R=O23aIrSC7%KKzN9#j7fanO3;b9=-Uc<wOwcmJ`n?DRl3VQB76FuWr
ze&-Y}Y7)5DF@p(38BssGAF%vvh1c?>$Ny%r0K&Q!3cxIY#cXS+p(!;!p<8t|C$aCa
zmw^IV`QJZ}KB=L;O)P3iejKViBr3riXEU+Os6+HSe_FAg!SQwiv}qZC3nHl$W!6d@
z71S4lX+^(KPOx(Lj8E2YV-Zqp(+-;Kb+HVT)!}eMBgt)5sl=u6D6D9$YloY~9dexu
zC}LF_6A=VFoaEBm3%6lfCWlPwM@VL+UM3*w1;PDiz0>h(8VN;V8aTNv3fh%t9zvN$
za|0i22m!`XM6L*S0Fdda0iPRhpr2%l$fxG?zK7#0^aKDQU~07$CjLum<cgsI^Cg?$
z=^u0uFIa(TpbQ(@x~a@M#9Ht8tlKT~kX&o|rlNu8u|88ZKbw*Z>>`5g?|W04<I|k{
zf8kS=oj={Y;@8;XOz~=TqntirW=YnyZvFmV#w8iwSj1b+vE)h1aIm71n3cCdS}6x>
zWxRT@I!WkM-tG!!7x5q%CKh;dv|7?pi#(SC(n*+<A&fO4BC*gpt<Kw#?v@QANIy>0
z_JkG+)}Xfm$~B~iw*|Y6V&e#09^^HH!`DEm|CuKkbWa-O@fsst>tv+k@8<e0IeRDQ
z6%&;KwCx)MxzJKg`0~%-=L+cyz|v~xJYkuvQl4L~U`3Vi2q5TUQtYbI7P9j?Srnoc
zBrcLeuot<fb1!`d3L1ehObS%-LknRP9YwAKlo7Z_N}NOuuOk?7WV8&K90Km+q>)}8
zIQam3jP;F3e?*@>`tHd{w(%sqW=s(>)3Q9u09{KSdvd$zkgeI0Rru=vq=DF#Oe*oT
zUC2Jj$)htMM58IqjK$$@6z*jZz{EVhT7wY1hm0T)9FAM%LDXn*5`t*q1rLmYg^^Y_
z5X0LrM!i=K-<X=iiDNDt@Wv0=Q}2ho$4CwE7JL2`Pa{@kR#MJmqt?c3cFpEb!SRfx
zJMm8m!h#Wq2wGEHCUm6MHllU%%Ic=_qa3j-1zZ#YL5LrPfOWb>AxOOl={&<{L5D6K
z>;#ZUjACfyRUVK|-3P;Ja2nW>ZDDm2Hk|&>-$hEgc><W-n8G36B;oVn8+Z@Cd2$CA
ze9w4E`#J92pw}150idYeiA<k5?!9CX9{*1!Afw-i3_cctKAXI5B~jNaPrTKK7b_A5
z8uu_GFd~x6@lQ71$LFn<?BLbPFp)E*BsW1;@7%m!QBQAbu2V~jB5PcwwnP{{;2KoO
zppv?~Ihmq-;Cvsc%*ZFPH~C~Y$qAr<mw-hT;=6l_LC`70-8O=J7mW7vmCd?rz=DQY
z)LHJeZ=Y~xlivUbwT!#3*W1LsccOK@GL={@|AY`J{cjQwf&SitlwrC&U|`R?P4?+L
zr)p}C0u>zg*B6Z$SRsZ~{lGhZr?x1$s1t=S{s}LNuEC0*wfD$uoK%8ST1Gwr7S<)+
z9iovkGf8Q-PRuArxY*w<zSKAaAqKDZq2vZD6jGN+60GWIJ>t@#b!a<6hm>8dJ&H!R
z$Oeur6$C~7PILzO;&4;G^(D-5m{@KUl(MQ1yKs>x+CMqUUllb3x?=fppG8_v>@)ZY
xGUUb21Yb|%0k3;EZL|UA71ss70{N2%rZhjU!V8TtZxzYw_F;tVxR3z1e*p+ht@8i?
literal 0
HcmV?d00001
--
2.5.0

File diff suppressed because it is too large Load Diff

View File

@ -1,117 +0,0 @@
From 01759c5adfb050b1ba0c8a8fc4e20a875a98c0e5 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 10 Aug 2014 18:58:37 +0100
Subject: [PATCH 1/2] confluence: Remove media-overlay.jpg for when video is
backgrounded
---
720p/IncludesBackgroundBuilding.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/720p/IncludesBackgroundBuilding.xml b/720p/IncludesBackgroundBuilding.xml
index cc996da..d6aa595 100644
--- a/720p/IncludesBackgroundBuilding.xml
+++ b/720p/IncludesBackgroundBuilding.xml
@@ -32,7 +32,7 @@
</control>
<control type="image">
<include>BackgroundDimensions</include>
- <texture>special://skin/backgrounds/media-overlay.jpg</texture>
+ <!--texture>special://skin/backgrounds/media-overlay.jpg</texture-->
<visible>[Player.HasVideo + !Skin.HasSetting(ShowBackgroundVideo)] + !Window.IsVisible(TVChannels) + !Window.IsVisible(RadioChannels)</visible>
<include>VisibleFadeEffect</include>
</control>
--
2.5.0
From d99f70c094006144f07bdf739f5847b733030245 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 22 Jul 2013 23:19:15 +0100
Subject: [PATCH 2/2] [confluence] Use animated gif as a cheaper working
spinner
---
720p/DialogBusy.xml | 4 ++--
media/busy.gif | Bin 0 -> 3199 bytes
2 files changed, 2 insertions(+), 2 deletions(-)
create mode 100644 media/busy.gif
diff --git a/720p/DialogBusy.xml b/720p/DialogBusy.xml
index b5df91f..8e84fed 100644
--- a/720p/DialogBusy.xml
+++ b/720p/DialogBusy.xml
@@ -25,9 +25,9 @@
<top>20</top>
<width>32</width>
<height>32</height>
- <texture>busy.png</texture>
+ <texture>busy.gif</texture>
<aspectratio>keep</aspectratio>
- <animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation>
+ <!--animation effect="rotate" start="0" end="360" center="36,36" time="900" loop="true" condition="true">conditional</animation-->
</control>
<control type="label">
<description>Busy label</description>
diff --git a/media/busy.gif b/media/busy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f856ed0b44fdc7e9b0520c7e39a9bebc04136897
GIT binary patch
literal 3199
zcmc(fX;f2Z9>y=ZH#f_@I(Toefj|vNK&XX)Kv`7?5Fj9nfFK|eqk^a)i$D+vOGrT0
z5Y~W_Kw^kiL|j0tWs!ndI9M0djt<b)1^0UFSf^(ku;<M510Uv`Ij8e}c;7GYd*1VV
z{?GGp{e7KX5|{uJcmpi14<9}_J39-7LO(x0fj}@eHm22TEi5dIjEuazyk=%*-oJnU
z@#5lU`YS}SUp)V5#7Wzkkg-$1%u32gWG3uM$ljZhAh1c=zbgeW{eW!p3E#}|4DqqI
zVS{=L57sWeUi=h*9_f$yCnc!oCm!*6V)Hg%)Sx4b;3*G3y_Tf5-#ll{cC@v<x=)pA
zDy$p)mTgGTcQYShbM#tm2>#Zlzxi?2cy3&gq6Zb5u5$@@ybycc*-E=i(!PE0#hKFr
z8YwHA>k$o6chjKaEI)p!$wAoDL&l~=#<s>v-6#Yi*r{$k>ZaBy{Iun&<0smBO`6!}
z&StP`{nE=0r$xK_71$KwBW33sD3@jYuko!${Lx^a-L6nm0XI6%X29c~=ih=uThmJ)
z0`sx_;Y1skXCCRh-xeI%QSoNyoC$Wv8mqotx(oQi`#)m+fqj0FJ-Ty#;#jn=BdyK1
z=B6qP9+rpm>D&te;)?^%P6X=O1hYo3EX2|KvKf!7<in@|#EeC0w2e)Mm}q{`poK|>
zPC<6`-z>t4dt|sDMs?7$3qAAwp-9+}MG!&<X;8uHJ!}cJinh0cyE~Vi50<$Xx>HJG
zR56mo+HAFw+XYc`x>Q}qx+NXw8e)#H8!s@v;-0BxXf+|F!d7fF@#<yem8N9j5SC=r
zc$J(})qZ_E@sRLVqKtdLWG-?<)m``mc;5dsHW7am(_Qrv810mnzqP3UthRm2kuT0W
z&lrxG68`O#Kj6Puz_+qnz<*@Nbri&j*VHS+Mo-Jb?JMMa0!wm-Z@4q@m?_7ZAll^_
zDtpS%N^D4F2KKG&^e2?Q+9#gy(T;AXoq>p{m^y-r6hhl}(OBf7Z9T-XA592wChCS0
zghE0dyCjN1p_XlCgFCZKa-d{)QY(vcG`ORqtd3Hv5q9cwWnZ4q9qQ6`p6gJt`i)yI
z(k}USCso)D$=T8}kwkOttLQTdyk*$=N_P3zvI>gu=+%v7SlP7u{o}wK&@wvs;D^UR
z_hrU2=hu&--McI1v8!sb^Bc*rSV@S1`PqwVQ`z9M6-zo`(fwU?)%?V6L!Su!wg%>{
z_Ap6;JlsqFZs&4*_Hyca%X9UeJIQa&rOjqikQOUh?PJH$+b_COMJv9VKYa@bFkHLx
zuWLOM>d88zwur244toBqkoynF%QKPCmFw0Ka@mD&l3lo%OWd7hoRh}_r7X*^);1h%
zS0Y48mAJw~sY5l#+K!_g>SODUoZ~jI`sJw?F0nP#X1q5bEJf^ykCn3huW0t=Buk;;
z><OG4E{)F{TT=~)r?<_`<?!07($8YgTA!>>ir2ELZoSz5-s3JdcW?Z_9fzG0p9c+f
zF75u0<G0q%Pgq*{s0DHLH8@=}91=$HB+Fe*zx;<VO;%Lb%Fn7>#&QywaXZ%t%wx<X
zvUdSJpAPsYepv&92^b?33aQ+l$}%1*we|81iQN&gY;M_x@Tm;K7TZ*q#I*>{@Fph2
z8>d4#CVRatgPNLgq_yn;r95LtQ=1x5s+u(jzg=bD(&G)*)dYbk>S|JZ)~LT9sTL@u
zECM`$!UZY^R=O23aIrSC7%KKzN9#j7fanO3;b9=-Uc<wOwcmJ`n?DRl3VQB76FuWr
ze&-Y}Y7)5DF@p(38BssGAF%vvh1c?>$Ny%r0K&Q!3cxIY#cXS+p(!;!p<8t|C$aCa
zmw^IV`QJZ}KB=L;O)P3iejKViBr3riXEU+Os6+HSe_FAg!SQwiv}qZC3nHl$W!6d@
z71S4lX+^(KPOx(Lj8E2YV-Zqp(+-;Kb+HVT)!}eMBgt)5sl=u6D6D9$YloY~9dexu
zC}LF_6A=VFoaEBm3%6lfCWlPwM@VL+UM3*w1;PDiz0>h(8VN;V8aTNv3fh%t9zvN$
za|0i22m!`XM6L*S0Fdda0iPRhpr2%l$fxG?zK7#0^aKDQU~07$CjLum<cgsI^Cg?$
z=^u0uFIa(TpbQ(@x~a@M#9Ht8tlKT~kX&o|rlNu8u|88ZKbw*Z>>`5g?|W04<I|k{
zf8kS=oj={Y;@8;XOz~=TqntirW=YnyZvFmV#w8iwSj1b+vE)h1aIm71n3cCdS}6x>
zWxRT@I!WkM-tG!!7x5q%CKh;dv|7?pi#(SC(n*+<A&fO4BC*gpt<Kw#?v@QANIy>0
z_JkG+)}Xfm$~B~iw*|Y6V&e#09^^HH!`DEm|CuKkbWa-O@fsst>tv+k@8<e0IeRDQ
z6%&;KwCx)MxzJKg`0~%-=L+cyz|v~xJYkuvQl4L~U`3Vi2q5TUQtYbI7P9j?Srnoc
zBrcLeuot<fb1!`d3L1ehObS%-LknRP9YwAKlo7Z_N}NOuuOk?7WV8&K90Km+q>)}8
zIQam3jP;F3e?*@>`tHd{w(%sqW=s(>)3Q9u09{KSdvd$zkgeI0Rru=vq=DF#Oe*oT
zUC2Jj$)htMM58IqjK$$@6z*jZz{EVhT7wY1hm0T)9FAM%LDXn*5`t*q1rLmYg^^Y_
z5X0LrM!i=K-<X=iiDNDt@Wv0=Q}2ho$4CwE7JL2`Pa{@kR#MJmqt?c3cFpEb!SRfx
zJMm8m!h#Wq2wGEHCUm6MHllU%%Ic=_qa3j-1zZ#YL5LrPfOWb>AxOOl={&<{L5D6K
z>;#ZUjACfyRUVK|-3P;Ja2nW>ZDDm2Hk|&>-$hEgc><W-n8G36B;oVn8+Z@Cd2$CA
ze9w4E`#J92pw}150idYeiA<k5?!9CX9{*1!Afw-i3_cctKAXI5B~jNaPrTKK7b_A5
z8uu_GFd~x6@lQ71$LFn<?BLbPFp)E*BsW1;@7%m!QBQAbu2V~jB5PcwwnP{{;2KoO
zppv?~Ihmq-;Cvsc%*ZFPH~C~Y$qAr<mw-hT;=6l_LC`70-8O=J7mW7vmCd?rz=DQY
z)LHJeZ=Y~xlivUbwT!#3*W1LsccOK@GL={@|AY`J{cjQwf&SitlwrC&U|`R?P4?+L
zr)p}C0u>zg*B6Z$SRsZ~{lGhZr?x1$s1t=S{s}LNuEC0*wfD$uoK%8ST1Gwr7S<)+
z9iovkGf8Q-PRuArxY*w<zSKAaAqKDZq2vZD6jGN+60GWIJ>t@#b!a<6hm>8dJ&H!R
z$Oeur6$C~7PILzO;&4;G^(D-5m{@KUl(MQ1yKs>x+CMqUUllb3x?=fppG8_v>@)ZY
xGUUb21Yb|%0k3;EZL|UA71ss70{N2%rZhjU!V8TtZxzYw_F;tVxR3z1e*p+ht@8i?
literal 0
HcmV?d00001
--
2.5.0

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
From 5e5453322e71c16b8b96b471a9e5c32b96d6b1af Mon Sep 17 00:00:00 2001 From fde3d3d609e570aa3a8691a4e66e07dce1c80b25 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com> From: Alex Deryskyba <alex@codesnake.com>
Date: Wed, 16 Apr 2014 22:02:01 +0300 Date: Wed, 16 Apr 2014 22:02:01 +0300
Subject: [PATCH 01/17] Fix ALSA sound output for Amlogic-based devices. Subject: [PATCH] [aml] Fix ALSA sound output for Amlogic-based devices.
--- ---
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 +++++++++++++++++++ xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 +++++++++++++++++++
1 file changed, 19 insertions(+) 1 file changed, 19 insertions(+)
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
index df50940..9f80c06 100644 index fbccce0..6bf2c53 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp --- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -83,6 +83,17 @@ static unsigned int ALSASampleRateList[] = @@ -84,6 +84,17 @@ static unsigned int ALSASampleRateList[] =
0 0
}; };
@ -29,7 +29,7 @@ index df50940..9f80c06 100644
CAESinkALSA::CAESinkALSA() : CAESinkALSA::CAESinkALSA() :
m_bufferSize(0), m_bufferSize(0),
m_formatSampleRateMul(0.0), m_formatSampleRateMul(0.0),
@@ -741,12 +752,20 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig @@ -748,12 +759,20 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig
*/ */
periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20); periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20);
bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) sampleRate / 5); bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) sampleRate / 5);
@ -50,6 +50,3 @@ index df50940..9f80c06 100644
CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize); CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
--
1.7.10.4

View File

@ -1,7 +1,7 @@
From d81c2be6e702206b7c00e25be4ee0c0750f1b84d Mon Sep 17 00:00:00 2001 From 0367076d263846832cff68052f3de362f27e5bc6 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com> From: Alex Deryskyba <alex@codesnake.com>
Date: Mon, 8 Sep 2014 23:29:40 +0300 Date: Mon, 8 Sep 2014 23:29:40 +0300
Subject: [PATCH 08/17] Reorder libraries in configure script to prevent Subject: [PATCH] [wetek] Reorder libraries in configure script to prevent
linker errors when linking with libsmbclient linker errors when linking with libsmbclient
Place libsmbclient before all other libraries to prevent linker errors when linking Place libsmbclient before all other libraries to prevent linker errors when linking
@ -9,14 +9,14 @@ with libsmbclient if the libc that is currently used doesn't contain some functi
such as dn_expand (which are often included in libc), but are actually included in such as dn_expand (which are often included in libc), but are actually included in
libresolv. libresolv.
--- ---
configure.ac | 2 +- configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index ff4022f..079fa27 100644 index fbe2766..c668729 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -1475,7 +1475,7 @@ fi @@ -1425,7 +1425,7 @@ fi
# samba # samba
if test "x$use_samba" != "xno"; then if test "x$use_samba" != "xno"; then
PKG_CHECK_MODULES([SAMBA], [smbclient], PKG_CHECK_MODULES([SAMBA], [smbclient],
@ -25,6 +25,3 @@ index ff4022f..079fa27 100644
[AC_CHECK_LIB([smbclient], [main],, [AC_CHECK_LIB([smbclient], [main],,
use_samba=no;AC_MSG_ERROR($missing_library)) use_samba=no;AC_MSG_ERROR($missing_library))
USE_LIBSMBCLIENT=0 USE_LIBSMBCLIENT=0
--
1.7.10.4

View File

@ -1,22 +1,18 @@
From a98954cef067010982c83568dfba45da0d43fe4d Mon Sep 17 00:00:00 2001 From 813e6f31c8006190615cbf8ab031db2362bcf553 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com> From: Alex Deryskyba <alex@codesnake.com>
Date: Fri, 19 Sep 2014 01:55:12 +0300 Date: Fri, 19 Sep 2014 01:55:12 +0300
Subject: [PATCH 09/17] [aml] Change the sample rates that are supported by Subject: [PATCH] [aml] Change the sample rates that are supported by ALSA but
ALSA but unsupported by HDMI to the closest supported unsupported by HDMI to the closest supported value
value
Conflicts:
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
--- ---
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 20 ++++++++++++++++++++ xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+) 1 file changed, 20 insertions(+)
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
index 9f80c06..18303f8 100644 index 6bf2c53..32ab888 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp --- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -666,6 +666,26 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig @@ -673,6 +673,26 @@ bool CAESinkALSA::InitializeHW(const ALSAConfig &inconfig, ALSAConfig &outconfig
snd_pcm_hw_params_set_access(m_pcm, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED); snd_pcm_hw_params_set_access(m_pcm, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED);
unsigned int sampleRate = inconfig.sampleRate; unsigned int sampleRate = inconfig.sampleRate;
@ -43,6 +39,3 @@ index 9f80c06..18303f8 100644
snd_pcm_hw_params_set_rate_near (m_pcm, hw_params, &sampleRate, NULL); snd_pcm_hw_params_set_rate_near (m_pcm, hw_params, &sampleRate, NULL);
unsigned int channelCount = inconfig.channels; unsigned int channelCount = inconfig.channels;
--
1.7.10.4

View File

@ -1,20 +1,20 @@
From 554f4a769d67155cbdf6f45ba256b5700baa65c1 Mon Sep 17 00:00:00 2001 From b97f9b069a98984109829badcdf8ead92a29ee38 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com> From: Alex Deryskyba <alex@codesnake.com>
Date: Sat, 20 Sep 2014 04:43:52 +0300 Date: Sat, 20 Sep 2014 04:43:52 +0300
Subject: [PATCH 10/17] [aml] Fill audio packets completely when resampling to Subject: [PATCH] [aml] Fill audio packets completely when resampling to
prevent 'audio data unaligned' kernel warnings prevent 'audio data unaligned' kernel warnings
--- ---
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp | 4 ++++ xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp | 4 ++++
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp
index 3b0a015..ef431a4 100644 index dffded7..2f9dc47 100644
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEBuffer.cpp
@@ -143,7 +143,11 @@ CActiveAEBufferPoolResample::CActiveAEBufferPoolResample(AEAudioFormat inputForm @@ -157,7 +157,11 @@ CActiveAEBufferPoolResample::CActiveAEBufferPoolResample(AEAudioFormat inputForm
if (AE_IS_RAW(m_inputFormat.m_dataFormat)) m_inputFormat.m_channelLayout += AE_CH_FC;
m_inputFormat.m_dataFormat = AE_FMT_S16NE; }
m_resampler = NULL; m_resampler = NULL;
+#ifdef HAS_LIBAMCODEC +#ifdef HAS_LIBAMCODEC
+ m_fillPackets = true; + m_fillPackets = true;
@ -24,6 +24,3 @@ index 3b0a015..ef431a4 100644
m_drain = false; m_drain = false;
m_empty = true; m_empty = true;
m_procSample = NULL; m_procSample = NULL;
--
1.7.10.4

View File

@ -1,120 +0,0 @@
From e065d31b7bac0a3fffc0f05922613090cc573709 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com>
Date: Sun, 21 Sep 2014 17:17:14 +0300
Subject: [PATCH 11/17] [aml] Use fpsrate and fpsscale instead of rfpsrate and
rfpsscale to detect framerate
---
xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 12 ++-----
.../DVDCodecs/Video/DVDVideoCodecAmlogic.cpp | 38 +++++++++-----------
2 files changed, 20 insertions(+), 30 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
index 26db4a1..fcdad19 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
@@ -1465,14 +1465,8 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints)
am_private->video_ratio64 = ((int64_t)video_ratio.num << 32) | video_ratio.den;
// handle video rate
- if (hints.rfpsrate > 0 && hints.rfpsscale != 0)
+ if (hints.fpsrate > 0 && hints.fpsscale != 0)
{
- // check ffmpeg r_frame_rate 1st
- am_private->video_rate = 0.5 + (float)UNIT_FREQ * hints.rfpsscale / hints.rfpsrate;
- }
- else if (hints.fpsrate > 0 && hints.fpsscale != 0)
- {
- // then ffmpeg avg_frame_rate next
am_private->video_rate = 0.5 + (float)UNIT_FREQ * hints.fpsscale / hints.fpsrate;
}
@@ -1545,8 +1539,8 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints)
CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder "
"hints.width(%d), hints.height(%d), hints.codec(%d), hints.codec_tag(%d), hints.pid(%d)",
hints.width, hints.height, hints.codec, hints.codec_tag, hints.pid);
- CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.fpsrate(%d), hints.fpsscale(%d), hints.rfpsrate(%d), hints.rfpsscale(%d), video_rate(%d)",
- hints.fpsrate, hints.fpsscale, hints.rfpsrate, hints.rfpsscale, am_private->video_rate);
+ CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.fpsrate(%d), hints.fpsscale(%d), video_rate(%d)",
+ hints.fpsrate, hints.fpsscale, am_private->video_rate);
CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.aspect(%f), video_ratio.num(%d), video_ratio.den(%d)",
hints.aspect, video_ratio.num, video_ratio.den);
CLog::Log(LOGDEBUG, "CAMLCodec::OpenDecoder hints.orientation(%d), hints.forced_aspect(%d), hints.extrasize(%d)",
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp
index 24c1ab9..960aae1 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp
@@ -74,9 +74,7 @@ bool CDVDVideoCodecAmlogic::Open(CDVDStreamInfo &hints, CDVDCodecOptions &option
m_mpeg2_sequence->width = m_hints.width;
m_mpeg2_sequence->height = m_hints.height;
m_mpeg2_sequence->ratio = m_hints.aspect;
- if (m_hints.rfpsrate > 0 && m_hints.rfpsscale != 0)
- m_mpeg2_sequence->rate = (float)m_hints.rfpsrate / m_hints.rfpsscale;
- else if (m_hints.fpsrate > 0 && m_hints.fpsscale != 0)
+ if (m_hints.fpsrate > 0 && m_hints.fpsscale != 0)
m_mpeg2_sequence->rate = (float)m_hints.fpsrate / m_hints.fpsscale;
else
m_mpeg2_sequence->rate = 1.0;
@@ -374,43 +372,41 @@ void CDVDVideoCodecAmlogic::FrameRateTracking(uint8_t *pData, int iSize, double
{
default:
case 0x01:
- m_hints.rfpsrate = 24000.0;
- m_hints.rfpsscale = 1001.0;
+ m_hints.fpsrate = 24000.0;
+ m_hints.fpsscale = 1001.0;
break;
case 0x02:
- m_hints.rfpsrate = 24000.0;
- m_hints.rfpsscale = 1000.0;
+ m_hints.fpsrate = 24000.0;
+ m_hints.fpsscale = 1000.0;
break;
case 0x03:
- m_hints.rfpsrate = 25000.0;
- m_hints.rfpsscale = 1000.0;
+ m_hints.fpsrate = 25000.0;
+ m_hints.fpsscale = 1000.0;
break;
case 0x04:
- m_hints.rfpsrate = 30000.0;
- m_hints.rfpsscale = 1001.0;
+ m_hints.fpsrate = 30000.0;
+ m_hints.fpsscale = 1001.0;
break;
case 0x05:
- m_hints.rfpsrate = 30000.0;
- m_hints.rfpsscale = 1000.0;
+ m_hints.fpsrate = 30000.0;
+ m_hints.fpsscale = 1000.0;
break;
case 0x06:
- m_hints.rfpsrate = 50000.0;
- m_hints.rfpsscale = 1000.0;
+ m_hints.fpsrate = 50000.0;
+ m_hints.fpsscale = 1000.0;
break;
case 0x07:
- m_hints.rfpsrate = 60000.0;
- m_hints.rfpsscale = 1001.0;
+ m_hints.fpsrate = 60000.0;
+ m_hints.fpsscale = 1001.0;
break;
case 0x08:
- m_hints.rfpsrate = 60000.0;
- m_hints.rfpsscale = 1000.0;
+ m_hints.fpsrate = 60000.0;
+ m_hints.fpsscale = 1000.0;
break;
}
m_hints.width = m_mpeg2_sequence->width;
m_hints.height = m_mpeg2_sequence->height;
m_hints.aspect = m_mpeg2_sequence->ratio;
- m_hints.fpsrate = m_hints.rfpsrate;
- m_hints.fpsscale = m_hints.rfpsscale;
}
return;
}
--
1.7.10.4

View File

@ -1,143 +0,0 @@
From a9ff99a36f9e6cea70f7274312a127563af15dc5 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com>
Date: Sun, 21 Sep 2014 17:20:25 +0300
Subject: [PATCH 12/17] Fix incorrect frame rate detection of some videos with
variable frame rate.
Use FFMPEG's r_frame_rate, if it as valid, as a video stream frame rate, otherwise use avg_frame_rate.
Also remove CDVDStreamInfo.rfpsscale, CDVDStreamInfo.rfpsrate, CDemuxStreamVideo.irFpsScale and CDemuxStreamVideo.irFpsRate,
they are not needed anymore.
---
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h | 4 ---
.../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 29 ++++++++--------------
xbmc/cores/dvdplayer/DVDStreamInfo.cpp | 8 ------
xbmc/cores/dvdplayer/DVDStreamInfo.h | 2 --
4 files changed, 10 insertions(+), 33 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
index d69991e..faf3c9b 100644
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
@@ -151,8 +151,6 @@ public:
{
iFpsScale = 0;
iFpsRate = 0;
- irFpsScale = 0;
- irFpsRate = 0;
iHeight = 0;
iWidth = 0;
fAspect = 0.0;
@@ -167,8 +165,6 @@ public:
virtual ~CDemuxStreamVideo() {}
int iFpsScale; // scale of 1000 and a rate of 29970 will result in 29.97 fps
int iFpsRate;
- int irFpsScale;
- int irFpsRate;
int iHeight; // height of the stream reported by the demuxer
int iWidth; // width of the stream reported by the demuxer
float fAspect; // display aspect of stream
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
index 1315117..5367b28 100644
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
@@ -1125,34 +1125,25 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int iId)
#else
AVRational r_frame_rate = pStream->r_frame_rate;
#endif
+ int rFrameRate = 0;
+ if (r_frame_rate.den && r_frame_rate.num)
+ rFrameRate = r_frame_rate.num / r_frame_rate.den;
+ bool rFrameRateValid = rFrameRate >= 5 && rFrameRate <= 100;
- //average fps is more accurate for mkv files
- if (m_bMatroska && pStream->avg_frame_rate.den && pStream->avg_frame_rate.num)
- {
- st->iFpsRate = pStream->avg_frame_rate.num;
- st->iFpsScale = pStream->avg_frame_rate.den;
- }
- else if(r_frame_rate.den && r_frame_rate.num)
+ if (rFrameRateValid)
{
st->iFpsRate = r_frame_rate.num;
st->iFpsScale = r_frame_rate.den;
}
- else
- {
- st->iFpsRate = 0;
- st->iFpsScale = 0;
- }
-
- // added for aml hw decoder, mkv frame-rate can be wrong.
- if (r_frame_rate.den && r_frame_rate.num)
+ else if(pStream->avg_frame_rate.den && pStream->avg_frame_rate.num)
{
- st->irFpsRate = r_frame_rate.num;
- st->irFpsScale = r_frame_rate.den;
+ st->iFpsRate = pStream->avg_frame_rate.num;
+ st->iFpsScale = pStream->avg_frame_rate.den;
}
else
{
- st->irFpsRate = 0;
- st->irFpsScale = 0;
+ st->iFpsRate = 0;
+ st->iFpsScale = 0;
}
if (pStream->codec_info_nb_frames > 0
diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp
index c1dbd85..03facbe 100644
--- a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp
+++ b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp
@@ -52,8 +52,6 @@ void CDVDStreamInfo::Clear()
fpsscale = 0;
fpsrate = 0;
- rfpsscale= 0;
- rfpsrate = 0;
height = 0;
width = 0;
aspect = 0.0;
@@ -97,8 +95,6 @@ bool CDVDStreamInfo::Equal(const CDVDStreamInfo& right, bool withextradata)
// VIDEO
if( fpsscale != right.fpsscale
|| fpsrate != right.fpsrate
- || rfpsscale!= right.rfpsscale
- || rfpsrate != right.rfpsrate
|| height != right.height
|| width != right.width
|| stills != right.stills
@@ -159,8 +155,6 @@ void CDVDStreamInfo::Assign(const CDVDStreamInfo& right, bool withextradata)
// VIDEO
fpsscale = right.fpsscale;
fpsrate = right.fpsrate;
- rfpsscale= right.rfpsscale;
- rfpsrate = right.rfpsrate;
height = right.height;
width = right.width;
aspect = right.aspect;
@@ -220,8 +214,6 @@ void CDVDStreamInfo::Assign(const CDemuxStream& right, bool withextradata)
const CDemuxStreamVideo *stream = static_cast<const CDemuxStreamVideo*>(&right);
fpsscale = stream->iFpsScale;
fpsrate = stream->iFpsRate;
- rfpsscale = stream->irFpsScale;
- rfpsrate = stream->irFpsRate;
height = stream->iHeight;
width = stream->iWidth;
aspect = stream->fAspect;
diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.h b/xbmc/cores/dvdplayer/DVDStreamInfo.h
index c0e22a2..8953ff3 100644
--- a/xbmc/cores/dvdplayer/DVDStreamInfo.h
+++ b/xbmc/cores/dvdplayer/DVDStreamInfo.h
@@ -58,8 +58,6 @@ public:
// VIDEO
int fpsscale; // scale of 1001 and a rate of 60000 will result in 59.94 fps
int fpsrate;
- int rfpsscale;
- int rfpsrate;
int height; // height of the stream reported by the demuxer
int width; // width of the stream reported by the demuxer
float aspect; // display aspect as reported by demuxer
--
2.1.4

View File

@ -1,19 +1,19 @@
From 6aa16d7fe7e6dbe95bdca8069a16d2aa415adf37 Mon Sep 17 00:00:00 2001 From a2adae2d6a5036b2af02448e6803175a02f368d1 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com> From: Alex Deryskyba <alex@codesnake.com>
Date: Tue, 3 Feb 2015 17:58:19 +0100 Date: Tue, 3 Feb 2015 17:58:19 +0100
Subject: [PATCH 16/17] Disable deinterlacing for HD content while video is Subject: [PATCH] [aml] Disable deinterlacing for HD content while video is
being played in a window to prevent screen blinking in 1080p50/60hz display being played in a window
modes
... to prevent screen blinking in 1080p50/60hz display modes
--- ---
xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 5 +++++ xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
index 2fad224..74804de 100644 index 5dc6592..2103042 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
@@ -2261,6 +2261,11 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect) @@ -2259,6 +2259,11 @@ void CAMLCodec::SetVideoRect(const CRect &SrcRect, const CRect &DestRect)
CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:m_stereo_view(%d)", m_stereo_view); CLog::Log(LOGDEBUG, "CAMLCodec::SetVideoRect:m_stereo_view(%d)", m_stereo_view);
#endif #endif
@ -25,6 +25,3 @@ index 2fad224..74804de 100644
// goofy 0/1 based difference in aml axis coordinates. // goofy 0/1 based difference in aml axis coordinates.
// fix them. // fix them.
dst_rect.x2--; dst_rect.x2--;
--
2.1.4

View File

@ -1,18 +1,18 @@
From 7b1c6ca4cb5bf3310cbfe3b007063439be301b6b Mon Sep 17 00:00:00 2001 From 3e6754f46448b9718d57b62e8ca122e6217d0b22 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com> From: Alex Deryskyba <alex@codesnake.com>
Date: Mon, 2 Mar 2015 09:48:14 +0100 Date: Mon, 2 Mar 2015 09:48:14 +0100
Subject: [PATCH 18/26] [aml] Fix stuttering during a playback of a video with Subject: [PATCH] [aml] Fix stuttering during a playback of a video with 23.976
23.976 FPS FPS
--- ---
xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp | 2 +- xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
index bf4c958..8d49de8 100644 index 2103042..edf8f8a 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
@@ -1932,7 +1932,7 @@ void CAMLCodec::Process() @@ -1974,7 +1974,7 @@ void CAMLCodec::Process()
double error = app_pts - (double)pts_video/PTS_FREQ; double error = app_pts - (double)pts_video/PTS_FREQ;
double abs_error = fabs(error); double abs_error = fabs(error);
@ -21,6 +21,3 @@ index bf4c958..8d49de8 100644
{ {
//CLog::Log(LOGDEBUG, "CAMLCodec::Process pts diff = %f", error); //CLog::Log(LOGDEBUG, "CAMLCodec::Process pts diff = %f", error);
if (abs_error > 0.150) if (abs_error > 0.150)
--
1.7.10.4

View File

@ -0,0 +1,27 @@
From 11435d47a5351c55ef12661baf1adb167da513ef Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com>
Date: Tue, 30 Jun 2015 11:19:57 +0200
Subject: [PATCH] [aml] Ugly workaround to show DTS/AC3 caps
... but don't run into multi channel issues as we can only open 2 pcm channels
---
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
index 32ab888..d4eb0be 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -1336,6 +1336,12 @@ void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
AEDeviceType CAESinkALSA::AEDeviceTypeFromName(const std::string &name)
{
+#ifdef HAS_LIBAMCODEC
+ // ugly workaround to show DTS / AC3 caps
+ // but don't run into multi channel issues
+ // as we can only open 2 pcm channels
+ return AE_DEVTYPE_IEC958;
+#endif
if (name.substr(0, 4) == "hdmi")
return AE_DEVTYPE_HDMI;
else if (name.substr(0, 6) == "iec958" || name.substr(0, 5) == "spdif")

View File

@ -0,0 +1,214 @@
From c90b4c2ced393524e81c0ec321afa7ec94f3b806 Mon Sep 17 00:00:00 2001
From: Alex Deryskyba <alex@codesnake.com>
Date: Wed, 1 Jul 2015 23:37:11 +0200
Subject: [PATCH] [aml] Add support for 4k resolutions
---
xbmc/utils/AMLUtils.cpp | 16 +++---
xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp | 81 ++++++++++++++++++++++-------
xbmc/windowing/egl/EGLNativeTypeAmlogic.h | 2 +
3 files changed, 73 insertions(+), 26 deletions(-)
diff --git a/xbmc/utils/AMLUtils.cpp b/xbmc/utils/AMLUtils.cpp
index 1b54435..05f2cd0 100644
--- a/xbmc/utils/AMLUtils.cpp
+++ b/xbmc/utils/AMLUtils.cpp
@@ -449,8 +449,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2ksmpte") || StringUtils::EqualsNoCase(fromMode, "smpte24hz"))
{
- res->iWidth = 1920;
- res->iHeight= 1080;
+ res->iWidth = 4096;
+ res->iHeight= 2160;
res->iScreenWidth = 4096;
res->iScreenHeight= 2160;
res->fRefreshRate = 24;
@@ -467,8 +467,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k24hz") || StringUtils::EqualsNoCase(fromMode, "2160p24hz"))
{
- res->iWidth = 1920;
- res->iHeight= 1080;
+ res->iWidth = 3840;
+ res->iHeight= 2160;
res->iScreenWidth = 3840;
res->iScreenHeight= 2160;
res->fRefreshRate = 24;
@@ -476,8 +476,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k25hz") || StringUtils::EqualsNoCase(fromMode, "2160p25hz"))
{
- res->iWidth = 1920;
- res->iHeight= 1080;
+ res->iWidth = 3840;
+ res->iHeight= 2160;
res->iScreenWidth = 3840;
res->iScreenHeight= 2160;
res->fRefreshRate = 25;
@@ -494,8 +494,8 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k30hz") || StringUtils::EqualsNoCase(fromMode, "2160p30hz"))
{
- res->iWidth = 1920;
- res->iHeight= 1080;
+ res->iWidth = 3840;
+ res->iHeight= 2160;
res->iScreenWidth = 3840;
res->iScreenHeight= 2160;
res->fRefreshRate = 30;
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
index 21256ef..2103f0b 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
@@ -65,7 +65,22 @@ void CEGLNativeTypeAmlogic::Initialize()
{
aml_permissions();
DisableFreeScale();
+ GetMaxResolution(m_maxResolution);
}
+
+void CEGLNativeTypeAmlogic::GetMaxResolution(RESOLUTION_INFO &maxResolution)
+{
+ std::vector<RESOLUTION_INFO> resolutions;
+ ProbeResolutions(resolutions);
+
+ maxResolution = {0};
+ for (size_t i = 0; i < resolutions.size(); i++)
+ {
+ if (resolutions[i].iScreenWidth > maxResolution.iScreenWidth || resolutions[i].iScreenHeight > maxResolution.iScreenHeight)
+ maxResolution = resolutions[i];
+ }
+}
+
void CEGLNativeTypeAmlogic::Destroy()
{
return;
@@ -84,8 +99,8 @@ bool CEGLNativeTypeAmlogic::CreateNativeWindow()
if (!nativeWindow)
return false;
- nativeWindow->width = 1920;
- nativeWindow->height = 1080;
+ nativeWindow->width = m_maxResolution.iScreenWidth;
+ nativeWindow->height = m_maxResolution.iScreenHeight;
m_nativeWindow = nativeWindow;
SetFramebufferResolution(nativeWindow->width, nativeWindow->height);
@@ -142,48 +157,78 @@ bool CEGLNativeTypeAmlogic::SetNativeResolution(const RESOLUTION_INFO &res)
}
#endif
- switch((int)(0.5 + res.fRefreshRate))
+ switch((int)(res.fRefreshRate*10))
{
default:
- case 60:
+ case 600:
switch(res.iScreenWidth)
{
default:
case 1280:
- SetDisplayResolution("720p");
+ return SetDisplayResolution("720p");
break;
case 1920:
if (res.dwFlags & D3DPRESENTFLAG_INTERLACED)
- SetDisplayResolution("1080i");
+ return SetDisplayResolution("1080i");
else
- SetDisplayResolution("1080p");
+ return SetDisplayResolution("1080p");
break;
}
break;
- case 50:
+ case 500:
switch(res.iScreenWidth)
{
default:
case 1280:
- SetDisplayResolution("720p50hz");
+ return SetDisplayResolution("720p50hz");
break;
case 1920:
if (res.dwFlags & D3DPRESENTFLAG_INTERLACED)
- SetDisplayResolution("1080i50hz");
+ return SetDisplayResolution("1080i50hz");
else
- SetDisplayResolution("1080p50hz");
+ return SetDisplayResolution("1080p50hz");
break;
}
break;
- case 30:
- SetDisplayResolution("1080p30hz");
+ case 300:
+ switch(res.iScreenWidth)
+ {
+ case 3840:
+ return SetDisplayResolution("4k2k30hz");
+ break;
+ default:
+ return SetDisplayResolution("1080p30hz");
+ break;
+ }
break;
- case 24:
- SetDisplayResolution("1080p24hz");
+ case 250:
+ switch(res.iScreenWidth)
+ {
+ case 3840:
+ return SetDisplayResolution("4k2k25hz");
+ break;
+ default:
+ return SetDisplayResolution("1080p25hz");
+ break;
+ }
+ break;
+ case 240:
+ switch(res.iScreenWidth)
+ {
+ case 3840:
+ return SetDisplayResolution("4k2k24hz");
+ break;
+ case 4096:
+ return SetDisplayResolution("4k2ksmpte");
+ break;
+ default:
+ return SetDisplayResolution("1080p24hz");
+ break;
+ }
break;
}
- return true;
+ return false;
}
bool CEGLNativeTypeAmlogic::ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions)
@@ -280,8 +325,8 @@ void CEGLNativeTypeAmlogic::SetFramebufferResolution(int width, int height) cons
{
vinfo.xres = width;
vinfo.yres = height;
- vinfo.xres_virtual = 1920;
- vinfo.yres_virtual = 2160;
+ vinfo.xres_virtual = m_maxResolution.iScreenWidth;
+ vinfo.yres_virtual = m_maxResolution.iScreenHeight * 2;
vinfo.bits_per_pixel = 32;
vinfo.activate = FB_ACTIVATE_ALL;
ioctl(fd0, FBIOPUT_VSCREENINFO, &vinfo);
diff --git a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
index 6867c38..9ca41d4 100644
--- a/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
+++ b/xbmc/windowing/egl/EGLNativeTypeAmlogic.h
@@ -55,6 +55,8 @@ class CEGLNativeTypeAmlogic : public CEGLNativeType
private:
void SetFramebufferResolution(const RESOLUTION_INFO &res) const;
void SetFramebufferResolution(int width, int height) const;
+ void GetMaxResolution(RESOLUTION_INFO &maxResolution);
std::string m_framebuffer_name;
+ RESOLUTION_INFO m_maxResolution;
};

View File

@ -1,8 +1,17 @@
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in From 42e367deff4886e825dc77606c76ee9835d6ee9e Mon Sep 17 00:00:00 2001
index 8a97889..78506b1 100644 From: Stefan Saraev <stefan@saraev.ca>
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in Date: Sat, 7 Nov 2015 16:24:58 +0200
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in Subject: [PATCH] [wetek] fix compiler badness when compiling with amcodec
@@ -27,8 +27,6 @@ endif
---
xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in | 2 --
1 file changed, 2 deletions(-)
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
index 7880c06..bd083b7 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile.in
@@ -25,8 +25,6 @@ endif
ifeq (@USE_LIBAMCODEC@,1) ifeq (@USE_LIBAMCODEC@,1)
SRCS += AMLCodec.cpp SRCS += AMLCodec.cpp
SRCS += DVDVideoCodecAmlogic.cpp SRCS += DVDVideoCodecAmlogic.cpp

View File

@ -1,8 +1,18 @@
From 55b3da7e97f6dc1e99724782253c35fe4c8b7c5a Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Sat, 7 Nov 2015 16:25:44 +0200
Subject: [PATCH] [wetek] perform suspend instead of powerdown
---
system/keymaps/keyboard.xml | 2 +-
xbmc/powermanagement/linux/LogindUPowerSyscall.cpp | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/system/keymaps/keyboard.xml b/system/keymaps/keyboard.xml diff --git a/system/keymaps/keyboard.xml b/system/keymaps/keyboard.xml
index 45682a2..b8ce91b 100644 index 9833cff..0ce105e 100644
--- a/system/keymaps/keyboard.xml --- a/system/keymaps/keyboard.xml
+++ b/system/keymaps/keyboard.xml +++ b/system/keymaps/keyboard.xml
@@ -96,7 +96,7 @@ @@ -91,7 +91,7 @@
<backslash>ToggleFullScreen</backslash> <backslash>ToggleFullScreen</backslash>
<home>FirstPage</home> <home>FirstPage</home>
<end>LastPage</end> <end>LastPage</end>
@ -10,12 +20,12 @@ index 45682a2..b8ce91b 100644
+ <power>XBMC.Powerdown()</power> + <power>XBMC.Powerdown()</power>
<sleep>ActivateWindow(shutdownmenu)</sleep> <sleep>ActivateWindow(shutdownmenu)</sleep>
<!-- PVR windows --> <!-- PVR windows -->
<e>XBMC.ActivateWindowAndFocus(MyPVR, 31,0, 10,0)</e> <e>ActivateWindow(TVGuide)</e>
diff --git a/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp b/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp diff --git a/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp b/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
index 5a97fe6..369e790 100644 index 4e5bcc6..ad5847d 100644
--- a/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp --- a/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
+++ b/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp +++ b/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
@@ -52,7 +52,7 @@ CLogindUPowerSyscall::CLogindUPowerSyscall() @@ -53,7 +53,7 @@ CLogindUPowerSyscall::CLogindUPowerSyscall()
m_canPowerdown = LogindCheckCapability("CanPowerOff"); m_canPowerdown = LogindCheckCapability("CanPowerOff");
m_canReboot = LogindCheckCapability("CanReboot"); m_canReboot = LogindCheckCapability("CanReboot");
m_canHibernate = LogindCheckCapability("CanHibernate"); m_canHibernate = LogindCheckCapability("CanHibernate");
@ -24,7 +34,7 @@ index 5a97fe6..369e790 100644
InhibitDelayLock(); InhibitDelayLock();
@@ -97,7 +97,7 @@ CLogindUPowerSyscall::~CLogindUPowerSyscall() @@ -98,7 +98,7 @@ CLogindUPowerSyscall::~CLogindUPowerSyscall()
bool CLogindUPowerSyscall::Powerdown() bool CLogindUPowerSyscall::Powerdown()
{ {

View File

@ -1,22 +1,22 @@
From a19578679f63520b0d8e9f589b82699076aff6ed Mon Sep 17 00:00:00 2001 From 0cdf5c043e783e8d956c5d59be8a9ec13a53fee3 Mon Sep 17 00:00:00 2001
From: "Chris \"Koying\" Browet" <cbro@semperpax.com> From: "Chris \\\"Koying\\\" Browet" <cbro@semperpax.com>
Date: Fri, 19 Dec 2014 12:30:04 +0100 Date: Fri, 19 Dec 2014 12:30:04 +0100
Subject: [PATCH] FIX: [renderer] hide meaningless skips from users Subject: [PATCH] [aml] FIX: [renderer] hide meaningless skips from users
--- ---
xbmc/cores/VideoRenderers/RenderManager.cpp | 3 ++- xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
index 7f43949..01327f5 100644 index 70741be..15a484a 100644
--- a/xbmc/cores/VideoRenderers/RenderManager.cpp --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
+++ b/xbmc/cores/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp
@@ -1198,7 +1198,8 @@ void CXBMCRenderManager::PrepareNextRender() @@ -1421,7 +1421,8 @@ void CRenderManager::PrepareNextRender()
while(m_queued.front() != idx) while(m_queued.front() != idx)
{ {
requeue(m_discard, m_queued); requeue(m_discard, m_queued);
- m_QueueSkip++; - m_QueueSkip++;
+ if (m_format != RENDER_FMT_BYPASS) // skips scares users ;) + if (m_format != RENDER_FMT_AML) // skips scares users ;)
+ m_QueueSkip++; + m_QueueSkip++;
} }

View File

@ -58,13 +58,13 @@ echo "cleaning sources..."
rm -rf $PKG_NAME-$PKG_VERSION/.git rm -rf $PKG_NAME-$PKG_VERSION/.git
echo "seperating theme..." echo "seperating theme..."
rm -rf $PKG_NAME-theme-Confluence-$PKG_VERSION rm -rf $PKG_NAME-theme-Estuary-$PKG_VERSION
mv $PKG_NAME-$PKG_VERSION/addons/skin.confluence $PKG_NAME-theme-Confluence-$PKG_VERSION mv $PKG_NAME-$PKG_VERSION/addons/skin.estuary $PKG_NAME-theme-Estuary-$PKG_VERSION
echo "packing sources..." echo "packing sources..."
tar cvJf $PKG_NAME-$PKG_VERSION.tar.xz $PKG_NAME-$PKG_VERSION tar cvJf $PKG_NAME-$PKG_VERSION.tar.xz $PKG_NAME-$PKG_VERSION
tar cvJf $PKG_NAME-theme-Confluence-$PKG_VERSION.tar.xz $PKG_NAME-theme-Confluence-$PKG_VERSION tar cvJf $PKG_NAME-theme-Estuary-$PKG_VERSION.tar.xz $PKG_NAME-theme-Estuary-$PKG_VERSION
echo "remove temporary sourcedir..." echo "remove temporary sourcedir..."
rm -rf $PKG_NAME-$PKG_VERSION rm -rf $PKG_NAME-$PKG_VERSION
rm -rf $PKG_NAME-theme-Confluence-$PKG_VERSION rm -rf $PKG_NAME-theme-Estuary-$PKG_VERSION

View File

@ -1,3 +1,4 @@
#!/bin/sh
################################################################################ ################################################################################
# This file is part of OpenELEC - http://www.openelec.tv # This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
@ -16,25 +17,25 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>. # along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################ ################################################################################
PKG_NAME="libmpeg2" echo "getting sources..."
PKG_VERSION="0.5.1" if [ ! -d libcec.git ]; then
PKG_REV="1" git clone --depth=1 https://github.com/Pulse-Eight/libcec.git libcec.git
PKG_ARCH="any" fi
PKG_LICENSE="GPL"
PKG_SITE="http://libmpeg2.sourceforge.net/"
PKG_URL="http://libmpeg2.sourceforge.net/files/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="libmpeg2: The MPEG Library - version 2"
PKG_LONGDESC="The MPEG Library is a collection of C routines to decode MPEG-1 and MPEG-2 movies and dither them in a variety of colour schemes."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes" cd libcec.git
git pull
GIT_REV=`git log -n1 --format=%h`
cd ..
PKG_CONFIGURE_OPTS_TARGET="--disable-sdl --without-x" echo "copying sources..."
rm -rf libcec-$GIT_REV
cp -R libcec.git libcec-$GIT_REV
post_makeinstall_target() { echo "cleaning sources..."
rm -rf $INSTALL/usr/bin rm -rf libcec-$GIT_REV/.git
}
echo "packing sources..."
tar cvJf libcec-$GIT_REV.tar.xz libcec-$GIT_REV
echo "remove temporary sourcedir..."
rm -rf libcec-$GIT_REV

View File

@ -1,6 +1,7 @@
#!/bin/sh
################################################################################ ################################################################################
# This file is part of OpenELEC - http://www.openelec.tv # This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2014 Stefan Saraev (stefan@sarae.va) # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# #
# OpenELEC is free software: you can redistribute it and/or modify # OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -16,21 +17,14 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>. # along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################ ################################################################################
PKG_NAME="libsquish" echo "getting sources..."
PKG_VERSION="1.10-openelec" wget http://www.lonesock.net/files/soil.zip
PKG_REV="1" unzip soil.zip
PKG_ARCH="any" mv "Simple OpenGL Image Library" soil-1.16
PKG_LICENSE="GPL"
PKG_SITE=""
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_HOST="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="libsquish"
PKG_LONGDESC="libsquish"
PKG_IS_ADDON="no" echo "packing sources..."
PKG_AUTORECONF="no" tar cvJf soil-1.16.tar.xz soil-1.16
PKG_MAKE_OPTS_TARGET="PREFIX=/usr INSTALL_DIR=$SYSROOT_PREFIX/usr" echo "remove temporary sourcedir..."
PKG_MAKEINSTALL_OPTS_TARGET="$PKG_MAKE_OPTS_TARGET" rm -rf soil-1.16
rm -rf soil.zip

Some files were not shown because too many files have changed in this diff Show More