diff --git a/packages/devel/libcec/patches/libcec-PR208.patch b/packages/devel/libcec/patches/libcec-PR208.patch deleted file mode 100644 index 3dc5adf022..0000000000 --- a/packages/devel/libcec/patches/libcec-PR208.patch +++ /dev/null @@ -1,38 +0,0 @@ -From f70c4d76e1d9c0219a3927b6b66090b7575e7933 Mon Sep 17 00:00:00 2001 -From: Gerald Dachs -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); - } - } - diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.mpd/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.mpd/package.mk index 2cd3cf0d7b..df00dcaabc 100644 --- a/packages/mediacenter/kodi-binary-addons/inputstream.mpd/package.mk +++ b/packages/mediacenter/kodi-binary-addons/inputstream.mpd/package.mk @@ -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" diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk index 030debc226..7616e708e1 100644 --- a/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk +++ b/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/package.mk @@ -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" diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/patches/inputstream.rtmp-0001-temp-bump-version.patch b/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/patches/inputstream.rtmp-0001-temp-bump-version.patch new file mode 100644 index 0000000000..082f2f5090 --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/inputstream.rtmp/patches/inputstream.rtmp-0001-temp-bump-version.patch @@ -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 @@ + + + diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk index 64d4d41b9f..d78751d5d3 100644 --- a/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk +++ b/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk @@ -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" diff --git a/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk b/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk index f7cf94aaa3..0f4bd146c0 100644 --- a/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk +++ b/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="peripheral.joystick" -PKG_VERSION="8653627" +PKG_VERSION="263aa84" PKG_REV="0" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.dvblink/patches/pvr.dvblink-0001-PR54.patch b/packages/mediacenter/kodi-binary-addons/pvr.dvblink/patches/pvr.dvblink-0001-PR54.patch new file mode 100644 index 0000000000..ac91c1d99d --- /dev/null +++ b/packages/mediacenter/kodi-binary-addons/pvr.dvblink/patches/pvr.dvblink-0001-PR54.patch @@ -0,0 +1,376 @@ +From 40a0711876959f87311fd8a7916537e8fc5f5217 Mon Sep 17 00:00:00 2001 +From: dvblogic +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& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)); + template bool Util::from_string(long& 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::to_string(const T& t, std::string& s) +@@ -59,6 +60,11 @@ bool Util::ConvertToLong(const std::string& s, long& value) + return from_string(value, s, std::dec); + } + ++bool Util::ConvertToLongLong(const std::string& s, long long& value) ++{ ++ return from_string(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 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 @@ + + + +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 +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 +Date: Wed, 14 Sep 2016 15:27:42 +0200 +Subject: [PATCH 3/3] added #include 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 + #include "dvblinkremoteconnection.h" + #include "xml_object_serializer.h" + #include "generic_response.h" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk index a5ade58a20..52730b22df 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.mediaportal.tvserver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.mediaportal.tvserver" -PKG_VERSION="1042a71" +PKG_VERSION="42c91b1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk index b0a4ad2f64..58d34bfb16 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.stalker/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.stalker" -PKG_VERSION="9c9c72e" +PKG_VERSION="7df63b2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk index caec3e142f..972b5f1a50 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.vdr.vnsi" -PKG_VERSION="40c45dc" +PKG_VERSION="da5fdd5" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-theme-Estuary/package.mk b/packages/mediacenter/kodi-theme-Estuary/package.mk index 8896eed39a..c47f90e3b6 100644 --- a/packages/mediacenter/kodi-theme-Estuary/package.mk +++ b/packages/mediacenter/kodi-theme-Estuary/package.mk @@ -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" diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 5d84f4711b..6627518d65 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -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" diff --git a/packages/mediacenter/kodi/patches/kodi-100.09-use-a-wrapper-to-setup-systemd-services.patch b/packages/mediacenter/kodi/patches/kodi-100.09-use-a-wrapper-to-setup-systemd-services.patch index 375e4aaec8..db7e1c1695 100644 --- a/packages/mediacenter/kodi/patches/kodi-100.09-use-a-wrapper-to-setup-systemd-services.patch +++ b/packages/mediacenter/kodi/patches/kodi-100.09-use-a-wrapper-to-setup-systemd-services.patch @@ -1,32 +1,22 @@ -From 74ed25108f5a5c4771e001aa9921f175872c076e Mon Sep 17 00:00:00 2001 -From: Stefan Saraev -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(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(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(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(addon)); + CContextMenuManager::GetInstance().Unload(*std::static_pointer_cast(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(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(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 diff --git a/packages/mediacenter/kodi/patches/kodi-999.11-fix-aarch64-compile.patch b/packages/mediacenter/kodi/patches/kodi-999.11-fix-aarch64-compile.patch deleted file mode 100644 index 56de975a26..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-999.11-fix-aarch64-compile.patch +++ /dev/null @@ -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); diff --git a/packages/mediacenter/kodi/patches/kodi-999.99-PR10309.patch b/packages/mediacenter/kodi/patches/kodi-999.99-PR10309.patch deleted file mode 100644 index 72888acee1..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-999.99-PR10309.patch +++ /dev/null @@ -1,135 +0,0 @@ -From ee2dc577a03d86ac61e06bc95aaff1d1eddbf593 Mon Sep 17 00:00:00 2001 -From: Garrett Brown -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(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 diff --git a/packages/mediacenter/kodi/patches/kodi-999.99-Revert-PR10247.patch b/packages/mediacenter/kodi/patches/kodi-999.99-Revert-PR10247.patch deleted file mode 100644 index 6c38a0e85a..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-999.99-Revert-PR10247.patch +++ /dev/null @@ -1,103 +0,0 @@ -commit 62fa4175cb82e40ea3b67887f08d1f9424aa8a8d -Author: MilhouseVH -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 Date: Tue, 5 May 2015 17:27:39 +0100 -Subject: [PATCH 01/65] build: Allow installed links to be overwritten +Subject: [PATCH 01/69] build: Allow installed links to be overwritten --- tools/depends/target/Makefile | 72 +++++++++++++++++++-------------------- @@ -91,7 +91,7 @@ index 16c82d3cb06e20adf27e7f429eebda6b7efbdf8c..8dcfe26cbc29ebe47cdb212712ae6474 + [ -f $(PREFIX)/lib/pkgconfig/xmu.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/xmu.pc $(PREFIX)/lib/pkgconfig/xmu.pc + [ -f $(PREFIX)/lib/pkgconfig/libdrm.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/libdrm.pc $(PREFIX)/lib/pkgconfig/libdrm.pc diff --git a/tools/depends/xbmc-addons.include b/tools/depends/xbmc-addons.include -index e5cb842d9f61578efe5df95dfa3a938cf5346663..3ddba3cefb1ca785f7a17c72f42aacbbaada7b6c 100644 +index 42c58313b0bdab7113955ff00d594014758e148e..433b609aee40f8804380c9b71eb4ffb310b0a985 100644 --- a/tools/depends/xbmc-addons.include +++ b/tools/depends/xbmc-addons.include @@ -77,23 +77,23 @@ $(TOOLCHAIN_FILE): $(abs_top_srcdir)/target/Toolchain_binaddons.cmake @@ -137,10 +137,10 @@ index e5cb842d9f61578efe5df95dfa3a938cf5346663..3ddba3cefb1ca785f7a17c72f42aacbb + [ -f $(ADDON_DEPS_DIR)/lib/libm.so ] || ln -sf /usr/lib/$(HOST)/libm.so $(ADDON_DEPS_DIR)/lib/ -From 205dfaa46a1cfab63ed27111be95b9760f70d21f Mon Sep 17 00:00:00 2001 +From c7e3499025e73f735d71fcbaff94c010f6e3b5b9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 02/65] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 02/69] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -164,10 +164,10 @@ index 8ea5161637b4e66ddd222859f058521dbc8922b9..811019a39a10acc21b83f0b0c70d5500 dialog->ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From a20bc025b57d5452fd8ab7cb377f5eb6ec0da65b Mon Sep 17 00:00:00 2001 +From 978b5bb0f778c26bd001ae9aa22081767dc1546b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 03/65] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 03/69] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -190,10 +190,10 @@ index 6a9066b2dbe8d505d636b3638c1d35c7c8a698ed..9c6ac5d4cc9bf21b2d48619cc6fb5d27 info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From 2ca2c495ca734baef60d1e47b0653b72dac024f7 Mon Sep 17 00:00:00 2001 +From a3b195178bb63a1ad04beafc1a6e9b9941c71470 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 04/65] Improved file buffering in CArchive +Subject: [PATCH 04/69] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -253,10 +253,10 @@ index 23cac2759fb10d532da56fa75c5528c5589e9010..89d31d4db1afa7340ed8cd51a7a9fa7a } -From 99e26b48a0e18ac68c48112ff46675300c00473e Mon Sep 17 00:00:00 2001 +From af080afbe66825c0e4e91504e59b0444e4b33147 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 05/65] filesystem: Make support of browsing into archives +Subject: [PATCH 05/69] filesystem: Make support of browsing into archives optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. @@ -275,10 +275,10 @@ We'll let people who don't use archives disable it manually 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c89e91bdb0a275cf804df799c2d0a261cf086785..f5ca2397d9169c7dcd28a9f9bc882dc3d8490571 100644 +index 7a3854a4647ca178bb619d33055d1da724a277b9..8978ab54aed837019520aefcaaaf483c4082a756 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19276,6 +19276,15 @@ msgstr "" +@@ -19301,6 +19301,15 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -315,10 +315,10 @@ index 62e9c8ed2199f8c57a640b06b0216ee4c8f0ca1e..e8b0d3d472b02fd161a4b51e957b9129 + diff --git a/xbmc/Util.cpp b/xbmc/Util.cpp -index 618e7dc98b0f474f93684f6aec266a9033feee9c..22a61d0177d4165a37ddef1ca2dd9fe972a3b47b 100644 +index 9fb278691ebb07df53f3c0fe35930124e1468546..3bc1660cc74aa2fef41a4cedc2a0acf1d65f7d9a 100644 --- a/xbmc/Util.cpp +++ b/xbmc/Util.cpp -@@ -1855,7 +1855,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1860,7 +1860,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, URIUtils::RemoveExtension(strCandidate); if (StringUtils::StartsWithNoCase(strCandidate, videoName)) { @@ -327,7 +327,7 @@ index 618e7dc98b0f474f93684f6aec266a9033feee9c..22a61d0177d4165a37ddef1ca2dd9fe9 CUtil::ScanArchiveForAssociatedItems(pItem->GetPath(), "", item_exts, associatedFiles); else { -@@ -1865,7 +1865,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1870,7 +1870,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, } else { @@ -366,10 +366,10 @@ index a0fd0a9011e71f4af1535110c696b6ea5c4b37db..688b71a297c7c617c6764bfe6be157d7 { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); -From f7bedecdb5bc79b6f082c925eaa305b682ac218b Mon Sep 17 00:00:00 2001 +From c46ad902ac3f6bd2c1446aa7a307dec119ac78d6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 06/65] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 06/69] [rbp] Make cachemembuffersize default depend on memory size --- @@ -471,10 +471,10 @@ index 6beebe0c9c11b0bab63e5abbd4aea2d62bb05f0c..03f566d3ee4eab690d2236b773908026 } -From 85725ac945cbdc5a8e970d54ea6beda5b7bc9641 Mon Sep 17 00:00:00 2001 +From 242178a6cde0248fbab4d3897e63856d44d65630 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 07/65] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 07/69] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -496,10 +496,10 @@ index c1cca7efdd5d119b07308b947c569911f2a9bdc9..e03f3c8ef21ba824c0d707042e5a735a StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 58d65ba07bc8254b433b1eec4f3ecf2aac895bd3 Mon Sep 17 00:00:00 2001 +From 35e49a5ac18e25894e55adb419cb8c34a2b3f5ca Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 08/65] [audio] Add settings option to boost centre channel +Subject: [PATCH 08/69] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -517,10 +517,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 46 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index f5ca2397d9169c7dcd28a9f9bc882dc3d8490571..4ff4c60c7a867e9d0a40adc0711287c8be324b8e 100644 +index 8978ab54aed837019520aefcaaaf483c4082a756..5a944387519059b24bc2e2c8371f1af1075b5a38 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19450,6 +19450,21 @@ msgstr "" +@@ -19475,6 +19475,21 @@ msgstr "" #empty strings from id 38043 to 38099 @@ -543,10 +543,10 @@ index f5ca2397d9169c7dcd28a9f9bc882dc3d8490571..4ff4c60c7a867e9d0a40adc0711287c8 #: system/settings/settings.xml msgctxt "#38100" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index ca912cd996d3236161ba7934da32d22df6b065ab..4197841131914f98cd29f5fd7b9ec3cedd2d01da 100644 +index 8d20a7ae8f9797fec026ee9328e651435c5c18cb..4ea8f6487f2815b13c6811171f2c9cb1e7e9f20d 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2366,6 +2366,18 @@ +@@ -2361,6 +2361,18 @@ @@ -566,7 +566,7 @@ index ca912cd996d3236161ba7934da32d22df6b065ab..4197841131914f98cd29f5fd7b9ec3ce HAS_AE_QUALITY_LEVELS 2 diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp -index b0ab84baf510d99ef66af86b88f2b23ea41f4e78..809ca88e64092c4c53045849fe98fd480a69651f 100644 +index af5bf93116543bd282953b01d0c5bcef93bb3a84..d7165dedd242abdfa7c0607eee332451c3187298 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp @@ -20,6 +20,7 @@ @@ -577,7 +577,7 @@ index b0ab84baf510d99ef66af86b88f2b23ea41f4e78..809ca88e64092c4c53045849fe98fd48 #include "utils/log.h" extern "C" { -@@ -105,6 +106,12 @@ bool CActiveAEResampleFFMPEG::Init(uint64_t dst_chan_layout, int dst_channels, i +@@ -104,6 +105,12 @@ bool CActiveAEResampleFFMPEG::Init(uint64_t dst_chan_layout, int dst_channels, i { av_opt_set_double(m_pContext, "rematrix_maxval", 1.0, 0); } @@ -625,10 +625,10 @@ index f16b822ed7b4aebe18b5d339b3f71ee66e97c23f..993d4b33a294e88c2c004b7943895ba5 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From b3ec4c120398f86571ca6539a0b46911e3e03849 Mon Sep 17 00:00:00 2001 +From 909d07f4a19f1c81fde195171ee9fffe51e1f7b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 09/65] [rbp] Default extract thumbnails to false +Subject: [PATCH 09/69] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -654,10 +654,10 @@ index e8b0d3d472b02fd161a4b51e957b9129e3cb9792..289dc55ec41aa44848519a05f8ee1ccc -From bdb8c0811d58ebe6de69db82e9003456a677a059 Mon Sep 17 00:00:00 2001 +From 4feef225d99074a28887e099cdf3ba52be8a2f8b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 10/65] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 10/69] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -680,10 +680,10 @@ index fcdd0633f30cd9595ae6cc4ed293677cdcb1f422..16f0c8916b5e0a9e90973d194cf2ebd1 } -From eec3216e64389a02e22180a626d8291db2b949ea Mon Sep 17 00:00:00 2001 +From f58d1dace2e991cedf61a14349974712f77ebe09 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 11/65] logging: Add microsecond timer to log messages +Subject: [PATCH 11/69] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 15 +++++++++++++-- @@ -734,10 +734,10 @@ index 3443f1293d86018830269ed992c90a4e69c0430c..d330320842243df6f5ff256e608dddfa levelNames[logLevel]) + strData; -From 7c900d5144d7a912db7360b92eff90702fa3f366 Mon Sep 17 00:00:00 2001 +From 3f562fbea1c2d80866b51fdb90b2b7cc51139083 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 12/65] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 12/69] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -821,10 +821,10 @@ index ee297700f8583dbb15cbe53baf8c887b36bd2ea0..bbe501d40c5e101f1d0d64b8b59b1928 RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); -From b3107b218150f1923a0b973cc85b589182ac8df7 Mon Sep 17 00:00:00 2001 +From 29c719456b993960988fce180bfa271a1de5fa38 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 13/65] Fix for UI not showing both extractflags and +Subject: [PATCH 13/69] Fix for UI not showing both extractflags and extractthumb --- @@ -833,10 +833,10 @@ Subject: [PATCH 13/65] Fix for UI not showing both extractflags and 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4ecb4c94c 100644 +index 5a944387519059b24bc2e2c8371f1af1075b5a38..19f9d25dd1744fa56e131154f69859cddff60e29 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -12430,7 +12430,7 @@ msgstr "" +@@ -12448,7 +12448,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -845,7 +845,7 @@ index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -16912,7 +16912,7 @@ msgstr "" +@@ -16937,7 +16937,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36178" @@ -854,7 +854,7 @@ index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4 msgstr "" #. Description of setting with label #20419 "Replace file names with library titles" -@@ -16924,7 +16924,7 @@ msgstr "" +@@ -16949,7 +16949,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36180" @@ -863,16 +863,16 @@ index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4 msgstr "" #: system/settings/settings.xml -@@ -19582,3 +19582,7 @@ msgstr "" - msgctxt "#39007" - msgid "This provides access to where picture sources can be added and otherwise managed." +@@ -19617,3 +19617,7 @@ msgstr "" + msgctxt "#39009" + msgid "Zoom - 110% width" msgstr "" + +msgctxt "#38190" +msgid "Extract thumbnails from video files" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 4197841131914f98cd29f5fd7b9ec3cedd2d01da..dc7144ac8756fb1af9d7f3bb56c0b471f0ae3f9b 100644 +index 4ea8f6487f2815b13c6811171f2c9cb1e7e9f20d..66e914ff7dd857ac387bc8ff4a97e88d5c68174c 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -977,8 +977,8 @@ @@ -887,10 +887,10 @@ index 4197841131914f98cd29f5fd7b9ec3cedd2d01da..dc7144ac8756fb1af9d7f3bb56c0b471 -From a7bb3ad02267746ae24fdcedcc29ccae4620cfb2 Mon Sep 17 00:00:00 2001 +From bcb9e8f1d4e3988f8f5fc33eba50061ef331c71e Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 14/65] Disable autoscrolling while on screensaver and while +Subject: [PATCH 14/69] Disable autoscrolling while on screensaver and while opening streams. --- @@ -903,10 +903,10 @@ Subject: [PATCH 14/65] Disable autoscrolling while on screensaver and while 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index b3d5c77bb51c6a67964a695ce81efb42ea76a7bf..9b29a8cdb796db3bb6a3419c493aadb914f60956 100644 +index 45cc633fcd3c1026fabad6fd01b0a3ce00bfe38f..0463271ae53c87c631cf62cec6aef6491ab02723 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5200,3 +5200,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -5219,3 +5219,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -921,10 +921,10 @@ index b3d5c77bb51c6a67964a695ce81efb42ea76a7bf..9b29a8cdb796db3bb6a3419c493aadb9 + return onBlackDimScreenSaver || openingStreams; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index c14f62d54fd4623be82eff2d00097fc2c5615d3c..7126e1b1c73d75ff08a6bc58c5f98d5cba6a6fb1 100644 +index d20b7725e2901ebc6a750463d43ec4aea2a4187b..fa53fb3fd87f03a0ddd71c56874ed7249791e3ac 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -393,6 +393,8 @@ public: +@@ -394,6 +394,8 @@ public: */ void UnregisterActionListener(IActionListener *listener); @@ -1021,10 +1021,10 @@ index d7bc1c5ba6067af9a460589920367288c640a915..ac766293f1c47c7f145cb46f6b152144 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 3ced3be4ca859b1b236c9c1fae2098751b95a18e Mon Sep 17 00:00:00 2001 +From 78a960d9d7cc55c0b4b321924b644824906eb541 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 15/65] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 15/69] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -1035,10 +1035,10 @@ high bitrate videos can be significant. 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabcf525ada6 100644 +index 8460e27865a47861efa67d577187d5ab9b26431b..748508c8d2d5d0a8650f5a949d8f4d14dcb569af 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -854,7 +854,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -894,7 +894,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { if(m_pkt.pkt.stream_index == (int)m_pFormatContext->programs[m_program]->stream_index[i]) { @@ -1047,7 +1047,7 @@ index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabc break; } } -@@ -863,7 +863,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -903,7 +903,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() bReturnEmpty = true; } else @@ -1056,7 +1056,7 @@ index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabc } else bReturnEmpty = true; -@@ -893,9 +893,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -933,9 +933,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() // copy contents into our own packet pPacket->iSize = m_pkt.pkt.size; @@ -1072,7 +1072,7 @@ index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabc pPacket->pts = ConvertTimestamp(m_pkt.pkt.pts, stream->time_base.den, stream->time_base.num); pPacket->dts = ConvertTimestamp(m_pkt.pkt.dts, stream->time_base.den, stream->time_base.num); -@@ -949,7 +953,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -989,7 +993,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() pPacket->iStreamId = m_pkt.pkt.stream_index; } m_pkt.result = -1; @@ -1124,10 +1124,10 @@ index df0f35bd49c65b302de4ccd110d859e8b881ea5f..b4b591ae4c4dd4fb0b36d4d00fedca96 } catch(...) { -From 5fa52de0fa29ad2bed6c5dcd2faf129a8a61729c Mon Sep 17 00:00:00 2001 +From 571cade3349dd866e7ac2560065048e4edf6fa73 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 16/65] Load OSD dialogs on startup. +Subject: [PATCH 16/69] Load OSD dialogs on startup. Fixes skipped frames the first time they're loaded in memory on less powered devices, like a Raspberry Pi, when using DVDPlayer. @@ -1207,10 +1207,10 @@ index e498e1fd476d9ab5300bb00bc39946a22cfd93cb..a6648d016b07e2eb3e52f8d927697cc5 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index 5adebf41429241be1224167e9b52262e0a446889..fa9772a45da94208b9ece407966a898fc5013a0f 100644 +index c9ffc14b3382b442f75921fdb432c9748ae9fbd3..26cf6c45449b0fe8ddec5ef9af2bcfb42ec15e8d 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -@@ -65,7 +65,9 @@ +@@ -66,7 +66,9 @@ CGUIDialogVideoSettings::CGUIDialogVideoSettings() : CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "DialogSettings.xml"), m_viewModeChanged(false) @@ -1222,10 +1222,10 @@ index 5adebf41429241be1224167e9b52262e0a446889..fa9772a45da94208b9ece407966a898f CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 74963aa37bbea2fad5a631bbca4bb4bf7bc410dd Mon Sep 17 00:00:00 2001 +From 8f00eb24f169757ad3b290c74c673ca179a43d97 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 17/65] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 17/69] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -1233,10 +1233,10 @@ Subject: [PATCH 17/65] [gui] Also limit GUI updates when in non full-screen 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 9b29a8cdb796db3bb6a3419c493aadb914f60956..d39017434d819ca3190161c34a5dc70bb6a2022b 100644 +index 0463271ae53c87c631cf62cec6aef6491ab02723..3f9dcbbc30234ca0d86a79bd0ef42e65d3f16de0 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2756,7 +2756,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2765,7 +2765,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) #if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) // This code reduces rendering fps of the GUI layer when playing videos in fullscreen mode // it makes only sense on architectures with multiple layers @@ -1245,7 +1245,7 @@ index 9b29a8cdb796db3bb6a3419c493aadb914f60956..d39017434d819ca3190161c34a5dc70b fps = CSettings::GetInstance().GetInt(CSettings::SETTING_VIDEOPLAYER_LIMITGUIUPDATE); #endif -@@ -2769,6 +2769,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2778,6 +2778,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -1255,10 +1255,10 @@ index 9b29a8cdb796db3bb6a3419c493aadb914f60956..d39017434d819ca3190161c34a5dc70b g_windowManager.FrameMove(); } -From 10844c301cea6e5f07a55bf91599b9c094d318f6 Mon Sep 17 00:00:00 2001 +From 1c785e68a10eef9507a4d4d089d983f35b39d331 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 18/65] [screensaver] Leave GUI contents available for +Subject: [PATCH 18/69] [screensaver] Leave GUI contents available for screensaver --- @@ -1288,10 +1288,10 @@ index 227f323083b0fb9cee3b576bfcc7b51d5e27ac10..6994f16290ca3ec9da124fbf1cfa2171 // Add window to the history list (we must do this before we activate it, -From cca5e7cfe42db8cdb67457a41b7ef3dcd7b721ae Mon Sep 17 00:00:00 2001 +From 321ef266889c086654657c311926375e1475495d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH 19/65] ffmpeg: Automatic switch to software decode for GMC +Subject: [PATCH 19/69] ffmpeg: Automatic switch to software decode for GMC with more than one warp point --- @@ -1362,7 +1362,7 @@ index 0000000000000000000000000000000000000000..4cb8dd8fc466220e5d2539120de79ab1 +1.9.1 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index c3998be2f3a5f1dbde2498be624fa8b48de7339f..dffe2da1dfd09e06c5f15c362f7cbe3cf2a26f75 100644 +index 984521b55341c9387c8853fb346d846c36ff6b9e..9b763bc30aaf473d656f53c140ead8f948eff812 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,6 +1,7 @@ @@ -1396,7 +1396,7 @@ index 6bbebfca1c7189fec6650932d7292f17af60db62..e491c788793fa5df35e4570b54d76061 ./configure --prefix=$FFMPEG_PREFIX \ --extra-version="kodi-${VERSION}" \ diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index db15051b1638411e65c86de50a5be8f2ecbbd91c..c6f98ded45062617d88571cd70fc6336cfdc32c9 100644 +index 6adeaa66b04379a2685a80b99cfd493648f43775..aa20f18cbea80ed68c1307470289525bd5db29e3 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp @@ -47,6 +47,10 @@ @@ -1440,10 +1440,10 @@ index 03fdf6efa072219d55cac21b7f7923ffc6c00e17..e3a32aebfe59016b43cd7c2b304921b5 class CDemuxStreamAudio : public CDemuxStream diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 1069710e3702aa6fc39e5fb550d0cabcf525ada6..87674a3e45b0991447c817499524c09a3b595ca4 100644 +index 748508c8d2d5d0a8650f5a949d8f4d14dcb569af..a992c9253911d53c0648a9dceff37054fb2c91d0 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1326,7 +1326,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1366,7 +1366,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (!stereoMode.empty()) st->stereo_mode = stereoMode; @@ -1519,10 +1519,10 @@ index f135d423c0ca76fd70e79ae5b7d035f0cb79fc75..d9b576bc46055fdab1c134e5f2c63cd4 else if ((hint.codec == AV_CODEC_ID_VC1 || hint.codec == AV_CODEC_ID_WMV3) && g_RBP.GetCodecWvc1()) supported = true; -From 3d13e28a7a009dae14e1ed72d94c4192e7bee0fe Mon Sep 17 00:00:00 2001 +From a42d2fee26e2b0f8f01ceeb182f096f0f091a043 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH 20/65] [rbp] HW mouse pointer +Subject: [PATCH 20/69] [rbp] HW mouse pointer Updating the mouse point provokes a complete screen update which can make it feel laggy and results in high cpu. @@ -1955,10 +1955,10 @@ index 1b1d2f2e60334ed0f3a9964d106957f58e69f1b3..c82ba84625fe3556ff49764d40ceb3ec #endif -From e09807bed7411203a4c032e46a839cb215194ac7 Mon Sep 17 00:00:00 2001 +From dfc047ad23b14bb5a4a6a39fb69cd6e6ea3e2225 Mon Sep 17 00:00:00 2001 From: Claudio-Sjo Date: Mon, 16 Feb 2015 14:51:26 +0100 -Subject: [PATCH 21/65] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer +Subject: [PATCH 21/69] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer - fixes #15794 --- @@ -2150,10 +2150,10 @@ index 0427af4534bfe59a343f0518c7f4242d93299836..e99236294fa8b9b613e465a8ecaf3ad3 lsn_t m_lsnCurrent; // Position inside the track in logical sector number lsn_t m_lsnEnd; // End of m_iTrack in logical sector number -From 23eb36012a54590dc75e2b0a9a2304092272d483 Mon Sep 17 00:00:00 2001 +From 2d126de87a9a0819c8ca3ba2e74345ae3c474d33 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Jun 2016 19:38:13 +0100 -Subject: [PATCH 22/65] codecoverlay: Include codec name in overlay +Subject: [PATCH 22/69] codecoverlay: Include codec name in overlay --- xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp | 4 ++++ @@ -2164,7 +2164,7 @@ Subject: [PATCH 22/65] codecoverlay: Include codec name in overlay 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp -index a0cae3e603a3d0bcd954c75c9796f1afa995a9a1..5eee488a59a689e66325e8f8a9467ad2bb394a54 100644 +index 5da89e55c83568513cbf829679b60780572d5b49..27d7065a61b495b36abcfb96bc75131750054be4 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp @@ -210,6 +210,10 @@ void CVideoPlayerAudio::UpdatePlayerInfo() @@ -2179,10 +2179,10 @@ index a0cae3e603a3d0bcd954c75c9796f1afa995a9a1..5eee488a59a689e66325e8f8a9467ad2 //print the inverse of the resample ratio, since that makes more sense //if the resample ratio is 0.5, then we're playing twice as fast diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -index 06305e13c0687ba6899a6ab1f364345a3115c0f1..7f090615d5696e538fdd7ab376b76ef8212927cf 100644 +index c6d100b58c9bab185e747d14ee33cebce5c7cced..585b812a04d928ef493eb3cb3f8943fb33328a0e 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -@@ -915,10 +915,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) +@@ -922,10 +922,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) std::string CVideoPlayerVideo::GetPlayerInfo() { @@ -2213,10 +2213,10 @@ index 1e5d2b98bbef15b47994c3e4735873a9946b58c7..d43350fa0eefb5960475a02c1327efc2 return s.str(); } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index f9fa18aa9dfea0d50be09947439e56219f1f9b3d..6cd7d243d0fbea08c33e81edb5a51ab402bd110d 100644 +index cdf67ff4741854e883818aa82c3c427531850963..f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -@@ -583,12 +583,14 @@ void OMXPlayerVideo::SetSpeed(int speed) +@@ -593,12 +593,14 @@ void OMXPlayerVideo::SetSpeed(int speed) std::string OMXPlayerVideo::GetPlayerInfo() { @@ -2247,10 +2247,10 @@ index 0df7e72cc9d1947173c2bac5e72eb09976b51aa5..b5050081c360d29b1b478c27e6b88291 double m_iSubtitleDelay; bool m_bRenderSubs; -From d0279647e6ebd58b37bb61385942e912f1d7cc73 Mon Sep 17 00:00:00 2001 +From e31ab92bb7149186e93b0ecadddd1febea8865d3 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 8 Mar 2016 21:20:58 +0300 -Subject: [PATCH 23/65] [DebugInfo] Add cpu usage info. +Subject: [PATCH 23/69] [DebugInfo] Add cpu usage info. --- .../VideoPlayer/VideoRenderers/DebugRenderer.cpp | 56 ++++++++-------------- @@ -2387,7 +2387,7 @@ index 85aefaace73994730f7d2bdff9de85c79e99b2a2..8005a13bc220be0c5c596d276197c11e }; \ No newline at end of file diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da0200583d9c6318 100644 +index bbdd403dbb91cc066b2f8ac0de8da5066a7ebd58..4ca19205a1b124974b3495261f426896a1cbfa58 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp @@ -24,6 +24,7 @@ @@ -2398,7 +2398,7 @@ index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da020058 #include "utils/log.h" #include "utils/StringUtils.h" #include "windowing/WindowingFactory.h" -@@ -925,7 +926,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -904,7 +905,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) if (m_renderDebug) { @@ -2407,7 +2407,7 @@ index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da020058 m_playerPort->GetDebugInfo(audio, video, player); -@@ -939,8 +940,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -918,8 +919,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) missedvblanks, clockspeed * 100); } @@ -2420,17 +2420,17 @@ index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da020058 m_debugTimer.Set(1000); -From 5a5fb07850e90081f355f308f3f785cdd68d3148 Mon Sep 17 00:00:00 2001 +From 884330c4db911c653a1eecac122a72bb25c8d603 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH 24/65] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 24/69] ffmpeg: Allow neon to be enabled in unified builds --- tools/depends/target/ffmpeg/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index dffe2da1dfd09e06c5f15c362f7cbe3cf2a26f75..4081dddb6bc2db53559d35506cad6af4cd668362 100644 +index 9b763bc30aaf473d656f53c140ead8f948eff812..4e3cbf75331240ef33deb8f99ae9c57aef53e8ac 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -23,7 +23,11 @@ ffmpg_config += --enable-gnutls @@ -2446,10 +2446,10 @@ index dffe2da1dfd09e06c5f15c362f7cbe3cf2a26f75..4081dddb6bc2db53559d35506cad6af4 ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) -From 0daa9854de558357b37bfd9755fdf7d9094ed692 Mon Sep 17 00:00:00 2001 +From d18c25fef244c9932ce65f667e375ad6136a5aed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH 25/65] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 25/69] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -2461,7 +2461,7 @@ Subject: [PATCH 25/65] ffmpeg: Add some upstream HEVC optimisations create mode 100644 tools/depends/target/ffmpeg/hevcdsp_ARM_NEON_optimized_epel_functions.patch diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 4081dddb6bc2db53559d35506cad6af4cd668362..d9db534dd8c59a4993a3509737d901fbb3923de8 100644 +index 4e3cbf75331240ef33deb8f99ae9c57aef53e8ac..cdfd3334412d7392321c9ca63b7cc73487310875 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,7 +1,8 @@ @@ -6247,10 +6247,10 @@ index 0000000000000000000000000000000000000000..5e8e07d407f045fc99554f0f061d1e81 +2.5.0 + -From 6d71c6a31c4adfee8f95156360ddae12e821db21 Mon Sep 17 00:00:00 2001 +From 833dc2ec2689c67590b93d7609dc7477ecea2d6b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH 26/65] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 26/69] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -6260,7 +6260,7 @@ Subject: [PATCH 26/65] [ffmpeg] Add GPU acceleration to hevc create mode 100644 tools/depends/target/ffmpeg/pfcd_hevc_optimisations.patch diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index d9db534dd8c59a4993a3509737d901fbb3923de8..2dc4addea504d142eb74385653584bf39b253156 100644 +index cdfd3334412d7392321c9ca63b7cc73487310875..f17db07af6440391a9c31eff8367fe7393f77dfc 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -2,7 +2,8 @@ include ../../Makefile.include @@ -44436,10 +44436,10 @@ index 0000000000000000000000000000000000000000..e172ebf157aebffe1ae50b4a2b25fd71 +2.7.4 + -From dd2ed73dfc759d5afd988e4e544aee0cfa6b1e37 Mon Sep 17 00:00:00 2001 +From 98e0f8702c13b9b449f2b4ae52cb82c6aa07a0b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 22 Aug 2015 23:06:56 +0100 -Subject: [PATCH 27/65] [dvdmessage] Increase timeout on +Subject: [PATCH 27/69] [dvdmessage] Increase timeout on CDVDMsgGeneralSynchronize --- @@ -44460,10 +44460,10 @@ index 0dcc664fd862706c60659f3664c7d964597c94d5..7614c831af9dfc821121a4111546fd4d long CDVDMsgGeneralSynchronize::Release() -From d3f5e306acd46cc7b8173c2e96a78a993764222d Mon Sep 17 00:00:00 2001 +From 8fbcee372c19974802cc81d09437b436c3c96a07 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH 28/65] [3d] Make MVC a valid 3D filename tag +Subject: [PATCH 28/69] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ @@ -44524,20 +44524,20 @@ index 1727580c0c8de2b6fda19a741f90721a570b96b8..4fa973515df6e677418a6bf7f9d0b4a3 bool m_useDisplayControlHWStereo; -From 6c07d703eda3708c2a3f95ac4217003d9935b5ba Mon Sep 17 00:00:00 2001 +From 8a144f817cf59a99e5b8b11c0d51538acf42bb55 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 5 Oct 2015 14:58:05 +0100 -Subject: [PATCH 29/65] [3d] Swap top/bottom sides of GUI +Subject: [PATCH 29/69] [3d] Swap top/bottom sides of GUI --- xbmc/guilib/GraphicContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/guilib/GraphicContext.cpp b/xbmc/guilib/GraphicContext.cpp -index e9d8e18445bcd82b09d5ed9f86e85a5a6fef8472..324852946dfc4e06d66915f35f8f37376795e041 100644 +index 3706e4d80b3b31da4c5be0a1b21f36e59d2910f2..e170b3fb05279ffa316794dbce1d4f9dc5697bd0 100644 --- a/xbmc/guilib/GraphicContext.cpp +++ b/xbmc/guilib/GraphicContext.cpp -@@ -267,7 +267,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const +@@ -266,7 +266,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const { const RESOLUTION_INFO info = GetResInfo(); @@ -44547,10 +44547,10 @@ index e9d8e18445bcd82b09d5ed9f86e85a5a6fef8472..324852946dfc4e06d66915f35f8f3737 } if(m_stereoMode == RENDER_STEREO_MODE_SPLIT_VERTICAL) -From 6e570a0f04536712cc7cb8dd0ff64bb05461fa72 Mon Sep 17 00:00:00 2001 +From 5fe5a4afe38e6e71d5e016ccb260aa9ad7940435 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 11 Oct 2015 20:51:37 +0100 -Subject: [PATCH 30/65] Revert "Revert "Disable extra logging by default"" +Subject: [PATCH 30/69] Revert "Revert "Disable extra logging by default"" This reverts commit a880554325be187b877cd8f0e2b338e7267da636. --- @@ -44558,10 +44558,10 @@ This reverts commit a880554325be187b877cd8f0e2b338e7267da636. 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index dc7144ac8756fb1af9d7f3bb56c0b471f0ae3f9b..8f62f7ca494ea5b3322653f0a2b9431ebd54c7ea 100644 +index 66e914ff7dd857ac387bc8ff4a97e88d5c68174c..0418bee8ed9df4aa9796d4c88bf904a4a8736e71 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2820,12 +2820,12 @@ +@@ -2815,12 +2815,12 @@ 1 @@ -44577,20 +44577,20 @@ index dc7144ac8756fb1af9d7f3bb56c0b471f0ae3f9b..8f62f7ca494ea5b3322653f0a2b9431e loggingcomponents , -From 36d0fe8ab502919d2fe8fb63e11f1380532cb0e7 Mon Sep 17 00:00:00 2001 +From 620acc574e873000228027afc1c7c4bde234c2be Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 26 Nov 2015 17:14:49 +0000 -Subject: [PATCH 31/65] [ae] Add debug logging showing resamplerate +Subject: [PATCH 31/69] [ae] Add debug logging showing resamplerate --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 432c8a97ff1882c7f8c2e72b417f5c8f63237a1a..8a1fbade6b6a91bae4fc33d19759959d6ee34290 100644 +index 5b2243f3094403ce485006333fd000342f0e58b2..799dc57a130d15a025a7c525ddac8e1748ff6416 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -2449,6 +2449,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) +@@ -2450,6 +2450,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) if (stream->m_processingBuffers) { stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold); @@ -44599,10 +44599,10 @@ index 432c8a97ff1882c7f8c2e72b417f5c8f63237a1a..8a1fbade6b6a91bae4fc33d19759959d } else if (stream->m_processingBuffers) -From 1c4077d7ab06f9bc9aed4ccb62fd676e08ad8115 Mon Sep 17 00:00:00 2001 +From 5995eb83d50fabf6e5825487ecdc2c62281ead8d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH 32/65] [omximage] Fall back to arm jpeg encode/decode when gpu +Subject: [PATCH 32/69] [omximage] Fall back to arm jpeg encode/decode when gpu is busy --- @@ -44845,10 +44845,10 @@ index a93aa82663903fb1bf712058c2e259290ee742e6..6f38dbc7e5cc721c59a3633935f08218 extern COMXImage g_OMXImage; -From 502899c2fb94a59efd204a765ef897c2792a9d7f Mon Sep 17 00:00:00 2001 +From 442001f0d7149f4bd8c3b10a6bf32f7a85c2b90d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH 33/65] [mmalcodec] Fail to open when width is invalid. Can +Subject: [PATCH 33/69] [mmalcodec] Fail to open when width is invalid. Can happen with mpegts files --- @@ -44856,7 +44856,7 @@ Subject: [PATCH 33/65] [mmalcodec] Fail to open when width is invalid. Can 1 file changed, 3 insertions(+) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index c6f98ded45062617d88571cd70fc6336cfdc32c9..283b2626731c25c67e4c065dac7725a488c09523 100644 +index aa20f18cbea80ed68c1307470289525bd5db29e3..cead68bd79d388f0eda0f8a79f17d296478d3361 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp @@ -368,6 +368,9 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) @@ -44870,10 +44870,10 @@ index c6f98ded45062617d88571cd70fc6336cfdc32c9..283b2626731c25c67e4c065dac7725a4 if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) return false; -From ea3c304d6927e3a0da428ec064aa11845c2e01db Mon Sep 17 00:00:00 2001 +From 48229815a2381336ad53da850be143df7e7ba430 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH 34/65] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 34/69] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2179 ++++++++++++++++++++ @@ -47068,7 +47068,7 @@ index 0000000000000000000000000000000000000000..38554af0af30a85b7d88d31b7d21775c +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 2dc4addea504d142eb74385653584bf39b253156..d1d76cb2ce04d5fd056796cc133fceb3f3c246c9 100644 +index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d59021500 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -3,7 +3,8 @@ include FFMPEG-VERSION @@ -47110,10 +47110,10 @@ index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..7022b5fadef58ad27b61725d77131bd7 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ -From 2a35e99417f02eccc12026eae38d6b2fca3c96d1 Mon Sep 17 00:00:00 2001 +From 1438374e2a489065391e8fa01bf7d20dd4d09e87 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 35/65] [videoplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 35/69] [videoplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -47135,10 +47135,10 @@ or drop/dupe audio packets which is normally required. 12 files changed, 122 insertions(+), 19 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index f4abad73fa75574576383fca3956f9f4ecb4c94c..bdd03649780dc6ba0a4d16c32d6bec8891727019 100644 +index 19f9d25dd1744fa56e131154f69859cddff60e29..5573f41c9a0b00e32f0c11e4cba4650088864b6b 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19586,3 +19586,35 @@ msgstr "" +@@ -19621,3 +19621,35 @@ msgstr "" msgctxt "#38190" msgid "Extract thumbnails from video files" msgstr "" @@ -47146,7 +47146,7 @@ index f4abad73fa75574576383fca3956f9f4ecb4c94c..bdd03649780dc6ba0a4d16c32d6bec88 +#. Description of setting "System -> Audio Ouput -> A/V sync method" with label #38200 +#: system/settings/settings.xml +msgctxt "#38200" -+msgid "PLL adustment to maintain audio/video sync" ++msgid "PLL adjustment to maintain audio/video sync" +msgstr "" + +#. Description of setting "Videos -> Playback -> A/V sync method" with label #38201 @@ -47200,7 +47200,7 @@ index 289dc55ec41aa44848519a05f8ee1ccc72740085..2572e25753712186f69390965ee1448b diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 8a1fbade6b6a91bae4fc33d19759959d6ee34290..e980eba1fba19de6f49b479e0bca0afefc830795 100644 +index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e683721976752e833238 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -34,6 +34,10 @@ using namespace ActiveAE; @@ -47230,7 +47230,7 @@ index 8a1fbade6b6a91bae4fc33d19759959d6ee34290..e980eba1fba19de6f49b479e0bca0afe par->stream->m_resampleIntegral = 0.0; } return; -@@ -2444,7 +2449,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) +@@ -2445,7 +2450,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) if (!newerror || stream->m_syncState != CAESyncInfo::AESyncState::SYNC_INSYNC) return ret; @@ -47248,7 +47248,7 @@ index 8a1fbade6b6a91bae4fc33d19759959d6ee34290..e980eba1fba19de6f49b479e0bca0afe { if (stream->m_processingBuffers) { -@@ -3302,13 +3316,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) +@@ -3303,13 +3317,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) &msg, sizeof(MsgStreamParameter)); } @@ -47404,7 +47404,7 @@ index 81882a1a3828e3f95df26c1bd88c061d3b994b44..ed6974b1155a7272f3ef5bfed3f74967 void Drain(); void AbortAddPackets(); diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp -index 5eee488a59a689e66325e8f8a9467ad2bb394a54..77c5170235b675f58b4e4a85cb1c2e645640a283 100644 +index 27d7065a61b495b36abcfb96bc75131750054be4..22c6480fc55e93e1f6a99b31851c7e5da3fd60b1 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp @@ -96,6 +96,7 @@ bool CVideoPlayerAudio::OpenStream(CDVDStreamInfo &hints) @@ -47428,7 +47428,7 @@ index 5eee488a59a689e66325e8f8a9467ad2bb394a54..77c5170235b675f58b4e4a85cb1c2e64 s << ", att:" << std::fixed << std::setprecision(1) << log(GetCurrentAttenuation()) * 20.0f << " dB"; -@@ -538,10 +543,12 @@ void CVideoPlayerAudio::SetSyncType(bool passthrough) +@@ -541,10 +546,12 @@ void CVideoPlayerAudio::SetSyncType(bool passthrough) int synctype = (m_synctype >= 0 && m_synctype <= 1) ? m_synctype : 2; CLog::Log(LOGDEBUG, "CVideoPlayerAudio:: synctype set to %i: %s", m_synctype, synctypes[synctype]); m_prevsynctype = m_synctype; @@ -47443,7 +47443,7 @@ index 5eee488a59a689e66325e8f8a9467ad2bb394a54..77c5170235b675f58b4e4a85cb1c2e64 } } -@@ -599,6 +606,7 @@ bool CVideoPlayerAudio::SwitchCodecIfNeeded() +@@ -602,6 +609,7 @@ bool CVideoPlayerAudio::SwitchCodecIfNeeded() bool allowpassthrough = !CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEDISPLAYASCLOCK); if (m_streaminfo.realtime) allowpassthrough = false; @@ -47509,10 +47509,10 @@ index 90b04db5405058be2ff20aeaa6af2d2ac651586f..084fba87f49f4c3b33a8dd4a20a626a3 void init_cursor(); void set_cursor(const void *pixels, int width, int height, int hotspot_x, int hotspot_y); -From 096224708de6b380a7623b78c6d0980dcfee4547 Mon Sep 17 00:00:00 2001 +From 7f169078ca694fe9879a9f6c001bdb97394bd6d3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH 36/65] rbp: Support zero copy interface with hevc acceleration +Subject: [PATCH 36/69] rbp: Support zero copy interface with hevc acceleration --- xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 9 +++++++++ @@ -47520,10 +47520,10 @@ Subject: [PATCH 36/65] rbp: Support zero copy interface with hevc acceleration 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 37254c779a4574a34de8f2b0326ea8ca8ceab53d..c9e683e6c0771276217152558aabbdaf171302e3 100644 +index 0f37978d0e372244d8a3936e885887e62c1ab650..6cd68f5068956ea23b2b2da7069cf46b4d756874 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -364,6 +364,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options +@@ -365,6 +365,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options if (tryhw && m_decoderState == STATE_NONE) { m_decoderState = STATE_HW_SINGLE; @@ -47540,10 +47540,10 @@ index 37254c779a4574a34de8f2b0326ea8ca8ceab53d..c9e683e6c0771276217152558aabbdaf else { diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp -index ad0f65cc64f545b32d1812c9e218c57ec6866b00..a5597c1386c5afdc6ec8f6840355557ee26e8950 100644 +index 29c4e6d15dd838cf845c301ea1a1f4c05db29871..864650d488d0f5b3dc9f89f01aa5c3b845b92564 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp -@@ -281,8 +281,9 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture +@@ -290,8 +290,9 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture picture->MMALBuffer->mmal_buffer->data = (uint8_t *)gmem->m_vc_handle; picture->MMALBuffer->mmal_buffer->alloc_size = picture->MMALBuffer->mmal_buffer->length = gmem->m_numbytes; @@ -47556,10 +47556,10 @@ index ad0f65cc64f545b32d1812c9e218c57ec6866b00..a5597c1386c5afdc6ec8f6840355557e if (g_advancedSettings.CanLogComponent(LOGVIDEO)) CLog::Log(LOGDEBUG, "%s::%s - mmal:%p dts:%.3f pts:%.3f buf:%p gpu:%p", CLASSNAME, __FUNCTION__, picture->MMALBuffer->mmal_buffer, 1e-6*picture->dts, 1e-6*picture->pts, picture->MMALBuffer, gmem); -From 2c3a832280fbf22c1d09c6a7db1e8c2ee78c6699 Mon Sep 17 00:00:00 2001 +From e10d1b7ce3a948b8cce52cf26359cf1b3ec0cb24 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 May 2015 18:26:04 +0100 -Subject: [PATCH 37/65] ffmpeg: use upstream mvc patches +Subject: [PATCH 37/69] ffmpeg: use upstream mvc patches --- ...vcodec-add-h264_mvc-codec-id-and-profiles.patch | 68 ++++++++++++ @@ -47769,7 +47769,7 @@ index 0000000000000000000000000000000000000000..399e8a95984771e4388bfe4785423ff3 +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index d1d76cb2ce04d5fd056796cc133fceb3f3c246c9..92d9437b36eaa4e655990f7e68634e0bbf4d9605 100644 +index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e23794be3a 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -4,7 +4,9 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -47869,10 +47869,10 @@ index 0000000000000000000000000000000000000000..b39480ad098b9cd0882fcf75b96afb1b +2.7.4 + -From 7693ec1c01a125048da9b0c708260461f91f5a9c Mon Sep 17 00:00:00 2001 +From 3b07012b3efa399026c9f93bbb70e720f79bfcb8 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 20 Jan 2016 17:02:16 +0300 -Subject: [PATCH 38/65] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc +Subject: [PATCH 38/69] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc streams. --- @@ -47880,7 +47880,7 @@ Subject: [PATCH 38/65] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e 100644 +index a992c9253911d53c0648a9dceff37054fb2c91d0..13a1576955fc68fbf344383a483f5429753f4292 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -25,6 +25,7 @@ @@ -47891,7 +47891,7 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f #include "DVDClock.h" // for DVD_TIME_BASE #include "DVDDemuxUtils.h" #include "DVDInputStreams/DVDInputStream.h" -@@ -1265,6 +1266,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1305,6 +1306,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) } case AVMEDIA_TYPE_VIDEO: { @@ -47907,7 +47907,7 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); stream = st; if(strcmp(m_pFormatContext->iformat->name, "flv") == 0) -@@ -1273,7 +1283,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1313,7 +1323,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) st->bVFR = false; // never trust pts in avi files with h264. @@ -47916,7 +47916,7 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f st->bPTSInvalid = true; #if defined(AVFORMAT_HAS_STREAM_GET_R_FRAME_RATE) -@@ -1344,6 +1354,17 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1384,6 +1394,17 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (av_dict_get(pStream->metadata, "title", NULL, 0)) st->m_description = av_dict_get(pStream->metadata, "title", NULL, 0)->value; @@ -47935,10 +47935,10 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f } case AVMEDIA_TYPE_DATA: -From 05f6d9958acf833440b50a5044257c71eb91a479 Mon Sep 17 00:00:00 2001 +From 527e88f4a9407743e2525f7fa4fbcd3c0e6a1a84 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 25 Feb 2016 11:21:25 +0300 -Subject: [PATCH 39/65] [Stereo3D] Added mvc modes. +Subject: [PATCH 39/69] [Stereo3D] Added mvc modes. --- xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 4 ++++ @@ -47992,17 +47992,17 @@ index 1443acaf0f25df458ae49766e13dd0323454f2eb..6eb0752994bc5f8c47efbbf211120af0 i++; } -From 2b56aadf7f5b3d2adec40ea591c67959ca8e005b Mon Sep 17 00:00:00 2001 +From 92b7fb7fc93c081b8a1d69d74c6f6356f7ab4ea8 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Sat, 23 Jan 2016 10:21:32 +0300 -Subject: [PATCH 40/65] [VideoPlayer] Fix possible wrong aspect. +Subject: [PATCH 40/69] [VideoPlayer] Fix possible wrong aspect. --- xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -index 7f090615d5696e538fdd7ab376b76ef8212927cf..3ad458cac7373a7574253ae23aab5812e330c968 100644 +index 585b812a04d928ef493eb3cb3f8943fb33328a0e..064b3fffaa416786f1bac34d827af60ceceaa105 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp @@ -182,7 +182,7 @@ void CVideoPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) @@ -48015,10 +48015,10 @@ index 7f090615d5696e538fdd7ab376b76ef8212927cf..3ad458cac7373a7574253ae23aab5812 else m_fForcedAspectRatio = 0.0; -From df603ab3e9d455937d8595d34b0bda7301340dc2 Mon Sep 17 00:00:00 2001 +From 52cf0ed76fb62f056dc0038773d313a1713c0fc6 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 22 Jan 2016 18:18:33 +0300 -Subject: [PATCH 41/65] [VideoPlayer] DemuxFFmpeg: ssif remux +Subject: [PATCH 41/69] [VideoPlayer] DemuxFFmpeg: ssif remux --- xbmc/cores/VideoPlayer/DVDDemuxers/CMakeLists.txt | 2 + @@ -48053,7 +48053,7 @@ index 63776b1333bb66483303e44d6ebe60f3cd7e14d7..0da129ff99f57dc38ca8a854854d9fe6 DVDDemuxUtils.h DVDDemuxVobsub.h diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba84c60e046 100644 +index 13a1576955fc68fbf344383a483f5429753f4292..3e3884f7ce515709b74b687c53d538b67c563c61 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -164,6 +164,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() @@ -48083,7 +48083,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 } void CDVDDemuxFFmpeg::Abort() -@@ -811,7 +817,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -851,7 +857,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48094,7 +48094,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 { // update streams CreateStreams(m_program); -@@ -839,6 +847,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -879,6 +887,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48104,7 +48104,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 } else { -@@ -848,7 +859,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -888,7 +899,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { @@ -48115,7 +48115,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -997,6 +1010,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1037,6 +1050,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() stream = AddStream(pPacket->iStreamId); } } @@ -48131,7 +48131,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 if (!stream) { CLog::Log(LOGERROR, "CDVDDemuxFFmpeg::AddStream - internal error, stream is null"); -@@ -1026,6 +1048,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) +@@ -1066,6 +1088,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48141,7 +48141,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 CDVDInputStream::IPosTime* ist = m_pInput->GetIPosTime(); if (ist) { -@@ -1101,6 +1126,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) +@@ -1141,6 +1166,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48151,7 +48151,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 return (ret >= 0); } -@@ -1268,11 +1296,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1308,11 +1336,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (pStream->codec->codec_id == AV_CODEC_ID_H264_MVC) { @@ -48167,7 +48167,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 break; } CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); -@@ -1358,7 +1387,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1398,7 +1427,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (CDVDCodecUtils::IsH264AnnexB(m_pFormatContext->iformat->name, pStream)) { @@ -48180,7 +48180,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) { -@@ -1451,7 +1484,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1491,7 +1524,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (langTag) strncpy(stream->language, langTag->value, 3); @@ -48452,10 +48452,10 @@ index 60e5652f69e96a559d8080e01dc214a56fb19343..cdaf53585a89a0da3a4038178806ee93 m_discStubExtensions = ".disc"; // internal music extensions -From e67a8be040f0a6d3994060f447b353c7c62cebd4 Mon Sep 17 00:00:00 2001 +From cfed7f1b7d5bd3124a54824dce561821e85b207e Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:01:08 +0300 -Subject: [PATCH 42/65] [libbluray] bump libbluray to 0.9.2-mvc. +Subject: [PATCH 42/69] [libbluray] bump libbluray to 0.9.2-mvc. --- project/BuildDependencies/scripts/0_package.list | 2 +- @@ -48475,10 +48475,10 @@ index 4d1be9c2cb2bb0c9531413c7300342444df023e1..bc4913a3d0c1fcb7e27106a2ddd6988f libcec-3.1.0-win32-vc140.7z libfribidi-0.19.2-win32.7z -From 17c471649453534b7eb2103f4b3eddb11d6aa0be Mon Sep 17 00:00:00 2001 +From 442cb1488f82a1d175728338291e50909974e331 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:02:46 +0300 -Subject: [PATCH 43/65] [3DBD] Added support of 3D-BluRay playback. +Subject: [PATCH 43/69] [3DBD] Added support of 3D-BluRay playback. --- lib/DllLibbluray.h | 8 + @@ -48556,7 +48556,7 @@ index 0da129ff99f57dc38ca8a854854d9fe658651e1f..82d4b499245afda1a51ca281584cc47f DVDDemuxPacket.h DVDDemuxUtils.h diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47dcf4f75d 100644 +index 3e3884f7ce515709b74b687c53d538b67c563c61..fe13ef199ed85fca52d2499beb9adb35ef0157b7 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -27,6 +27,7 @@ @@ -48584,7 +48584,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 // in case of mpegts and we have not seen pat/pmt, defer creation of streams if (!skipCreateStreams || m_pFormatContext->nb_programs > 0) { -@@ -817,9 +828,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -857,9 +868,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48595,7 +48595,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 { // update streams CreateStreams(m_program); -@@ -860,8 +869,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -900,8 +909,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { // libavformat is confused by the interleaved SSIF. @@ -48605,7 +48605,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -1012,10 +1020,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1052,10 +1060,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() } if (stream && m_pSSIF) { @@ -48617,7 +48617,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 if (stream->type == STREAM_DATA && stream->codec == AV_CODEC_ID_H264_MVC && pPacket->iSize) stream = GetStream(pPacket->iStreamId); } -@@ -1391,6 +1396,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1431,6 +1436,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { m_pSSIF->SetH264StreamId(streamIdx); pStream->codec->codec_tag = MKTAG('A', 'M', 'V', 'C'); @@ -48647,7 +48647,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 } } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) -@@ -1651,6 +1679,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) +@@ -1691,6 +1719,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) } Flush(); @@ -48660,7 +48660,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 return true; } -@@ -1720,6 +1754,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) +@@ -1760,6 +1794,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) bool CDVDDemuxFFmpeg::IsProgramChange() { @@ -49477,10 +49477,10 @@ index b967a85e6557e42a7f1235cdd804d5a0263b866f..561fb5cd4f971bc9ee4f41218a60bb3d typedef std::shared_ptr SOverlay; typedef std::list SOverlays; -From 3f48b5cdb2fd9028069471aca90fe05632da35a0 Mon Sep 17 00:00:00 2001 +From 045f931dc607697f8bbd19917b94a8725b71e9fc Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 2 Mar 2016 23:31:50 +0300 -Subject: [PATCH 44/65] [BaseRenderer] Fix aspect for TAB/SBS (need more +Subject: [PATCH 44/69] [BaseRenderer] Fix aspect for TAB/SBS (need more testing) --- @@ -49488,7 +49488,7 @@ Subject: [PATCH 44/65] [BaseRenderer] Fix aspect for TAB/SBS (need more 1 file changed, 18 insertions(+) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp -index f18c671d90c85eed1ca4bd52028d7e5074a1312a..5c6f7453c2b3fd1155c18af8d37cb3d4fa9de1c6 100644 +index f9b3bfb4eb35eff3ef7af370136882bc733461e6..ab804ab0259992e4700e0ba99759c3f777bc8d52 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp @@ -35,6 +35,9 @@ @@ -49524,10 +49524,10 @@ index f18c671d90c85eed1ca4bd52028d7e5074a1312a..5c6f7453c2b3fd1155c18af8d37cb3d4 void CBaseRenderer::ManageRenderArea() -From c8a24aab46add8caafa0fdc78b1616fdc1028fe2 Mon Sep 17 00:00:00 2001 +From 624192e1ac862bc380b90b288a321b7222631cf0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Feb 2016 17:00:50 +0000 -Subject: [PATCH 45/65] libbluray: Bump to Nevcairie's v0.9.2 +Subject: [PATCH 45/69] libbluray: Bump to Nevcairie's v0.9.2 This includes 3D support --- @@ -51184,10 +51184,10 @@ index 0000000000000000000000000000000000000000..5ef0124e35c9d81143921a328e272220 + + return fp; -From f2489f8f090d4f743f31718b922d6a5a7ec3a9f9 Mon Sep 17 00:00:00 2001 +From 632c55efaa3d2d8ab9171ebce2f0431f0058d366 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Mar 2016 19:40:47 +0000 -Subject: [PATCH 46/65] [VideoPlayer] Added new msdk-mvc decoder. +Subject: [PATCH 46/69] [VideoPlayer] Added new msdk-mvc decoder. --- xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecUtils.cpp | 61 ++++++++++++++++++++++ @@ -51303,10 +51303,10 @@ index eb76a6fe73f6c884540807cfb93c7a3ecc4eea90..7e24c2364e8d2efa9b8351afc041aa14 static int PixfmtFromEFormat(ERenderFormat format); }; -From 10e05fac4ef5439243c0b5394e29ce6092f514f1 Mon Sep 17 00:00:00 2001 +From 16e01ecdff9e89e6a275aa58f079156c216bcd9a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 6 Mar 2016 12:54:59 +0000 -Subject: [PATCH 47/65] mvc: Automatically enable stereo mode +Subject: [PATCH 47/69] mvc: Automatically enable stereo mode --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 6 +++++- @@ -51314,10 +51314,10 @@ Subject: [PATCH 47/65] mvc: Automatically enable stereo mode 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index 283b2626731c25c67e4c065dac7725a488c09523..a253b7fe8c591ba318958ea133355febb24ab328 100644 +index cead68bd79d388f0eda0f8a79f17d296478d3361..38e7d44b7968039120b9821fd5b6b2d552edf3c1 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -@@ -397,13 +397,17 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) +@@ -405,13 +405,17 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) switch (hints.codec) { case AV_CODEC_ID_H264: @@ -51364,10 +51364,10 @@ index 311dd6689236d660919c4c4483c51dca2752514a..536332c43e22ccb229e72b88518e54dd break; case AV_CODEC_ID_MPEG4: -From 3430bbcffb78d47d03e189a54a322d4edd4b6009 Mon Sep 17 00:00:00 2001 +From a77d51bd70b9bd56064f5110a753315e83d314d5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 24 Mar 2016 13:02:58 +0000 -Subject: [PATCH 48/65] ffmpeg: mvc: fix for pixelation from packets with no +Subject: [PATCH 48/69] ffmpeg: mvc: fix for pixelation from packets with no pts/dts --- @@ -51407,7 +51407,7 @@ index 0000000000000000000000000000000000000000..5240cf58ce40c28d12354db63b7e2914 + *poutbuf = NULL; + *poutbuf_size = 0; diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 92d9437b36eaa4e655990f7e68634e0bbf4d9605..99f375ba5d5b40eecdd423ac5787276e534ad4d7 100644 +index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c638197f3446b 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -6,7 +6,8 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -51429,10 +51429,10 @@ index 92d9437b36eaa4e655990f7e68634e0bbf4d9605..99f375ba5d5b40eecdd423ac5787276e cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ -From 88e9d53808a21926aabc88b6fc84cec5d09d99ef Mon Sep 17 00:00:00 2001 +From 0a6ec6e05a61be6e109ab31626ccb68e91a9154f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Mar 2016 13:08:44 +0000 -Subject: [PATCH 49/65] stereoscopicmanager: remove hardwarebased for rbp +Subject: [PATCH 49/69] stereoscopicmanager: remove hardwarebased for rbp --- xbmc/guilib/StereoscopicsManager.cpp | 2 ++ @@ -51454,10 +51454,10 @@ index 6eb0752994bc5f8c47efbbf211120af0a0720d0c..9426604f6460651f54cc035476e69530 { "mvc_rl", RENDER_STEREO_MODE_SPLIT_HORIZONTAL }, // fallback {} -From e1ed72556f5f41eb7197cffb1df699ead16b0e5c Mon Sep 17 00:00:00 2001 +From 70c9b05571fa288ebc39fecc74b5cc8f7e615acb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 17 May 2016 19:24:08 +0100 -Subject: [PATCH 50/65] stereoscopics: Switch to using block_lr for mvc to +Subject: [PATCH 50/69] stereoscopics: Switch to using block_lr for mvc to match makemkv See: http://forum.kodi.tv/showthread.php?tid=221407&pid=2339656#pid2339656 @@ -51470,10 +51470,10 @@ See: http://forum.kodi.tv/showthread.php?tid=221407&pid=2339656#pid2339656 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index a253b7fe8c591ba318958ea133355febb24ab328..1bab467cee97cad4a05fec71f29ca72d3ca93581 100644 +index 38e7d44b7968039120b9821fd5b6b2d552edf3c1..654a927a0d4cbf877a3bb2616d62f46a63e7cadb 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -@@ -407,7 +407,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) +@@ -415,7 +415,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) m_codingType = MMAL_ENCODING_MVC; m_pFormatName= "mmal-mvc"; if (hints.stereo_mode == "mono") @@ -51483,10 +51483,10 @@ index a253b7fe8c591ba318958ea133355febb24ab328..1bab467cee97cad4a05fec71f29ca72d break; case AV_CODEC_ID_H263: diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index cfa691835cda0b2cf986adbb9aa4db47dcf4f75d..3e271f12e1862552467ee7f905fb992b77d92178 100644 +index fe13ef199ed85fca52d2499beb9adb35ef0157b7..69d0280960422f8fc02440af56a1479c637a20d6 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1403,7 +1403,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1443,7 +1443,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) CDVDInputStreamBluray *bluRay = static_cast(m_pInput); if (bluRay->HasMVC()) { @@ -51563,10 +51563,10 @@ index 9426604f6460651f54cc035476e69530b2ea8493..cc929b599125a44ac128713fd4331782 }; -From c3496c7ec02f261166a07fccda875aad538aaed8 Mon Sep 17 00:00:00 2001 +From f76b2e007029345dd738c70bc0e6a64b87d99131 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 10 Mar 2016 18:11:33 +0300 -Subject: [PATCH 51/65] fixup! Revert supporting crappy tab/sbs subtitles. this +Subject: [PATCH 51/69] fixup! Revert supporting crappy tab/sbs subtitles. this fixes regular subtitles. --- @@ -51611,10 +51611,10 @@ index 3a080d06c90b0762482816928642e6de7810b539..7c0b70777556ac7694e7fc511cd4bb18 } -From 015e4471d62799cd8e534469406cfc9270a0f0b4 Mon Sep 17 00:00:00 2001 +From 8104d591068c761724de23a775f7c0b3f715aa06 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH 52/65] [libcec] Add repeating keypress patch from popcornmix' +Subject: [PATCH 52/69] [libcec] Add repeating keypress patch from popcornmix' repo --- @@ -52501,10 +52501,10 @@ index 0000000000000000000000000000000000000000..8366a696562a934144cc9a21ea6f2cab +1.9.1 + -From 84de446856b479d43ac2df0fbbc0ee917d6d962a Mon Sep 17 00:00:00 2001 +From a447cbd795a7bbbe8f2793c93823a5b6978a292d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 17:15:29 +0000 -Subject: [PATCH 53/65] cec: hack: pretend bump to 3.1.0 +Subject: [PATCH 53/69] cec: hack: pretend bump to 3.1.0 --- tools/depends/target/libcec/Makefile | 1 + @@ -52552,23 +52552,23 @@ index 0000000000000000000000000000000000000000..9e55e51068e7befd9d4ff003156ce1ff + # cec-client + add_subdirectory(src/cec-client) -From 06d3df42fba59facd2ae8ba3d1ec1fbbf193ece1 Mon Sep 17 00:00:00 2001 +From adbf7cf39c5fc6ef9aceec70a78fc32a12f60480 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH 54/65] [cec] Add settings for configuring button repeats +Subject: [PATCH 54/69] [cec] Add settings for configuring button repeats --- - addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ + addons/resource.language.en_gb/resources/strings.po | 16 ++++++++++++++++ system/peripherals.xml | 4 +++- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 16 ++++++++++++++++ - 3 files changed, 34 insertions(+), 1 deletion(-) + 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index bdd03649780dc6ba0a4d16c32d6bec8891727019..3d20c523cbf6666099f3210c86330078fcc46e21 100644 +index 5573f41c9a0b00e32f0c11e4cba4650088864b6b..0b9fd5b6cb375d712ae5dd68556998f9e6239860 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19583,6 +19583,21 @@ msgctxt "#39007" - msgid "This provides access to where picture sources can be added and otherwise managed." +@@ -19618,6 +19618,22 @@ msgctxt "#39009" + msgid "Zoom - 110% width" msgstr "" +#: system/peripherals.xml @@ -52584,13 +52584,14 @@ index bdd03649780dc6ba0a4d16c32d6bec8891727019..3d20c523cbf6666099f3210c86330078 +#: system/peripherals.xml +msgctxt "#38052" +msgid "Remote button press release time (ms)" ++>>>>>>> [cec] Add settings for configuring button repeats +msgstr "" + msgctxt "#38190" msgid "Extract thumbnails from video files" msgstr "" diff --git a/system/peripherals.xml b/system/peripherals.xml -index 012b14a14e1fff7fe8a2d2b052efc7c563066d01..a070fb9a433601f7800ff82a382728b5ba759bd4 100644 +index f939c0b685d96d022856544e7eb31a71338d9ba4..a4b8f7add4d915c1749628d62a9cbe9afe97d063 100644 --- a/system/peripherals.xml +++ b/system/peripherals.xml @@ -31,7 +31,9 @@ @@ -52639,10 +52640,10 @@ index e6bcbce6911a1714e129ecd5aceead94769231f4..19b3c37bc18fcab30920b12902e8c339 if (GetSettingBool("pause_playback_on_deactivate")) { -From 0fb45720cbbba03f9812699c0916e9e00cc6d6c6 Mon Sep 17 00:00:00 2001 +From 6138531fad86d45581d104d89055e7dafeebaff5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH 55/65] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 55/69] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -52665,10 +52666,10 @@ index 19b3c37bc18fcab30920b12902e8c3397a69dccc..f859f44f6d5379154317b5760d7df720 if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { -From b1597077c627544df137a2e094ace55a9d11adcb Mon Sep 17 00:00:00 2001 +From 9ce7b6c6a36cc1451cebb3f09f0355c67a220661 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH 56/65] [cec] Temp - more logging +Subject: [PATCH 56/69] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -52720,10 +52721,10 @@ index f859f44f6d5379154317b5760d7df720f0894e0d..f1c3a6d242183507c4ce9ebf4651b0c0 } -From 461405a907d5043ce25d089b2b527029eddd3695 Mon Sep 17 00:00:00 2001 +From 0388673f550e2e7beb01d5ff23c5934dbedc2721 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 Jan 2016 12:29:41 +0000 -Subject: [PATCH 57/65] [cec] Update for libcec 3.1.0 +Subject: [PATCH 57/69] [cec] Update for libcec 3.1.0 --- configure.ac | 4 ++-- @@ -52731,10 +52732,10 @@ Subject: [PATCH 57/65] [cec] Update for libcec 3.1.0 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 5a449f75c92ec10d30d4c977239aa17988b2c976..9b15fbe8eb54ba38fd970cd4ec149df990716566 100644 +index 3334490ab5f73eedd50f9884ba5ee94cc14576d1..a1c0bf2d7b751ec37081fdfa2d858da488fa67da 100644 --- a/configure.ac +++ b/configure.ac -@@ -1421,9 +1421,9 @@ if test "x$use_libcec" != "xno"; then +@@ -1432,9 +1432,9 @@ if test "x$use_libcec" != "xno"; then # libcec is dyloaded, so we need to check for its headers and link any depends. if test "x$use_libcec" != "xno"; then if test "x$use_libcec" != "xauto"; then @@ -52769,10 +52770,10 @@ index f1c3a6d242183507c4ce9ebf4651b0c0f7e9c5c9..28a6a8148810da940f977976a627018c // device name 'XBMC' snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str()); -From 7e4c3b823097ec0851a4065462ff0bb34c6f8f25 Mon Sep 17 00:00:00 2001 +From ac75d9e960cd35d7aaef0224f86b645e078dd958 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 14:46:41 +0000 -Subject: [PATCH 58/65] libcec: use system audio mode request instead of power +Subject: [PATCH 58/69] libcec: use system audio mode request instead of power on to start AVR reliable --- @@ -52838,10 +52839,10 @@ index 39ba882d0c7e270b4d1d1d566027cbaffb76b587..4565dc9f6fc0b3e6b49133443c19e107 $(LIBDYLIB): $(PLATFORM) -From 196902cfd8f081ff6595b66259c5d055a67182da Mon Sep 17 00:00:00 2001 +From 78acdd2602b57420bb29a1616330f11c5520a817 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 22 Mar 2016 09:51:52 +0100 -Subject: [PATCH 59/65] python: use kodi provided cert if available +Subject: [PATCH 59/69] python: use kodi provided cert if available --- xbmc/interfaces/python/XBPython.cpp | 6 ++++++ @@ -52865,10 +52866,10 @@ index bc84af9411ef55eaf5ba71a320b5cbfec5f49548..ff4ed7db26845905108ea0ae504e4f58 PyEval_AcquireLock(); else -From 44d0df2bd27b658b047c8baec26085ae5ccbc6f4 Mon Sep 17 00:00:00 2001 +From 75859a6ad1a79e6ab749d768b2991fa580241799 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 25 May 2016 18:31:17 +0100 -Subject: [PATCH 60/65] rbp: Hard code the number of buffers to improve audio +Subject: [PATCH 60/69] rbp: Hard code the number of buffers to improve audio sync --- @@ -52894,10 +52895,10 @@ index 2572e25753712186f69390965ee1448bff3fadd5..5d9f716bac49f9850f1062a4d5ac8517 diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -index 4d5b9f740d08b95b1780caf6da0200583d9c6318..aa5e461660a23916681bbbd660b9a9e2a1622b8b 100644 +index 4ca19205a1b124974b3495261f426896a1cbfa58..1232a1bd084258add5298e197be6b2fad5883d6d 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -@@ -1065,7 +1065,11 @@ void CRenderManager::UpdateDisplayLatency() +@@ -1044,7 +1044,11 @@ void CRenderManager::UpdateDisplayLatency() refresh = 0; // No idea about refresh rate when windowed, just get the default latency m_displayLatency = (double) g_advancedSettings.GetDisplayLatency(refresh); @@ -52910,10 +52911,10 @@ index 4d5b9f740d08b95b1780caf6da0200583d9c6318..aa5e461660a23916681bbbd660b9a9e2 } -From 6c79969ce8196cb7c942c4fcc3d3fb00d087e18b Mon Sep 17 00:00:00 2001 +From 46dcaccf685b8deaf4ff128fc06ee991095e202a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 4 Jul 2016 18:30:03 +0100 -Subject: [PATCH 61/65] rbp: Update the GL libs to new naming scheme +Subject: [PATCH 61/69] rbp: Update the GL libs to new naming scheme As the opensource mesa GL library is getting more usable, the name collision wih the firmware GL driver is causing issues. As such we are renaming the firmware GL driver to avoid this. @@ -52927,10 +52928,10 @@ will be dropped at some point 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac -index 9b15fbe8eb54ba38fd970cd4ec149df990716566..25600bae809c8b6a4133a27441f7e788626f8fe4 100644 +index a1c0bf2d7b751ec37081fdfa2d858da488fa67da..2ef28cca66cf12cab468f2a50c5f1122a3a470f6 100644 --- a/configure.ac +++ b/configure.ac -@@ -917,7 +917,7 @@ if test "$use_gles" = "yes"; then +@@ -928,7 +928,7 @@ if test "$use_gles" = "yes"; then AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."]) AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."]) AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.) @@ -52978,10 +52979,10 @@ index fb0bd6dad18199e8893c38644f93659bf0a3f61b..010288dc5de74380fc3795d00dbd9984 fi -From e4e2f951d7450d9a69b1a396cf48b3f8b2488de7 Mon Sep 17 00:00:00 2001 +From 234d8d6ac9a49d6cb1b705ad043c5afbb57cd02b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 16:49:02 +0100 -Subject: [PATCH 62/65] Revert "[settings] remove show EXIF picture information +Subject: [PATCH 62/69] Revert "[settings] remove show EXIF picture information setting" This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. @@ -52996,10 +52997,10 @@ This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. 7 files changed, 25 insertions(+), 4 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 3d20c523cbf6666099f3210c86330078fcc46e21..cdf0e494c460a9cdbc5aa38fc9243485bf3d4d24 100644 +index 0b9fd5b6cb375d712ae5dd68556998f9e6239860..a92fe4d4460cb8ae71eddc777e83be5816587638 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -17556,7 +17556,11 @@ msgctxt "#36305" +@@ -17581,7 +17581,11 @@ msgctxt "#36305" msgid "This category contains the settings for how picture file lists are handled." msgstr "" @@ -53012,7 +53013,7 @@ index 3d20c523cbf6666099f3210c86330078fcc46e21..cdf0e494c460a9cdbc5aa38fc9243485 #. Description of setting with label #13360 "Automatically generate thumbnails" #: system/settings/settings.xml -@@ -19633,3 +19637,8 @@ msgstr "" +@@ -19669,3 +19673,8 @@ msgstr "" msgctxt "#38206" msgid "Max" msgstr "" @@ -53022,7 +53023,7 @@ index 3d20c523cbf6666099f3210c86330078fcc46e21..cdf0e494c460a9cdbc5aa38fc9243485 +msgid "Show EXIF picture information" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 8f62f7ca494ea5b3322653f0a2b9431ebd54c7ea..348763a80a035ba2fb0b8e6a25573606c2e2688e 100644 +index 0418bee8ed9df4aa9796d4c88bf904a4a8736e71..b3e28716a7d7023b2d54528d5cb7e77ad755378b 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -1180,6 +1180,11 @@ @@ -53112,20 +53113,20 @@ index 0829f6b15207bf0b8f2e4a699600b46427fe6267..432a23ce6b501fa4f3fad1f4ecff9f19 static const std::string SETTING_PICTURES_SHOWVIDEOS; static const std::string SETTING_PICTURES_DISPLAYRESOLUTION; -From a7c1c2da5832e5f0246f1994e2d957892db9caba Mon Sep 17 00:00:00 2001 +From e58fcd0f702421a4ab484bf058c1ef74769dcf10 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Jun 2016 14:46:01 +0100 -Subject: [PATCH 63/65] ffmpeg: hacky fix for files with GMC +Subject: [PATCH 63/69] ffmpeg: hacky fix for files with GMC --- xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 3e271f12e1862552467ee7f905fb992b77d92178..6d7e4668d36f6996d3a1cb9fdbed889d16259bf2 100644 +index 69d0280960422f8fc02440af56a1479c637a20d6..ea549e9532d79e8d8dab6eb4bda40c01a7314c74 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1369,8 +1369,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1409,8 +1409,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) stereoMode = GetStereoModeFromMetadata(m_pFormatContext->metadata); if (!stereoMode.empty()) st->stereo_mode = stereoMode; @@ -53137,10 +53138,10 @@ index 3e271f12e1862552467ee7f905fb992b77d92178..6d7e4668d36f6996d3a1cb9fdbed889d { if (pStream->codec->codec_id == AV_CODEC_ID_PROBE) -From d9b06184855ef0539ba08824b340275a822f2b33 Mon Sep 17 00:00:00 2001 +From ee10a7455ea1d7cdbf6259e08c56e4b5f511b22d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Jul 2016 20:39:18 +0100 -Subject: [PATCH 64/65] mmalrender: Add sharpness control +Subject: [PATCH 64/69] mmalrender: Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -53149,7 +53150,7 @@ Subject: [PATCH 64/65] mmalrender: Add sharpness control 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index cdf0e494c460a9cdbc5aa38fc9243485bf3d4d24..9b790684c1095242780b22ab3bdecc4ba7a6d39b 100644 +index a92fe4d4460cb8ae71eddc777e83be5816587638..c53855d70b6c1460c354c59ad320554247dd35b3 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -8686,7 +8686,7 @@ msgstr "" @@ -53162,7 +53163,7 @@ index cdf0e494c460a9cdbc5aa38fc9243485bf3d4d24..9b790684c1095242780b22ab3bdecc4b #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp -index 78042e65f53a4691eda80121599e06646fead29c..b029bfbaf8cbd83a5cb93823e1d5aa6bab52edd4 100644 +index 96a8e61aa22094f95385a2b45ce50c0d6d6b1fc4..a0104d9ff67402e74ea8076dd47e9e9bd11a74f1 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp @@ -403,6 +403,7 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer"), m_processThread(this, @@ -53200,10 +53201,10 @@ index 78042e65f53a4691eda80121599e06646fead29c..b029bfbaf8cbd83a5cb93823e1d5aa6b return false; diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h -index a1dd43845e65d5eba81d41fc679b837b5a3f573d..d07b16770608e772beeef0627d72dbe4cc21d6e4 100644 +index a056a25f4f74fc6be023404286e044dac9d8ca7c..5d3baa6534a2fe449990402ab805d84423fbc636 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h -@@ -135,6 +135,7 @@ protected: +@@ -133,6 +133,7 @@ protected: RENDER_STEREO_MODE m_video_stereo_mode; RENDER_STEREO_MODE m_display_stereo_mode; bool m_StereoInvert; @@ -53212,10 +53213,10 @@ index a1dd43845e65d5eba81d41fc679b837b5a3f573d..d07b16770608e772beeef0627d72dbe4 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From e02d61193a446ef76d5d272059b1475799d4daa8 Mon Sep 17 00:00:00 2001 +From a8090714ed5adc1578005d225dc745c176e48a79 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jul 2016 19:00:03 +0100 -Subject: [PATCH 65/65] rbp: Ensure processinfo values are initialised +Subject: [PATCH 65/69] rbp: Ensure processinfo values are initialised --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 ++ @@ -53223,10 +53224,10 @@ Subject: [PATCH 65/65] rbp: Ensure processinfo values are initialised 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index 1bab467cee97cad4a05fec71f29ca72d3ca93581..1a7bdf27c66c3df5496fff8113722c312f5fb209 100644 +index 654a927a0d4cbf877a3bb2616d62f46a63e7cadb..2c5144c44403de9d8ddea7cfbb0c7f8356b81784 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -@@ -590,6 +590,8 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) +@@ -598,6 +598,8 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) m_speed = DVD_PLAYSPEED_NORMAL; m_processInfo.SetVideoDecoderName(m_pFormatName, true); @@ -53236,10 +53237,10 @@ index 1bab467cee97cad4a05fec71f29ca72d3ca93581..1a7bdf27c66c3df5496fff8113722c31 return true; } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index 6cd7d243d0fbea08c33e81edb5a51ab402bd110d..eee6cc67f0f0606714bbd025a232de6bf924b992 100644 +index f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c..e653f1a37a275f61698969bb2f79f6e4689cee18 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -@@ -729,9 +729,6 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f +@@ -739,9 +739,6 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f m_bAllowFullscreen = false; // only allow on first configure } @@ -53249,7 +53250,7 @@ index 6cd7d243d0fbea08c33e81edb5a51ab402bd110d..eee6cc67f0f0606714bbd025a232de6b unsigned int iDisplayWidth = width; unsigned int iDisplayHeight = height; -@@ -743,6 +740,8 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f +@@ -753,6 +750,8 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f m_fFrameRate = DVD_TIME_BASE / CDVDCodecUtils::NormalizeFrameduration((double)DVD_TIME_BASE / framerate); m_processInfo.SetVideoFps(m_fFrameRate); @@ -53258,3 +53259,453 @@ index 6cd7d243d0fbea08c33e81edb5a51ab402bd110d..eee6cc67f0f0606714bbd025a232de6b CLog::Log(LOGDEBUG,"%s - change configuration. video:%dx%d. framerate: %4.2f. %dx%d format: BYPASS", __FUNCTION__, video_width, video_height, m_fFrameRate, iDisplayWidth, iDisplayHeight); + +From 8beb862b6f040ea725341f06f31dcbfb4d5bbbfa Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 15 Sep 2016 22:13:16 +0100 +Subject: [PATCH 66/69] MMAL: Report deinterlace method to processinfo overlay + +--- + .../VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 11 ++++++++++ + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h | 3 +++ + .../VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp | 16 +++++++++++++-- + .../cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h | 5 ++++- + .../VideoRenderers/HwDecRender/MMALRenderer.cpp | 24 +++++++++++++++++----- + .../VideoRenderers/HwDecRender/MMALRenderer.h | 10 +++++---- + 6 files changed, 57 insertions(+), 12 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +index 2c5144c44403de9d8ddea7cfbb0c7f8356b81784..d6edbbaa094d6c8fb1a1cb1ce334f30887ab63c7 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +@@ -81,9 +81,20 @@ CMMALVideoBuffer::~CMMALVideoBuffer() + CLog::Log(LOGDEBUG, "%s::%s %p", CLASSNAME, __func__, this); + } + ++void CMMALVideoBuffer::SetVideoDeintMethod(std::string method) ++{ ++ if (m_omv) ++ m_omv->SetVideoDeintMethod(method); ++} ++ + #undef CLASSNAME + #define CLASSNAME "CMMALVideo" + ++void CMMALVideo::SetVideoDeintMethod(std::string method) ++{ ++ m_processInfo.SetVideoDeintMethod(method); ++} ++ + CMMALVideo::CMMALVideo(CProcessInfo &processInfo) : CDVDVideoCodec(processInfo) + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +index d39dc1ded1511e08556ed1129f58b23df9b1dbdd..68b5df97176abdbd1974561703a260625d39b37d 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +@@ -59,6 +59,7 @@ public: + float m_aspect_ratio; + MMALState m_state; + bool m_rendered; ++ virtual void SetVideoDeintMethod(std::string method) = 0; + const char *GetStateName() { + static const char *names[] = { "MMALStateNone", "MMALStateHWDec", "MMALStateFFDec", "MMALStateDeint", }; + if ((size_t)m_state < vcos_countof(names)) +@@ -79,6 +80,7 @@ public: + CMMALVideoBuffer(CMMALVideo *dec, std::shared_ptr pool); + virtual ~CMMALVideoBuffer(); + CMMALVideo *m_omv; ++ void SetVideoDeintMethod(std::string method); + protected: + std::shared_ptr m_pool; + }; +@@ -106,6 +108,7 @@ public: + void dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer); + void dec_control_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer); + void dec_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer); ++ void SetVideoDeintMethod(std::string method); + + protected: + void QueryCodec(void); +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +index 864650d488d0f5b3dc9f89f01aa5c3b845b92564..932f461b4abd250bf7ecc85696ae6c43a591dc27 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +@@ -42,8 +42,8 @@ using namespace MMAL; + + #define CLASSNAME "CMMALYUVBuffer" + +-CMMALYUVBuffer::CMMALYUVBuffer(std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size) +- : m_pool(pool) ++CMMALYUVBuffer::CMMALYUVBuffer(CDecoder *omv, std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size) ++ : m_omv(omv), m_pool(pool) + { + uint32_t size_pic = 0; + m_width = width; +@@ -86,6 +86,12 @@ CMMALYUVBuffer::~CMMALYUVBuffer() + mmal_buffer_header_release(mmal_buffer); + } + ++void CMMALYUVBuffer::SetVideoDeintMethod(std::string method) ++{ ++ if (m_omv) ++ m_omv->SetVideoDeintMethod(method); ++} ++ + //----------------------------------------------------------------------------- + // MMAL Decoder + //----------------------------------------------------------------------------- +@@ -93,6 +99,11 @@ CMMALYUVBuffer::~CMMALYUVBuffer() + #undef CLASSNAME + #define CLASSNAME "CDecoder" + ++void CDecoder::SetVideoDeintMethod(std::string method) ++{ ++ m_processInfo.SetVideoDeintMethod(method); ++} ++ + CDecoder::CDecoder(CProcessInfo &processInfo) : m_processInfo(processInfo) + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +@@ -243,6 +254,7 @@ bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixel + CLog::Log(LOGERROR, "%s::%s Failed to create pool for decoder output", CLASSNAME, __func__); + return false; + } ++ m_pool->SetDecoder(this); + + std::list deintMethods; + deintMethods.push_back(EINTERLACEMETHOD::VS_INTERLACEMETHOD_AUTO); +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +index ffc61612ff3f2fef374cde67111939e4851ccc70..b699824774067ad8566513d49816a7fba2bf21b5 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +@@ -40,10 +40,12 @@ class CGPUPool; + class CMMALYUVBuffer : public CMMALBuffer + { + public: +- CMMALYUVBuffer(std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size); ++ CMMALYUVBuffer(CDecoder *dec, std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size); + virtual ~CMMALYUVBuffer(); + + CGPUMEM *gmem; ++ CDecoder *m_omv; ++ void SetVideoDeintMethod(std::string method); + private: + std::shared_ptr m_pool; + }; +@@ -62,6 +64,7 @@ public: + virtual const std::string Name() { return "mmal"; } + virtual unsigned GetAllowedReferences(); + virtual long Release(); ++ void SetVideoDeintMethod(std::string method); + + static void FFReleaseBuffer(void *opaque, uint8_t *data); + static int FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags); +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index a0104d9ff67402e74ea8076dd47e9e9bd11a74f1..a6f14d02de3162efe671316605a0f26790e41f4e 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -71,6 +71,7 @@ CMMALPool::CMMALPool(const char *component_name, bool input, uint32_t num_buffer + + m_mmal_pool = mmal_port_pool_create(port, port->buffer_num, port->buffer_size); + m_closing = false; ++ m_software = false; + m_mmal_format = 0; + m_width = 0; + m_height = 0; +@@ -207,14 +208,14 @@ CMMALBuffer *CMMALPool::GetBuffer(uint32_t timeout) + // ffmpeg requirements + uint32_t aligned_width = m_aligned_width, aligned_height = m_aligned_height; + AlignedSize(m_avctx, aligned_width, aligned_height); +- if (m_dec) ++ if (!IsSoftware()) + { +- CMMALVideoBuffer *vid = new CMMALVideoBuffer(m_dec, shared_from_this()); ++ CMMALVideoBuffer *vid = new CMMALVideoBuffer(static_cast(m_dec), shared_from_this()); + omvb = vid; + } + else + { +- MMAL::CMMALYUVBuffer *yuv = new MMAL::CMMALYUVBuffer(shared_from_this(), m_mmal_format, m_width, m_height, aligned_width, aligned_height, m_size); ++ MMAL::CMMALYUVBuffer *yuv = new MMAL::CMMALYUVBuffer(static_cast(m_dec), shared_from_this(), m_mmal_format, m_width, m_height, aligned_width, aligned_height, m_size); + if (yuv) + { + CGPUMEM *gmem = yuv->gmem; +@@ -538,10 +539,13 @@ void CMMALRenderer::Run() + if (interlace_method == VS_INTERLACEMETHOD_NONE) + { + if (m_deint_input) ++ { + DestroyDeinterlace(); ++ omvb->SetVideoDeintMethod("none"); ++ } + } + else if (m_deint_input || interlace) +- CheckConfigurationDeint(omvb->m_width, omvb->m_height, omvb->m_aligned_width, omvb->m_aligned_height, omvb->m_encoding, interlace_method); ++ CheckConfigurationDeint(omvb, interlace_method); + + if (m_deint_input) + { +@@ -1146,8 +1150,9 @@ void CMMALRenderer::DestroyDeinterlace() + m_deint = nullptr; + } + +-bool CMMALRenderer::CheckConfigurationDeint(uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t encoding, EINTERLACEMETHOD interlace_method) ++bool CMMALRenderer::CheckConfigurationDeint(CMMALBuffer *omvb, EINTERLACEMETHOD interlace_method) + { ++ uint32_t width = omvb->m_width, height = omvb->m_height, aligned_width = omvb->m_aligned_width, aligned_height = omvb->m_aligned_height, encoding = omvb->m_encoding; + MMAL_STATUS_T status; + bool sizeChanged = width != m_deint_width || height != m_deint_height || aligned_width != m_deint_aligned_width || aligned_height != m_deint_aligned_height; + bool deinterlaceChanged = interlace_method != m_interlace_method; +@@ -1267,6 +1272,15 @@ bool CMMALRenderer::CheckConfigurationDeint(uint32_t width, uint32_t height, uin + status = mmal_port_parameter_set_uint32(m_deint_input, MMAL_PARAMETER_EXTRA_BUFFERS, 6 - 5 + advanced_deinterlace ? 2:0); + if (status != MMAL_SUCCESS) + CLog::Log(LOGERROR, "%s::%s Failed to enable extra buffers on %s (status=%x %s)", CLASSNAME, __func__, m_deint_input->name, status, mmal_status_to_string(status)); ++ ++ if (advanced_deinterlace && !half_framerate) ++ omvb->SetVideoDeintMethod("adv(x2)"); ++ else if (advanced_deinterlace && half_framerate) ++ omvb->SetVideoDeintMethod("adv(x1)"); ++ else if (!advanced_deinterlace && !half_framerate) ++ omvb->SetVideoDeintMethod("bob(x2)"); ++ else if (!advanced_deinterlace && half_framerate) ++ omvb->SetVideoDeintMethod("bob(x1)"); + } + + if (m_deint_output && (sizeChanged || deinterlaceChanged || encodingChanged)) +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +index 5d3baa6534a2fe449990402ab805d84423fbc636..dda2dff2852bbd546d916d28df231ba1833c2bf8 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +@@ -62,13 +62,14 @@ public: + void ReleaseBuffer(CGPUMEM *gmem); + void Close(); + void Prime(); +- void SetDecoder(CMMALVideo *dec) { m_dec = dec; } ++ void SetDecoder(void *dec) { m_dec = dec; } + void SetFormat(uint32_t mmal_format, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size, AVCodecContext *avctx) +- { m_mmal_format = mmal_format; m_width = width; m_height = height; m_aligned_width = aligned_width; m_aligned_height = aligned_height; m_size = size, m_avctx = avctx; } ++ { m_mmal_format = mmal_format; m_width = width; m_height = height; m_aligned_width = aligned_width; m_aligned_height = aligned_height; m_size = size, m_avctx = avctx; m_software = true; } ++ bool IsSoftware() { return m_software; } + protected: + uint32_t m_mmal_format, m_width, m_height, m_aligned_width, m_aligned_height, m_size; + AVCodecContext *m_avctx; +- CMMALVideo *m_dec; ++ void *m_dec; + MMALState m_state; + bool m_input; + MMAL_POOL_T *m_mmal_pool; +@@ -76,6 +77,7 @@ protected: + CCriticalSection m_section; + std::deque m_freeBuffers; + bool m_closing; ++ bool m_software; + }; + + class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable +@@ -155,7 +157,7 @@ protected: + uint32_t m_deint_width, m_deint_height, m_deint_aligned_width, m_deint_aligned_height; + MMAL_FOURCC_T m_deinterlace_out_encoding; + void DestroyDeinterlace(); +- bool CheckConfigurationDeint(uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t encoding, EINTERLACEMETHOD interlace_method); ++ bool CheckConfigurationDeint(CMMALBuffer *omvb, EINTERLACEMETHOD interlace_method); + + bool CheckConfigurationVout(uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t encoding); + uint32_t m_vsync_count; + +From f796ab21a81297e11aaaccc30af8cd5ee1ae5daf Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 16 Sep 2016 14:22:18 +0100 +Subject: [PATCH 67/69] MMALRenderer: Ensure updated aspect ratio is seen in + the case of a single still frame + +--- + xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index a6f14d02de3162efe671316605a0f26790e41f4e..1da756eaf2c422e94b05cae0db33a697e8c17d97 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -387,6 +387,7 @@ bool CMMALRenderer::CheckConfigurationVout(uint32_t width, uint32_t height, uint + Create(); + } + } ++ SetVideoRect(m_sourceRect, m_destRect); + return true; + } + +@@ -748,6 +749,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + // we only want to upload frames once + if (omvb && omvb->m_rendered) + { ++ SetVideoRect(m_sourceRect, m_destRect); + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s - MMAL: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x skipping", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); + goto exit; +@@ -770,7 +772,6 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + CLog::Log(LOGDEBUG, "%s::%s - bypass: clear:%d flags:%x alpha:%d source:%d format:%d", CLASSNAME, __func__, clear, flags, alpha, source, m_format); + goto exit; + } +- SetVideoRect(m_sourceRect, m_destRect); + + if (omvb && omvb->mmal_buffer) + { + +From d559194b642cabccd944f6b34b11ee68d15c4096 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 16 Sep 2016 15:37:07 +0100 +Subject: [PATCH 68/69] MMAL: Indicate when picture came from still frame so + advanced deinterlace can be disabled + +MMAL Advanced deinterlace requires 3 frames of context so does not produce any output +from a dvd menu still. + +We cannot easily submit the same frame multiple times (the MMAL buffer headers contain +linked list pointers), so the simple solution is to switch to the simpler +deinterlace that does not require context for stills. +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +-- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h | 1 + + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp | 3 ++- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h | 3 ++- + .../VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp | 10 ++++++++++ + 6 files changed, 17 insertions(+), 5 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index 6cd68f5068956ea23b2b2da7069cf46b4d756874..25def196c39cbf4ccae04f48fb04b8fbedab3140 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -244,7 +244,7 @@ enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat(struct AVCodecContext * avctx + #ifdef HAS_MMAL + if (*cur == AV_PIX_FMT_YUV420P) + { +- MMAL::CDecoder* dec = new MMAL::CDecoder(ctx->m_processInfo); ++ MMAL::CDecoder* dec = new MMAL::CDecoder(ctx->m_processInfo, ctx->m_hints); + if(dec->Open(avctx, ctx->m_pCodecContext, *cur, ctx->m_uSurfacesCount)) + { + ctx->m_processInfo.SetVideoPixelFormat(pixFmtName ? pixFmtName : ""); +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +index d6edbbaa094d6c8fb1a1cb1ce334f30887ab63c7..bb0b54d7178bed82c9ad73e6b86a88c5b0a6777d 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +@@ -269,8 +269,6 @@ void CMMALVideo::dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buf + omvb->m_aligned_width = m_decoded_aligned_width; + omvb->m_aligned_height = m_decoded_aligned_height; + omvb->m_aspect_ratio = m_aspect_ratio; +- if (m_hints.stills) // disable interlace in dvd stills mode +- omvb->mmal_buffer->flags &= ~MMAL_BUFFER_HEADER_VIDEO_FLAG_INTERLACED; + omvb->m_encoding = m_dec_output->format->encoding; + { + CSingleLock lock(m_output_mutex); +@@ -852,6 +850,7 @@ bool CMMALVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture) + pDvdVideoPicture->iFlags, buffer->mmal_buffer->flags, pDvdVideoPicture->MMALBuffer, pDvdVideoPicture->MMALBuffer->mmal_buffer); + assert(!(buffer->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_DECODEONLY)); + buffer->mmal_buffer->flags &= ~MMAL_BUFFER_HEADER_FLAG_USER3; ++ buffer->m_stills = m_hints.stills; + } + else + { +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +index 68b5df97176abdbd1974561703a260625d39b37d..3ab06d21802855e3673c1a6065c1f5b1df60bc95 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +@@ -59,6 +59,7 @@ public: + float m_aspect_ratio; + MMALState m_state; + bool m_rendered; ++ bool m_stills; + virtual void SetVideoDeintMethod(std::string method) = 0; + const char *GetStateName() { + static const char *names[] = { "MMALStateNone", "MMALStateHWDec", "MMALStateFFDec", "MMALStateDeint", }; +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +index 932f461b4abd250bf7ecc85696ae6c43a591dc27..408fef32a878a508b17936733e8c8bf1d3ba298e 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +@@ -104,7 +104,7 @@ void CDecoder::SetVideoDeintMethod(std::string method) + m_processInfo.SetVideoDeintMethod(method); + } + +-CDecoder::CDecoder(CProcessInfo &processInfo) : m_processInfo(processInfo) ++CDecoder::CDecoder(CProcessInfo &processInfo, CDVDStreamInfo &hints) : m_processInfo(processInfo), m_hints(hints) + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s - create %p", CLASSNAME, __FUNCTION__, this); +@@ -301,6 +301,7 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture + assert(picture->MMALBuffer->mmal_buffer); + picture->MMALBuffer->mmal_buffer->data = (uint8_t *)gmem->m_vc_handle; + picture->MMALBuffer->mmal_buffer->alloc_size = picture->MMALBuffer->mmal_buffer->length = gmem->m_numbytes; ++ picture->MMALBuffer->m_stills = m_hints.stills; + + // need to flush ARM cache so GPU can see it (HEVC will have already done this) + if (avctx->codec_id != AV_CODEC_ID_HEVC) +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +index b699824774067ad8566513d49816a7fba2bf21b5..693eddd6b69719887bbead05a81a551d40feb979 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +@@ -54,7 +54,7 @@ class CDecoder + : public CDVDVideoCodecFFmpeg::IHardwareDecoder + { + public: +- CDecoder(CProcessInfo& processInfo); ++ CDecoder(CProcessInfo& processInfo, CDVDStreamInfo &hints); + virtual ~CDecoder(); + virtual bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces); + virtual int Decode(AVCodecContext* avctx, AVFrame* frame); +@@ -76,6 +76,7 @@ protected: + CCriticalSection m_section; + std::shared_ptr m_pool; + enum AVPixelFormat m_fmt; ++ CDVDStreamInfo m_hints; + }; + + }; +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index 1da756eaf2c422e94b05cae0db33a697e8c17d97..6aff7bdb5117fdbfc4f7e15630c4edbaa880d960 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -528,6 +528,16 @@ void CMMALRenderer::Run() + if (interlace_method == VS_INTERLACEMETHOD_AUTO) + interlace_method = VS_INTERLACEMETHOD_MMAL_ADVANCED; + bool interlace = (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_VIDEO_FLAG_INTERLACED) ? true:false; ++ ++ // advanced deinterlace requires 3 frames of context so disable when showing stills ++ if (omvb->m_stills) ++ { ++ if (interlace_method == VS_INTERLACEMETHOD_MMAL_ADVANCED) ++ interlace_method = VS_INTERLACEMETHOD_MMAL_BOB; ++ if (interlace_method == VS_INTERLACEMETHOD_MMAL_ADVANCED_HALF) ++ interlace_method = VS_INTERLACEMETHOD_MMAL_BOB_HALF; ++ } ++ + // we don't keep up when running at 60fps in the background so switch to half rate + if (!g_graphicsContext.IsFullScreenVideo()) + { + +From cbb231744fd6eb5256839f8da47696faa00644b0 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 16 Sep 2016 19:18:34 +0100 +Subject: [PATCH 69/69] RenderManager: Bypass renderers need updating even when + renderer has no frame + +Otherwise subs and overlays don't get updated properly. +See: http://forum.kodi.tv/showthread.php?tid=269814&pid=2416492#pid2416492 +--- + xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +index 1232a1bd084258add5298e197be6b2fad5883d6d..12db650a24d2c1a7793c48cf6e887618d9c012e3 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +@@ -351,6 +351,9 @@ bool CRenderManager::HasFrame() + if (!IsConfigured()) + return false; + ++ if (m_format == RENDER_FMT_BYPASS) ++ return true; ++ + CSingleLock lock(m_presentlock); + if (m_presentstep == PRESENT_READY || + m_presentstep == PRESENT_FRAME || m_presentstep == PRESENT_FRAME2) diff --git a/projects/RPi2/patches/kodi/kodi-001-backport.patch b/projects/RPi2/patches/kodi/kodi-001-backport.patch index ba7a822daf..5c7a21143e 100644 --- a/projects/RPi2/patches/kodi/kodi-001-backport.patch +++ b/projects/RPi2/patches/kodi/kodi-001-backport.patch @@ -1,7 +1,7 @@ -From 4d1fbbaeba1a6ff1d77df125f9415160c8922380 Mon Sep 17 00:00:00 2001 +From a73b9e1eef89da05624699ad4d0617e63ab80cf2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 17:27:39 +0100 -Subject: [PATCH 01/65] build: Allow installed links to be overwritten +Subject: [PATCH 01/69] build: Allow installed links to be overwritten --- tools/depends/target/Makefile | 72 +++++++++++++++++++-------------------- @@ -91,7 +91,7 @@ index 16c82d3cb06e20adf27e7f429eebda6b7efbdf8c..8dcfe26cbc29ebe47cdb212712ae6474 + [ -f $(PREFIX)/lib/pkgconfig/xmu.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/xmu.pc $(PREFIX)/lib/pkgconfig/xmu.pc + [ -f $(PREFIX)/lib/pkgconfig/libdrm.pc ] || ln -sf /usr/lib/$(HOST)/pkgconfig/libdrm.pc $(PREFIX)/lib/pkgconfig/libdrm.pc diff --git a/tools/depends/xbmc-addons.include b/tools/depends/xbmc-addons.include -index e5cb842d9f61578efe5df95dfa3a938cf5346663..3ddba3cefb1ca785f7a17c72f42aacbbaada7b6c 100644 +index 42c58313b0bdab7113955ff00d594014758e148e..433b609aee40f8804380c9b71eb4ffb310b0a985 100644 --- a/tools/depends/xbmc-addons.include +++ b/tools/depends/xbmc-addons.include @@ -77,23 +77,23 @@ $(TOOLCHAIN_FILE): $(abs_top_srcdir)/target/Toolchain_binaddons.cmake @@ -137,10 +137,10 @@ index e5cb842d9f61578efe5df95dfa3a938cf5346663..3ddba3cefb1ca785f7a17c72f42aacbb + [ -f $(ADDON_DEPS_DIR)/lib/libm.so ] || ln -sf /usr/lib/$(HOST)/libm.so $(ADDON_DEPS_DIR)/lib/ -From 205dfaa46a1cfab63ed27111be95b9760f70d21f Mon Sep 17 00:00:00 2001 +From c7e3499025e73f735d71fcbaff94c010f6e3b5b9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 02/65] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 02/69] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -164,10 +164,10 @@ index 8ea5161637b4e66ddd222859f058521dbc8922b9..811019a39a10acc21b83f0b0c70d5500 dialog->ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From a20bc025b57d5452fd8ab7cb377f5eb6ec0da65b Mon Sep 17 00:00:00 2001 +From 978b5bb0f778c26bd001ae9aa22081767dc1546b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 03/65] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 03/69] [hifiberry] Hack: force it to be recognised as IEC958 capable to enable passthrough options --- @@ -190,10 +190,10 @@ index 6a9066b2dbe8d505d636b3638c1d35c7c8a698ed..9c6ac5d4cc9bf21b2d48619cc6fb5d27 info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") { -From 2ca2c495ca734baef60d1e47b0653b72dac024f7 Mon Sep 17 00:00:00 2001 +From a3b195178bb63a1ad04beafc1a6e9b9941c71470 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 04/65] Improved file buffering in CArchive +Subject: [PATCH 04/69] Improved file buffering in CArchive Even though memcpy is typically inlined by the compiler into byte/word loads and stores (at least for release builds), the frequency with which 1, 2 and 4 @@ -253,10 +253,10 @@ index 23cac2759fb10d532da56fa75c5528c5589e9010..89d31d4db1afa7340ed8cd51a7a9fa7a } -From 99e26b48a0e18ac68c48112ff46675300c00473e Mon Sep 17 00:00:00 2001 +From af080afbe66825c0e4e91504e59b0444e4b33147 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 05/65] filesystem: Make support of browsing into archives +Subject: [PATCH 05/69] filesystem: Make support of browsing into archives optional The ability to browse, scan and play content in archives can cause problems on low powered/low memory devices. @@ -275,10 +275,10 @@ We'll let people who don't use archives disable it manually 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c89e91bdb0a275cf804df799c2d0a261cf086785..f5ca2397d9169c7dcd28a9f9bc882dc3d8490571 100644 +index 7a3854a4647ca178bb619d33055d1da724a277b9..8978ab54aed837019520aefcaaaf483c4082a756 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19276,6 +19276,15 @@ msgstr "" +@@ -19301,6 +19301,15 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -315,10 +315,10 @@ index 62e9c8ed2199f8c57a640b06b0216ee4c8f0ca1e..e8b0d3d472b02fd161a4b51e957b9129 + diff --git a/xbmc/Util.cpp b/xbmc/Util.cpp -index 618e7dc98b0f474f93684f6aec266a9033feee9c..22a61d0177d4165a37ddef1ca2dd9fe972a3b47b 100644 +index 9fb278691ebb07df53f3c0fe35930124e1468546..3bc1660cc74aa2fef41a4cedc2a0acf1d65f7d9a 100644 --- a/xbmc/Util.cpp +++ b/xbmc/Util.cpp -@@ -1855,7 +1855,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1860,7 +1860,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, URIUtils::RemoveExtension(strCandidate); if (StringUtils::StartsWithNoCase(strCandidate, videoName)) { @@ -327,7 +327,7 @@ index 618e7dc98b0f474f93684f6aec266a9033feee9c..22a61d0177d4165a37ddef1ca2dd9fe9 CUtil::ScanArchiveForAssociatedItems(pItem->GetPath(), "", item_exts, associatedFiles); else { -@@ -1865,7 +1865,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1870,7 +1870,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, } else { @@ -366,10 +366,10 @@ index a0fd0a9011e71f4af1535110c696b6ea5c4b37db..688b71a297c7c617c6764bfe6be157d7 { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); -From f7bedecdb5bc79b6f082c925eaa305b682ac218b Mon Sep 17 00:00:00 2001 +From c46ad902ac3f6bd2c1446aa7a307dec119ac78d6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 06/65] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 06/69] [rbp] Make cachemembuffersize default depend on memory size --- @@ -471,10 +471,10 @@ index 6beebe0c9c11b0bab63e5abbd4aea2d62bb05f0c..03f566d3ee4eab690d2236b773908026 } -From 85725ac945cbdc5a8e970d54ea6beda5b7bc9641 Mon Sep 17 00:00:00 2001 +From 242178a6cde0248fbab4d3897e63856d44d65630 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 07/65] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 07/69] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -496,10 +496,10 @@ index c1cca7efdd5d119b07308b947c569911f2a9bdc9..e03f3c8ef21ba824c0d707042e5a735a StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 58d65ba07bc8254b433b1eec4f3ecf2aac895bd3 Mon Sep 17 00:00:00 2001 +From 35e49a5ac18e25894e55adb419cb8c34a2b3f5ca Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 08/65] [audio] Add settings option to boost centre channel +Subject: [PATCH 08/69] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -517,10 +517,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 46 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index f5ca2397d9169c7dcd28a9f9bc882dc3d8490571..4ff4c60c7a867e9d0a40adc0711287c8be324b8e 100644 +index 8978ab54aed837019520aefcaaaf483c4082a756..5a944387519059b24bc2e2c8371f1af1075b5a38 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19450,6 +19450,21 @@ msgstr "" +@@ -19475,6 +19475,21 @@ msgstr "" #empty strings from id 38043 to 38099 @@ -543,10 +543,10 @@ index f5ca2397d9169c7dcd28a9f9bc882dc3d8490571..4ff4c60c7a867e9d0a40adc0711287c8 #: system/settings/settings.xml msgctxt "#38100" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index ca912cd996d3236161ba7934da32d22df6b065ab..4197841131914f98cd29f5fd7b9ec3cedd2d01da 100644 +index 8d20a7ae8f9797fec026ee9328e651435c5c18cb..4ea8f6487f2815b13c6811171f2c9cb1e7e9f20d 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2366,6 +2366,18 @@ +@@ -2361,6 +2361,18 @@ @@ -566,7 +566,7 @@ index ca912cd996d3236161ba7934da32d22df6b065ab..4197841131914f98cd29f5fd7b9ec3ce HAS_AE_QUALITY_LEVELS 2 diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp -index b0ab84baf510d99ef66af86b88f2b23ea41f4e78..809ca88e64092c4c53045849fe98fd480a69651f 100644 +index af5bf93116543bd282953b01d0c5bcef93bb3a84..d7165dedd242abdfa7c0607eee332451c3187298 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResampleFFMPEG.cpp @@ -20,6 +20,7 @@ @@ -577,7 +577,7 @@ index b0ab84baf510d99ef66af86b88f2b23ea41f4e78..809ca88e64092c4c53045849fe98fd48 #include "utils/log.h" extern "C" { -@@ -105,6 +106,12 @@ bool CActiveAEResampleFFMPEG::Init(uint64_t dst_chan_layout, int dst_channels, i +@@ -104,6 +105,12 @@ bool CActiveAEResampleFFMPEG::Init(uint64_t dst_chan_layout, int dst_channels, i { av_opt_set_double(m_pContext, "rematrix_maxval", 1.0, 0); } @@ -625,10 +625,10 @@ index f16b822ed7b4aebe18b5d339b3f71ee66e97c23f..993d4b33a294e88c2c004b7943895ba5 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From b3ec4c120398f86571ca6539a0b46911e3e03849 Mon Sep 17 00:00:00 2001 +From 909d07f4a19f1c81fde195171ee9fffe51e1f7b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 09/65] [rbp] Default extract thumbnails to false +Subject: [PATCH 09/69] [rbp] Default extract thumbnails to false It can take 80 seconds for a single file on a Pi. It can cause crashes with out-of-memory errors. It genereates a lot of support issues. Best to default to disabled and let users enable it if they must @@ -654,10 +654,10 @@ index e8b0d3d472b02fd161a4b51e957b9129e3cb9792..289dc55ec41aa44848519a05f8ee1ccc -From bdb8c0811d58ebe6de69db82e9003456a677a059 Mon Sep 17 00:00:00 2001 +From 4feef225d99074a28887e099cdf3ba52be8a2f8b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 10/65] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 10/69] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -680,10 +680,10 @@ index fcdd0633f30cd9595ae6cc4ed293677cdcb1f422..16f0c8916b5e0a9e90973d194cf2ebd1 } -From eec3216e64389a02e22180a626d8291db2b949ea Mon Sep 17 00:00:00 2001 +From f58d1dace2e991cedf61a14349974712f77ebe09 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 11/65] logging: Add microsecond timer to log messages +Subject: [PATCH 11/69] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 15 +++++++++++++-- @@ -734,10 +734,10 @@ index 3443f1293d86018830269ed992c90a4e69c0430c..d330320842243df6f5ff256e608dddfa levelNames[logLevel]) + strData; -From 7c900d5144d7a912db7360b92eff90702fa3f366 Mon Sep 17 00:00:00 2001 +From 3f562fbea1c2d80866b51fdb90b2b7cc51139083 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 12/65] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 12/69] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -821,10 +821,10 @@ index ee297700f8583dbb15cbe53baf8c887b36bd2ea0..bbe501d40c5e101f1d0d64b8b59b1928 RENDER_STEREO_MODE stereo_mode = g_graphicsContext.GetStereoMode(); -From b3107b218150f1923a0b973cc85b589182ac8df7 Mon Sep 17 00:00:00 2001 +From 29c719456b993960988fce180bfa271a1de5fa38 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 13/65] Fix for UI not showing both extractflags and +Subject: [PATCH 13/69] Fix for UI not showing both extractflags and extractthumb --- @@ -833,10 +833,10 @@ Subject: [PATCH 13/65] Fix for UI not showing both extractflags and 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4ecb4c94c 100644 +index 5a944387519059b24bc2e2c8371f1af1075b5a38..19f9d25dd1744fa56e131154f69859cddff60e29 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -12430,7 +12430,7 @@ msgstr "" +@@ -12448,7 +12448,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -845,7 +845,7 @@ index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -16912,7 +16912,7 @@ msgstr "" +@@ -16937,7 +16937,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36178" @@ -854,7 +854,7 @@ index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4 msgstr "" #. Description of setting with label #20419 "Replace file names with library titles" -@@ -16924,7 +16924,7 @@ msgstr "" +@@ -16949,7 +16949,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36180" @@ -863,16 +863,16 @@ index 4ff4c60c7a867e9d0a40adc0711287c8be324b8e..f4abad73fa75574576383fca3956f9f4 msgstr "" #: system/settings/settings.xml -@@ -19582,3 +19582,7 @@ msgstr "" - msgctxt "#39007" - msgid "This provides access to where picture sources can be added and otherwise managed." +@@ -19617,3 +19617,7 @@ msgstr "" + msgctxt "#39009" + msgid "Zoom - 110% width" msgstr "" + +msgctxt "#38190" +msgid "Extract thumbnails from video files" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 4197841131914f98cd29f5fd7b9ec3cedd2d01da..dc7144ac8756fb1af9d7f3bb56c0b471f0ae3f9b 100644 +index 4ea8f6487f2815b13c6811171f2c9cb1e7e9f20d..66e914ff7dd857ac387bc8ff4a97e88d5c68174c 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -977,8 +977,8 @@ @@ -887,10 +887,10 @@ index 4197841131914f98cd29f5fd7b9ec3cedd2d01da..dc7144ac8756fb1af9d7f3bb56c0b471 -From a7bb3ad02267746ae24fdcedcc29ccae4620cfb2 Mon Sep 17 00:00:00 2001 +From bcb9e8f1d4e3988f8f5fc33eba50061ef331c71e Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 14/65] Disable autoscrolling while on screensaver and while +Subject: [PATCH 14/69] Disable autoscrolling while on screensaver and while opening streams. --- @@ -903,10 +903,10 @@ Subject: [PATCH 14/65] Disable autoscrolling while on screensaver and while 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index b3d5c77bb51c6a67964a695ce81efb42ea76a7bf..9b29a8cdb796db3bb6a3419c493aadb914f60956 100644 +index 45cc633fcd3c1026fabad6fd01b0a3ce00bfe38f..0463271ae53c87c631cf62cec6aef6491ab02723 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5200,3 +5200,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -5219,3 +5219,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -921,10 +921,10 @@ index b3d5c77bb51c6a67964a695ce81efb42ea76a7bf..9b29a8cdb796db3bb6a3419c493aadb9 + return onBlackDimScreenSaver || openingStreams; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index c14f62d54fd4623be82eff2d00097fc2c5615d3c..7126e1b1c73d75ff08a6bc58c5f98d5cba6a6fb1 100644 +index d20b7725e2901ebc6a750463d43ec4aea2a4187b..fa53fb3fd87f03a0ddd71c56874ed7249791e3ac 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -393,6 +393,8 @@ public: +@@ -394,6 +394,8 @@ public: */ void UnregisterActionListener(IActionListener *listener); @@ -1021,10 +1021,10 @@ index d7bc1c5ba6067af9a460589920367288c640a915..ac766293f1c47c7f145cb46f6b152144 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 3ced3be4ca859b1b236c9c1fae2098751b95a18e Mon Sep 17 00:00:00 2001 +From 78a960d9d7cc55c0b4b321924b644824906eb541 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 15/65] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 15/69] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -1035,10 +1035,10 @@ high bitrate videos can be significant. 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabcf525ada6 100644 +index 8460e27865a47861efa67d577187d5ab9b26431b..748508c8d2d5d0a8650f5a949d8f4d14dcb569af 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -854,7 +854,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -894,7 +894,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { if(m_pkt.pkt.stream_index == (int)m_pFormatContext->programs[m_program]->stream_index[i]) { @@ -1047,7 +1047,7 @@ index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabc break; } } -@@ -863,7 +863,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -903,7 +903,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() bReturnEmpty = true; } else @@ -1056,7 +1056,7 @@ index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabc } else bReturnEmpty = true; -@@ -893,9 +893,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -933,9 +933,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() // copy contents into our own packet pPacket->iSize = m_pkt.pkt.size; @@ -1072,7 +1072,7 @@ index c99916652866bfd4cc60271507a43444492f8eb8..1069710e3702aa6fc39e5fb550d0cabc pPacket->pts = ConvertTimestamp(m_pkt.pkt.pts, stream->time_base.den, stream->time_base.num); pPacket->dts = ConvertTimestamp(m_pkt.pkt.dts, stream->time_base.den, stream->time_base.num); -@@ -949,7 +953,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -989,7 +993,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() pPacket->iStreamId = m_pkt.pkt.stream_index; } m_pkt.result = -1; @@ -1124,10 +1124,10 @@ index df0f35bd49c65b302de4ccd110d859e8b881ea5f..b4b591ae4c4dd4fb0b36d4d00fedca96 } catch(...) { -From 5fa52de0fa29ad2bed6c5dcd2faf129a8a61729c Mon Sep 17 00:00:00 2001 +From 571cade3349dd866e7ac2560065048e4edf6fa73 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 16/65] Load OSD dialogs on startup. +Subject: [PATCH 16/69] Load OSD dialogs on startup. Fixes skipped frames the first time they're loaded in memory on less powered devices, like a Raspberry Pi, when using DVDPlayer. @@ -1207,10 +1207,10 @@ index e498e1fd476d9ab5300bb00bc39946a22cfd93cb..a6648d016b07e2eb3e52f8d927697cc5 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index 5adebf41429241be1224167e9b52262e0a446889..fa9772a45da94208b9ece407966a898fc5013a0f 100644 +index c9ffc14b3382b442f75921fdb432c9748ae9fbd3..26cf6c45449b0fe8ddec5ef9af2bcfb42ec15e8d 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -@@ -65,7 +65,9 @@ +@@ -66,7 +66,9 @@ CGUIDialogVideoSettings::CGUIDialogVideoSettings() : CGUIDialogSettingsManualBase(WINDOW_DIALOG_VIDEO_OSD_SETTINGS, "DialogSettings.xml"), m_viewModeChanged(false) @@ -1222,10 +1222,10 @@ index 5adebf41429241be1224167e9b52262e0a446889..fa9772a45da94208b9ece407966a898f CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 74963aa37bbea2fad5a631bbca4bb4bf7bc410dd Mon Sep 17 00:00:00 2001 +From 8f00eb24f169757ad3b290c74c673ca179a43d97 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 17/65] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 17/69] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -1233,10 +1233,10 @@ Subject: [PATCH 17/65] [gui] Also limit GUI updates when in non full-screen 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 9b29a8cdb796db3bb6a3419c493aadb914f60956..d39017434d819ca3190161c34a5dc70bb6a2022b 100644 +index 0463271ae53c87c631cf62cec6aef6491ab02723..3f9dcbbc30234ca0d86a79bd0ef42e65d3f16de0 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2756,7 +2756,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2765,7 +2765,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) #if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) // This code reduces rendering fps of the GUI layer when playing videos in fullscreen mode // it makes only sense on architectures with multiple layers @@ -1245,7 +1245,7 @@ index 9b29a8cdb796db3bb6a3419c493aadb914f60956..d39017434d819ca3190161c34a5dc70b fps = CSettings::GetInstance().GetInt(CSettings::SETTING_VIDEOPLAYER_LIMITGUIUPDATE); #endif -@@ -2769,6 +2769,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2778,6 +2778,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -1255,10 +1255,10 @@ index 9b29a8cdb796db3bb6a3419c493aadb914f60956..d39017434d819ca3190161c34a5dc70b g_windowManager.FrameMove(); } -From 10844c301cea6e5f07a55bf91599b9c094d318f6 Mon Sep 17 00:00:00 2001 +From 1c785e68a10eef9507a4d4d089d983f35b39d331 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 18/65] [screensaver] Leave GUI contents available for +Subject: [PATCH 18/69] [screensaver] Leave GUI contents available for screensaver --- @@ -1288,10 +1288,10 @@ index 227f323083b0fb9cee3b576bfcc7b51d5e27ac10..6994f16290ca3ec9da124fbf1cfa2171 // Add window to the history list (we must do this before we activate it, -From cca5e7cfe42db8cdb67457a41b7ef3dcd7b721ae Mon Sep 17 00:00:00 2001 +From 321ef266889c086654657c311926375e1475495d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH 19/65] ffmpeg: Automatic switch to software decode for GMC +Subject: [PATCH 19/69] ffmpeg: Automatic switch to software decode for GMC with more than one warp point --- @@ -1362,7 +1362,7 @@ index 0000000000000000000000000000000000000000..4cb8dd8fc466220e5d2539120de79ab1 +1.9.1 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index c3998be2f3a5f1dbde2498be624fa8b48de7339f..dffe2da1dfd09e06c5f15c362f7cbe3cf2a26f75 100644 +index 984521b55341c9387c8853fb346d846c36ff6b9e..9b763bc30aaf473d656f53c140ead8f948eff812 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,6 +1,7 @@ @@ -1396,7 +1396,7 @@ index 6bbebfca1c7189fec6650932d7292f17af60db62..e491c788793fa5df35e4570b54d76061 ./configure --prefix=$FFMPEG_PREFIX \ --extra-version="kodi-${VERSION}" \ diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index db15051b1638411e65c86de50a5be8f2ecbbd91c..c6f98ded45062617d88571cd70fc6336cfdc32c9 100644 +index 6adeaa66b04379a2685a80b99cfd493648f43775..aa20f18cbea80ed68c1307470289525bd5db29e3 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp @@ -47,6 +47,10 @@ @@ -1440,10 +1440,10 @@ index 03fdf6efa072219d55cac21b7f7923ffc6c00e17..e3a32aebfe59016b43cd7c2b304921b5 class CDemuxStreamAudio : public CDemuxStream diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 1069710e3702aa6fc39e5fb550d0cabcf525ada6..87674a3e45b0991447c817499524c09a3b595ca4 100644 +index 748508c8d2d5d0a8650f5a949d8f4d14dcb569af..a992c9253911d53c0648a9dceff37054fb2c91d0 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1326,7 +1326,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1366,7 +1366,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (!stereoMode.empty()) st->stereo_mode = stereoMode; @@ -1519,10 +1519,10 @@ index f135d423c0ca76fd70e79ae5b7d035f0cb79fc75..d9b576bc46055fdab1c134e5f2c63cd4 else if ((hint.codec == AV_CODEC_ID_VC1 || hint.codec == AV_CODEC_ID_WMV3) && g_RBP.GetCodecWvc1()) supported = true; -From 3d13e28a7a009dae14e1ed72d94c4192e7bee0fe Mon Sep 17 00:00:00 2001 +From a42d2fee26e2b0f8f01ceeb182f096f0f091a043 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH 20/65] [rbp] HW mouse pointer +Subject: [PATCH 20/69] [rbp] HW mouse pointer Updating the mouse point provokes a complete screen update which can make it feel laggy and results in high cpu. @@ -1955,10 +1955,10 @@ index 1b1d2f2e60334ed0f3a9964d106957f58e69f1b3..c82ba84625fe3556ff49764d40ceb3ec #endif -From e09807bed7411203a4c032e46a839cb215194ac7 Mon Sep 17 00:00:00 2001 +From dfc047ad23b14bb5a4a6a39fb69cd6e6ea3e2225 Mon Sep 17 00:00:00 2001 From: Claudio-Sjo Date: Mon, 16 Feb 2015 14:51:26 +0100 -Subject: [PATCH 21/65] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer +Subject: [PATCH 21/69] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer - fixes #15794 --- @@ -2150,10 +2150,10 @@ index 0427af4534bfe59a343f0518c7f4242d93299836..e99236294fa8b9b613e465a8ecaf3ad3 lsn_t m_lsnCurrent; // Position inside the track in logical sector number lsn_t m_lsnEnd; // End of m_iTrack in logical sector number -From 23eb36012a54590dc75e2b0a9a2304092272d483 Mon Sep 17 00:00:00 2001 +From 2d126de87a9a0819c8ca3ba2e74345ae3c474d33 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Jun 2016 19:38:13 +0100 -Subject: [PATCH 22/65] codecoverlay: Include codec name in overlay +Subject: [PATCH 22/69] codecoverlay: Include codec name in overlay --- xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp | 4 ++++ @@ -2164,7 +2164,7 @@ Subject: [PATCH 22/65] codecoverlay: Include codec name in overlay 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp -index a0cae3e603a3d0bcd954c75c9796f1afa995a9a1..5eee488a59a689e66325e8f8a9467ad2bb394a54 100644 +index 5da89e55c83568513cbf829679b60780572d5b49..27d7065a61b495b36abcfb96bc75131750054be4 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp @@ -210,6 +210,10 @@ void CVideoPlayerAudio::UpdatePlayerInfo() @@ -2179,10 +2179,10 @@ index a0cae3e603a3d0bcd954c75c9796f1afa995a9a1..5eee488a59a689e66325e8f8a9467ad2 //print the inverse of the resample ratio, since that makes more sense //if the resample ratio is 0.5, then we're playing twice as fast diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -index 06305e13c0687ba6899a6ab1f364345a3115c0f1..7f090615d5696e538fdd7ab376b76ef8212927cf 100644 +index c6d100b58c9bab185e747d14ee33cebce5c7cced..585b812a04d928ef493eb3cb3f8943fb33328a0e 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -@@ -915,10 +915,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) +@@ -922,10 +922,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) std::string CVideoPlayerVideo::GetPlayerInfo() { @@ -2213,10 +2213,10 @@ index 1e5d2b98bbef15b47994c3e4735873a9946b58c7..d43350fa0eefb5960475a02c1327efc2 return s.str(); } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index f9fa18aa9dfea0d50be09947439e56219f1f9b3d..6cd7d243d0fbea08c33e81edb5a51ab402bd110d 100644 +index cdf67ff4741854e883818aa82c3c427531850963..f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -@@ -583,12 +583,14 @@ void OMXPlayerVideo::SetSpeed(int speed) +@@ -593,12 +593,14 @@ void OMXPlayerVideo::SetSpeed(int speed) std::string OMXPlayerVideo::GetPlayerInfo() { @@ -2247,10 +2247,10 @@ index 0df7e72cc9d1947173c2bac5e72eb09976b51aa5..b5050081c360d29b1b478c27e6b88291 double m_iSubtitleDelay; bool m_bRenderSubs; -From d0279647e6ebd58b37bb61385942e912f1d7cc73 Mon Sep 17 00:00:00 2001 +From e31ab92bb7149186e93b0ecadddd1febea8865d3 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 8 Mar 2016 21:20:58 +0300 -Subject: [PATCH 23/65] [DebugInfo] Add cpu usage info. +Subject: [PATCH 23/69] [DebugInfo] Add cpu usage info. --- .../VideoPlayer/VideoRenderers/DebugRenderer.cpp | 56 ++++++++-------------- @@ -2387,7 +2387,7 @@ index 85aefaace73994730f7d2bdff9de85c79e99b2a2..8005a13bc220be0c5c596d276197c11e }; \ No newline at end of file diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da0200583d9c6318 100644 +index bbdd403dbb91cc066b2f8ac0de8da5066a7ebd58..4ca19205a1b124974b3495261f426896a1cbfa58 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp @@ -24,6 +24,7 @@ @@ -2398,7 +2398,7 @@ index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da020058 #include "utils/log.h" #include "utils/StringUtils.h" #include "windowing/WindowingFactory.h" -@@ -925,7 +926,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -904,7 +905,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) if (m_renderDebug) { @@ -2407,7 +2407,7 @@ index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da020058 m_playerPort->GetDebugInfo(audio, video, player); -@@ -939,8 +940,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -918,8 +919,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) missedvblanks, clockspeed * 100); } @@ -2420,17 +2420,17 @@ index f96be370c6ff7e19aa22b47b559f7a2bee192069..4d5b9f740d08b95b1780caf6da020058 m_debugTimer.Set(1000); -From 5a5fb07850e90081f355f308f3f785cdd68d3148 Mon Sep 17 00:00:00 2001 +From 884330c4db911c653a1eecac122a72bb25c8d603 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH 24/65] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 24/69] ffmpeg: Allow neon to be enabled in unified builds --- tools/depends/target/ffmpeg/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index dffe2da1dfd09e06c5f15c362f7cbe3cf2a26f75..4081dddb6bc2db53559d35506cad6af4cd668362 100644 +index 9b763bc30aaf473d656f53c140ead8f948eff812..4e3cbf75331240ef33deb8f99ae9c57aef53e8ac 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -23,7 +23,11 @@ ffmpg_config += --enable-gnutls @@ -2446,10 +2446,10 @@ index dffe2da1dfd09e06c5f15c362f7cbe3cf2a26f75..4081dddb6bc2db53559d35506cad6af4 ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) -From 0daa9854de558357b37bfd9755fdf7d9094ed692 Mon Sep 17 00:00:00 2001 +From d18c25fef244c9932ce65f667e375ad6136a5aed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH 25/65] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 25/69] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -2461,7 +2461,7 @@ Subject: [PATCH 25/65] ffmpeg: Add some upstream HEVC optimisations create mode 100644 tools/depends/target/ffmpeg/hevcdsp_ARM_NEON_optimized_epel_functions.patch diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 4081dddb6bc2db53559d35506cad6af4cd668362..d9db534dd8c59a4993a3509737d901fbb3923de8 100644 +index 4e3cbf75331240ef33deb8f99ae9c57aef53e8ac..cdfd3334412d7392321c9ca63b7cc73487310875 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,7 +1,8 @@ @@ -6247,10 +6247,10 @@ index 0000000000000000000000000000000000000000..5e8e07d407f045fc99554f0f061d1e81 +2.5.0 + -From 6d71c6a31c4adfee8f95156360ddae12e821db21 Mon Sep 17 00:00:00 2001 +From 833dc2ec2689c67590b93d7609dc7477ecea2d6b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH 26/65] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 26/69] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -6260,7 +6260,7 @@ Subject: [PATCH 26/65] [ffmpeg] Add GPU acceleration to hevc create mode 100644 tools/depends/target/ffmpeg/pfcd_hevc_optimisations.patch diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index d9db534dd8c59a4993a3509737d901fbb3923de8..2dc4addea504d142eb74385653584bf39b253156 100644 +index cdfd3334412d7392321c9ca63b7cc73487310875..f17db07af6440391a9c31eff8367fe7393f77dfc 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -2,7 +2,8 @@ include ../../Makefile.include @@ -44436,10 +44436,10 @@ index 0000000000000000000000000000000000000000..e172ebf157aebffe1ae50b4a2b25fd71 +2.7.4 + -From dd2ed73dfc759d5afd988e4e544aee0cfa6b1e37 Mon Sep 17 00:00:00 2001 +From 98e0f8702c13b9b449f2b4ae52cb82c6aa07a0b2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 22 Aug 2015 23:06:56 +0100 -Subject: [PATCH 27/65] [dvdmessage] Increase timeout on +Subject: [PATCH 27/69] [dvdmessage] Increase timeout on CDVDMsgGeneralSynchronize --- @@ -44460,10 +44460,10 @@ index 0dcc664fd862706c60659f3664c7d964597c94d5..7614c831af9dfc821121a4111546fd4d long CDVDMsgGeneralSynchronize::Release() -From d3f5e306acd46cc7b8173c2e96a78a993764222d Mon Sep 17 00:00:00 2001 +From 8fbcee372c19974802cc81d09437b436c3c96a07 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH 28/65] [3d] Make MVC a valid 3D filename tag +Subject: [PATCH 28/69] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ @@ -44524,20 +44524,20 @@ index 1727580c0c8de2b6fda19a741f90721a570b96b8..4fa973515df6e677418a6bf7f9d0b4a3 bool m_useDisplayControlHWStereo; -From 6c07d703eda3708c2a3f95ac4217003d9935b5ba Mon Sep 17 00:00:00 2001 +From 8a144f817cf59a99e5b8b11c0d51538acf42bb55 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 5 Oct 2015 14:58:05 +0100 -Subject: [PATCH 29/65] [3d] Swap top/bottom sides of GUI +Subject: [PATCH 29/69] [3d] Swap top/bottom sides of GUI --- xbmc/guilib/GraphicContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/guilib/GraphicContext.cpp b/xbmc/guilib/GraphicContext.cpp -index e9d8e18445bcd82b09d5ed9f86e85a5a6fef8472..324852946dfc4e06d66915f35f8f37376795e041 100644 +index 3706e4d80b3b31da4c5be0a1b21f36e59d2910f2..e170b3fb05279ffa316794dbce1d4f9dc5697bd0 100644 --- a/xbmc/guilib/GraphicContext.cpp +++ b/xbmc/guilib/GraphicContext.cpp -@@ -267,7 +267,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const +@@ -266,7 +266,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const { const RESOLUTION_INFO info = GetResInfo(); @@ -44547,10 +44547,10 @@ index e9d8e18445bcd82b09d5ed9f86e85a5a6fef8472..324852946dfc4e06d66915f35f8f3737 } if(m_stereoMode == RENDER_STEREO_MODE_SPLIT_VERTICAL) -From 6e570a0f04536712cc7cb8dd0ff64bb05461fa72 Mon Sep 17 00:00:00 2001 +From 5fe5a4afe38e6e71d5e016ccb260aa9ad7940435 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 11 Oct 2015 20:51:37 +0100 -Subject: [PATCH 30/65] Revert "Revert "Disable extra logging by default"" +Subject: [PATCH 30/69] Revert "Revert "Disable extra logging by default"" This reverts commit a880554325be187b877cd8f0e2b338e7267da636. --- @@ -44558,10 +44558,10 @@ This reverts commit a880554325be187b877cd8f0e2b338e7267da636. 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index dc7144ac8756fb1af9d7f3bb56c0b471f0ae3f9b..8f62f7ca494ea5b3322653f0a2b9431ebd54c7ea 100644 +index 66e914ff7dd857ac387bc8ff4a97e88d5c68174c..0418bee8ed9df4aa9796d4c88bf904a4a8736e71 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -2820,12 +2820,12 @@ +@@ -2815,12 +2815,12 @@ 1 @@ -44577,20 +44577,20 @@ index dc7144ac8756fb1af9d7f3bb56c0b471f0ae3f9b..8f62f7ca494ea5b3322653f0a2b9431e loggingcomponents , -From 36d0fe8ab502919d2fe8fb63e11f1380532cb0e7 Mon Sep 17 00:00:00 2001 +From 620acc574e873000228027afc1c7c4bde234c2be Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 26 Nov 2015 17:14:49 +0000 -Subject: [PATCH 31/65] [ae] Add debug logging showing resamplerate +Subject: [PATCH 31/69] [ae] Add debug logging showing resamplerate --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 432c8a97ff1882c7f8c2e72b417f5c8f63237a1a..8a1fbade6b6a91bae4fc33d19759959d6ee34290 100644 +index 5b2243f3094403ce485006333fd000342f0e58b2..799dc57a130d15a025a7c525ddac8e1748ff6416 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -2449,6 +2449,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) +@@ -2450,6 +2450,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) if (stream->m_processingBuffers) { stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold); @@ -44599,10 +44599,10 @@ index 432c8a97ff1882c7f8c2e72b417f5c8f63237a1a..8a1fbade6b6a91bae4fc33d19759959d } else if (stream->m_processingBuffers) -From 1c4077d7ab06f9bc9aed4ccb62fd676e08ad8115 Mon Sep 17 00:00:00 2001 +From 5995eb83d50fabf6e5825487ecdc2c62281ead8d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH 32/65] [omximage] Fall back to arm jpeg encode/decode when gpu +Subject: [PATCH 32/69] [omximage] Fall back to arm jpeg encode/decode when gpu is busy --- @@ -44845,10 +44845,10 @@ index a93aa82663903fb1bf712058c2e259290ee742e6..6f38dbc7e5cc721c59a3633935f08218 extern COMXImage g_OMXImage; -From 502899c2fb94a59efd204a765ef897c2792a9d7f Mon Sep 17 00:00:00 2001 +From 442001f0d7149f4bd8c3b10a6bf32f7a85c2b90d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH 33/65] [mmalcodec] Fail to open when width is invalid. Can +Subject: [PATCH 33/69] [mmalcodec] Fail to open when width is invalid. Can happen with mpegts files --- @@ -44856,7 +44856,7 @@ Subject: [PATCH 33/65] [mmalcodec] Fail to open when width is invalid. Can 1 file changed, 3 insertions(+) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index c6f98ded45062617d88571cd70fc6336cfdc32c9..283b2626731c25c67e4c065dac7725a488c09523 100644 +index aa20f18cbea80ed68c1307470289525bd5db29e3..cead68bd79d388f0eda0f8a79f17d296478d3361 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp @@ -368,6 +368,9 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) @@ -44870,10 +44870,10 @@ index c6f98ded45062617d88571cd70fc6336cfdc32c9..283b2626731c25c67e4c065dac7725a4 if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) return false; -From ea3c304d6927e3a0da428ec064aa11845c2e01db Mon Sep 17 00:00:00 2001 +From 48229815a2381336ad53da850be143df7e7ba430 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH 34/65] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 34/69] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2179 ++++++++++++++++++++ @@ -47068,7 +47068,7 @@ index 0000000000000000000000000000000000000000..38554af0af30a85b7d88d31b7d21775c +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 2dc4addea504d142eb74385653584bf39b253156..d1d76cb2ce04d5fd056796cc133fceb3f3c246c9 100644 +index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d59021500 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -3,7 +3,8 @@ include FFMPEG-VERSION @@ -47110,10 +47110,10 @@ index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..7022b5fadef58ad27b61725d77131bd7 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ -From 2a35e99417f02eccc12026eae38d6b2fca3c96d1 Mon Sep 17 00:00:00 2001 +From 1438374e2a489065391e8fa01bf7d20dd4d09e87 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 35/65] [videoplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 35/69] [videoplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -47135,10 +47135,10 @@ or drop/dupe audio packets which is normally required. 12 files changed, 122 insertions(+), 19 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index f4abad73fa75574576383fca3956f9f4ecb4c94c..bdd03649780dc6ba0a4d16c32d6bec8891727019 100644 +index 19f9d25dd1744fa56e131154f69859cddff60e29..5573f41c9a0b00e32f0c11e4cba4650088864b6b 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19586,3 +19586,35 @@ msgstr "" +@@ -19621,3 +19621,35 @@ msgstr "" msgctxt "#38190" msgid "Extract thumbnails from video files" msgstr "" @@ -47146,7 +47146,7 @@ index f4abad73fa75574576383fca3956f9f4ecb4c94c..bdd03649780dc6ba0a4d16c32d6bec88 +#. Description of setting "System -> Audio Ouput -> A/V sync method" with label #38200 +#: system/settings/settings.xml +msgctxt "#38200" -+msgid "PLL adustment to maintain audio/video sync" ++msgid "PLL adjustment to maintain audio/video sync" +msgstr "" + +#. Description of setting "Videos -> Playback -> A/V sync method" with label #38201 @@ -47200,7 +47200,7 @@ index 289dc55ec41aa44848519a05f8ee1ccc72740085..2572e25753712186f69390965ee1448b diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 8a1fbade6b6a91bae4fc33d19759959d6ee34290..e980eba1fba19de6f49b479e0bca0afefc830795 100644 +index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e683721976752e833238 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -34,6 +34,10 @@ using namespace ActiveAE; @@ -47230,7 +47230,7 @@ index 8a1fbade6b6a91bae4fc33d19759959d6ee34290..e980eba1fba19de6f49b479e0bca0afe par->stream->m_resampleIntegral = 0.0; } return; -@@ -2444,7 +2449,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) +@@ -2445,7 +2450,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) if (!newerror || stream->m_syncState != CAESyncInfo::AESyncState::SYNC_INSYNC) return ret; @@ -47248,7 +47248,7 @@ index 8a1fbade6b6a91bae4fc33d19759959d6ee34290..e980eba1fba19de6f49b479e0bca0afe { if (stream->m_processingBuffers) { -@@ -3302,13 +3316,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) +@@ -3303,13 +3317,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) &msg, sizeof(MsgStreamParameter)); } @@ -47404,7 +47404,7 @@ index 81882a1a3828e3f95df26c1bd88c061d3b994b44..ed6974b1155a7272f3ef5bfed3f74967 void Drain(); void AbortAddPackets(); diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp -index 5eee488a59a689e66325e8f8a9467ad2bb394a54..77c5170235b675f58b4e4a85cb1c2e645640a283 100644 +index 27d7065a61b495b36abcfb96bc75131750054be4..22c6480fc55e93e1f6a99b31851c7e5da3fd60b1 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp @@ -96,6 +96,7 @@ bool CVideoPlayerAudio::OpenStream(CDVDStreamInfo &hints) @@ -47428,7 +47428,7 @@ index 5eee488a59a689e66325e8f8a9467ad2bb394a54..77c5170235b675f58b4e4a85cb1c2e64 s << ", att:" << std::fixed << std::setprecision(1) << log(GetCurrentAttenuation()) * 20.0f << " dB"; -@@ -538,10 +543,12 @@ void CVideoPlayerAudio::SetSyncType(bool passthrough) +@@ -541,10 +546,12 @@ void CVideoPlayerAudio::SetSyncType(bool passthrough) int synctype = (m_synctype >= 0 && m_synctype <= 1) ? m_synctype : 2; CLog::Log(LOGDEBUG, "CVideoPlayerAudio:: synctype set to %i: %s", m_synctype, synctypes[synctype]); m_prevsynctype = m_synctype; @@ -47443,7 +47443,7 @@ index 5eee488a59a689e66325e8f8a9467ad2bb394a54..77c5170235b675f58b4e4a85cb1c2e64 } } -@@ -599,6 +606,7 @@ bool CVideoPlayerAudio::SwitchCodecIfNeeded() +@@ -602,6 +609,7 @@ bool CVideoPlayerAudio::SwitchCodecIfNeeded() bool allowpassthrough = !CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEDISPLAYASCLOCK); if (m_streaminfo.realtime) allowpassthrough = false; @@ -47509,10 +47509,10 @@ index 90b04db5405058be2ff20aeaa6af2d2ac651586f..084fba87f49f4c3b33a8dd4a20a626a3 void init_cursor(); void set_cursor(const void *pixels, int width, int height, int hotspot_x, int hotspot_y); -From 096224708de6b380a7623b78c6d0980dcfee4547 Mon Sep 17 00:00:00 2001 +From 7f169078ca694fe9879a9f6c001bdb97394bd6d3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH 36/65] rbp: Support zero copy interface with hevc acceleration +Subject: [PATCH 36/69] rbp: Support zero copy interface with hevc acceleration --- xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 9 +++++++++ @@ -47520,10 +47520,10 @@ Subject: [PATCH 36/65] rbp: Support zero copy interface with hevc acceleration 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 37254c779a4574a34de8f2b0326ea8ca8ceab53d..c9e683e6c0771276217152558aabbdaf171302e3 100644 +index 0f37978d0e372244d8a3936e885887e62c1ab650..6cd68f5068956ea23b2b2da7069cf46b4d756874 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -364,6 +364,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options +@@ -365,6 +365,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options if (tryhw && m_decoderState == STATE_NONE) { m_decoderState = STATE_HW_SINGLE; @@ -47540,10 +47540,10 @@ index 37254c779a4574a34de8f2b0326ea8ca8ceab53d..c9e683e6c0771276217152558aabbdaf else { diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp -index ad0f65cc64f545b32d1812c9e218c57ec6866b00..a5597c1386c5afdc6ec8f6840355557ee26e8950 100644 +index 29c4e6d15dd838cf845c301ea1a1f4c05db29871..864650d488d0f5b3dc9f89f01aa5c3b845b92564 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp -@@ -281,8 +281,9 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture +@@ -290,8 +290,9 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture picture->MMALBuffer->mmal_buffer->data = (uint8_t *)gmem->m_vc_handle; picture->MMALBuffer->mmal_buffer->alloc_size = picture->MMALBuffer->mmal_buffer->length = gmem->m_numbytes; @@ -47556,10 +47556,10 @@ index ad0f65cc64f545b32d1812c9e218c57ec6866b00..a5597c1386c5afdc6ec8f6840355557e if (g_advancedSettings.CanLogComponent(LOGVIDEO)) CLog::Log(LOGDEBUG, "%s::%s - mmal:%p dts:%.3f pts:%.3f buf:%p gpu:%p", CLASSNAME, __FUNCTION__, picture->MMALBuffer->mmal_buffer, 1e-6*picture->dts, 1e-6*picture->pts, picture->MMALBuffer, gmem); -From 2c3a832280fbf22c1d09c6a7db1e8c2ee78c6699 Mon Sep 17 00:00:00 2001 +From e10d1b7ce3a948b8cce52cf26359cf1b3ec0cb24 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 May 2015 18:26:04 +0100 -Subject: [PATCH 37/65] ffmpeg: use upstream mvc patches +Subject: [PATCH 37/69] ffmpeg: use upstream mvc patches --- ...vcodec-add-h264_mvc-codec-id-and-profiles.patch | 68 ++++++++++++ @@ -47769,7 +47769,7 @@ index 0000000000000000000000000000000000000000..399e8a95984771e4388bfe4785423ff3 +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index d1d76cb2ce04d5fd056796cc133fceb3f3c246c9..92d9437b36eaa4e655990f7e68634e0bbf4d9605 100644 +index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e23794be3a 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -4,7 +4,9 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -47869,10 +47869,10 @@ index 0000000000000000000000000000000000000000..b39480ad098b9cd0882fcf75b96afb1b +2.7.4 + -From 7693ec1c01a125048da9b0c708260461f91f5a9c Mon Sep 17 00:00:00 2001 +From 3b07012b3efa399026c9f93bbb70e720f79bfcb8 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 20 Jan 2016 17:02:16 +0300 -Subject: [PATCH 38/65] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc +Subject: [PATCH 38/69] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc streams. --- @@ -47880,7 +47880,7 @@ Subject: [PATCH 38/65] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e 100644 +index a992c9253911d53c0648a9dceff37054fb2c91d0..13a1576955fc68fbf344383a483f5429753f4292 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -25,6 +25,7 @@ @@ -47891,7 +47891,7 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f #include "DVDClock.h" // for DVD_TIME_BASE #include "DVDDemuxUtils.h" #include "DVDInputStreams/DVDInputStream.h" -@@ -1265,6 +1266,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1305,6 +1306,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) } case AVMEDIA_TYPE_VIDEO: { @@ -47907,7 +47907,7 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); stream = st; if(strcmp(m_pFormatContext->iformat->name, "flv") == 0) -@@ -1273,7 +1283,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1313,7 +1323,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) st->bVFR = false; // never trust pts in avi files with h264. @@ -47916,7 +47916,7 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f st->bPTSInvalid = true; #if defined(AVFORMAT_HAS_STREAM_GET_R_FRAME_RATE) -@@ -1344,6 +1354,17 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1384,6 +1394,17 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (av_dict_get(pStream->metadata, "title", NULL, 0)) st->m_description = av_dict_get(pStream->metadata, "title", NULL, 0)->value; @@ -47935,10 +47935,10 @@ index 87674a3e45b0991447c817499524c09a3b595ca4..429d6943ee2eb3dd5adedac5cf5bb81f } case AVMEDIA_TYPE_DATA: -From 05f6d9958acf833440b50a5044257c71eb91a479 Mon Sep 17 00:00:00 2001 +From 527e88f4a9407743e2525f7fa4fbcd3c0e6a1a84 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 25 Feb 2016 11:21:25 +0300 -Subject: [PATCH 39/65] [Stereo3D] Added mvc modes. +Subject: [PATCH 39/69] [Stereo3D] Added mvc modes. --- xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 4 ++++ @@ -47992,17 +47992,17 @@ index 1443acaf0f25df458ae49766e13dd0323454f2eb..6eb0752994bc5f8c47efbbf211120af0 i++; } -From 2b56aadf7f5b3d2adec40ea591c67959ca8e005b Mon Sep 17 00:00:00 2001 +From 92b7fb7fc93c081b8a1d69d74c6f6356f7ab4ea8 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Sat, 23 Jan 2016 10:21:32 +0300 -Subject: [PATCH 40/65] [VideoPlayer] Fix possible wrong aspect. +Subject: [PATCH 40/69] [VideoPlayer] Fix possible wrong aspect. --- xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -index 7f090615d5696e538fdd7ab376b76ef8212927cf..3ad458cac7373a7574253ae23aab5812e330c968 100644 +index 585b812a04d928ef493eb3cb3f8943fb33328a0e..064b3fffaa416786f1bac34d827af60ceceaa105 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp @@ -182,7 +182,7 @@ void CVideoPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) @@ -48015,10 +48015,10 @@ index 7f090615d5696e538fdd7ab376b76ef8212927cf..3ad458cac7373a7574253ae23aab5812 else m_fForcedAspectRatio = 0.0; -From df603ab3e9d455937d8595d34b0bda7301340dc2 Mon Sep 17 00:00:00 2001 +From 52cf0ed76fb62f056dc0038773d313a1713c0fc6 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 22 Jan 2016 18:18:33 +0300 -Subject: [PATCH 41/65] [VideoPlayer] DemuxFFmpeg: ssif remux +Subject: [PATCH 41/69] [VideoPlayer] DemuxFFmpeg: ssif remux --- xbmc/cores/VideoPlayer/DVDDemuxers/CMakeLists.txt | 2 + @@ -48053,7 +48053,7 @@ index 63776b1333bb66483303e44d6ebe60f3cd7e14d7..0da129ff99f57dc38ca8a854854d9fe6 DVDDemuxUtils.h DVDDemuxVobsub.h diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba84c60e046 100644 +index 13a1576955fc68fbf344383a483f5429753f4292..3e3884f7ce515709b74b687c53d538b67c563c61 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -164,6 +164,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() @@ -48083,7 +48083,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 } void CDVDDemuxFFmpeg::Abort() -@@ -811,7 +817,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -851,7 +857,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48094,7 +48094,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 { // update streams CreateStreams(m_program); -@@ -839,6 +847,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -879,6 +887,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48104,7 +48104,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 } else { -@@ -848,7 +859,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -888,7 +899,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { @@ -48115,7 +48115,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -997,6 +1010,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1037,6 +1050,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() stream = AddStream(pPacket->iStreamId); } } @@ -48131,7 +48131,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 if (!stream) { CLog::Log(LOGERROR, "CDVDDemuxFFmpeg::AddStream - internal error, stream is null"); -@@ -1026,6 +1048,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) +@@ -1066,6 +1088,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48141,7 +48141,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 CDVDInputStream::IPosTime* ist = m_pInput->GetIPosTime(); if (ist) { -@@ -1101,6 +1126,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) +@@ -1141,6 +1166,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48151,7 +48151,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 return (ret >= 0); } -@@ -1268,11 +1296,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1308,11 +1336,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (pStream->codec->codec_id == AV_CODEC_ID_H264_MVC) { @@ -48167,7 +48167,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 break; } CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); -@@ -1358,7 +1387,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1398,7 +1427,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (CDVDCodecUtils::IsH264AnnexB(m_pFormatContext->iformat->name, pStream)) { @@ -48180,7 +48180,7 @@ index 429d6943ee2eb3dd5adedac5cf5bb81fe6ff192e..84ecc81a439d0ce82957324fc18c5ba8 } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) { -@@ -1451,7 +1484,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1491,7 +1524,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (langTag) strncpy(stream->language, langTag->value, 3); @@ -48452,10 +48452,10 @@ index 60e5652f69e96a559d8080e01dc214a56fb19343..cdaf53585a89a0da3a4038178806ee93 m_discStubExtensions = ".disc"; // internal music extensions -From e67a8be040f0a6d3994060f447b353c7c62cebd4 Mon Sep 17 00:00:00 2001 +From cfed7f1b7d5bd3124a54824dce561821e85b207e Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:01:08 +0300 -Subject: [PATCH 42/65] [libbluray] bump libbluray to 0.9.2-mvc. +Subject: [PATCH 42/69] [libbluray] bump libbluray to 0.9.2-mvc. --- project/BuildDependencies/scripts/0_package.list | 2 +- @@ -48475,10 +48475,10 @@ index 4d1be9c2cb2bb0c9531413c7300342444df023e1..bc4913a3d0c1fcb7e27106a2ddd6988f libcec-3.1.0-win32-vc140.7z libfribidi-0.19.2-win32.7z -From 17c471649453534b7eb2103f4b3eddb11d6aa0be Mon Sep 17 00:00:00 2001 +From 442cb1488f82a1d175728338291e50909974e331 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:02:46 +0300 -Subject: [PATCH 43/65] [3DBD] Added support of 3D-BluRay playback. +Subject: [PATCH 43/69] [3DBD] Added support of 3D-BluRay playback. --- lib/DllLibbluray.h | 8 + @@ -48556,7 +48556,7 @@ index 0da129ff99f57dc38ca8a854854d9fe658651e1f..82d4b499245afda1a51ca281584cc47f DVDDemuxPacket.h DVDDemuxUtils.h diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47dcf4f75d 100644 +index 3e3884f7ce515709b74b687c53d538b67c563c61..fe13ef199ed85fca52d2499beb9adb35ef0157b7 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -27,6 +27,7 @@ @@ -48584,7 +48584,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 // in case of mpegts and we have not seen pat/pmt, defer creation of streams if (!skipCreateStreams || m_pFormatContext->nb_programs > 0) { -@@ -817,9 +828,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -857,9 +868,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48595,7 +48595,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 { // update streams CreateStreams(m_program); -@@ -860,8 +869,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -900,8 +909,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { // libavformat is confused by the interleaved SSIF. @@ -48605,7 +48605,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -1012,10 +1020,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1052,10 +1060,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() } if (stream && m_pSSIF) { @@ -48617,7 +48617,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 if (stream->type == STREAM_DATA && stream->codec == AV_CODEC_ID_H264_MVC && pPacket->iSize) stream = GetStream(pPacket->iStreamId); } -@@ -1391,6 +1396,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1431,6 +1436,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { m_pSSIF->SetH264StreamId(streamIdx); pStream->codec->codec_tag = MKTAG('A', 'M', 'V', 'C'); @@ -48647,7 +48647,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 } } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) -@@ -1651,6 +1679,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) +@@ -1691,6 +1719,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) } Flush(); @@ -48660,7 +48660,7 @@ index 84ecc81a439d0ce82957324fc18c5ba84c60e046..cfa691835cda0b2cf986adbb9aa4db47 return true; } -@@ -1720,6 +1754,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) +@@ -1760,6 +1794,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) bool CDVDDemuxFFmpeg::IsProgramChange() { @@ -49477,10 +49477,10 @@ index b967a85e6557e42a7f1235cdd804d5a0263b866f..561fb5cd4f971bc9ee4f41218a60bb3d typedef std::shared_ptr SOverlay; typedef std::list SOverlays; -From 3f48b5cdb2fd9028069471aca90fe05632da35a0 Mon Sep 17 00:00:00 2001 +From 045f931dc607697f8bbd19917b94a8725b71e9fc Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 2 Mar 2016 23:31:50 +0300 -Subject: [PATCH 44/65] [BaseRenderer] Fix aspect for TAB/SBS (need more +Subject: [PATCH 44/69] [BaseRenderer] Fix aspect for TAB/SBS (need more testing) --- @@ -49488,7 +49488,7 @@ Subject: [PATCH 44/65] [BaseRenderer] Fix aspect for TAB/SBS (need more 1 file changed, 18 insertions(+) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp -index f18c671d90c85eed1ca4bd52028d7e5074a1312a..5c6f7453c2b3fd1155c18af8d37cb3d4fa9de1c6 100644 +index f9b3bfb4eb35eff3ef7af370136882bc733461e6..ab804ab0259992e4700e0ba99759c3f777bc8d52 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/BaseRenderer.cpp @@ -35,6 +35,9 @@ @@ -49524,10 +49524,10 @@ index f18c671d90c85eed1ca4bd52028d7e5074a1312a..5c6f7453c2b3fd1155c18af8d37cb3d4 void CBaseRenderer::ManageRenderArea() -From c8a24aab46add8caafa0fdc78b1616fdc1028fe2 Mon Sep 17 00:00:00 2001 +From 624192e1ac862bc380b90b288a321b7222631cf0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Feb 2016 17:00:50 +0000 -Subject: [PATCH 45/65] libbluray: Bump to Nevcairie's v0.9.2 +Subject: [PATCH 45/69] libbluray: Bump to Nevcairie's v0.9.2 This includes 3D support --- @@ -51184,10 +51184,10 @@ index 0000000000000000000000000000000000000000..5ef0124e35c9d81143921a328e272220 + + return fp; -From f2489f8f090d4f743f31718b922d6a5a7ec3a9f9 Mon Sep 17 00:00:00 2001 +From 632c55efaa3d2d8ab9171ebce2f0431f0058d366 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Mar 2016 19:40:47 +0000 -Subject: [PATCH 46/65] [VideoPlayer] Added new msdk-mvc decoder. +Subject: [PATCH 46/69] [VideoPlayer] Added new msdk-mvc decoder. --- xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecUtils.cpp | 61 ++++++++++++++++++++++ @@ -51303,10 +51303,10 @@ index eb76a6fe73f6c884540807cfb93c7a3ecc4eea90..7e24c2364e8d2efa9b8351afc041aa14 static int PixfmtFromEFormat(ERenderFormat format); }; -From 10e05fac4ef5439243c0b5394e29ce6092f514f1 Mon Sep 17 00:00:00 2001 +From 16e01ecdff9e89e6a275aa58f079156c216bcd9a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 6 Mar 2016 12:54:59 +0000 -Subject: [PATCH 47/65] mvc: Automatically enable stereo mode +Subject: [PATCH 47/69] mvc: Automatically enable stereo mode --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 6 +++++- @@ -51314,10 +51314,10 @@ Subject: [PATCH 47/65] mvc: Automatically enable stereo mode 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index 283b2626731c25c67e4c065dac7725a488c09523..a253b7fe8c591ba318958ea133355febb24ab328 100644 +index cead68bd79d388f0eda0f8a79f17d296478d3361..38e7d44b7968039120b9821fd5b6b2d552edf3c1 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -@@ -397,13 +397,17 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) +@@ -405,13 +405,17 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) switch (hints.codec) { case AV_CODEC_ID_H264: @@ -51364,10 +51364,10 @@ index 311dd6689236d660919c4c4483c51dca2752514a..536332c43e22ccb229e72b88518e54dd break; case AV_CODEC_ID_MPEG4: -From 3430bbcffb78d47d03e189a54a322d4edd4b6009 Mon Sep 17 00:00:00 2001 +From a77d51bd70b9bd56064f5110a753315e83d314d5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 24 Mar 2016 13:02:58 +0000 -Subject: [PATCH 48/65] ffmpeg: mvc: fix for pixelation from packets with no +Subject: [PATCH 48/69] ffmpeg: mvc: fix for pixelation from packets with no pts/dts --- @@ -51407,7 +51407,7 @@ index 0000000000000000000000000000000000000000..5240cf58ce40c28d12354db63b7e2914 + *poutbuf = NULL; + *poutbuf_size = 0; diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 92d9437b36eaa4e655990f7e68634e0bbf4d9605..99f375ba5d5b40eecdd423ac5787276e534ad4d7 100644 +index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c638197f3446b 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -6,7 +6,8 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -51429,10 +51429,10 @@ index 92d9437b36eaa4e655990f7e68634e0bbf4d9605..99f375ba5d5b40eecdd423ac5787276e cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ -From 88e9d53808a21926aabc88b6fc84cec5d09d99ef Mon Sep 17 00:00:00 2001 +From 0a6ec6e05a61be6e109ab31626ccb68e91a9154f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Mar 2016 13:08:44 +0000 -Subject: [PATCH 49/65] stereoscopicmanager: remove hardwarebased for rbp +Subject: [PATCH 49/69] stereoscopicmanager: remove hardwarebased for rbp --- xbmc/guilib/StereoscopicsManager.cpp | 2 ++ @@ -51454,10 +51454,10 @@ index 6eb0752994bc5f8c47efbbf211120af0a0720d0c..9426604f6460651f54cc035476e69530 { "mvc_rl", RENDER_STEREO_MODE_SPLIT_HORIZONTAL }, // fallback {} -From e1ed72556f5f41eb7197cffb1df699ead16b0e5c Mon Sep 17 00:00:00 2001 +From 70c9b05571fa288ebc39fecc74b5cc8f7e615acb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 17 May 2016 19:24:08 +0100 -Subject: [PATCH 50/65] stereoscopics: Switch to using block_lr for mvc to +Subject: [PATCH 50/69] stereoscopics: Switch to using block_lr for mvc to match makemkv See: http://forum.kodi.tv/showthread.php?tid=221407&pid=2339656#pid2339656 @@ -51470,10 +51470,10 @@ See: http://forum.kodi.tv/showthread.php?tid=221407&pid=2339656#pid2339656 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index a253b7fe8c591ba318958ea133355febb24ab328..1bab467cee97cad4a05fec71f29ca72d3ca93581 100644 +index 38e7d44b7968039120b9821fd5b6b2d552edf3c1..654a927a0d4cbf877a3bb2616d62f46a63e7cadb 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -@@ -407,7 +407,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) +@@ -415,7 +415,7 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) m_codingType = MMAL_ENCODING_MVC; m_pFormatName= "mmal-mvc"; if (hints.stereo_mode == "mono") @@ -51483,10 +51483,10 @@ index a253b7fe8c591ba318958ea133355febb24ab328..1bab467cee97cad4a05fec71f29ca72d break; case AV_CODEC_ID_H263: diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index cfa691835cda0b2cf986adbb9aa4db47dcf4f75d..3e271f12e1862552467ee7f905fb992b77d92178 100644 +index fe13ef199ed85fca52d2499beb9adb35ef0157b7..69d0280960422f8fc02440af56a1479c637a20d6 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1403,7 +1403,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1443,7 +1443,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) CDVDInputStreamBluray *bluRay = static_cast(m_pInput); if (bluRay->HasMVC()) { @@ -51563,10 +51563,10 @@ index 9426604f6460651f54cc035476e69530b2ea8493..cc929b599125a44ac128713fd4331782 }; -From c3496c7ec02f261166a07fccda875aad538aaed8 Mon Sep 17 00:00:00 2001 +From f76b2e007029345dd738c70bc0e6a64b87d99131 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 10 Mar 2016 18:11:33 +0300 -Subject: [PATCH 51/65] fixup! Revert supporting crappy tab/sbs subtitles. this +Subject: [PATCH 51/69] fixup! Revert supporting crappy tab/sbs subtitles. this fixes regular subtitles. --- @@ -51611,10 +51611,10 @@ index 3a080d06c90b0762482816928642e6de7810b539..7c0b70777556ac7694e7fc511cd4bb18 } -From 015e4471d62799cd8e534469406cfc9270a0f0b4 Mon Sep 17 00:00:00 2001 +From 8104d591068c761724de23a775f7c0b3f715aa06 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH 52/65] [libcec] Add repeating keypress patch from popcornmix' +Subject: [PATCH 52/69] [libcec] Add repeating keypress patch from popcornmix' repo --- @@ -52501,10 +52501,10 @@ index 0000000000000000000000000000000000000000..8366a696562a934144cc9a21ea6f2cab +1.9.1 + -From 84de446856b479d43ac2df0fbbc0ee917d6d962a Mon Sep 17 00:00:00 2001 +From a447cbd795a7bbbe8f2793c93823a5b6978a292d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 17:15:29 +0000 -Subject: [PATCH 53/65] cec: hack: pretend bump to 3.1.0 +Subject: [PATCH 53/69] cec: hack: pretend bump to 3.1.0 --- tools/depends/target/libcec/Makefile | 1 + @@ -52552,23 +52552,23 @@ index 0000000000000000000000000000000000000000..9e55e51068e7befd9d4ff003156ce1ff + # cec-client + add_subdirectory(src/cec-client) -From 06d3df42fba59facd2ae8ba3d1ec1fbbf193ece1 Mon Sep 17 00:00:00 2001 +From adbf7cf39c5fc6ef9aceec70a78fc32a12f60480 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH 54/65] [cec] Add settings for configuring button repeats +Subject: [PATCH 54/69] [cec] Add settings for configuring button repeats --- - addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ + addons/resource.language.en_gb/resources/strings.po | 16 ++++++++++++++++ system/peripherals.xml | 4 +++- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 16 ++++++++++++++++ - 3 files changed, 34 insertions(+), 1 deletion(-) + 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index bdd03649780dc6ba0a4d16c32d6bec8891727019..3d20c523cbf6666099f3210c86330078fcc46e21 100644 +index 5573f41c9a0b00e32f0c11e4cba4650088864b6b..0b9fd5b6cb375d712ae5dd68556998f9e6239860 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19583,6 +19583,21 @@ msgctxt "#39007" - msgid "This provides access to where picture sources can be added and otherwise managed." +@@ -19618,6 +19618,22 @@ msgctxt "#39009" + msgid "Zoom - 110% width" msgstr "" +#: system/peripherals.xml @@ -52584,13 +52584,14 @@ index bdd03649780dc6ba0a4d16c32d6bec8891727019..3d20c523cbf6666099f3210c86330078 +#: system/peripherals.xml +msgctxt "#38052" +msgid "Remote button press release time (ms)" ++>>>>>>> [cec] Add settings for configuring button repeats +msgstr "" + msgctxt "#38190" msgid "Extract thumbnails from video files" msgstr "" diff --git a/system/peripherals.xml b/system/peripherals.xml -index 012b14a14e1fff7fe8a2d2b052efc7c563066d01..a070fb9a433601f7800ff82a382728b5ba759bd4 100644 +index f939c0b685d96d022856544e7eb31a71338d9ba4..a4b8f7add4d915c1749628d62a9cbe9afe97d063 100644 --- a/system/peripherals.xml +++ b/system/peripherals.xml @@ -31,7 +31,9 @@ @@ -52639,10 +52640,10 @@ index e6bcbce6911a1714e129ecd5aceead94769231f4..19b3c37bc18fcab30920b12902e8c339 if (GetSettingBool("pause_playback_on_deactivate")) { -From 0fb45720cbbba03f9812699c0916e9e00cc6d6c6 Mon Sep 17 00:00:00 2001 +From 6138531fad86d45581d104d89055e7dafeebaff5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH 55/65] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 55/69] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -52665,10 +52666,10 @@ index 19b3c37bc18fcab30920b12902e8c3397a69dccc..f859f44f6d5379154317b5760d7df720 if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { -From b1597077c627544df137a2e094ace55a9d11adcb Mon Sep 17 00:00:00 2001 +From 9ce7b6c6a36cc1451cebb3f09f0355c67a220661 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH 56/65] [cec] Temp - more logging +Subject: [PATCH 56/69] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -52720,10 +52721,10 @@ index f859f44f6d5379154317b5760d7df720f0894e0d..f1c3a6d242183507c4ce9ebf4651b0c0 } -From 461405a907d5043ce25d089b2b527029eddd3695 Mon Sep 17 00:00:00 2001 +From 0388673f550e2e7beb01d5ff23c5934dbedc2721 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 Jan 2016 12:29:41 +0000 -Subject: [PATCH 57/65] [cec] Update for libcec 3.1.0 +Subject: [PATCH 57/69] [cec] Update for libcec 3.1.0 --- configure.ac | 4 ++-- @@ -52731,10 +52732,10 @@ Subject: [PATCH 57/65] [cec] Update for libcec 3.1.0 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 5a449f75c92ec10d30d4c977239aa17988b2c976..9b15fbe8eb54ba38fd970cd4ec149df990716566 100644 +index 3334490ab5f73eedd50f9884ba5ee94cc14576d1..a1c0bf2d7b751ec37081fdfa2d858da488fa67da 100644 --- a/configure.ac +++ b/configure.ac -@@ -1421,9 +1421,9 @@ if test "x$use_libcec" != "xno"; then +@@ -1432,9 +1432,9 @@ if test "x$use_libcec" != "xno"; then # libcec is dyloaded, so we need to check for its headers and link any depends. if test "x$use_libcec" != "xno"; then if test "x$use_libcec" != "xauto"; then @@ -52769,10 +52770,10 @@ index f1c3a6d242183507c4ce9ebf4651b0c0f7e9c5c9..28a6a8148810da940f977976a627018c // device name 'XBMC' snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str()); -From 7e4c3b823097ec0851a4065462ff0bb34c6f8f25 Mon Sep 17 00:00:00 2001 +From ac75d9e960cd35d7aaef0224f86b645e078dd958 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 14:46:41 +0000 -Subject: [PATCH 58/65] libcec: use system audio mode request instead of power +Subject: [PATCH 58/69] libcec: use system audio mode request instead of power on to start AVR reliable --- @@ -52838,10 +52839,10 @@ index 39ba882d0c7e270b4d1d1d566027cbaffb76b587..4565dc9f6fc0b3e6b49133443c19e107 $(LIBDYLIB): $(PLATFORM) -From 196902cfd8f081ff6595b66259c5d055a67182da Mon Sep 17 00:00:00 2001 +From 78acdd2602b57420bb29a1616330f11c5520a817 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 22 Mar 2016 09:51:52 +0100 -Subject: [PATCH 59/65] python: use kodi provided cert if available +Subject: [PATCH 59/69] python: use kodi provided cert if available --- xbmc/interfaces/python/XBPython.cpp | 6 ++++++ @@ -52865,10 +52866,10 @@ index bc84af9411ef55eaf5ba71a320b5cbfec5f49548..ff4ed7db26845905108ea0ae504e4f58 PyEval_AcquireLock(); else -From 44d0df2bd27b658b047c8baec26085ae5ccbc6f4 Mon Sep 17 00:00:00 2001 +From 75859a6ad1a79e6ab749d768b2991fa580241799 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 25 May 2016 18:31:17 +0100 -Subject: [PATCH 60/65] rbp: Hard code the number of buffers to improve audio +Subject: [PATCH 60/69] rbp: Hard code the number of buffers to improve audio sync --- @@ -52894,10 +52895,10 @@ index 2572e25753712186f69390965ee1448bff3fadd5..5d9f716bac49f9850f1062a4d5ac8517 diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -index 4d5b9f740d08b95b1780caf6da0200583d9c6318..aa5e461660a23916681bbbd660b9a9e2a1622b8b 100644 +index 4ca19205a1b124974b3495261f426896a1cbfa58..1232a1bd084258add5298e197be6b2fad5883d6d 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -@@ -1065,7 +1065,11 @@ void CRenderManager::UpdateDisplayLatency() +@@ -1044,7 +1044,11 @@ void CRenderManager::UpdateDisplayLatency() refresh = 0; // No idea about refresh rate when windowed, just get the default latency m_displayLatency = (double) g_advancedSettings.GetDisplayLatency(refresh); @@ -52910,10 +52911,10 @@ index 4d5b9f740d08b95b1780caf6da0200583d9c6318..aa5e461660a23916681bbbd660b9a9e2 } -From 6c79969ce8196cb7c942c4fcc3d3fb00d087e18b Mon Sep 17 00:00:00 2001 +From 46dcaccf685b8deaf4ff128fc06ee991095e202a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 4 Jul 2016 18:30:03 +0100 -Subject: [PATCH 61/65] rbp: Update the GL libs to new naming scheme +Subject: [PATCH 61/69] rbp: Update the GL libs to new naming scheme As the opensource mesa GL library is getting more usable, the name collision wih the firmware GL driver is causing issues. As such we are renaming the firmware GL driver to avoid this. @@ -52927,10 +52928,10 @@ will be dropped at some point 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac -index 9b15fbe8eb54ba38fd970cd4ec149df990716566..25600bae809c8b6a4133a27441f7e788626f8fe4 100644 +index a1c0bf2d7b751ec37081fdfa2d858da488fa67da..2ef28cca66cf12cab468f2a50c5f1122a3a470f6 100644 --- a/configure.ac +++ b/configure.ac -@@ -917,7 +917,7 @@ if test "$use_gles" = "yes"; then +@@ -928,7 +928,7 @@ if test "$use_gles" = "yes"; then AC_DEFINE([HAVE_LIBEGL],[1],["Define to 1 if you have the `EGL' library (-lEGL)."]) AC_DEFINE([HAVE_LIBGLESV2],[1],["Define to 1 if you have the `GLESv2' library (-lGLESv2)."]) AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.) @@ -52978,10 +52979,10 @@ index fb0bd6dad18199e8893c38644f93659bf0a3f61b..010288dc5de74380fc3795d00dbd9984 fi -From e4e2f951d7450d9a69b1a396cf48b3f8b2488de7 Mon Sep 17 00:00:00 2001 +From 234d8d6ac9a49d6cb1b705ad043c5afbb57cd02b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 16:49:02 +0100 -Subject: [PATCH 62/65] Revert "[settings] remove show EXIF picture information +Subject: [PATCH 62/69] Revert "[settings] remove show EXIF picture information setting" This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. @@ -52996,10 +52997,10 @@ This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. 7 files changed, 25 insertions(+), 4 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 3d20c523cbf6666099f3210c86330078fcc46e21..cdf0e494c460a9cdbc5aa38fc9243485bf3d4d24 100644 +index 0b9fd5b6cb375d712ae5dd68556998f9e6239860..a92fe4d4460cb8ae71eddc777e83be5816587638 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -17556,7 +17556,11 @@ msgctxt "#36305" +@@ -17581,7 +17581,11 @@ msgctxt "#36305" msgid "This category contains the settings for how picture file lists are handled." msgstr "" @@ -53012,7 +53013,7 @@ index 3d20c523cbf6666099f3210c86330078fcc46e21..cdf0e494c460a9cdbc5aa38fc9243485 #. Description of setting with label #13360 "Automatically generate thumbnails" #: system/settings/settings.xml -@@ -19633,3 +19637,8 @@ msgstr "" +@@ -19669,3 +19673,8 @@ msgstr "" msgctxt "#38206" msgid "Max" msgstr "" @@ -53022,7 +53023,7 @@ index 3d20c523cbf6666099f3210c86330078fcc46e21..cdf0e494c460a9cdbc5aa38fc9243485 +msgid "Show EXIF picture information" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 8f62f7ca494ea5b3322653f0a2b9431ebd54c7ea..348763a80a035ba2fb0b8e6a25573606c2e2688e 100644 +index 0418bee8ed9df4aa9796d4c88bf904a4a8736e71..b3e28716a7d7023b2d54528d5cb7e77ad755378b 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -1180,6 +1180,11 @@ @@ -53112,20 +53113,20 @@ index 0829f6b15207bf0b8f2e4a699600b46427fe6267..432a23ce6b501fa4f3fad1f4ecff9f19 static const std::string SETTING_PICTURES_SHOWVIDEOS; static const std::string SETTING_PICTURES_DISPLAYRESOLUTION; -From a7c1c2da5832e5f0246f1994e2d957892db9caba Mon Sep 17 00:00:00 2001 +From e58fcd0f702421a4ab484bf058c1ef74769dcf10 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Jun 2016 14:46:01 +0100 -Subject: [PATCH 63/65] ffmpeg: hacky fix for files with GMC +Subject: [PATCH 63/69] ffmpeg: hacky fix for files with GMC --- xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 3e271f12e1862552467ee7f905fb992b77d92178..6d7e4668d36f6996d3a1cb9fdbed889d16259bf2 100644 +index 69d0280960422f8fc02440af56a1479c637a20d6..ea549e9532d79e8d8dab6eb4bda40c01a7314c74 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1369,8 +1369,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1409,8 +1409,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) stereoMode = GetStereoModeFromMetadata(m_pFormatContext->metadata); if (!stereoMode.empty()) st->stereo_mode = stereoMode; @@ -53137,10 +53138,10 @@ index 3e271f12e1862552467ee7f905fb992b77d92178..6d7e4668d36f6996d3a1cb9fdbed889d { if (pStream->codec->codec_id == AV_CODEC_ID_PROBE) -From d9b06184855ef0539ba08824b340275a822f2b33 Mon Sep 17 00:00:00 2001 +From ee10a7455ea1d7cdbf6259e08c56e4b5f511b22d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Jul 2016 20:39:18 +0100 -Subject: [PATCH 64/65] mmalrender: Add sharpness control +Subject: [PATCH 64/69] mmalrender: Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -53149,7 +53150,7 @@ Subject: [PATCH 64/65] mmalrender: Add sharpness control 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index cdf0e494c460a9cdbc5aa38fc9243485bf3d4d24..9b790684c1095242780b22ab3bdecc4ba7a6d39b 100644 +index a92fe4d4460cb8ae71eddc777e83be5816587638..c53855d70b6c1460c354c59ad320554247dd35b3 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -8686,7 +8686,7 @@ msgstr "" @@ -53162,7 +53163,7 @@ index cdf0e494c460a9cdbc5aa38fc9243485bf3d4d24..9b790684c1095242780b22ab3bdecc4b #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp -index 78042e65f53a4691eda80121599e06646fead29c..b029bfbaf8cbd83a5cb93823e1d5aa6bab52edd4 100644 +index 96a8e61aa22094f95385a2b45ce50c0d6d6b1fc4..a0104d9ff67402e74ea8076dd47e9e9bd11a74f1 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp @@ -403,6 +403,7 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer"), m_processThread(this, @@ -53200,10 +53201,10 @@ index 78042e65f53a4691eda80121599e06646fead29c..b029bfbaf8cbd83a5cb93823e1d5aa6b return false; diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h -index a1dd43845e65d5eba81d41fc679b837b5a3f573d..d07b16770608e772beeef0627d72dbe4cc21d6e4 100644 +index a056a25f4f74fc6be023404286e044dac9d8ca7c..5d3baa6534a2fe449990402ab805d84423fbc636 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h -@@ -135,6 +135,7 @@ protected: +@@ -133,6 +133,7 @@ protected: RENDER_STEREO_MODE m_video_stereo_mode; RENDER_STEREO_MODE m_display_stereo_mode; bool m_StereoInvert; @@ -53212,10 +53213,10 @@ index a1dd43845e65d5eba81d41fc679b837b5a3f573d..d07b16770608e772beeef0627d72dbe4 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From e02d61193a446ef76d5d272059b1475799d4daa8 Mon Sep 17 00:00:00 2001 +From a8090714ed5adc1578005d225dc745c176e48a79 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jul 2016 19:00:03 +0100 -Subject: [PATCH 65/65] rbp: Ensure processinfo values are initialised +Subject: [PATCH 65/69] rbp: Ensure processinfo values are initialised --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 ++ @@ -53223,10 +53224,10 @@ Subject: [PATCH 65/65] rbp: Ensure processinfo values are initialised 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -index 1bab467cee97cad4a05fec71f29ca72d3ca93581..1a7bdf27c66c3df5496fff8113722c312f5fb209 100644 +index 654a927a0d4cbf877a3bb2616d62f46a63e7cadb..2c5144c44403de9d8ddea7cfbb0c7f8356b81784 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -@@ -590,6 +590,8 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) +@@ -598,6 +598,8 @@ bool CMMALVideo::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) m_speed = DVD_PLAYSPEED_NORMAL; m_processInfo.SetVideoDecoderName(m_pFormatName, true); @@ -53236,10 +53237,10 @@ index 1bab467cee97cad4a05fec71f29ca72d3ca93581..1a7bdf27c66c3df5496fff8113722c31 return true; } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index 6cd7d243d0fbea08c33e81edb5a51ab402bd110d..eee6cc67f0f0606714bbd025a232de6bf924b992 100644 +index f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c..e653f1a37a275f61698969bb2f79f6e4689cee18 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -@@ -729,9 +729,6 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f +@@ -739,9 +739,6 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f m_bAllowFullscreen = false; // only allow on first configure } @@ -53249,7 +53250,7 @@ index 6cd7d243d0fbea08c33e81edb5a51ab402bd110d..eee6cc67f0f0606714bbd025a232de6b unsigned int iDisplayWidth = width; unsigned int iDisplayHeight = height; -@@ -743,6 +740,8 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f +@@ -753,6 +750,8 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f m_fFrameRate = DVD_TIME_BASE / CDVDCodecUtils::NormalizeFrameduration((double)DVD_TIME_BASE / framerate); m_processInfo.SetVideoFps(m_fFrameRate); @@ -53258,3 +53259,453 @@ index 6cd7d243d0fbea08c33e81edb5a51ab402bd110d..eee6cc67f0f0606714bbd025a232de6b CLog::Log(LOGDEBUG,"%s - change configuration. video:%dx%d. framerate: %4.2f. %dx%d format: BYPASS", __FUNCTION__, video_width, video_height, m_fFrameRate, iDisplayWidth, iDisplayHeight); + +From 8beb862b6f040ea725341f06f31dcbfb4d5bbbfa Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 15 Sep 2016 22:13:16 +0100 +Subject: [PATCH 66/69] MMAL: Report deinterlace method to processinfo overlay + +--- + .../VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 11 ++++++++++ + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h | 3 +++ + .../VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp | 16 +++++++++++++-- + .../cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h | 5 ++++- + .../VideoRenderers/HwDecRender/MMALRenderer.cpp | 24 +++++++++++++++++----- + .../VideoRenderers/HwDecRender/MMALRenderer.h | 10 +++++---- + 6 files changed, 57 insertions(+), 12 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +index 2c5144c44403de9d8ddea7cfbb0c7f8356b81784..d6edbbaa094d6c8fb1a1cb1ce334f30887ab63c7 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +@@ -81,9 +81,20 @@ CMMALVideoBuffer::~CMMALVideoBuffer() + CLog::Log(LOGDEBUG, "%s::%s %p", CLASSNAME, __func__, this); + } + ++void CMMALVideoBuffer::SetVideoDeintMethod(std::string method) ++{ ++ if (m_omv) ++ m_omv->SetVideoDeintMethod(method); ++} ++ + #undef CLASSNAME + #define CLASSNAME "CMMALVideo" + ++void CMMALVideo::SetVideoDeintMethod(std::string method) ++{ ++ m_processInfo.SetVideoDeintMethod(method); ++} ++ + CMMALVideo::CMMALVideo(CProcessInfo &processInfo) : CDVDVideoCodec(processInfo) + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +index d39dc1ded1511e08556ed1129f58b23df9b1dbdd..68b5df97176abdbd1974561703a260625d39b37d 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +@@ -59,6 +59,7 @@ public: + float m_aspect_ratio; + MMALState m_state; + bool m_rendered; ++ virtual void SetVideoDeintMethod(std::string method) = 0; + const char *GetStateName() { + static const char *names[] = { "MMALStateNone", "MMALStateHWDec", "MMALStateFFDec", "MMALStateDeint", }; + if ((size_t)m_state < vcos_countof(names)) +@@ -79,6 +80,7 @@ public: + CMMALVideoBuffer(CMMALVideo *dec, std::shared_ptr pool); + virtual ~CMMALVideoBuffer(); + CMMALVideo *m_omv; ++ void SetVideoDeintMethod(std::string method); + protected: + std::shared_ptr m_pool; + }; +@@ -106,6 +108,7 @@ public: + void dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer); + void dec_control_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer); + void dec_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer); ++ void SetVideoDeintMethod(std::string method); + + protected: + void QueryCodec(void); +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +index 864650d488d0f5b3dc9f89f01aa5c3b845b92564..932f461b4abd250bf7ecc85696ae6c43a591dc27 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +@@ -42,8 +42,8 @@ using namespace MMAL; + + #define CLASSNAME "CMMALYUVBuffer" + +-CMMALYUVBuffer::CMMALYUVBuffer(std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size) +- : m_pool(pool) ++CMMALYUVBuffer::CMMALYUVBuffer(CDecoder *omv, std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size) ++ : m_omv(omv), m_pool(pool) + { + uint32_t size_pic = 0; + m_width = width; +@@ -86,6 +86,12 @@ CMMALYUVBuffer::~CMMALYUVBuffer() + mmal_buffer_header_release(mmal_buffer); + } + ++void CMMALYUVBuffer::SetVideoDeintMethod(std::string method) ++{ ++ if (m_omv) ++ m_omv->SetVideoDeintMethod(method); ++} ++ + //----------------------------------------------------------------------------- + // MMAL Decoder + //----------------------------------------------------------------------------- +@@ -93,6 +99,11 @@ CMMALYUVBuffer::~CMMALYUVBuffer() + #undef CLASSNAME + #define CLASSNAME "CDecoder" + ++void CDecoder::SetVideoDeintMethod(std::string method) ++{ ++ m_processInfo.SetVideoDeintMethod(method); ++} ++ + CDecoder::CDecoder(CProcessInfo &processInfo) : m_processInfo(processInfo) + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) +@@ -243,6 +254,7 @@ bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixel + CLog::Log(LOGERROR, "%s::%s Failed to create pool for decoder output", CLASSNAME, __func__); + return false; + } ++ m_pool->SetDecoder(this); + + std::list deintMethods; + deintMethods.push_back(EINTERLACEMETHOD::VS_INTERLACEMETHOD_AUTO); +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +index ffc61612ff3f2fef374cde67111939e4851ccc70..b699824774067ad8566513d49816a7fba2bf21b5 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +@@ -40,10 +40,12 @@ class CGPUPool; + class CMMALYUVBuffer : public CMMALBuffer + { + public: +- CMMALYUVBuffer(std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size); ++ CMMALYUVBuffer(CDecoder *dec, std::shared_ptr pool, uint32_t mmal_encoding, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size); + virtual ~CMMALYUVBuffer(); + + CGPUMEM *gmem; ++ CDecoder *m_omv; ++ void SetVideoDeintMethod(std::string method); + private: + std::shared_ptr m_pool; + }; +@@ -62,6 +64,7 @@ public: + virtual const std::string Name() { return "mmal"; } + virtual unsigned GetAllowedReferences(); + virtual long Release(); ++ void SetVideoDeintMethod(std::string method); + + static void FFReleaseBuffer(void *opaque, uint8_t *data); + static int FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags); +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index a0104d9ff67402e74ea8076dd47e9e9bd11a74f1..a6f14d02de3162efe671316605a0f26790e41f4e 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -71,6 +71,7 @@ CMMALPool::CMMALPool(const char *component_name, bool input, uint32_t num_buffer + + m_mmal_pool = mmal_port_pool_create(port, port->buffer_num, port->buffer_size); + m_closing = false; ++ m_software = false; + m_mmal_format = 0; + m_width = 0; + m_height = 0; +@@ -207,14 +208,14 @@ CMMALBuffer *CMMALPool::GetBuffer(uint32_t timeout) + // ffmpeg requirements + uint32_t aligned_width = m_aligned_width, aligned_height = m_aligned_height; + AlignedSize(m_avctx, aligned_width, aligned_height); +- if (m_dec) ++ if (!IsSoftware()) + { +- CMMALVideoBuffer *vid = new CMMALVideoBuffer(m_dec, shared_from_this()); ++ CMMALVideoBuffer *vid = new CMMALVideoBuffer(static_cast(m_dec), shared_from_this()); + omvb = vid; + } + else + { +- MMAL::CMMALYUVBuffer *yuv = new MMAL::CMMALYUVBuffer(shared_from_this(), m_mmal_format, m_width, m_height, aligned_width, aligned_height, m_size); ++ MMAL::CMMALYUVBuffer *yuv = new MMAL::CMMALYUVBuffer(static_cast(m_dec), shared_from_this(), m_mmal_format, m_width, m_height, aligned_width, aligned_height, m_size); + if (yuv) + { + CGPUMEM *gmem = yuv->gmem; +@@ -538,10 +539,13 @@ void CMMALRenderer::Run() + if (interlace_method == VS_INTERLACEMETHOD_NONE) + { + if (m_deint_input) ++ { + DestroyDeinterlace(); ++ omvb->SetVideoDeintMethod("none"); ++ } + } + else if (m_deint_input || interlace) +- CheckConfigurationDeint(omvb->m_width, omvb->m_height, omvb->m_aligned_width, omvb->m_aligned_height, omvb->m_encoding, interlace_method); ++ CheckConfigurationDeint(omvb, interlace_method); + + if (m_deint_input) + { +@@ -1146,8 +1150,9 @@ void CMMALRenderer::DestroyDeinterlace() + m_deint = nullptr; + } + +-bool CMMALRenderer::CheckConfigurationDeint(uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t encoding, EINTERLACEMETHOD interlace_method) ++bool CMMALRenderer::CheckConfigurationDeint(CMMALBuffer *omvb, EINTERLACEMETHOD interlace_method) + { ++ uint32_t width = omvb->m_width, height = omvb->m_height, aligned_width = omvb->m_aligned_width, aligned_height = omvb->m_aligned_height, encoding = omvb->m_encoding; + MMAL_STATUS_T status; + bool sizeChanged = width != m_deint_width || height != m_deint_height || aligned_width != m_deint_aligned_width || aligned_height != m_deint_aligned_height; + bool deinterlaceChanged = interlace_method != m_interlace_method; +@@ -1267,6 +1272,15 @@ bool CMMALRenderer::CheckConfigurationDeint(uint32_t width, uint32_t height, uin + status = mmal_port_parameter_set_uint32(m_deint_input, MMAL_PARAMETER_EXTRA_BUFFERS, 6 - 5 + advanced_deinterlace ? 2:0); + if (status != MMAL_SUCCESS) + CLog::Log(LOGERROR, "%s::%s Failed to enable extra buffers on %s (status=%x %s)", CLASSNAME, __func__, m_deint_input->name, status, mmal_status_to_string(status)); ++ ++ if (advanced_deinterlace && !half_framerate) ++ omvb->SetVideoDeintMethod("adv(x2)"); ++ else if (advanced_deinterlace && half_framerate) ++ omvb->SetVideoDeintMethod("adv(x1)"); ++ else if (!advanced_deinterlace && !half_framerate) ++ omvb->SetVideoDeintMethod("bob(x2)"); ++ else if (!advanced_deinterlace && half_framerate) ++ omvb->SetVideoDeintMethod("bob(x1)"); + } + + if (m_deint_output && (sizeChanged || deinterlaceChanged || encodingChanged)) +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +index 5d3baa6534a2fe449990402ab805d84423fbc636..dda2dff2852bbd546d916d28df231ba1833c2bf8 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +@@ -62,13 +62,14 @@ public: + void ReleaseBuffer(CGPUMEM *gmem); + void Close(); + void Prime(); +- void SetDecoder(CMMALVideo *dec) { m_dec = dec; } ++ void SetDecoder(void *dec) { m_dec = dec; } + void SetFormat(uint32_t mmal_format, uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t size, AVCodecContext *avctx) +- { m_mmal_format = mmal_format; m_width = width; m_height = height; m_aligned_width = aligned_width; m_aligned_height = aligned_height; m_size = size, m_avctx = avctx; } ++ { m_mmal_format = mmal_format; m_width = width; m_height = height; m_aligned_width = aligned_width; m_aligned_height = aligned_height; m_size = size, m_avctx = avctx; m_software = true; } ++ bool IsSoftware() { return m_software; } + protected: + uint32_t m_mmal_format, m_width, m_height, m_aligned_width, m_aligned_height, m_size; + AVCodecContext *m_avctx; +- CMMALVideo *m_dec; ++ void *m_dec; + MMALState m_state; + bool m_input; + MMAL_POOL_T *m_mmal_pool; +@@ -76,6 +77,7 @@ protected: + CCriticalSection m_section; + std::deque m_freeBuffers; + bool m_closing; ++ bool m_software; + }; + + class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable +@@ -155,7 +157,7 @@ protected: + uint32_t m_deint_width, m_deint_height, m_deint_aligned_width, m_deint_aligned_height; + MMAL_FOURCC_T m_deinterlace_out_encoding; + void DestroyDeinterlace(); +- bool CheckConfigurationDeint(uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t encoding, EINTERLACEMETHOD interlace_method); ++ bool CheckConfigurationDeint(CMMALBuffer *omvb, EINTERLACEMETHOD interlace_method); + + bool CheckConfigurationVout(uint32_t width, uint32_t height, uint32_t aligned_width, uint32_t aligned_height, uint32_t encoding); + uint32_t m_vsync_count; + +From f796ab21a81297e11aaaccc30af8cd5ee1ae5daf Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 16 Sep 2016 14:22:18 +0100 +Subject: [PATCH 67/69] MMALRenderer: Ensure updated aspect ratio is seen in + the case of a single still frame + +--- + xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index a6f14d02de3162efe671316605a0f26790e41f4e..1da756eaf2c422e94b05cae0db33a697e8c17d97 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -387,6 +387,7 @@ bool CMMALRenderer::CheckConfigurationVout(uint32_t width, uint32_t height, uint + Create(); + } + } ++ SetVideoRect(m_sourceRect, m_destRect); + return true; + } + +@@ -748,6 +749,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + // we only want to upload frames once + if (omvb && omvb->m_rendered) + { ++ SetVideoRect(m_sourceRect, m_destRect); + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s - MMAL: clear:%d flags:%x alpha:%d source:%d omvb:%p mmal:%p mflags:%x skipping", CLASSNAME, __func__, clear, flags, alpha, source, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags); + goto exit; +@@ -770,7 +772,6 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha) + CLog::Log(LOGDEBUG, "%s::%s - bypass: clear:%d flags:%x alpha:%d source:%d format:%d", CLASSNAME, __func__, clear, flags, alpha, source, m_format); + goto exit; + } +- SetVideoRect(m_sourceRect, m_destRect); + + if (omvb && omvb->mmal_buffer) + { + +From d559194b642cabccd944f6b34b11ee68d15c4096 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 16 Sep 2016 15:37:07 +0100 +Subject: [PATCH 68/69] MMAL: Indicate when picture came from still frame so + advanced deinterlace can be disabled + +MMAL Advanced deinterlace requires 3 frames of context so does not produce any output +from a dvd menu still. + +We cannot easily submit the same frame multiple times (the MMAL buffer headers contain +linked list pointers), so the simple solution is to switch to the simpler +deinterlace that does not require context for stills. +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +-- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h | 1 + + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp | 3 ++- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h | 3 ++- + .../VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp | 10 ++++++++++ + 6 files changed, 17 insertions(+), 5 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index 6cd68f5068956ea23b2b2da7069cf46b4d756874..25def196c39cbf4ccae04f48fb04b8fbedab3140 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -244,7 +244,7 @@ enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat(struct AVCodecContext * avctx + #ifdef HAS_MMAL + if (*cur == AV_PIX_FMT_YUV420P) + { +- MMAL::CDecoder* dec = new MMAL::CDecoder(ctx->m_processInfo); ++ MMAL::CDecoder* dec = new MMAL::CDecoder(ctx->m_processInfo, ctx->m_hints); + if(dec->Open(avctx, ctx->m_pCodecContext, *cur, ctx->m_uSurfacesCount)) + { + ctx->m_processInfo.SetVideoPixelFormat(pixFmtName ? pixFmtName : ""); +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +index d6edbbaa094d6c8fb1a1cb1ce334f30887ab63c7..bb0b54d7178bed82c9ad73e6b86a88c5b0a6777d 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +@@ -269,8 +269,6 @@ void CMMALVideo::dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buf + omvb->m_aligned_width = m_decoded_aligned_width; + omvb->m_aligned_height = m_decoded_aligned_height; + omvb->m_aspect_ratio = m_aspect_ratio; +- if (m_hints.stills) // disable interlace in dvd stills mode +- omvb->mmal_buffer->flags &= ~MMAL_BUFFER_HEADER_VIDEO_FLAG_INTERLACED; + omvb->m_encoding = m_dec_output->format->encoding; + { + CSingleLock lock(m_output_mutex); +@@ -852,6 +850,7 @@ bool CMMALVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture) + pDvdVideoPicture->iFlags, buffer->mmal_buffer->flags, pDvdVideoPicture->MMALBuffer, pDvdVideoPicture->MMALBuffer->mmal_buffer); + assert(!(buffer->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_DECODEONLY)); + buffer->mmal_buffer->flags &= ~MMAL_BUFFER_HEADER_FLAG_USER3; ++ buffer->m_stills = m_hints.stills; + } + else + { +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +index 68b5df97176abdbd1974561703a260625d39b37d..3ab06d21802855e3673c1a6065c1f5b1df60bc95 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h +@@ -59,6 +59,7 @@ public: + float m_aspect_ratio; + MMALState m_state; + bool m_rendered; ++ bool m_stills; + virtual void SetVideoDeintMethod(std::string method) = 0; + const char *GetStateName() { + static const char *names[] = { "MMALStateNone", "MMALStateHWDec", "MMALStateFFDec", "MMALStateDeint", }; +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +index 932f461b4abd250bf7ecc85696ae6c43a591dc27..408fef32a878a508b17936733e8c8bf1d3ba298e 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.cpp +@@ -104,7 +104,7 @@ void CDecoder::SetVideoDeintMethod(std::string method) + m_processInfo.SetVideoDeintMethod(method); + } + +-CDecoder::CDecoder(CProcessInfo &processInfo) : m_processInfo(processInfo) ++CDecoder::CDecoder(CProcessInfo &processInfo, CDVDStreamInfo &hints) : m_processInfo(processInfo), m_hints(hints) + { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s - create %p", CLASSNAME, __FUNCTION__, this); +@@ -301,6 +301,7 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture + assert(picture->MMALBuffer->mmal_buffer); + picture->MMALBuffer->mmal_buffer->data = (uint8_t *)gmem->m_vc_handle; + picture->MMALBuffer->mmal_buffer->alloc_size = picture->MMALBuffer->mmal_buffer->length = gmem->m_numbytes; ++ picture->MMALBuffer->m_stills = m_hints.stills; + + // need to flush ARM cache so GPU can see it (HEVC will have already done this) + if (avctx->codec_id != AV_CODEC_ID_HEVC) +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +index b699824774067ad8566513d49816a7fba2bf21b5..693eddd6b69719887bbead05a81a551d40feb979 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALFFmpeg.h +@@ -54,7 +54,7 @@ class CDecoder + : public CDVDVideoCodecFFmpeg::IHardwareDecoder + { + public: +- CDecoder(CProcessInfo& processInfo); ++ CDecoder(CProcessInfo& processInfo, CDVDStreamInfo &hints); + virtual ~CDecoder(); + virtual bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces); + virtual int Decode(AVCodecContext* avctx, AVFrame* frame); +@@ -76,6 +76,7 @@ protected: + CCriticalSection m_section; + std::shared_ptr m_pool; + enum AVPixelFormat m_fmt; ++ CDVDStreamInfo m_hints; + }; + + }; +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index 1da756eaf2c422e94b05cae0db33a697e8c17d97..6aff7bdb5117fdbfc4f7e15630c4edbaa880d960 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -528,6 +528,16 @@ void CMMALRenderer::Run() + if (interlace_method == VS_INTERLACEMETHOD_AUTO) + interlace_method = VS_INTERLACEMETHOD_MMAL_ADVANCED; + bool interlace = (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_VIDEO_FLAG_INTERLACED) ? true:false; ++ ++ // advanced deinterlace requires 3 frames of context so disable when showing stills ++ if (omvb->m_stills) ++ { ++ if (interlace_method == VS_INTERLACEMETHOD_MMAL_ADVANCED) ++ interlace_method = VS_INTERLACEMETHOD_MMAL_BOB; ++ if (interlace_method == VS_INTERLACEMETHOD_MMAL_ADVANCED_HALF) ++ interlace_method = VS_INTERLACEMETHOD_MMAL_BOB_HALF; ++ } ++ + // we don't keep up when running at 60fps in the background so switch to half rate + if (!g_graphicsContext.IsFullScreenVideo()) + { + +From cbb231744fd6eb5256839f8da47696faa00644b0 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 16 Sep 2016 19:18:34 +0100 +Subject: [PATCH 69/69] RenderManager: Bypass renderers need updating even when + renderer has no frame + +Otherwise subs and overlays don't get updated properly. +See: http://forum.kodi.tv/showthread.php?tid=269814&pid=2416492#pid2416492 +--- + xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +index 1232a1bd084258add5298e197be6b2fad5883d6d..12db650a24d2c1a7793c48cf6e887618d9c012e3 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +@@ -351,6 +351,9 @@ bool CRenderManager::HasFrame() + if (!IsConfigured()) + return false; + ++ if (m_format == RENDER_FMT_BYPASS) ++ return true; ++ + CSingleLock lock(m_presentlock); + if (m_presentstep == PRESENT_READY || + m_presentstep == PRESENT_FRAME || m_presentstep == PRESENT_FRAME2)