Merge pull request #746 from MilhouseVH/kodi17b2

kodi: update to 17.0-beta2-6e9d6fb
This commit is contained in:
Christian Hewitt 2016-09-18 17:21:51 +04:00 committed by GitHub
commit 88a20f0b27
19 changed files with 1846 additions and 855 deletions

View File

@ -1,38 +0,0 @@
From f70c4d76e1d9c0219a3927b6b66090b7575e7933 Mon Sep 17 00:00:00 2001
From: Gerald Dachs <gda@dachsweb.de>
Date: Thu, 17 Mar 2016 12:12:51 +0100
Subject: [PATCH] use system audio mode request instead of power on to start
AVR reliable
---
src/libcec/devices/CECBusDevice.cpp | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/libcec/devices/CECBusDevice.cpp b/src/libcec/devices/CECBusDevice.cpp
index 55939d1..e2d5ea3 100644
--- a/src/libcec/devices/CECBusDevice.cpp
+++ b/src/libcec/devices/CECBusDevice.cpp
@@ -1025,14 +1025,19 @@ bool CCECBusDevice::ActivateSource(uint64_t iDelay /* = 0 */)
bool bReturn(true);
if (iDelay == 0)
{
- /** some AVRs fail to be powered up by the TV when it powers up. power up the AVR explicitly */
+ /** send system audio mode request if AVR exists */
if (m_iLogicalAddress != CECDEVICE_AUDIOSYSTEM)
{
CCECBusDevice* audioSystem(m_processor->GetDevice(CECDEVICE_AUDIOSYSTEM));
- if (audioSystem && audioSystem->IsPresent() && audioSystem->GetPowerStatus(m_iLogicalAddress) != CEC_POWER_STATUS_ON)
+ if (audioSystem && audioSystem->IsPresent())
{
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "powering up the AVR");
- audioSystem->PowerOn(m_iLogicalAddress);
+ cec_command command;
+
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "sending system audio mode request for '%s'", ToString(m_iLogicalAddress));
+ cec_command::Format(command, m_iLogicalAddress, CECDEVICE_AUDIOSYSTEM, CEC_OPCODE_SYSTEM_AUDIO_MODE_REQUEST);
+ command.parameters.PushBack((uint8_t) ((m_iPhysicalAddress >> 8) & 0xFF));
+ command.parameters.PushBack((uint8_t) (m_iPhysicalAddress & 0xFF));
+ bReturn = m_handler->Transmit(command, false, false);
}
}

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="inputstream.mpd"
PKG_VERSION="7898a67"
PKG_VERSION="2c8ffc7"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/liberty-developer/inputstream.mpd/archive/$PKG_VERSION.tar.gz"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="inputstream.rtmp"
PKG_VERSION="9c05b8d"
PKG_VERSION="91bb374"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/notspiff/inputstream.rtmp/archive/$PKG_VERSION.tar.gz"

View File

@ -0,0 +1,13 @@
diff --git a/inputstream.rtmp/addon.xml.in b/inputstream.rtmp/addon.xml.in
index 2e59513..aa2a5d4 100644
--- a/inputstream.rtmp/addon.xml.in
+++ b/inputstream.rtmp/addon.xml.in
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="inputstream.rtmp"
- version="1.0.0"
+ version="1.0.1"
name="RTMP Input"
provider-name="spiff">
<requires>

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="inputstream.smoothstream"
PKG_VERSION="b63ecbb"
PKG_VERSION="081c6c4"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="peripheral.joystick"
PKG_VERSION="8653627"
PKG_VERSION="263aa84"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -0,0 +1,376 @@
From 40a0711876959f87311fd8a7916537e8fc5f5217 Mon Sep 17 00:00:00 2001
From: dvblogic <info@dvblogic.com>
Date: Tue, 13 Sep 2016 18:16:34 +0200
Subject: [PATCH 1/3] Version 3.3.5 Fixed: Crash on startup with search timers
Fixed: Incorrect disk space display if disk size is more than 2TB
---
lib/libdvblinkremote/recording_settings.cpp | 4 ++--
lib/libdvblinkremote/response.h | 4 ++--
lib/libdvblinkremote/util.cpp | 24 ++++++++++++++++++++++++
lib/libdvblinkremote/util.h | 2 ++
pvr.dvblink/addon.xml.in | 2 +-
pvr.dvblink/changelog.txt | 4 ++++
src/DVBLinkClient.cpp | 8 ++++----
7 files changed, 39 insertions(+), 9 deletions(-)
diff --git a/lib/libdvblinkremote/recording_settings.cpp b/lib/libdvblinkremote/recording_settings.cpp
index ae3e3b6..729c836 100644
--- a/lib/libdvblinkremote/recording_settings.cpp
+++ b/lib/libdvblinkremote/recording_settings.cpp
@@ -86,8 +86,8 @@ bool RecordingSettingsSerializer::ReadObject(RecordingSettings& object, const st
object.TimeMarginBeforeScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "before_margin");
object.TimeMarginAfterScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "after_margin");
object.RecordingPath = Util::GetXmlFirstChildElementText(elRoot, "recording_path");
- object.TotalSpace = Util::GetXmlFirstChildElementTextAsLong(elRoot, "total_space");
- object.AvailableSpace = Util::GetXmlFirstChildElementTextAsLong(elRoot, "avail_space");
+ object.TotalSpace = Util::GetXmlFirstChildElementTextAsLongLong(elRoot, "total_space");
+ object.AvailableSpace = Util::GetXmlFirstChildElementTextAsLongLong(elRoot, "avail_space");
return true;
}
diff --git a/lib/libdvblinkremote/response.h b/lib/libdvblinkremote/response.h
index 51b7ef8..5be5aec 100644
--- a/lib/libdvblinkremote/response.h
+++ b/lib/libdvblinkremote/response.h
@@ -1350,12 +1350,12 @@ namespace dvblinkremote {
/**
* The total space in KB.
*/
- long TotalSpace;
+ long long TotalSpace;
/**
* The available space in KB.
*/
- long AvailableSpace;
+ long long AvailableSpace;
};
class ChannelFavorite
diff --git a/lib/libdvblinkremote/util.cpp b/lib/libdvblinkremote/util.cpp
index 65ac456..6e0be90 100644
--- a/lib/libdvblinkremote/util.cpp
+++ b/lib/libdvblinkremote/util.cpp
@@ -34,6 +34,7 @@ bool Util::from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_
template bool Util::from_string<int>(int& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
template bool Util::from_string<long>(long& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
+template bool Util::from_string<long long>(long long& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
template <class T>
bool Util::to_string(const T& t, std::string& s)
@@ -59,6 +60,11 @@ bool Util::ConvertToLong(const std::string& s, long& value)
return from_string<long>(value, s, std::dec);
}
+bool Util::ConvertToLongLong(const std::string& s, long long& value)
+{
+ return from_string<long long>(value, s, std::dec);
+}
+
bool Util::ConvertToString(const int& value, std::string& s)
{
return to_string(value, s);
@@ -192,6 +198,24 @@ long Util::GetXmlFirstChildElementTextAsLong(const tinyxml2::XMLElement* parentE
return value;
}
+long long Util::GetXmlFirstChildElementTextAsLongLong(const tinyxml2::XMLElement* parentElement, const char* name)
+{
+ const tinyxml2::XMLElement* el = parentElement->FirstChildElement(name);
+ const char* s = "-1";
+ long long value;
+
+ if (el != NULL && el->GetText()) {
+ s = el->GetText();
+ }
+
+ if (s && !Util::ConvertToLongLong(s, value))
+ {
+ value = -1;
+ }
+
+ return value;
+}
+
bool Util::GetXmlFirstChildElementTextAsBoolean(const tinyxml2::XMLElement* parentElement, const char* name)
{
const tinyxml2::XMLElement* el = parentElement->FirstChildElement(name);
diff --git a/lib/libdvblinkremote/util.h b/lib/libdvblinkremote/util.h
index 3af4914..63c9ecb 100644
--- a/lib/libdvblinkremote/util.h
+++ b/lib/libdvblinkremote/util.h
@@ -34,6 +34,7 @@ namespace dvblinkremote {
public:
static bool ConvertToInt(const std::string& s, int& value);
static bool ConvertToLong(const std::string& s, long& value);
+ static bool ConvertToLongLong(const std::string& s, long long& value);
static bool ConvertToString(const int& value, std::string&);
static bool ConvertToString(const unsigned int& value, std::string&);
static bool ConvertToString(const long& value, std::string&);
@@ -48,6 +49,7 @@ namespace dvblinkremote {
static int GetXmlFirstChildElementTextAsInt(const tinyxml2::XMLElement* parentElement, const char* name);
static long GetXmlFirstChildElementTextAsLong(const tinyxml2::XMLElement* parentElement, const char* name);
static bool GetXmlFirstChildElementTextAsBoolean(const tinyxml2::XMLElement* parentElement, const char* name);
+ static long long GetXmlFirstChildElementTextAsLongLong(const tinyxml2::XMLElement* parentElement, const char* name);
private:
template <class T> static bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&));
diff --git a/pvr.dvblink/addon.xml.in b/pvr.dvblink/addon.xml.in
index 5e81fae..e9464b9 100644
--- a/pvr.dvblink/addon.xml.in
+++ b/pvr.dvblink/addon.xml.in
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="pvr.dvblink"
- version="3.3.4"
+ version="3.3.5"
name="DVBLink PVR Client"
provider-name="DVBLogic">
<requires>
diff --git a/pvr.dvblink/changelog.txt b/pvr.dvblink/changelog.txt
index 25e1f0a..4f1a8e2 100644
--- a/pvr.dvblink/changelog.txt
+++ b/pvr.dvblink/changelog.txt
@@ -1,3 +1,7 @@
+[B]Version 3.3.5[/B]
+Fixed: Crash on startup with search timers
+Fixed: Incorrect disk space display if disk size is more than 2TB
+
[B]Version 3.3.4[/B]
Updated: language files from Transifex
diff --git a/src/DVBLinkClient.cpp b/src/DVBLinkClient.cpp
index fbb07f7..de9b480 100644
--- a/src/DVBLinkClient.cpp
+++ b/src/DVBLinkClient.cpp
@@ -736,11 +736,11 @@ int DVBLinkClient::GetSchedules(ADDON_HANDLE handle, const RecordingList& record
timer.iMarginEnd = bp_schedules[i]->MarginAfter / 60;
strncpy(timer.strEpgSearchString, bp_schedules[i]->GetKeyphrase().c_str(), sizeof(timer.strEpgSearchString) - 1);
- if (schedule_to_timer_map.find(epg_schedules[i]->GetID()) != schedule_to_timer_map.end() &&
- schedule_to_timer_map[epg_schedules[i]->GetID()].size() > 0)
+ if (schedule_to_timer_map.find(bp_schedules[i]->GetID()) != schedule_to_timer_map.end() &&
+ schedule_to_timer_map[bp_schedules[i]->GetID()].size() > 0)
{
- timer.startTime = schedule_to_timer_map[epg_schedules[i]->GetID()].at(0)->GetProgram().GetStartTime();
- timer.endTime = timer.startTime + schedule_to_timer_map[epg_schedules[i]->GetID()].at(0)->GetProgram().GetDuration();
+ timer.startTime = schedule_to_timer_map[bp_schedules[i]->GetID()].at(0)->GetProgram().GetStartTime();
+ timer.endTime = timer.startTime + schedule_to_timer_map[bp_schedules[i]->GetID()].at(0)->GetProgram().GetDuration();
}
strncpy(timer.strTitle, bp_schedules[i]->GetKeyphrase().c_str(), sizeof(timer.strTitle) - 1);
From ed9d369c1b683079dc7770af8313dfa46b35cddb Mon Sep 17 00:00:00 2001
From: dvblogic <info@dvblogic.com>
Date: Wed, 14 Sep 2016 09:21:33 +0200
Subject: [PATCH 2/3] Fixed: Doesn't build with tinyxml2 4.x #52
---
lib/libdvblinkremote/channel.cpp | 2 +-
lib/libdvblinkremote/epg.cpp | 2 +-
lib/libdvblinkremote/favorites.cpp | 2 +-
lib/libdvblinkremote/generic_response.cpp | 2 +-
lib/libdvblinkremote/parental_lock.cpp | 2 +-
lib/libdvblinkremote/playback_object.cpp | 2 +-
lib/libdvblinkremote/recording.cpp | 2 +-
lib/libdvblinkremote/recording_settings.cpp | 2 +-
lib/libdvblinkremote/scheduling.cpp | 2 +-
lib/libdvblinkremote/server_info.cpp | 2 +-
lib/libdvblinkremote/stream.cpp | 2 +-
lib/libdvblinkremote/streaming_capabilities.cpp | 2 +-
pvr.dvblink/changelog.txt | 1 +
13 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/lib/libdvblinkremote/channel.cpp b/lib/libdvblinkremote/channel.cpp
index 2861feb..b9f8ac5 100644
--- a/lib/libdvblinkremote/channel.cpp
+++ b/lib/libdvblinkremote/channel.cpp
@@ -122,7 +122,7 @@ bool GetChannelsResponseSerializer::ReadObject(ChannelList& object, const std::s
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("channels");
GetChannelsResponseXmlDataDeserializer* xmlDataDeserializer = new GetChannelsResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/epg.cpp b/lib/libdvblinkremote/epg.cpp
index b382e4d..3fcc65e 100644
--- a/lib/libdvblinkremote/epg.cpp
+++ b/lib/libdvblinkremote/epg.cpp
@@ -189,7 +189,7 @@ bool EpgSearchResponseSerializer::ReadObject(EpgSearchResult& object, const std:
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("epg_searcher");
ChannelEpgXmlDataDeserializer* xmlDataDeserializer = new ChannelEpgXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/favorites.cpp b/lib/libdvblinkremote/favorites.cpp
index 4e7f96a..a29fd82 100644
--- a/lib/libdvblinkremote/favorites.cpp
+++ b/lib/libdvblinkremote/favorites.cpp
@@ -118,7 +118,7 @@ bool ChannelFavoritesSerializer::ReadObject(ChannelFavorites& object, const std:
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("favorites");
GetFavoritesResponseXmlDataDeserializer* xmlDataDeserializer = new GetFavoritesResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/generic_response.cpp b/lib/libdvblinkremote/generic_response.cpp
index 6d85841..7931957 100644
--- a/lib/libdvblinkremote/generic_response.cpp
+++ b/lib/libdvblinkremote/generic_response.cpp
@@ -74,7 +74,7 @@ bool GenericResponseSerializer::ReadObject(GenericResponse& object, const std::s
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("response");
int statusCode = Util::GetXmlFirstChildElementTextAsInt(elRoot, "status_code");
diff --git a/lib/libdvblinkremote/parental_lock.cpp b/lib/libdvblinkremote/parental_lock.cpp
index 1db186e..be8b156 100644
--- a/lib/libdvblinkremote/parental_lock.cpp
+++ b/lib/libdvblinkremote/parental_lock.cpp
@@ -95,7 +95,7 @@ bool ParentalStatusSerializer::ReadObject(ParentalStatus& object, const std::str
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("parental_status");
object.IsEnabled = Util::GetXmlFirstChildElementTextAsBoolean(elRoot, "is_enabled");
return true;
diff --git a/lib/libdvblinkremote/playback_object.cpp b/lib/libdvblinkremote/playback_object.cpp
index 99c8f15..ce3bff7 100644
--- a/lib/libdvblinkremote/playback_object.cpp
+++ b/lib/libdvblinkremote/playback_object.cpp
@@ -136,7 +136,7 @@ bool GetPlaybackObjectResponseSerializer::ReadObject(GetPlaybackObjectResponse&
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("object");
if (HasChildElement(*elRoot, "containers"))
diff --git a/lib/libdvblinkremote/recording.cpp b/lib/libdvblinkremote/recording.cpp
index 0bd21cd..d4dc828 100644
--- a/lib/libdvblinkremote/recording.cpp
+++ b/lib/libdvblinkremote/recording.cpp
@@ -106,7 +106,7 @@ bool GetRecordingsResponseSerializer::ReadObject(RecordingList& object, const st
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("recordings");
GetRecordingsResponseXmlDataDeserializer* xmlDataDeserializer = new GetRecordingsResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/recording_settings.cpp b/lib/libdvblinkremote/recording_settings.cpp
index 729c836..2940c63 100644
--- a/lib/libdvblinkremote/recording_settings.cpp
+++ b/lib/libdvblinkremote/recording_settings.cpp
@@ -81,7 +81,7 @@ bool RecordingSettingsSerializer::ReadObject(RecordingSettings& object, const st
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("recording_settings");
object.TimeMarginBeforeScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "before_margin");
object.TimeMarginAfterScheduledRecordings = Util::GetXmlFirstChildElementTextAsInt(elRoot, "after_margin");
diff --git a/lib/libdvblinkremote/scheduling.cpp b/lib/libdvblinkremote/scheduling.cpp
index 11a3792..aee900e 100644
--- a/lib/libdvblinkremote/scheduling.cpp
+++ b/lib/libdvblinkremote/scheduling.cpp
@@ -415,7 +415,7 @@ bool GetSchedulesResponseSerializer::ReadObject(StoredSchedules& object, const s
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("schedules");
GetSchedulesResponseXmlDataDeserializer* xmlDataDeserializer = new GetSchedulesResponseXmlDataDeserializer(*this, object);
elRoot->Accept(xmlDataDeserializer);
diff --git a/lib/libdvblinkremote/server_info.cpp b/lib/libdvblinkremote/server_info.cpp
index a308048..adbfcee 100644
--- a/lib/libdvblinkremote/server_info.cpp
+++ b/lib/libdvblinkremote/server_info.cpp
@@ -63,7 +63,7 @@ bool ServerInfoSerializer::ReadObject(ServerInfo& object, const std::string& xml
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("server_info");
object.install_id_ = Util::GetXmlFirstChildElementText(elRoot, "install_id");
object.server_id_ = Util::GetXmlFirstChildElementText(elRoot, "server_id");
diff --git a/lib/libdvblinkremote/stream.cpp b/lib/libdvblinkremote/stream.cpp
index 767c7e1..e2c8259 100644
--- a/lib/libdvblinkremote/stream.cpp
+++ b/lib/libdvblinkremote/stream.cpp
@@ -74,7 +74,7 @@ bool StreamResponseSerializer::ReadObject(Stream& object, const std::string& xml
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("stream");
long channelHandle = Util::GetXmlFirstChildElementTextAsLong(elRoot, "channel_handle");
std::string url = Util::GetXmlFirstChildElementText(elRoot, "url");
diff --git a/lib/libdvblinkremote/streaming_capabilities.cpp b/lib/libdvblinkremote/streaming_capabilities.cpp
index 2544199..d2da28a 100644
--- a/lib/libdvblinkremote/streaming_capabilities.cpp
+++ b/lib/libdvblinkremote/streaming_capabilities.cpp
@@ -83,7 +83,7 @@ bool StreamingCapabilitiesSerializer::ReadObject(StreamingCapabilities& object,
{
tinyxml2::XMLDocument& doc = GetXmlDocument();
- if (doc.Parse(xml.c_str()) == tinyxml2::XML_NO_ERROR) {
+ if (doc.Parse(xml.c_str()) == tinyxml2::XML_SUCCESS) {
tinyxml2::XMLElement* elRoot = doc.FirstChildElement("streaming_caps");
object.SupportedProtocols = Util::GetXmlFirstChildElementTextAsInt(elRoot, "protocols");
object.SupportedTranscoders = Util::GetXmlFirstChildElementTextAsInt(elRoot, "transcoders");
diff --git a/pvr.dvblink/changelog.txt b/pvr.dvblink/changelog.txt
index 4f1a8e2..bf2f4d4 100644
--- a/pvr.dvblink/changelog.txt
+++ b/pvr.dvblink/changelog.txt
@@ -1,6 +1,7 @@
[B]Version 3.3.5[/B]
Fixed: Crash on startup with search timers
Fixed: Incorrect disk space display if disk size is more than 2TB
+Fixed: tinyxml2 v4 compatibility (XML_NO_ERROR -> XML_SUCCESS)
[B]Version 3.3.4[/B]
Updated: language files from Transifex
From c5e4a81e007ce2547900a713436cefe66d917fa7 Mon Sep 17 00:00:00 2001
From: dvblogic <info@dvblogic.com>
Date: Wed, 14 Sep 2016 15:27:42 +0200
Subject: [PATCH 3/3] added #include <cstdarg> to prevent compiler errors
---
lib/libdvblinkremote/dvblinkremotecommunication.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/libdvblinkremote/dvblinkremotecommunication.cpp b/lib/libdvblinkremote/dvblinkremotecommunication.cpp
index 6037c3b..a254ded 100644
--- a/lib/libdvblinkremote/dvblinkremotecommunication.cpp
+++ b/lib/libdvblinkremote/dvblinkremotecommunication.cpp
@@ -21,6 +21,7 @@
*
***************************************************************************/
+#include <cstdarg>
#include "dvblinkremoteconnection.h"
#include "xml_object_serializer.h"
#include "generic_response.h"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.mediaportal.tvserver"
PKG_VERSION="1042a71"
PKG_VERSION="42c91b1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.stalker"
PKG_VERSION="9c9c72e"
PKG_VERSION="7df63b2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="pvr.vdr.vnsi"
PKG_VERSION="40c45dc"
PKG_VERSION="da5fdd5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-theme-Estuary"
PKG_VERSION="17.0-beta1-81d5d26"
PKG_VERSION="17.0-beta2-6e9d6fb"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi"
PKG_VERSION="17.0-beta1-81d5d26"
PKG_VERSION="17.0-beta2-6e9d6fb"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -1,32 +1,22 @@
From 74ed25108f5a5c4771e001aa9921f175872c076e Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 24 Apr 2015 19:45:20 +0300
Subject: [PATCH 09/13] use a wrapper to setup systemd services
---
xbmc/addons/Addon.cpp | 30 ++++++++++++++++++++++++++++++
xbmc/addons/Addon.h | 2 ++
2 files changed, 32 insertions(+)
diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp
index 377a49c..2fda194 100644
index 476ab29..ec5faa5 100644
--- a/xbmc/addons/Addon.cpp
+++ b/xbmc/addons/Addon.cpp
@@ -638,6 +638,13 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const
@@ -340,6 +340,13 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const
return AddonVersion("0.0.0");
}
+void CallOEWrapper(const std::string& ID, bool disable)
+{
+ char cmd[255];
+ snprintf(cmd, sizeof(cmd), "/usr/lib/libreelec/systemd-addon-wrapper %s %d %d", ID.c_str(), disable);
+ snprintf(cmd, sizeof(cmd), "/usr/lib/libreelec/systemd-addon-wrapper %s %d", ID.c_str(), disable);
+ system(cmd);
+}
+
void OnEnabled(const std::string& id)
{
// If the addon is a special, call enabled handler
@@ -646,6 +653,11 @@ void OnEnabled(const std::string& id)
@@ -348,6 +355,11 @@ void OnEnabled(const std::string& id)
CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_ADSPDLL))
return addon->OnEnabled();
@ -35,12 +25,12 @@ index 377a49c..2fda194 100644
+ CallOEWrapper(addon->ID(), false);
+ // OE
+
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
std::static_pointer_cast<CService>(addon)->Start();
@@ -663,6 +675,11 @@ void OnDisabled(const std::string& id)
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
std::static_pointer_cast<CService>(addon)->Stop();
if (CAddonMgr::GetInstance().ServicesHasStarted())
{
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
@@ -372,6 +384,11 @@ void OnDisabled(const std::string& id)
std::static_pointer_cast<CService>(addon)->Stop();
}
+ // OE: systemctl stop & disable on addon disable
+ if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
@ -48,12 +38,13 @@ index 377a49c..2fda194 100644
+ // OE
+
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_CONTEXT_ITEM, false))
CContextMenuManager::GetInstance().Unregister(std::static_pointer_cast<CContextMenuAddon>(addon));
CContextMenuManager::GetInstance().Unload(*std::static_pointer_cast<CContextMenuAddon>(addon));
}
@@ -686,6 +703,14 @@ void OnPreInstall(const AddonPtr& addon)
@@ -399,6 +416,15 @@ void OnPreInstall(const AddonPtr& addon)
void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
{
AddonPtr localAddon;
+
+ // OE: systemctl stop & disable / enable & start on addon upgrade
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ {
@ -62,34 +53,31 @@ index 377a49c..2fda194 100644
+ }
+ // OE
+
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
std::static_pointer_cast<CService>(localAddon)->Start();
@@ -720,6 +745,11 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
void OnPreUnInstall(const AddonPtr& addon)
if (CAddonMgr::GetInstance().ServicesHasStarted())
{
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
@@ -415,6 +441,11 @@ void OnPreUnInstall(const AddonPtr& addon)
{
AddonPtr localAddon;
+ // OE: systemctl stop & disable on addon ininstall
+ // OE: systemctl stop & disable on addon uninstall
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ CallOEWrapper(addon->ID(), true);
+ // OE
+
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
std::static_pointer_cast<CService>(localAddon)->Stop();
if (CAddonMgr::GetInstance().ServicesHasStarted())
{
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h
index d0a40d3..0742374 100644
index 515afe1..36287d6 100644
--- a/xbmc/addons/Addon.h
+++ b/xbmc/addons/Addon.h
@@ -173,6 +173,8 @@ public:
const InfoMap &ExtraInfo() const { return m_props.extrainfo; }
const ADDONDEPS &GetDeps() const { return m_props.dependencies; }
@@ -121,6 +121,8 @@ public:
const InfoMap& ExtraInfo() const override { return m_props.extrainfo; }
const ADDONDEPS& GetDeps() const override { return m_props.dependencies; }
+ void CallOEWrapper(const std::string& ID, bool disable);
+
/*! \brief get the required version of a dependency.
\param dependencyID the addon ID of the dependency.
\return the version this addon requires.
--
2.5.0
/*! \brief Check whether the this addon can be configured or not
\return true if the addon has settings, false otherwise
\sa LoadSettings, LoadUserSettings, SaveSettings, HasUserSettings, GetSetting, UpdateSetting

View File

@ -1,12 +0,0 @@
diff -Naur a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-14 00:19:32.000000000 +0100
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp 2016-03-02 09:36:04.503330833 +0100
@@ -1601,7 +1601,7 @@
am_private->gcodec.param = (void*)(EXTERNAL_PTS | SYNC_OUTSIDE);
break;
}
- am_private->gcodec.param = (void *)((unsigned int)am_private->gcodec.param | (am_private->video_rotation_degree << 16));
+ am_private->gcodec.param = (void *)((unsigned long)am_private->gcodec.param | (am_private->video_rotation_degree << 16));
// translate from generic to firemware version dependent
m_dll->codec_init_para(&am_private->gcodec, &am_private->vcodec);

View File

@ -1,135 +0,0 @@
From ee2dc577a03d86ac61e06bc95aaff1d1eddbf593 Mon Sep 17 00:00:00 2001
From: Garrett Brown <themagnificentmrb@gmail.com>
Date: Thu, 18 Aug 2016 14:10:36 -0700
Subject: [PATCH] Rename CPeripherals::GetAddon() to GetAddonWithButtonMap()
and move to addon bus
---
xbmc/peripherals/Peripherals.cpp | 26 +++++----------------
xbmc/peripherals/Peripherals.h | 2 +-
xbmc/peripherals/addons/AddonButtonMapping.cpp | 2 +-
xbmc/peripherals/addons/AddonInputHandling.cpp | 2 +-
.../peripherals/bus/virtual/PeripheralBusAddon.cpp | 27 ++++++++++++++++++----
5 files changed, 31 insertions(+), 28 deletions(-)
diff --git a/xbmc/peripherals/Peripherals.cpp b/xbmc/peripherals/Peripherals.cpp
index 629846d..30f160e 100644
--- a/xbmc/peripherals/Peripherals.cpp
+++ b/xbmc/peripherals/Peripherals.cpp
@@ -762,29 +762,15 @@ void CPeripherals::ProcessEvents(void)
bus->ProcessEvents();
}
-PeripheralAddonPtr CPeripherals::GetAddon(const CPeripheral* device)
+PeripheralAddonPtr CPeripherals::GetAddonWithButtonMap(const CPeripheral* device)
{
- PeripheralAddonPtr addon;
-
PeripheralBusAddonPtr addonBus = std::static_pointer_cast<CPeripheralBusAddon>(GetBusByType(PERIPHERAL_BUS_ADDON));
- if (device && addonBus)
- {
- PeripheralBusType busType = device->GetBusType();
- if (busType == PERIPHERAL_BUS_ADDON)
- {
- // If device is from an add-on, use that add-on
- PeripheralAddonPtr peripheralAddon;
- unsigned int index;
- if (addonBus->SplitLocation(device->Location(), addon, index))
- addon = std::move(peripheralAddon);
- }
- else
- {
- // Otherwise, have the add-on bus find a suitable add-on
- addonBus->GetAddonWithButtonMap(device, addon);
- }
- }
+ PeripheralAddonPtr addon;
+
+ PeripheralAddonPtr addonWithButtonMap;
+ if (addonBus && addonBus->GetAddonWithButtonMap(device, addonWithButtonMap))
+ addon = std::move(addonWithButtonMap);
return addon;
}
diff --git a/xbmc/peripherals/Peripherals.h b/xbmc/peripherals/Peripherals.h
index b66970d..33ca7fb 100644
--- a/xbmc/peripherals/Peripherals.h
+++ b/xbmc/peripherals/Peripherals.h
@@ -239,7 +239,7 @@ namespace PERIPHERALS
// implementation of IEventScannerCallback
virtual void ProcessEvents(void) override;
- virtual PeripheralAddonPtr GetAddon(const CPeripheral* device);
+ virtual PeripheralAddonPtr GetAddonWithButtonMap(const CPeripheral* device);
virtual void ResetButtonMaps(const std::string& controllerId);
diff --git a/xbmc/peripherals/addons/AddonButtonMapping.cpp b/xbmc/peripherals/addons/AddonButtonMapping.cpp
index 818e894..32a45c2 100644
--- a/xbmc/peripherals/addons/AddonButtonMapping.cpp
+++ b/xbmc/peripherals/addons/AddonButtonMapping.cpp
@@ -29,7 +29,7 @@ using namespace PERIPHERALS;
CAddonButtonMapping::CAddonButtonMapping(CPeripheral* peripheral, IButtonMapper* mapper)
{
- PeripheralAddonPtr addon = g_peripherals.GetAddon(peripheral);
+ PeripheralAddonPtr addon = g_peripherals.GetAddonWithButtonMap(peripheral);
if (!addon)
{
diff --git a/xbmc/peripherals/addons/AddonInputHandling.cpp b/xbmc/peripherals/addons/AddonInputHandling.cpp
index 7a29c9e..89527f4 100644
--- a/xbmc/peripherals/addons/AddonInputHandling.cpp
+++ b/xbmc/peripherals/addons/AddonInputHandling.cpp
@@ -32,7 +32,7 @@ using namespace PERIPHERALS;
CAddonInputHandling::CAddonInputHandling(CPeripheral* peripheral, IInputHandler* handler, IDriverReceiver* receiver)
{
- PeripheralAddonPtr addon = g_peripherals.GetAddon(peripheral);
+ PeripheralAddonPtr addon = g_peripherals.GetAddonWithButtonMap(peripheral);
if (!addon)
{
diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
index b533686..2426285 100644
--- a/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
+++ b/xbmc/peripherals/bus/virtual/PeripheralBusAddon.cpp
@@ -80,15 +80,32 @@ bool CPeripheralBusAddon::GetAddon(const std::string &strId, AddonPtr &addon) co
bool CPeripheralBusAddon::GetAddonWithButtonMap(const CPeripheral* device, PeripheralAddonPtr &addon) const
{
CSingleLock lock(m_critSection);
- for (const auto& addonIt : m_addons)
+
+ // If device is from an add-on, try to use that add-on
+ if (device && device->GetBusType() == PERIPHERAL_BUS_ADDON)
{
- if (addonIt->HasButtonMaps())
+ PeripheralAddonPtr addonWithButtonMap;
+ unsigned int index;
+ if (SplitLocation(device->Location(), addonWithButtonMap, index))
{
- addon = addonIt;
- return true;
+ if (addonWithButtonMap->HasButtonMaps())
+ addon = std::move(addonWithButtonMap);
}
}
- return false;
+
+ if (!addon)
+ {
+ auto it = std::find_if(m_addons.begin(), m_addons.end(),
+ [](const PeripheralAddonPtr& addon)
+ {
+ return addon->HasButtonMaps();
+ });
+
+ if (it != m_addons.end())
+ addon = *it;
+ }
+
+ return addon.get() != nullptr;
}
unsigned int CPeripheralBusAddon::GetAddonCount(void) const

View File

@ -1,103 +0,0 @@
commit 62fa4175cb82e40ea3b67887f08d1f9424aa8a8d
Author: MilhouseVH <milhouseVH.github@nmacleod.com>
Date: Wed Aug 31 04:37:27 2016
Revert "VideoPlayer: passthrough fixes"
This reverts commit 14af37aac18b0f471694dac7c65a96d39afaf327.
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
index 3af25db..8009297 100644
--- a/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
@@ -27,10 +27,6 @@
#include "cores/AudioEngine/AEFactory.h"
-extern "C" {
-#include "libavcodec/avcodec.h"
-}
-
#define TRUEHD_BUF_SIZE 61440
CDVDAudioCodecPassthrough::CDVDAudioCodecPassthrough(CProcessInfo &processInfo) :
@@ -118,7 +114,6 @@ void CDVDAudioCodecPassthrough::Dispose()
int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, double pts)
{
int used = 0;
- int skip = 0;
if (m_backlogSize)
{
if (m_currentPts == DVD_NOPTS_VALUE)
@@ -132,25 +127,12 @@ int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, dou
m_bufferSize = std::max(m_bufferSize, m_dataSize);
if (consumed != m_backlogSize)
{
- memmove(m_backlogBuffer, m_backlogBuffer+consumed, m_backlogSize-consumed);
+ memmove(m_backlogBuffer, m_backlogBuffer+consumed, consumed);
m_backlogSize -= consumed;
}
}
- // get rid of potential side data
- if (pData)
- {
- AVPacket pkt;
- av_init_packet(&pkt);
- pkt.data = pData;
- pkt.size = iSize;
- av_packet_split_side_data(&pkt);
- skip = iSize - pkt.size;
- pData = pkt.data;
- iSize = pkt.size;
- }
-
- if (pData && !m_backlogSize)
+ if (pData && !m_dataSize)
{
if (iSize <= 0)
return 0;
@@ -187,20 +169,6 @@ int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, dou
if (!m_dataSize)
return used;
- if (m_dataSize)
- {
- m_format.m_dataFormat = AE_FMT_RAW;
- m_format.m_streamInfo = m_parser.GetStreamInfo();
- m_format.m_sampleRate = m_parser.GetSampleRate();
- m_format.m_frameSize = 1;
- CAEChannelInfo layout;
- for (unsigned int i=0; i<m_parser.GetChannels(); i++)
- {
- layout += AE_CH_RAW;
- }
- m_format.m_channelLayout = layout;
- }
-
if (m_format.m_streamInfo.m_type == CAEStreamInfo::STREAM_TYPE_TRUEHD)
{
if (!m_trueHDoffset)
@@ -222,7 +190,21 @@ int CDVDAudioCodecPassthrough::Decode(uint8_t* pData, int iSize, double dts, dou
m_dataSize = 0;
}
- return used + skip;
+ if (m_dataSize)
+ {
+ m_format.m_dataFormat = AE_FMT_RAW;
+ m_format.m_streamInfo = m_parser.GetStreamInfo();
+ m_format.m_sampleRate = m_parser.GetSampleRate();
+ m_format.m_frameSize = 1;
+ CAEChannelInfo layout;
+ for (unsigned int i=0; i<m_parser.GetChannels(); i++)
+ {
+ layout += AE_CH_RAW;
+ }
+ m_format.m_channelLayout = layout;
+ }
+
+ return used;
}
void CDVDAudioCodecPassthrough::GetData(DVDAudioFrame &frame)

View File

@ -18,7 +18,7 @@
PKG_NAME="ffmpeg"
# Current branch is: release/3.1-xbmc
PKG_VERSION="6da2f5f"
PKG_VERSION="e9002c3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPLv2.1+"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff