diff --git a/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch b/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch index e705379dde..4cfbd9afd6 100644 --- a/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch +++ b/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch @@ -1,7 +1,7 @@ -From b9eceb6796f5beba0ad03b55fd20933a351e8a8e Mon Sep 17 00:00:00 2001 +From 17e3636011a0d30f0d9d0824fb8a672ac81664e7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 01/46] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/48] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -25,10 +25,36 @@ index 2faceea..889d7a2 100644 g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From 560bcc821fc5ceec473bfa41b36fdc213bd6e32b Mon Sep 17 00:00:00 2001 +From 2ac1dade38d81b8f358e5dd9710caca339a5603a Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 8 Mar 2014 15:36:06 +0000 +Subject: [PATCH 03/48] [hifiberry] Hack: force it to be recognised as IEC958 + capable to enable passthrough options + +--- + xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +index e22db7a..0120bd5 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +@@ -1342,6 +1342,10 @@ void CAESinkALSA::EnumerateDevice(AEDeviceInfoList &list, const std::string &dev + if (snd_card_get_name(cardNr, &cardName) == 0) + info.m_displayName = cardName; + ++ // hack: hifiberry digi doesn't correctly report as iec958 device. Needs fixing in kernel driver ++ if (info.m_displayName == "snd_rpi_hifiberry_digi") ++ info.m_deviceType = AE_DEVTYPE_IEC958; ++ + if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && + info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") + { + +From bcb771d391629dc9033eeb1e5c08942993b851f9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 04/46] Improved file buffering in CArchive +Subject: [PATCH 04/48] 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 @@ -88,20 +114,20 @@ index 6ed0f8f..8506d95 100644 } else -From fca0641cac1a00faffe3d075d91fd987c9a8fbd1 Mon Sep 17 00:00:00 2001 +From 319891a3aec45c12afb57f812cbcc1108476fdac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 05/46] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 05/48] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index fd21bc2..6d6da33 100644 +index dd9e10a..619f5d9 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3416,7 +3416,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) +@@ -3423,7 +3423,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) hint.aspect = aspect; hint.forced_aspect = true; } @@ -112,10 +138,10 @@ index fd21bc2..6d6da33 100644 else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { -From 161cfe110a110062f52e40fdd2f7658f7805cee7 Mon Sep 17 00:00:00 2001 +From e97622281318361374a711d681b4620c66d02b4f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 06/46] filesystem: Make support of browsing into archives +Subject: [PATCH 06/48] 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. @@ -133,10 +159,10 @@ We'll let people who don't use archives disable it manually 3 files changed, 18 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index cb40d52..953b07c 100644 +index a751dc2..c44d399 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16606,6 +16606,15 @@ msgstr "" +@@ -16585,6 +16585,15 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -198,10 +224,10 @@ index 5af92e7..568a1a8 100644 { // XBMC Smart playlist - just XML renamed to XSP // read the name of the playlist in -From b2b07e83668cca34845f48d9de812350f43d93d3 Mon Sep 17 00:00:00 2001 +From 7bbb7d9b933842bd867aec28320a443b8126ddfe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 08/46] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 08/48] [rbp] Make cachemembuffersize default depend on memory size --- @@ -303,10 +329,10 @@ index 2e3282c..d1606a2 100644 } -From d7b43a46c9a7c30494416e0c711edeba1a0d3b93 Mon Sep 17 00:00:00 2001 +From 1a49c26c7a386d032c4c643be69286899ebf0bf8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 10/46] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 10/48] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -314,7 +340,7 @@ Subject: [PATCH 10/46] [settings] Experiment: Report DESKTOP resolution in 1 file changed, 3 insertions(+) diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp -index 666645c..c3dc72c 100644 +index 4376463..fc4e5ea 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -674,6 +674,9 @@ void CDisplaySettings::SettingOptionsResolutionsFiller(const CSetting *setting, @@ -328,10 +354,10 @@ index 666645c..c3dc72c 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 7a435977a8b962bc6cc9257f35f0878796165674 Mon Sep 17 00:00:00 2001 +From 2c879980401504485d1e5304331e36ec60f41afb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 11/46] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 11/48] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -360,10 +386,10 @@ index bda7430..68fc647 100644 SetResolutionString(m_desktopRes); -From bcd2ffe88981e8d46c9b36555a013378a0400425 Mon Sep 17 00:00:00 2001 +From 181f324a483872faae51f75482e6fc679d6727a3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 12/46] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 12/48] [dvdplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -388,10 +414,10 @@ Needed updated firmware 9 files changed, 91 insertions(+), 7 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 953b07c..db2c0a5 100644 +index c44d399..27c6e6d 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -6357,7 +6357,22 @@ msgctxt "#13459" +@@ -6321,7 +6321,22 @@ msgctxt "#13459" msgid "Use OMXPlayer for decoding of video files." msgstr "" @@ -415,7 +441,7 @@ index 953b07c..db2c0a5 100644 #: system/settings/settings.xml msgctxt "#13505" -@@ -16652,3 +16667,10 @@ msgstr "" +@@ -16631,3 +16646,10 @@ msgstr "" msgctxt "#38016" msgid "%d fps" msgstr "" @@ -655,10 +681,10 @@ index 7df1bf7..732b69d 100644 float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From e6bc21dbc556ff18da07e22b3064fbb219462678 Mon Sep 17 00:00:00 2001 +From d44ace091afc94280393513c87572197c1281c59 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 13/46] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 13/48] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -666,10 +692,10 @@ Subject: [PATCH 13/46] [dvdplayer] exerimental: don't raise priority of audio 1 file changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 6d6da33..aed1550 100644 +index 619f5d9..ff03bc6 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3401,7 +3401,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) +@@ -3408,7 +3408,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) m_dvdPlayerAudio->SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); /* audio normally won't consume full cpu, so let it have prio */ @@ -682,10 +708,10 @@ index 6d6da33..aed1550 100644 } -From 4de8f510f317ab41c05cc78ee8a914af0f8e4387 Mon Sep 17 00:00:00 2001 +From d41f66c5afab06eb4a64489a1a9c1e5c87a0d926 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 14/46] [audio] Add settings option to boost centre channel +Subject: [PATCH 14/48] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -703,10 +729,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 45 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index db2c0a5..63f78a1 100644 +index 27c6e6d..2d4efe2 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16674,3 +16674,17 @@ msgctxt "#38006" +@@ -16653,3 +16653,17 @@ msgctxt "#38006" msgid "Audio has to stay in sync, this can either be done by resampling, or adjusting the PLL" msgstr "" @@ -807,10 +833,10 @@ index f99c0e6..1911189 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From fb43e160b3373ec9c3ed53e67dbcc907706a233d Mon Sep 17 00:00:00 2001 +From 54dde47ac98e2cf336610ab981ab8ed13bc2ecac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 15/46] [rbp] Default extract thumbnails to false +Subject: [PATCH 15/48] [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 @@ -840,10 +866,10 @@ index 50fe36a..a54a4c4 100644
-From 42afb7e432619c25a0c6389636784117c049c967 Mon Sep 17 00:00:00 2001 +From 43233930f444cfae66fd6e1eec171a2652a63531 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 20/46] [dvdplayer] Add lock for player creation +Subject: [PATCH 20/48] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -851,7 +877,7 @@ Subject: [PATCH 20/46] [dvdplayer] Add lock for player creation 2 files changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index aed1550..ff397f7 100644 +index ff03bc6..2b3baf7 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -517,6 +517,7 @@ int CSelectionStreams::CountSource(StreamType type, StreamSource source) const @@ -870,7 +896,7 @@ index aed1550..ff397f7 100644 if (!m_players_created) return; delete m_dvdPlayerVideo; -@@ -4268,6 +4270,7 @@ double CDVDPlayer::GetQueueTime() +@@ -4275,6 +4277,7 @@ double CDVDPlayer::GetQueueTime() void CDVDPlayer::GetVideoStreamInfo(SPlayerVideoStreamInfo &info) { @@ -889,10 +915,10 @@ index 2a4aea5..f74e71d 100644 + CCriticalSection m_players_lock; }; -From 8cc3e50eccf8fbfb00d35f8238f8bc7ee49c159b Mon Sep 17 00:00:00 2001 +From 37d8b3208029031b46ab432aa24045e502cd4b2a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 21/46] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 21/48] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -901,7 +927,7 @@ In dvd stills mode give it a chance to return pictures that weren't ready when f 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index a8add39..9f1892b 100644 +index f909bb5..008cedf 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -314,7 +314,8 @@ void CDVDPlayerVideo::Process() @@ -969,10 +995,10 @@ index a8add39..9f1892b 100644 if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From 2b43fd15eeb8c63853efbd4bfbfb40d6e3d4d0d0 Mon Sep 17 00:00:00 2001 +From 3f34b6c3eb68ae3867c9b9475a961d6c5e4c5add Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 22/46] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 22/48] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -995,10 +1021,10 @@ index fcdd063..16f0c89 100644 } -From a878a035369d1f0a74474d1a22801c256a876dd8 Mon Sep 17 00:00:00 2001 +From f9f26d380d93aac6c4d882a75d2de5127dd9e496 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 23/46] logging: Add microsecond timer to log messages +Subject: [PATCH 23/48] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -1051,10 +1077,10 @@ index 3443f12..31c4a99 100644 levelNames[logLevel]) + strData; -From 1e2fcfee503416f290d7bb20060bf07f0c5a705e Mon Sep 17 00:00:00 2001 +From b4380166f33508dabe7ab5acf99359901673ed56 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 24/46] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 24/48] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -1128,10 +1154,10 @@ index 68fc647..c80114e 100644 if(!m_fixedMode && GETFLAGS_GROUP(res.dwFlags) && GETFLAGS_MODE(res.dwFlags)) -From 03136951f373c285114d45ec73a07c11a62152c9 Mon Sep 17 00:00:00 2001 +From b5ae9d7dd86f5e5b55d21c18d31ae298bf37855f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 25/46] Fix for UI not showing both extractflags and +Subject: [PATCH 25/48] Fix for UI not showing both extractflags and extractthumb --- @@ -1140,10 +1166,10 @@ Subject: [PATCH 25/46] Fix for UI not showing both extractflags and 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 5c31c6f..c48b256 100644 +index c8ec10d..2f4653c 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -11023,7 +11023,7 @@ msgstr "" +@@ -11018,7 +11018,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -1152,7 +1178,7 @@ index 5c31c6f..c48b256 100644 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -14573,7 +14573,7 @@ msgstr "" +@@ -14552,7 +14552,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36178" @@ -1161,7 +1187,7 @@ index 5c31c6f..c48b256 100644 msgstr "" #. Description of setting "Videos -> File lists -> Replace file names with library titles" with label #20419 -@@ -14585,7 +14585,7 @@ msgstr "" +@@ -14564,7 +14564,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36180" @@ -1170,7 +1196,7 @@ index 5c31c6f..c48b256 100644 msgstr "" #: system/settings/settings.xml -@@ -16703,3 +16703,8 @@ msgstr "" +@@ -16682,3 +16682,8 @@ msgstr "" msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -1195,10 +1221,10 @@ index f6ad877..d1acdae 100644 -From 8c257d47e97ed8a5cb78604746247e7b98693d89 Mon Sep 17 00:00:00 2001 +From 298b0358d0e28365503fd654984e9557bd51c13c Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 26/46] Disable autoscrolling while on screensaver and while +Subject: [PATCH 26/48] Disable autoscrolling while on screensaver and while opening streams. --- @@ -1211,10 +1237,10 @@ Subject: [PATCH 26/46] 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 11564aa..48536b9 100644 +index 694e781..28f625d 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -4951,3 +4951,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -4974,3 +4974,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -1229,7 +1255,7 @@ index 11564aa..48536b9 100644 + return onBlackDimScreenSaver || openingStreams; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index f9c636e..487716a 100644 +index 4b50ab2..07a5da2 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h @@ -389,6 +389,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs @@ -1242,7 +1268,7 @@ index f9c636e..487716a 100644 virtual bool OnSettingsSaving() const; diff --git a/xbmc/guilib/GUIFadeLabelControl.cpp b/xbmc/guilib/GUIFadeLabelControl.cpp -index ac3cd94..5b8859d 100644 +index 9eadbe4..b2b5f13 100644 --- a/xbmc/guilib/GUIFadeLabelControl.cpp +++ b/xbmc/guilib/GUIFadeLabelControl.cpp @@ -20,6 +20,8 @@ @@ -1254,7 +1280,7 @@ index ac3cd94..5b8859d 100644 using namespace std; CGUIFadeLabelControl::CGUIFadeLabelControl(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, bool scrollOut, unsigned int timeToDelayAtEnd, bool resetOnLabelChange) -@@ -104,7 +106,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d +@@ -102,7 +104,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d m_lastLabel = m_currentLabel; } @@ -1329,10 +1355,10 @@ index 0d5b3f7..6d23024 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 4425b2be0ad1e5c3ea6eeddbd91f59046ed361ea Mon Sep 17 00:00:00 2001 +From 677dce3d12e4c92e69defa888f9e835ae16c1e0c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 27/46] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 27/48] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -1427,10 +1453,10 @@ index ab298b2..10c5ee0 100644 } catch(...) { -From bdd96e0b98ef05db5e8067a0a802246e0d3f6f36 Mon Sep 17 00:00:00 2001 +From 94c85f7243d3296e8f452b62c3b9b0e72efaae53 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH 28/46] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 28/48] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ @@ -1462,10 +1488,10 @@ index 4c363cf..b90237b 100644 { // If dvd is an mpeg2 and hint.stills -From ce8914a9b4816a738606174e8ee4087b0466923e Mon Sep 17 00:00:00 2001 +From 34506486ca9b49acf5e0dbb74d16d41dfa2a2e97 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 31 Mar 2015 17:31:47 +0100 -Subject: [PATCH 29/46] [mmalrenderer] Add SetCodecControl function and prefer +Subject: [PATCH 29/48] [mmalrenderer] Add SetCodecControl function and prefer to return pictures when renderer is low (disabled) --- @@ -1536,10 +1562,10 @@ index 51a64d1..bde8c06 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; -From d93b8a58ddcac183150087703bd7a32c061e510a Mon Sep 17 00:00:00 2001 +From 881ac10c5d55c772f75da9f22a806c8594448d35 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 30/46] Load OSD dialogs on startup. +Subject: [PATCH 30/48] 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. @@ -1578,7 +1604,7 @@ index 1670190..329a3b8 100644 } diff --git a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp -index 5e091eb..35b417f 100644 +index fcbafae..6ab155e 100644 --- a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp @@ -62,7 +62,9 @@ using namespace std; @@ -1619,7 +1645,7 @@ index 7316936..7033124 100644 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index eb814ca..ae4c69f 100644 +index 9f25fa5..3ece45b 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp @@ -63,7 +63,9 @@ using namespace std; @@ -1634,10 +1660,10 @@ index eb814ca..ae4c69f 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 25c18140c09a346a0e9aa98699bcb6e02bda11b2 Mon Sep 17 00:00:00 2001 +From 3ab44df9049a04fcd4b0b19c0d9dd64e43d4a96b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 7 Mar 2015 22:46:21 +0000 -Subject: [PATCH 31/46] configure: Add raspberry-pi2 platform +Subject: [PATCH 31/48] configure: Add raspberry-pi2 platform --- configure.ac | 14 +++++++-- @@ -1649,10 +1675,10 @@ Subject: [PATCH 31/46] configure: Add raspberry-pi2 platform 6 files changed, 44 insertions(+), 22 deletions(-) diff --git a/configure.ac b/configure.ac -index 760e873..2b8660e 100644 +index 8c1e412..688cac4 100644 --- a/configure.ac +++ b/configure.ac -@@ -750,8 +750,17 @@ case $use_platform in +@@ -744,8 +744,17 @@ case $use_platform in raspberry-pi) target_platform=target_raspberry_pi use_neon=no @@ -1669,9 +1695,9 @@ index 760e873..2b8660e 100644 +if test "$target_platform" = "target_raspberry_pi" ; then + use_arch="arm" use_hardcoded_tables="yes" + use_openmax=no ARCH="arm" - AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer]) -@@ -759,8 +768,7 @@ case $use_platform in +@@ -754,8 +763,7 @@ case $use_platform in USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" @@ -1679,8 +1705,8 @@ index 760e873..2b8660e 100644 -esac +fi - XBMC_SETUP_ARCH_DEFINES() - + if test "$host_vendor" = "apple"; then + use_avahi=no diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 index 0b66a82..adb8e97 100644 --- a/m4/xbmc_arch.m4 @@ -1811,10 +1837,10 @@ index cdc2fe4..379bd1d 100644 set(CMAKE_SYSTEM_NAME Linux) endif() -From b8fcca27e22ea37429e7a296968af3c0c611f931 Mon Sep 17 00:00:00 2001 +From ba7b7df51079f7962249fab1e606582cd6456d8b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 32/46] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 32/48] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -1870,10 +1896,10 @@ index 212a89b..dd509ea 100644 unsigned int iDisplayHeight = height; -From 6f86813ee99e5c019dc2eae80b4fd5877f265318 Mon Sep 17 00:00:00 2001 +From 7bafdf76f00ce67de290b0ae8178a44b94b817a7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 33/46] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 33/48] [graphics] Allow switching to a more suitable 3D resolution --- @@ -1959,10 +1985,10 @@ index a8fd03e..8501e58 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From bd09bf6d6894e58361f24e703963ac24810ff9a0 Mon Sep 17 00:00:00 2001 +From 5f3ce43d7a1b0692544f5f5224240d5732569f10 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 34/46] [3D] Support switching to 3D resolutions +Subject: [PATCH 34/48] [3D] Support switching to 3D resolutions Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes. Also remove the old code that treated 3D modes differently when assigning a score. @@ -2044,10 +2070,10 @@ index bfafab7..84e6261 100644 return current; } -From e89f3576f0192f6a0827016fee5d5967f502a3e5 Mon Sep 17 00:00:00 2001 +From b902e783ffd525d2e8f94eb4621416cf10fbe345 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 35/46] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 35/48] [graphics] Make pixel ratio for 3d modes consistent Note: Use the stored stereo flags from lists of resolutions. Use current stereo mode for current resolution. @@ -2250,10 +2276,10 @@ index c80114e..80c05d2 100644 AddUniqueResolution(res2, resolutions); -From 018e123537f5a75f92ff3eb1e71ee72712011d2e Mon Sep 17 00:00:00 2001 +From 583dfaeed63712cebba7528609d9e87009a9d926 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2015 17:05:18 +0000 -Subject: [PATCH 36/46] [players] Add settings option to enable MVC support +Subject: [PATCH 36/48] [players] Add settings option to enable MVC support --- addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ @@ -2263,10 +2289,10 @@ Subject: [PATCH 36/46] [players] Add settings option to enable MVC support 4 files changed, 27 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c48b256..8ecf1bf 100644 +index 2f4653c..c4c5851 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16704,6 +16704,16 @@ msgctxt "#38052" +@@ -16683,6 +16683,16 @@ msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -2334,10 +2360,10 @@ index e4f6d86..5d324f4 100644 case AV_CODEC_ID_MPEG4: // (role name) video_decoder.mpeg4 -From 3879afb94401608ee5985a8daabd53ade2e114e5 Mon Sep 17 00:00:00 2001 +From 63c023ab0d6578085900b73f40e33080b980855b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH 37/46] [mmalrenderer] Switch to using transform flags for 3d +Subject: [PATCH 37/48] [mmalrenderer] Switch to using transform flags for 3d modes --- @@ -2351,10 +2377,10 @@ Subject: [PATCH 37/46] [mmalrenderer] Switch to using transform flags for 3d 7 files changed, 75 insertions(+), 130 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 8ecf1bf..aefe898 100644 +index c4c5851..0f5710d 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16714,6 +16714,16 @@ msgctxt "#38111" +@@ -16693,6 +16693,16 @@ msgctxt "#38111" msgid "This option decodes frames for both eyes of MVC video. Disabling may improve performance if you don't require 3D" msgstr "" @@ -2716,10 +2742,10 @@ index 80c05d2..ae85484 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); -From d4ecbc3818f8cc6c868b757a63a4aa59310363dc Mon Sep 17 00:00:00 2001 +From abb123a443409eaae5e6e92c7b04a759b0934c48 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 40/46] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 40/48] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -2727,10 +2753,10 @@ Subject: [PATCH 40/46] [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 48536b9..e83cc9f 100644 +index 28f625d..9b6d3dc 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2486,7 +2486,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2501,7 +2501,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 @@ -2739,7 +2765,7 @@ index 48536b9..e83cc9f 100644 fps = CSettings::Get().GetInt("videoplayer.limitguiupdate"); #endif -@@ -2499,6 +2499,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2514,6 +2514,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -2749,10 +2775,10 @@ index 48536b9..e83cc9f 100644 g_windowManager.FrameMove(); } -From 0af66e97c3563a209f41f45c01508747ca2e7788 Mon Sep 17 00:00:00 2001 +From 5c78fd84ab872c7811d1786942abfcdd810821d1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH 41/46] [mmalrenderer] Add sharpness control +Subject: [PATCH 41/48] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -2761,10 +2787,10 @@ Subject: [PATCH 41/46] [mmalrenderer] 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 a622e73..9341924 100644 +index c1a9a98..cd6ef74 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -7524,7 +7524,7 @@ msgstr "" +@@ -7503,7 +7503,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" @@ -2824,17 +2850,17 @@ index 1404fb3..9bced7e 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From 2f8c52cd11f50ceaa378aec35a5d92c7327bf9a7 Mon Sep 17 00:00:00 2001 +From d02c554b8bc5d23ce1a0352a2a727ca1e5f9180b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH 42/46] [dvdplayer] Add back required include +Subject: [PATCH 42/48] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index 9f1892b..933d905 100644 +index 008cedf..ea6b7ab 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -33,6 +33,7 @@ @@ -2846,10 +2872,10 @@ index 9f1892b..933d905 100644 #include "guilib/GraphicContext.h" #include -From 0eca10f4cd6f53f8224ed32fab35cd96c423548f Mon Sep 17 00:00:00 2001 +From 198f47bfbb6ac0f4669dc3aecb4ea21dd99d41ee Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 44/46] [screensaver] Leave GUI contents available for +Subject: [PATCH 43/48] [screensaver] Leave GUI contents available for screensaver --- @@ -2879,10 +2905,10 @@ index ba33908..17ea269 100644 // Add window to the history list (we must do this before we activate it, -From b6d27cef7da6d0d4627f9bb4c8eb034dfffe91db Mon Sep 17 00:00:00 2001 +From e34b80a46a5724e3fc16a8c3436483e2768b927d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 15 May 2015 14:04:11 +0100 -Subject: [PATCH 46/46] [omxplayer] Make unsupported when ac3transcode is +Subject: [PATCH 45/48] [omxplayer] Make unsupported when ac3transcode is enabled --- @@ -2906,3 +2932,206 @@ index be54f31..373e3f2 100644 if (m_pDemuxer) { // find video stream + +From 0ead5207ec4f59dd535f236b68d875d5f12aae67 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 1 Jun 2015 14:14:43 +0100 +Subject: [PATCH 46/48] [omximage] Don't report failed decode of progressive + jpegs as as error + +--- + xbmc/cores/omxplayer/OMXImage.cpp | 26 ++++++++++---------------- + 1 file changed, 10 insertions(+), 16 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp +index a43a446..890ca88 100644 +--- a/xbmc/cores/omxplayer/OMXImage.cpp ++++ b/xbmc/cores/omxplayer/OMXImage.cpp +@@ -601,7 +601,10 @@ OMX_IMAGE_CODINGTYPE COMXImageFile::GetCodingType(unsigned int &width, unsigned + m_orientation = 0; + + if(!m_image_size) ++ { ++ CLog::Log(LOGERROR, "%s::%s %s m_image_size unexpected (%lu)\n", CLASSNAME, __func__, m_filename, m_image_size); + return OMX_IMAGE_CodingMax; ++ } + + uint8_t *p = m_image_buffer; + uint8_t *q = m_image_buffer + m_image_size; +@@ -848,17 +851,14 @@ OMX_IMAGE_CODINGTYPE COMXImageFile::GetCodingType(unsigned int &width, unsigned + + } + } ++ else ++ CLog::Log(LOGERROR, "%s::%s error unsupported image format\n", CLASSNAME, __func__); + + // apply input orientation + m_orientation = m_orientation ^ orientation; + if(m_orientation < 0 || m_orientation >= 8) + m_orientation = 0; + +- if(eCompressionFormat == OMX_IMAGE_CodingMax) +- { +- CLog::Log(LOGERROR, "%s::%s error unsupported image format\n", CLASSNAME, __func__); +- } +- + if(progressive) + { + CLog::Log(LOGWARNING, "%s::%s progressive images not supported by decoder\n", CLASSNAME, __func__); +@@ -881,7 +881,7 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + m_filename = inputFile.c_str(); + if(!m_pFile.Open(inputFile, 0)) + { +- CLog::Log(LOGERROR, "%s::%s %s not found\n", CLASSNAME, __func__, inputFile.c_str()); ++ CLog::Log(LOGERROR, "%s::%s %s not found\n", CLASSNAME, __func__, m_filename); + return false; + } + +@@ -893,13 +893,13 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + + if(!m_image_size) + { +- CLog::Log(LOGERROR, "%s::%s %s m_image_size zero\n", CLASSNAME, __func__, inputFile.c_str()); ++ CLog::Log(LOGERROR, "%s::%s %s m_image_size zero\n", CLASSNAME, __func__, m_filename); + return false; + } + m_image_buffer = (uint8_t *)malloc(m_image_size); + if(!m_image_buffer) + { +- CLog::Log(LOGERROR, "%s::%s %s m_image_buffer null (%lu)\n", CLASSNAME, __func__, inputFile.c_str(), m_image_size); ++ CLog::Log(LOGERROR, "%s::%s %s m_image_buffer null (%lu)\n", CLASSNAME, __func__, m_filename, m_image_size); + return false; + } + +@@ -907,15 +907,9 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + m_pFile.Close(); + + OMX_IMAGE_CODINGTYPE eCompressionFormat = GetCodingType(m_width, m_height, orientation); +- if(eCompressionFormat != OMX_IMAGE_CodingJPEG) +- { +- CLog::Log(LOGERROR, "%s::%s %s GetCodingType=0x%x\n", CLASSNAME, __func__, inputFile.c_str(), eCompressionFormat); +- return false; +- } +- +- if(m_width < 1 || m_height < 1) ++ if(eCompressionFormat != OMX_IMAGE_CodingJPEG || m_width < 1 || m_height < 1) + { +- CLog::Log(LOGERROR, "%s::%s %s m_width=%d m_height=%d\n", CLASSNAME, __func__, inputFile.c_str(), m_width, m_height); ++ CLog::Log(LOGDEBUG, "%s::%s %s GetCodingType=0x%x (%dx%x)\n", CLASSNAME, __func__, m_filename, eCompressionFormat, m_width, m_height); + return false; + } + + +From bc752ac78749b96fac2103aeb34e03bb31769ed3 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 25 May 2015 19:01:00 +0100 +Subject: [PATCH 47/48] [rbp] Allow settings option for timestamp preference + +We currently have some files that play better with pts timestamps and some that play better with dts timestamps +Provide a gui setting to allow users to adjust this behaviour until we have a better solution +--- + addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ + system/settings/rbp.xml | 7 +++++++ + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 2 +- + 4 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po +index 3a08680..8513978 100644 +--- a/addons/resource.language.en_gb/resources/strings.po ++++ b/addons/resource.language.en_gb/resources/strings.po +@@ -16717,3 +16717,13 @@ msgstr "" + msgctxt "#38121" + msgid "This option supports 8 channel DTS HD decoding, but may use more CPU. It is only available when DTS and DTS-HD audio passthrough is disabled" + msgstr "" ++ ++#: system/settings/rbp.xml ++msgctxt "#38210" ++msgid "Prefer PTS timestamps" ++msgstr "" ++ ++#: system/settings/rbp.xml ++msgctxt "#38211" ++msgid "Try enabling this if you have stutter with video files" ++msgstr "" +diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml +index b27d23f..8c6e69d 100644 +--- a/system/settings/rbp.xml ++++ b/system/settings/rbp.xml +@@ -42,6 +42,13 @@ + + + ++ ++ ++ 3 ++ false ++ ++ ++ + + + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index a583450..4a63820 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -797,7 +797,7 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + pts = 0; + buffer->pts = pts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : pts; + buffer->dts = dts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : dts; +- if (buffer->dts != MMAL_TIME_UNKNOWN) buffer->pts = MMAL_TIME_UNKNOWN; ++ if (buffer->dts != MMAL_TIME_UNKNOWN && !CSettings::Get().GetBool("videoplayer.preferptstimestamps")) buffer->pts = MMAL_TIME_UNKNOWN; + buffer->length = demuxer_bytes > buffer->alloc_size ? buffer->alloc_size : demuxer_bytes; + // set a flag so we can identify primary frames from generated frames (deinterlace) + buffer->flags = MMAL_BUFFER_HEADER_FLAG_USER0; +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index adf9910..f9b9232 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -495,7 +495,7 @@ void OMXPlayerVideo::Process() + if (pts != DVD_NOPTS_VALUE) + pts += m_iVideoDelay; + +- m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, dts == DVD_NOPTS_VALUE ? pts : DVD_NOPTS_VALUE); ++ m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, dts != DVD_NOPTS_VALUE && !CSettings::Get().GetBool("videoplayer.preferptstimestamps") ? DVD_NOPTS_VALUE : pts); + + if (pts == DVD_NOPTS_VALUE) + pts = dts; + +From 3bdfc7c45e7caa82598645b208ee0c2262fe0c89 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 6 Jun 2015 18:44:37 +0100 +Subject: [PATCH 48/48] [rbp] Ignore pts value when m_hints.ptsinvalid set + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 4a63820..f7b0b25 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -797,7 +797,7 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + pts = 0; + buffer->pts = pts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : pts; + buffer->dts = dts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : dts; +- if (buffer->dts != MMAL_TIME_UNKNOWN && !CSettings::Get().GetBool("videoplayer.preferptstimestamps")) buffer->pts = MMAL_TIME_UNKNOWN; ++ if (m_hints.ptsinvalid || (buffer->dts != MMAL_TIME_UNKNOWN && !CSettings::Get().GetBool("videoplayer.preferptstimestamps"))) buffer->pts = MMAL_TIME_UNKNOWN; + buffer->length = demuxer_bytes > buffer->alloc_size ? buffer->alloc_size : demuxer_bytes; + // set a flag so we can identify primary frames from generated frames (deinterlace) + buffer->flags = MMAL_BUFFER_HEADER_FLAG_USER0; +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index f9b9232..33aa88c 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -495,7 +495,7 @@ void OMXPlayerVideo::Process() + if (pts != DVD_NOPTS_VALUE) + pts += m_iVideoDelay; + +- m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, dts != DVD_NOPTS_VALUE && !CSettings::Get().GetBool("videoplayer.preferptstimestamps") ? DVD_NOPTS_VALUE : pts); ++ m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, m_hints.ptsinvalid || (dts != DVD_NOPTS_VALUE && !CSettings::Get().GetBool("videoplayer.preferptstimestamps")) ? DVD_NOPTS_VALUE : pts); + + if (pts == DVD_NOPTS_VALUE) + pts = dts; diff --git a/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch b/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch index e705379dde..4cfbd9afd6 100644 --- a/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch +++ b/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch @@ -1,7 +1,7 @@ -From b9eceb6796f5beba0ad03b55fd20933a351e8a8e Mon Sep 17 00:00:00 2001 +From 17e3636011a0d30f0d9d0824fb8a672ac81664e7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 01/46] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 01/48] [rbp/omxplayer] When opening a stream don't try to update gui so often --- @@ -25,10 +25,36 @@ index 2faceea..889d7a2 100644 g_windowManager.ProcessRenderLoop(false); if (allowCancel && dialog->IsCanceled()) -From 560bcc821fc5ceec473bfa41b36fdc213bd6e32b Mon Sep 17 00:00:00 2001 +From 2ac1dade38d81b8f358e5dd9710caca339a5603a Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 8 Mar 2014 15:36:06 +0000 +Subject: [PATCH 03/48] [hifiberry] Hack: force it to be recognised as IEC958 + capable to enable passthrough options + +--- + xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +index e22db7a..0120bd5 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +@@ -1342,6 +1342,10 @@ void CAESinkALSA::EnumerateDevice(AEDeviceInfoList &list, const std::string &dev + if (snd_card_get_name(cardNr, &cardName) == 0) + info.m_displayName = cardName; + ++ // hack: hifiberry digi doesn't correctly report as iec958 device. Needs fixing in kernel driver ++ if (info.m_displayName == "snd_rpi_hifiberry_digi") ++ info.m_deviceType = AE_DEVTYPE_IEC958; ++ + if (info.m_deviceType == AE_DEVTYPE_HDMI && info.m_displayName.size() > 5 && + info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI") + { + +From bcb771d391629dc9033eeb1e5c08942993b851f9 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 04/46] Improved file buffering in CArchive +Subject: [PATCH 04/48] 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 @@ -88,20 +114,20 @@ index 6ed0f8f..8506d95 100644 } else -From fca0641cac1a00faffe3d075d91fd987c9a8fbd1 Mon Sep 17 00:00:00 2001 +From 319891a3aec45c12afb57f812cbcc1108476fdac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Aug 2014 00:31:36 +0100 -Subject: [PATCH 05/46] [omxcodec] Don't force software codec with dvds +Subject: [PATCH 05/48] [omxcodec] Don't force software codec with dvds --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index fd21bc2..6d6da33 100644 +index dd9e10a..619f5d9 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3416,7 +3416,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) +@@ -3423,7 +3423,9 @@ bool CDVDPlayer::OpenVideoStream(CDVDStreamInfo& hint, bool reset) hint.aspect = aspect; hint.forced_aspect = true; } @@ -112,10 +138,10 @@ index fd21bc2..6d6da33 100644 else if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) { -From 161cfe110a110062f52e40fdd2f7658f7805cee7 Mon Sep 17 00:00:00 2001 +From e97622281318361374a711d681b4620c66d02b4f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 06/46] filesystem: Make support of browsing into archives +Subject: [PATCH 06/48] 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. @@ -133,10 +159,10 @@ We'll let people who don't use archives disable it manually 3 files changed, 18 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index cb40d52..953b07c 100644 +index a751dc2..c44d399 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16606,6 +16606,15 @@ msgstr "" +@@ -16585,6 +16585,15 @@ msgstr "" #: system/settings/rbp.xml msgctxt "#38010" msgid "GPU accelerated" @@ -198,10 +224,10 @@ index 5af92e7..568a1a8 100644 { // XBMC Smart playlist - just XML renamed to XSP // read the name of the playlist in -From b2b07e83668cca34845f48d9de812350f43d93d3 Mon Sep 17 00:00:00 2001 +From 7bbb7d9b933842bd867aec28320a443b8126ddfe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 08/46] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 08/48] [rbp] Make cachemembuffersize default depend on memory size --- @@ -303,10 +329,10 @@ index 2e3282c..d1606a2 100644 } -From d7b43a46c9a7c30494416e0c711edeba1a0d3b93 Mon Sep 17 00:00:00 2001 +From 1a49c26c7a386d032c4c643be69286899ebf0bf8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 10/46] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 10/48] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -314,7 +340,7 @@ Subject: [PATCH 10/46] [settings] Experiment: Report DESKTOP resolution in 1 file changed, 3 insertions(+) diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp -index 666645c..c3dc72c 100644 +index 4376463..fc4e5ea 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -674,6 +674,9 @@ void CDisplaySettings::SettingOptionsResolutionsFiller(const CSetting *setting, @@ -328,10 +354,10 @@ index 666645c..c3dc72c 100644 StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From 7a435977a8b962bc6cc9257f35f0878796165674 Mon Sep 17 00:00:00 2001 +From 2c879980401504485d1e5304331e36ec60f41afb Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 9 Sep 2014 12:04:26 +0100 -Subject: [PATCH 11/46] egl: Treat unknown display aspect ratio as square pixel +Subject: [PATCH 11/48] egl: Treat unknown display aspect ratio as square pixel --- xbmc/windowing/egl/EGLNativeTypeRaspberryPI.cpp | 4 ++-- @@ -360,10 +386,10 @@ index bda7430..68fc647 100644 SetResolutionString(m_desktopRes); -From bcd2ffe88981e8d46c9b36555a013378a0400425 Mon Sep 17 00:00:00 2001 +From 181f324a483872faae51f75482e6fc679d6727a3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 12/46] [dvdplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 12/48] [dvdplayer/rbp] Add pi specific option to maintain vsync with pll adjustment New A/V sync option in settings/video/playback to do "Adjust PLL". @@ -388,10 +414,10 @@ Needed updated firmware 9 files changed, 91 insertions(+), 7 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 953b07c..db2c0a5 100644 +index c44d399..27c6e6d 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -6357,7 +6357,22 @@ msgctxt "#13459" +@@ -6321,7 +6321,22 @@ msgctxt "#13459" msgid "Use OMXPlayer for decoding of video files." msgstr "" @@ -415,7 +441,7 @@ index 953b07c..db2c0a5 100644 #: system/settings/settings.xml msgctxt "#13505" -@@ -16652,3 +16667,10 @@ msgstr "" +@@ -16631,3 +16646,10 @@ msgstr "" msgctxt "#38016" msgid "%d fps" msgstr "" @@ -655,10 +681,10 @@ index 7df1bf7..732b69d 100644 float m_audioPlayCountMinimumPercent; bool m_dvdplayerIgnoreDTSinWAV; -From e6bc21dbc556ff18da07e22b3064fbb219462678 Mon Sep 17 00:00:00 2001 +From d44ace091afc94280393513c87572197c1281c59 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 27 Sep 2014 15:32:37 +0100 -Subject: [PATCH 13/46] [dvdplayer] exerimental: don't raise priority of audio +Subject: [PATCH 13/48] [dvdplayer] exerimental: don't raise priority of audio thread --- @@ -666,10 +692,10 @@ Subject: [PATCH 13/46] [dvdplayer] exerimental: don't raise priority of audio 1 file changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 6d6da33..aed1550 100644 +index 619f5d9..ff03bc6 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -3401,7 +3401,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) +@@ -3408,7 +3408,11 @@ bool CDVDPlayer::OpenAudioStream(CDVDStreamInfo& hint, bool reset) m_dvdPlayerAudio->SendMessage(new CDVDMsg(CDVDMsg::PLAYER_STARTED), 1); /* audio normally won't consume full cpu, so let it have prio */ @@ -682,10 +708,10 @@ index 6d6da33..aed1550 100644 } -From 4de8f510f317ab41c05cc78ee8a914af0f8e4387 Mon Sep 17 00:00:00 2001 +From d41f66c5afab06eb4a64489a1a9c1e5c87a0d926 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 14/46] [audio] Add settings option to boost centre channel +Subject: [PATCH 14/48] [audio] Add settings option to boost centre channel when downmixing This allows a dB volume increase to be added to centre channel. @@ -703,10 +729,10 @@ Should work with Pi Sink (dvdplayer/paplayer) and omxplayer 5 files changed, 45 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index db2c0a5..63f78a1 100644 +index 27c6e6d..2d4efe2 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16674,3 +16674,17 @@ msgctxt "#38006" +@@ -16653,3 +16653,17 @@ msgctxt "#38006" msgid "Audio has to stay in sync, this can either be done by resampling, or adjusting the PLL" msgstr "" @@ -807,10 +833,10 @@ index f99c0e6..1911189 100644 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From fb43e160b3373ec9c3ed53e67dbcc907706a233d Mon Sep 17 00:00:00 2001 +From 54dde47ac98e2cf336610ab981ab8ed13bc2ecac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 15/46] [rbp] Default extract thumbnails to false +Subject: [PATCH 15/48] [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 @@ -840,10 +866,10 @@ index 50fe36a..a54a4c4 100644
-From 42afb7e432619c25a0c6389636784117c049c967 Mon Sep 17 00:00:00 2001 +From 43233930f444cfae66fd6e1eec171a2652a63531 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 15 Nov 2014 12:03:34 +0000 -Subject: [PATCH 20/46] [dvdplayer] Add lock for player creation +Subject: [PATCH 20/48] [dvdplayer] Add lock for player creation --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 3 +++ @@ -851,7 +877,7 @@ Subject: [PATCH 20/46] [dvdplayer] Add lock for player creation 2 files changed, 4 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index aed1550..ff397f7 100644 +index ff03bc6..2b3baf7 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -517,6 +517,7 @@ int CSelectionStreams::CountSource(StreamType type, StreamSource source) const @@ -870,7 +896,7 @@ index aed1550..ff397f7 100644 if (!m_players_created) return; delete m_dvdPlayerVideo; -@@ -4268,6 +4270,7 @@ double CDVDPlayer::GetQueueTime() +@@ -4275,6 +4277,7 @@ double CDVDPlayer::GetQueueTime() void CDVDPlayer::GetVideoStreamInfo(SPlayerVideoStreamInfo &info) { @@ -889,10 +915,10 @@ index 2a4aea5..f74e71d 100644 + CCriticalSection m_players_lock; }; -From 8cc3e50eccf8fbfb00d35f8238f8bc7ee49c159b Mon Sep 17 00:00:00 2001 +From 37d8b3208029031b46ab432aa24045e502cd4b2a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 24 Nov 2014 22:07:25 +0000 -Subject: [PATCH 21/46] [dvdplayervideo] Prod decoder when in stills mode +Subject: [PATCH 21/48] [dvdplayervideo] Prod decoder when in stills mode An asynchronous hardware decoder doesn't only produce output pictures when new packets arrive. In dvd stills mode give it a chance to return pictures that weren't ready when frame was decoded. @@ -901,7 +927,7 @@ In dvd stills mode give it a chance to return pictures that weren't ready when f 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index a8add39..9f1892b 100644 +index f909bb5..008cedf 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -314,7 +314,8 @@ void CDVDPlayerVideo::Process() @@ -969,10 +995,10 @@ index a8add39..9f1892b 100644 if (pMsg->IsType(CDVDMsg::GENERAL_SYNCHRONIZE)) -From 2b43fd15eeb8c63853efbd4bfbfb40d6e3d4d0d0 Mon Sep 17 00:00:00 2001 +From 3f34b6c3eb68ae3867c9b9475a961d6c5e4c5add Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 22/46] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 22/48] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -995,10 +1021,10 @@ index fcdd063..16f0c89 100644 } -From a878a035369d1f0a74474d1a22801c256a876dd8 Mon Sep 17 00:00:00 2001 +From f9f26d380d93aac6c4d882a75d2de5127dd9e496 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 23/46] logging: Add microsecond timer to log messages +Subject: [PATCH 23/48] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 17 +++++++++++++++-- @@ -1051,10 +1077,10 @@ index 3443f12..31c4a99 100644 levelNames[logLevel]) + strData; -From 1e2fcfee503416f290d7bb20060bf07f0c5a705e Mon Sep 17 00:00:00 2001 +From b4380166f33508dabe7ab5acf99359901673ed56 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 24/46] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 24/48] [rbp] hack: wait for splash to complete before changing hdmi mode --- @@ -1128,10 +1154,10 @@ index 68fc647..c80114e 100644 if(!m_fixedMode && GETFLAGS_GROUP(res.dwFlags) && GETFLAGS_MODE(res.dwFlags)) -From 03136951f373c285114d45ec73a07c11a62152c9 Mon Sep 17 00:00:00 2001 +From b5ae9d7dd86f5e5b55d21c18d31ae298bf37855f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 25/46] Fix for UI not showing both extractflags and +Subject: [PATCH 25/48] Fix for UI not showing both extractflags and extractthumb --- @@ -1140,10 +1166,10 @@ Subject: [PATCH 25/46] Fix for UI not showing both extractflags and 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 5c31c6f..c48b256 100644 +index c8ec10d..2f4653c 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -11023,7 +11023,7 @@ msgstr "" +@@ -11018,7 +11018,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -1152,7 +1178,7 @@ index 5c31c6f..c48b256 100644 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -14573,7 +14573,7 @@ msgstr "" +@@ -14552,7 +14552,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36178" @@ -1161,7 +1187,7 @@ index 5c31c6f..c48b256 100644 msgstr "" #. Description of setting "Videos -> File lists -> Replace file names with library titles" with label #20419 -@@ -14585,7 +14585,7 @@ msgstr "" +@@ -14564,7 +14564,7 @@ msgstr "" #. Description of setting "Videos -> File lists -> Extract thumbnails and video information" with label #20433 #: system/settings/settings.xml msgctxt "#36180" @@ -1170,7 +1196,7 @@ index 5c31c6f..c48b256 100644 msgstr "" #: system/settings/settings.xml -@@ -16703,3 +16703,8 @@ msgstr "" +@@ -16682,3 +16682,8 @@ msgstr "" msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -1195,10 +1221,10 @@ index f6ad877..d1acdae 100644 -From 8c257d47e97ed8a5cb78604746247e7b98693d89 Mon Sep 17 00:00:00 2001 +From 298b0358d0e28365503fd654984e9557bd51c13c Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 26/46] Disable autoscrolling while on screensaver and while +Subject: [PATCH 26/48] Disable autoscrolling while on screensaver and while opening streams. --- @@ -1211,10 +1237,10 @@ Subject: [PATCH 26/46] 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 11564aa..48536b9 100644 +index 694e781..28f625d 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -4951,3 +4951,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -4974,3 +4974,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -1229,7 +1255,7 @@ index 11564aa..48536b9 100644 + return onBlackDimScreenSaver || openingStreams; +} diff --git a/xbmc/Application.h b/xbmc/Application.h -index f9c636e..487716a 100644 +index 4b50ab2..07a5da2 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h @@ -389,6 +389,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs @@ -1242,7 +1268,7 @@ index f9c636e..487716a 100644 virtual bool OnSettingsSaving() const; diff --git a/xbmc/guilib/GUIFadeLabelControl.cpp b/xbmc/guilib/GUIFadeLabelControl.cpp -index ac3cd94..5b8859d 100644 +index 9eadbe4..b2b5f13 100644 --- a/xbmc/guilib/GUIFadeLabelControl.cpp +++ b/xbmc/guilib/GUIFadeLabelControl.cpp @@ -20,6 +20,8 @@ @@ -1254,7 +1280,7 @@ index ac3cd94..5b8859d 100644 using namespace std; CGUIFadeLabelControl::CGUIFadeLabelControl(int parentID, int controlID, float posX, float posY, float width, float height, const CLabelInfo& labelInfo, bool scrollOut, unsigned int timeToDelayAtEnd, bool resetOnLabelChange) -@@ -104,7 +106,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d +@@ -102,7 +104,7 @@ void CGUIFadeLabelControl::Process(unsigned int currentTime, CDirtyRegionList &d m_lastLabel = m_currentLabel; } @@ -1329,10 +1355,10 @@ index 0d5b3f7..6d23024 100644 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 4425b2be0ad1e5c3ea6eeddbd91f59046ed361ea Mon Sep 17 00:00:00 2001 +From 677dce3d12e4c92e69defa888f9e835ae16c1e0c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 27/46] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 27/48] [demuxer] Avoid memcpy on every demuxer packet Avoids an unnecessary memcpy on every demuxer packet which for high bitrate videos can be significant. @@ -1427,10 +1453,10 @@ index ab298b2..10c5ee0 100644 } catch(...) { -From bdd96e0b98ef05db5e8067a0a802246e0d3f6f36 Mon Sep 17 00:00:00 2001 +From 94c85f7243d3296e8f452b62c3b9b0e72efaae53 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 15 Feb 2015 14:06:12 +0000 -Subject: [PATCH 28/46] [mmal] Allow mmal codec for dvd stills +Subject: [PATCH 28/48] [mmal] Allow mmal codec for dvd stills --- xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp | 7 +++++++ @@ -1462,10 +1488,10 @@ index 4c363cf..b90237b 100644 { // If dvd is an mpeg2 and hint.stills -From ce8914a9b4816a738606174e8ee4087b0466923e Mon Sep 17 00:00:00 2001 +From 34506486ca9b49acf5e0dbb74d16d41dfa2a2e97 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 31 Mar 2015 17:31:47 +0100 -Subject: [PATCH 29/46] [mmalrenderer] Add SetCodecControl function and prefer +Subject: [PATCH 29/48] [mmalrenderer] Add SetCodecControl function and prefer to return pictures when renderer is low (disabled) --- @@ -1536,10 +1562,10 @@ index 51a64d1..bde8c06 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_dec; -From d93b8a58ddcac183150087703bd7a32c061e510a Mon Sep 17 00:00:00 2001 +From 881ac10c5d55c772f75da9f22a806c8594448d35 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 30/46] Load OSD dialogs on startup. +Subject: [PATCH 30/48] 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. @@ -1578,7 +1604,7 @@ index 1670190..329a3b8 100644 } diff --git a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp -index 5e091eb..35b417f 100644 +index fcbafae..6ab155e 100644 --- a/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp @@ -62,7 +62,9 @@ using namespace std; @@ -1619,7 +1645,7 @@ index 7316936..7033124 100644 CGUIDialogVideoOSD::~CGUIDialogVideoOSD(void) diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index eb814ca..ae4c69f 100644 +index 9f25fa5..3ece45b 100644 --- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp +++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp @@ -63,7 +63,9 @@ using namespace std; @@ -1634,10 +1660,10 @@ index eb814ca..ae4c69f 100644 CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 25c18140c09a346a0e9aa98699bcb6e02bda11b2 Mon Sep 17 00:00:00 2001 +From 3ab44df9049a04fcd4b0b19c0d9dd64e43d4a96b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 7 Mar 2015 22:46:21 +0000 -Subject: [PATCH 31/46] configure: Add raspberry-pi2 platform +Subject: [PATCH 31/48] configure: Add raspberry-pi2 platform --- configure.ac | 14 +++++++-- @@ -1649,10 +1675,10 @@ Subject: [PATCH 31/46] configure: Add raspberry-pi2 platform 6 files changed, 44 insertions(+), 22 deletions(-) diff --git a/configure.ac b/configure.ac -index 760e873..2b8660e 100644 +index 8c1e412..688cac4 100644 --- a/configure.ac +++ b/configure.ac -@@ -750,8 +750,17 @@ case $use_platform in +@@ -744,8 +744,17 @@ case $use_platform in raspberry-pi) target_platform=target_raspberry_pi use_neon=no @@ -1669,9 +1695,9 @@ index 760e873..2b8660e 100644 +if test "$target_platform" = "target_raspberry_pi" ; then + use_arch="arm" use_hardcoded_tables="yes" + use_openmax=no ARCH="arm" - AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer]) -@@ -759,8 +768,7 @@ case $use_platform in +@@ -754,8 +763,7 @@ case $use_platform in USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" @@ -1679,8 +1705,8 @@ index 760e873..2b8660e 100644 -esac +fi - XBMC_SETUP_ARCH_DEFINES() - + if test "$host_vendor" = "apple"; then + use_avahi=no diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4 index 0b66a82..adb8e97 100644 --- a/m4/xbmc_arch.m4 @@ -1811,10 +1837,10 @@ index cdc2fe4..379bd1d 100644 set(CMAKE_SYSTEM_NAME Linux) endif() -From b8fcca27e22ea37429e7a296968af3c0c611f931 Mon Sep 17 00:00:00 2001 +From ba7b7df51079f7962249fab1e606582cd6456d8b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Apr 2014 21:18:06 +0100 -Subject: [PATCH 32/46] [omxplayer] Don't propagate 3d flags based on supported +Subject: [PATCH 32/48] [omxplayer] Don't propagate 3d flags based on supported 3d modes --- @@ -1870,10 +1896,10 @@ index 212a89b..dd509ea 100644 unsigned int iDisplayHeight = height; -From 6f86813ee99e5c019dc2eae80b4fd5877f265318 Mon Sep 17 00:00:00 2001 +From 7bafdf76f00ce67de290b0ae8178a44b94b817a7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:01:51 +0100 -Subject: [PATCH 33/46] [graphics] Allow switching to a more suitable 3D +Subject: [PATCH 33/48] [graphics] Allow switching to a more suitable 3D resolution --- @@ -1959,10 +1985,10 @@ index a8fd03e..8501e58 100644 void ResetOverscan(RESOLUTION_INFO &resinfo); void ResetScreenParameters(RESOLUTION res); -From bd09bf6d6894e58361f24e703963ac24810ff9a0 Mon Sep 17 00:00:00 2001 +From 5f3ce43d7a1b0692544f5f5224240d5732569f10 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 17 Apr 2014 13:38:55 +0100 -Subject: [PATCH 34/46] [3D] Support switching to 3D resolutions +Subject: [PATCH 34/48] [3D] Support switching to 3D resolutions Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes. Also remove the old code that treated 3D modes differently when assigning a score. @@ -2044,10 +2070,10 @@ index bfafab7..84e6261 100644 return current; } -From e89f3576f0192f6a0827016fee5d5967f502a3e5 Mon Sep 17 00:00:00 2001 +From b902e783ffd525d2e8f94eb4621416cf10fbe345 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 Apr 2014 00:05:07 +0100 -Subject: [PATCH 35/46] [graphics] Make pixel ratio for 3d modes consistent +Subject: [PATCH 35/48] [graphics] Make pixel ratio for 3d modes consistent Note: Use the stored stereo flags from lists of resolutions. Use current stereo mode for current resolution. @@ -2250,10 +2276,10 @@ index c80114e..80c05d2 100644 AddUniqueResolution(res2, resolutions); -From 018e123537f5a75f92ff3eb1e71ee72712011d2e Mon Sep 17 00:00:00 2001 +From 583dfaeed63712cebba7528609d9e87009a9d926 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Mar 2015 17:05:18 +0000 -Subject: [PATCH 36/46] [players] Add settings option to enable MVC support +Subject: [PATCH 36/48] [players] Add settings option to enable MVC support --- addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ @@ -2263,10 +2289,10 @@ Subject: [PATCH 36/46] [players] Add settings option to enable MVC support 4 files changed, 27 insertions(+) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c48b256..8ecf1bf 100644 +index 2f4653c..c4c5851 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16704,6 +16704,16 @@ msgctxt "#38052" +@@ -16683,6 +16683,16 @@ msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -2334,10 +2360,10 @@ index e4f6d86..5d324f4 100644 case AV_CODEC_ID_MPEG4: // (role name) video_decoder.mpeg4 -From 3879afb94401608ee5985a8daabd53ade2e114e5 Mon Sep 17 00:00:00 2001 +From 63c023ab0d6578085900b73f40e33080b980855b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Mar 2015 12:38:08 +0000 -Subject: [PATCH 37/46] [mmalrenderer] Switch to using transform flags for 3d +Subject: [PATCH 37/48] [mmalrenderer] Switch to using transform flags for 3d modes --- @@ -2351,10 +2377,10 @@ Subject: [PATCH 37/46] [mmalrenderer] Switch to using transform flags for 3d 7 files changed, 75 insertions(+), 130 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 8ecf1bf..aefe898 100644 +index c4c5851..0f5710d 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16714,6 +16714,16 @@ msgctxt "#38111" +@@ -16693,6 +16693,16 @@ msgctxt "#38111" msgid "This option decodes frames for both eyes of MVC video. Disabling may improve performance if you don't require 3D" msgstr "" @@ -2716,10 +2742,10 @@ index 80c05d2..ae85484 100644 CLog::Log(LOGDEBUG, "EGL set resolution %dx%d -> %dx%d @ %.2f fps (%d,%d) flags:%x aspect:%.2f\n", m_width, m_height, dst_rect.width, dst_rect.height, res.fRefreshRate, GETFLAGS_GROUP(res.dwFlags), GETFLAGS_MODE(res.dwFlags), (int)res.dwFlags, res.fPixelRatio); -From d4ecbc3818f8cc6c868b757a63a4aa59310363dc Mon Sep 17 00:00:00 2001 +From abb123a443409eaae5e6e92c7b04a759b0934c48 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 40/46] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 40/48] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -2727,10 +2753,10 @@ Subject: [PATCH 40/46] [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 48536b9..e83cc9f 100644 +index 28f625d..9b6d3dc 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2486,7 +2486,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2501,7 +2501,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 @@ -2739,7 +2765,7 @@ index 48536b9..e83cc9f 100644 fps = CSettings::Get().GetInt("videoplayer.limitguiupdate"); #endif -@@ -2499,6 +2499,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2514,6 +2514,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -2749,10 +2775,10 @@ index 48536b9..e83cc9f 100644 g_windowManager.FrameMove(); } -From 0af66e97c3563a209f41f45c01508747ca2e7788 Mon Sep 17 00:00:00 2001 +From 5c78fd84ab872c7811d1786942abfcdd810821d1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 21 Apr 2015 14:32:07 +0100 -Subject: [PATCH 41/46] [mmalrenderer] Add sharpness control +Subject: [PATCH 41/48] [mmalrenderer] Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -2761,10 +2787,10 @@ Subject: [PATCH 41/46] [mmalrenderer] 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 a622e73..9341924 100644 +index c1a9a98..cd6ef74 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -7524,7 +7524,7 @@ msgstr "" +@@ -7503,7 +7503,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" @@ -2824,17 +2850,17 @@ index 1404fb3..9bced7e 100644 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From 2f8c52cd11f50ceaa378aec35a5d92c7327bf9a7 Mon Sep 17 00:00:00 2001 +From d02c554b8bc5d23ce1a0352a2a727ca1e5f9180b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Apr 2015 13:49:51 +0100 -Subject: [PATCH 42/46] [dvdplayer] Add back required include +Subject: [PATCH 42/48] [dvdplayer] Add back required include --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -index 9f1892b..933d905 100644 +index 008cedf..ea6b7ab 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -33,6 +33,7 @@ @@ -2846,10 +2872,10 @@ index 9f1892b..933d905 100644 #include "guilib/GraphicContext.h" #include -From 0eca10f4cd6f53f8224ed32fab35cd96c423548f Mon Sep 17 00:00:00 2001 +From 198f47bfbb6ac0f4669dc3aecb4ea21dd99d41ee Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 44/46] [screensaver] Leave GUI contents available for +Subject: [PATCH 43/48] [screensaver] Leave GUI contents available for screensaver --- @@ -2879,10 +2905,10 @@ index ba33908..17ea269 100644 // Add window to the history list (we must do this before we activate it, -From b6d27cef7da6d0d4627f9bb4c8eb034dfffe91db Mon Sep 17 00:00:00 2001 +From e34b80a46a5724e3fc16a8c3436483e2768b927d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 15 May 2015 14:04:11 +0100 -Subject: [PATCH 46/46] [omxplayer] Make unsupported when ac3transcode is +Subject: [PATCH 45/48] [omxplayer] Make unsupported when ac3transcode is enabled --- @@ -2906,3 +2932,206 @@ index be54f31..373e3f2 100644 if (m_pDemuxer) { // find video stream + +From 0ead5207ec4f59dd535f236b68d875d5f12aae67 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 1 Jun 2015 14:14:43 +0100 +Subject: [PATCH 46/48] [omximage] Don't report failed decode of progressive + jpegs as as error + +--- + xbmc/cores/omxplayer/OMXImage.cpp | 26 ++++++++++---------------- + 1 file changed, 10 insertions(+), 16 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp +index a43a446..890ca88 100644 +--- a/xbmc/cores/omxplayer/OMXImage.cpp ++++ b/xbmc/cores/omxplayer/OMXImage.cpp +@@ -601,7 +601,10 @@ OMX_IMAGE_CODINGTYPE COMXImageFile::GetCodingType(unsigned int &width, unsigned + m_orientation = 0; + + if(!m_image_size) ++ { ++ CLog::Log(LOGERROR, "%s::%s %s m_image_size unexpected (%lu)\n", CLASSNAME, __func__, m_filename, m_image_size); + return OMX_IMAGE_CodingMax; ++ } + + uint8_t *p = m_image_buffer; + uint8_t *q = m_image_buffer + m_image_size; +@@ -848,17 +851,14 @@ OMX_IMAGE_CODINGTYPE COMXImageFile::GetCodingType(unsigned int &width, unsigned + + } + } ++ else ++ CLog::Log(LOGERROR, "%s::%s error unsupported image format\n", CLASSNAME, __func__); + + // apply input orientation + m_orientation = m_orientation ^ orientation; + if(m_orientation < 0 || m_orientation >= 8) + m_orientation = 0; + +- if(eCompressionFormat == OMX_IMAGE_CodingMax) +- { +- CLog::Log(LOGERROR, "%s::%s error unsupported image format\n", CLASSNAME, __func__); +- } +- + if(progressive) + { + CLog::Log(LOGWARNING, "%s::%s progressive images not supported by decoder\n", CLASSNAME, __func__); +@@ -881,7 +881,7 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + m_filename = inputFile.c_str(); + if(!m_pFile.Open(inputFile, 0)) + { +- CLog::Log(LOGERROR, "%s::%s %s not found\n", CLASSNAME, __func__, inputFile.c_str()); ++ CLog::Log(LOGERROR, "%s::%s %s not found\n", CLASSNAME, __func__, m_filename); + return false; + } + +@@ -893,13 +893,13 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + + if(!m_image_size) + { +- CLog::Log(LOGERROR, "%s::%s %s m_image_size zero\n", CLASSNAME, __func__, inputFile.c_str()); ++ CLog::Log(LOGERROR, "%s::%s %s m_image_size zero\n", CLASSNAME, __func__, m_filename); + return false; + } + m_image_buffer = (uint8_t *)malloc(m_image_size); + if(!m_image_buffer) + { +- CLog::Log(LOGERROR, "%s::%s %s m_image_buffer null (%lu)\n", CLASSNAME, __func__, inputFile.c_str(), m_image_size); ++ CLog::Log(LOGERROR, "%s::%s %s m_image_buffer null (%lu)\n", CLASSNAME, __func__, m_filename, m_image_size); + return false; + } + +@@ -907,15 +907,9 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + m_pFile.Close(); + + OMX_IMAGE_CODINGTYPE eCompressionFormat = GetCodingType(m_width, m_height, orientation); +- if(eCompressionFormat != OMX_IMAGE_CodingJPEG) +- { +- CLog::Log(LOGERROR, "%s::%s %s GetCodingType=0x%x\n", CLASSNAME, __func__, inputFile.c_str(), eCompressionFormat); +- return false; +- } +- +- if(m_width < 1 || m_height < 1) ++ if(eCompressionFormat != OMX_IMAGE_CodingJPEG || m_width < 1 || m_height < 1) + { +- CLog::Log(LOGERROR, "%s::%s %s m_width=%d m_height=%d\n", CLASSNAME, __func__, inputFile.c_str(), m_width, m_height); ++ CLog::Log(LOGDEBUG, "%s::%s %s GetCodingType=0x%x (%dx%x)\n", CLASSNAME, __func__, m_filename, eCompressionFormat, m_width, m_height); + return false; + } + + +From bc752ac78749b96fac2103aeb34e03bb31769ed3 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 25 May 2015 19:01:00 +0100 +Subject: [PATCH 47/48] [rbp] Allow settings option for timestamp preference + +We currently have some files that play better with pts timestamps and some that play better with dts timestamps +Provide a gui setting to allow users to adjust this behaviour until we have a better solution +--- + addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ + system/settings/rbp.xml | 7 +++++++ + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 2 +- + 4 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po +index 3a08680..8513978 100644 +--- a/addons/resource.language.en_gb/resources/strings.po ++++ b/addons/resource.language.en_gb/resources/strings.po +@@ -16717,3 +16717,13 @@ msgstr "" + msgctxt "#38121" + msgid "This option supports 8 channel DTS HD decoding, but may use more CPU. It is only available when DTS and DTS-HD audio passthrough is disabled" + msgstr "" ++ ++#: system/settings/rbp.xml ++msgctxt "#38210" ++msgid "Prefer PTS timestamps" ++msgstr "" ++ ++#: system/settings/rbp.xml ++msgctxt "#38211" ++msgid "Try enabling this if you have stutter with video files" ++msgstr "" +diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml +index b27d23f..8c6e69d 100644 +--- a/system/settings/rbp.xml ++++ b/system/settings/rbp.xml +@@ -42,6 +42,13 @@ + + + ++ ++ ++ 3 ++ false ++ ++ ++ + + + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index a583450..4a63820 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -797,7 +797,7 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + pts = 0; + buffer->pts = pts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : pts; + buffer->dts = dts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : dts; +- if (buffer->dts != MMAL_TIME_UNKNOWN) buffer->pts = MMAL_TIME_UNKNOWN; ++ if (buffer->dts != MMAL_TIME_UNKNOWN && !CSettings::Get().GetBool("videoplayer.preferptstimestamps")) buffer->pts = MMAL_TIME_UNKNOWN; + buffer->length = demuxer_bytes > buffer->alloc_size ? buffer->alloc_size : demuxer_bytes; + // set a flag so we can identify primary frames from generated frames (deinterlace) + buffer->flags = MMAL_BUFFER_HEADER_FLAG_USER0; +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index adf9910..f9b9232 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -495,7 +495,7 @@ void OMXPlayerVideo::Process() + if (pts != DVD_NOPTS_VALUE) + pts += m_iVideoDelay; + +- m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, dts == DVD_NOPTS_VALUE ? pts : DVD_NOPTS_VALUE); ++ m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, dts != DVD_NOPTS_VALUE && !CSettings::Get().GetBool("videoplayer.preferptstimestamps") ? DVD_NOPTS_VALUE : pts); + + if (pts == DVD_NOPTS_VALUE) + pts = dts; + +From 3bdfc7c45e7caa82598645b208ee0c2262fe0c89 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 6 Jun 2015 18:44:37 +0100 +Subject: [PATCH 48/48] [rbp] Ignore pts value when m_hints.ptsinvalid set + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +index 4a63820..f7b0b25 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp +@@ -797,7 +797,7 @@ int CMMALVideo::Decode(uint8_t* pData, int iSize, double dts, double pts) + pts = 0; + buffer->pts = pts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : pts; + buffer->dts = dts == DVD_NOPTS_VALUE ? MMAL_TIME_UNKNOWN : dts; +- if (buffer->dts != MMAL_TIME_UNKNOWN && !CSettings::Get().GetBool("videoplayer.preferptstimestamps")) buffer->pts = MMAL_TIME_UNKNOWN; ++ if (m_hints.ptsinvalid || (buffer->dts != MMAL_TIME_UNKNOWN && !CSettings::Get().GetBool("videoplayer.preferptstimestamps"))) buffer->pts = MMAL_TIME_UNKNOWN; + buffer->length = demuxer_bytes > buffer->alloc_size ? buffer->alloc_size : demuxer_bytes; + // set a flag so we can identify primary frames from generated frames (deinterlace) + buffer->flags = MMAL_BUFFER_HEADER_FLAG_USER0; +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index f9b9232..33aa88c 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -495,7 +495,7 @@ void OMXPlayerVideo::Process() + if (pts != DVD_NOPTS_VALUE) + pts += m_iVideoDelay; + +- m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, dts != DVD_NOPTS_VALUE && !CSettings::Get().GetBool("videoplayer.preferptstimestamps") ? DVD_NOPTS_VALUE : pts); ++ m_omxVideo.Decode(pPacket->pData, pPacket->iSize, dts, m_hints.ptsinvalid || (dts != DVD_NOPTS_VALUE && !CSettings::Get().GetBool("videoplayer.preferptstimestamps")) ? DVD_NOPTS_VALUE : pts); + + if (pts == DVD_NOPTS_VALUE) + pts = dts;