mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #746 from MilhouseVH/kodi17b2
kodi: update to 17.0-beta2-6e9d6fb
This commit is contained in:
commit
88a20f0b27
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="inputstream.mpd"
|
PKG_NAME="inputstream.mpd"
|
||||||
PKG_VERSION="7898a67"
|
PKG_VERSION="2c8ffc7"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.kodi.tv"
|
PKG_SITE="http://www.kodi.tv"
|
||||||
PKG_URL="https://github.com/liberty-developer/inputstream.mpd/archive/$PKG_VERSION.tar.gz"
|
PKG_URL="https://github.com/liberty-developer/inputstream.mpd/archive/$PKG_VERSION.tar.gz"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="inputstream.rtmp"
|
PKG_NAME="inputstream.rtmp"
|
||||||
PKG_VERSION="9c05b8d"
|
PKG_VERSION="91bb374"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.kodi.tv"
|
PKG_SITE="http://www.kodi.tv"
|
||||||
PKG_URL="https://github.com/notspiff/inputstream.rtmp/archive/$PKG_VERSION.tar.gz"
|
PKG_URL="https://github.com/notspiff/inputstream.rtmp/archive/$PKG_VERSION.tar.gz"
|
||||||
|
@ -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>
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="inputstream.smoothstream"
|
PKG_NAME="inputstream.smoothstream"
|
||||||
PKG_VERSION="b63ecbb"
|
PKG_VERSION="081c6c4"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.kodi.tv"
|
PKG_SITE="http://www.kodi.tv"
|
||||||
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"
|
PKG_URL="https://github.com/mapfau/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="peripheral.joystick"
|
PKG_NAME="peripheral.joystick"
|
||||||
PKG_VERSION="8653627"
|
PKG_VERSION="263aa84"
|
||||||
PKG_REV="0"
|
PKG_REV="0"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -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"
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="pvr.mediaportal.tvserver"
|
PKG_NAME="pvr.mediaportal.tvserver"
|
||||||
PKG_VERSION="1042a71"
|
PKG_VERSION="42c91b1"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="pvr.stalker"
|
PKG_NAME="pvr.stalker"
|
||||||
PKG_VERSION="9c9c72e"
|
PKG_VERSION="7df63b2"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="pvr.vdr.vnsi"
|
PKG_NAME="pvr.vdr.vnsi"
|
||||||
PKG_VERSION="40c45dc"
|
PKG_VERSION="da5fdd5"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="kodi-theme-Estuary"
|
PKG_NAME="kodi-theme-Estuary"
|
||||||
PKG_VERSION="17.0-beta1-81d5d26"
|
PKG_VERSION="17.0-beta2-6e9d6fb"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="kodi"
|
PKG_NAME="kodi"
|
||||||
PKG_VERSION="17.0-beta1-81d5d26"
|
PKG_VERSION="17.0-beta2-6e9d6fb"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -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
|
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
|
--- a/xbmc/addons/Addon.cpp
|
||||||
+++ b/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");
|
return AddonVersion("0.0.0");
|
||||||
}
|
}
|
||||||
|
|
||||||
+void CallOEWrapper(const std::string& ID, bool disable)
|
+void CallOEWrapper(const std::string& ID, bool disable)
|
||||||
+{
|
+{
|
||||||
+ char cmd[255];
|
+ 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);
|
+ system(cmd);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
void OnEnabled(const std::string& id)
|
void OnEnabled(const std::string& id)
|
||||||
{
|
{
|
||||||
// If the addon is a special, call enabled handler
|
// 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))
|
CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_ADSPDLL))
|
||||||
return addon->OnEnabled();
|
return addon->OnEnabled();
|
||||||
|
|
||||||
@ -35,12 +25,12 @@ index 377a49c..2fda194 100644
|
|||||||
+ CallOEWrapper(addon->ID(), false);
|
+ CallOEWrapper(addon->ID(), false);
|
||||||
+ // OE
|
+ // OE
|
||||||
+
|
+
|
||||||
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
|
if (CAddonMgr::GetInstance().ServicesHasStarted())
|
||||||
std::static_pointer_cast<CService>(addon)->Start();
|
{
|
||||||
|
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE))
|
||||||
@@ -663,6 +675,11 @@ void OnDisabled(const std::string& id)
|
@@ -372,6 +384,11 @@ void OnDisabled(const std::string& id)
|
||||||
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
|
std::static_pointer_cast<CService>(addon)->Stop();
|
||||||
std::static_pointer_cast<CService>(addon)->Stop();
|
}
|
||||||
|
|
||||||
+ // OE: systemctl stop & disable on addon disable
|
+ // OE: systemctl stop & disable on addon disable
|
||||||
+ if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
|
+ if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_SERVICE, false))
|
||||||
@ -48,12 +38,13 @@ index 377a49c..2fda194 100644
|
|||||||
+ // OE
|
+ // OE
|
||||||
+
|
+
|
||||||
if (CAddonMgr::GetInstance().GetAddon(id, addon, ADDON_CONTEXT_ITEM, false))
|
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)
|
void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
|
||||||
{
|
{
|
||||||
AddonPtr localAddon;
|
AddonPtr localAddon;
|
||||||
|
+
|
||||||
+ // OE: systemctl stop & disable / enable & start on addon upgrade
|
+ // OE: systemctl stop & disable / enable & start on addon upgrade
|
||||||
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
||||||
+ {
|
+ {
|
||||||
@ -62,34 +53,31 @@ index 377a49c..2fda194 100644
|
|||||||
+ }
|
+ }
|
||||||
+ // OE
|
+ // OE
|
||||||
+
|
+
|
||||||
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
if (CAddonMgr::GetInstance().ServicesHasStarted())
|
||||||
std::static_pointer_cast<CService>(localAddon)->Start();
|
{
|
||||||
|
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
||||||
@@ -720,6 +745,11 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
|
@@ -415,6 +441,11 @@ void OnPreUnInstall(const AddonPtr& addon)
|
||||||
void OnPreUnInstall(const AddonPtr& addon)
|
|
||||||
{
|
{
|
||||||
AddonPtr localAddon;
|
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))
|
+ if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
||||||
+ CallOEWrapper(addon->ID(), true);
|
+ CallOEWrapper(addon->ID(), true);
|
||||||
+ // OE
|
+ // OE
|
||||||
+
|
+
|
||||||
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
if (CAddonMgr::GetInstance().ServicesHasStarted())
|
||||||
std::static_pointer_cast<CService>(localAddon)->Stop();
|
{
|
||||||
|
if (CAddonMgr::GetInstance().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
|
||||||
diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h
|
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
|
--- a/xbmc/addons/Addon.h
|
||||||
+++ b/xbmc/addons/Addon.h
|
+++ b/xbmc/addons/Addon.h
|
||||||
@@ -173,6 +173,8 @@ public:
|
@@ -121,6 +121,8 @@ public:
|
||||||
const InfoMap &ExtraInfo() const { return m_props.extrainfo; }
|
const InfoMap& ExtraInfo() const override { return m_props.extrainfo; }
|
||||||
const ADDONDEPS &GetDeps() const { return m_props.dependencies; }
|
const ADDONDEPS& GetDeps() const override { return m_props.dependencies; }
|
||||||
|
|
||||||
+ void CallOEWrapper(const std::string& ID, bool disable);
|
+ void CallOEWrapper(const std::string& ID, bool disable);
|
||||||
+
|
+
|
||||||
/*! \brief get the required version of a dependency.
|
/*! \brief Check whether the this addon can be configured or not
|
||||||
\param dependencyID the addon ID of the dependency.
|
\return true if the addon has settings, false otherwise
|
||||||
\return the version this addon requires.
|
\sa LoadSettings, LoadUserSettings, SaveSettings, HasUserSettings, GetSetting, UpdateSetting
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
@ -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);
|
|
@ -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
|
|
@ -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)
|
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
PKG_NAME="ffmpeg"
|
PKG_NAME="ffmpeg"
|
||||||
# Current branch is: release/3.1-xbmc
|
# Current branch is: release/3.1-xbmc
|
||||||
PKG_VERSION="6da2f5f"
|
PKG_VERSION="e9002c3"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="LGPLv2.1+"
|
PKG_LICENSE="LGPLv2.1+"
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user