From 0340c53d3e059cedaccca4e13fddbe52b296ba6e Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 24 Oct 2016 22:38:49 +0100 Subject: [PATCH 1/6] kodi: update to 17.0-beta4-bd17e63 --- .../mediacenter/kodi-theme-Estuary/package.mk | 2 +- packages/mediacenter/kodi/package.mk | 2 +- ...p-frames-if-requested-by-VideoPlayer.patch | 67 ------------------- 3 files changed, 2 insertions(+), 69 deletions(-) delete mode 100644 packages/mediacenter/kodi/patches/kodi-999.99-aml-Drop-frames-if-requested-by-VideoPlayer.patch diff --git a/packages/mediacenter/kodi-theme-Estuary/package.mk b/packages/mediacenter/kodi-theme-Estuary/package.mk index 1ce26ab601..3ec07a1d51 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-beta3-7041777" +PKG_VERSION="17.0-beta4-bd17e63" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 789f8869bb..d939394435 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="kodi" -PKG_VERSION="17.0-beta3-7041777" +PKG_VERSION="17.0-beta4-bd17e63" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi/patches/kodi-999.99-aml-Drop-frames-if-requested-by-VideoPlayer.patch b/packages/mediacenter/kodi/patches/kodi-999.99-aml-Drop-frames-if-requested-by-VideoPlayer.patch deleted file mode 100644 index e52191be44..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-999.99-aml-Drop-frames-if-requested-by-VideoPlayer.patch +++ /dev/null @@ -1,67 +0,0 @@ -From b335c232110d008aa31615592d4aed9d23dbf06d Mon Sep 17 00:00:00 2001 -From: Alex Deryskyba -Date: Sat, 22 Oct 2016 13:47:54 +0200 -Subject: [PATCH] aml: Drop frames if requested by VideoPlayer - ---- - .../DVDCodecs/Video/DVDVideoCodecAmlogic.cpp | 17 ++++++++++++++++- - .../DVDCodecs/Video/DVDVideoCodecAmlogic.h | 1 + - 2 files changed, 17 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp -index bd4e084..5939f38 100644 ---- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp -+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp -@@ -27,6 +27,7 @@ - #include "utils/AMLUtils.h" - #include "utils/BitstreamConverter.h" - #include "utils/log.h" -+#include "utils/SysfsUtils.h" - #include "threads/Atomics.h" - #include "settings/Settings.h" - -@@ -50,7 +51,8 @@ CDVDVideoCodecAmlogic::CDVDVideoCodecAmlogic(CProcessInfo &processInfo) : CDVDVi - m_mpeg2_sequence(NULL), - m_bitparser(NULL), - m_bitstream(NULL), -- m_opened(false) -+ m_opened(false), -+ m_drop(false) - { - pthread_mutex_init(&m_queue_mutex, NULL); - } -@@ -349,6 +351,19 @@ bool CDVDVideoCodecAmlogic::ClearPicture(DVDVideoPicture *pDvdVideoPicture) - - void CDVDVideoCodecAmlogic::SetDropState(bool bDrop) - { -+ if (bDrop == m_drop) -+ return; -+ -+ m_drop = bDrop; -+ if (bDrop) -+ m_videobuffer.iFlags |= DVP_FLAG_DROPPED; -+ else -+ m_videobuffer.iFlags &= ~DVP_FLAG_DROPPED; -+ -+ // Freerun mode causes amvideo driver to ignore timing and process frames -+ // as quickly as they are coming from decoder. By enabling freerun mode we can -+ // skip rendering of the frames that are requested to be dropped by VideoPlayer. -+ SysfsUtils::SetInt("/sys/class/video/freerun_mode", bDrop ? 1 : 0); - } - - void CDVDVideoCodecAmlogic::SetSpeed(int iSpeed) -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.h -index a4cc25c..2c44241 100644 ---- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.h -+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.h -@@ -97,6 +97,7 @@ protected: - float m_aspect_ratio; - mpeg2_sequence *m_mpeg2_sequence; - double m_mpeg2_sequence_pts; -+ bool m_drop; - - CBitstreamParser *m_bitparser; - CBitstreamConverter *m_bitstream; --- -1.7.10.4 - From e178f13fd6ecad7ac50d7e4d556cc12f4546602d Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 24 Oct 2016 22:39:28 +0100 Subject: [PATCH 2/6] ffmpeg: update to ffmpeg-3.1.5-Krypton-Beta5 --- packages/multimedia/ffmpeg/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index 4eb03cf033..0310f92350 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -18,7 +18,7 @@ PKG_NAME="ffmpeg" # Current branch is: release/3.1-xbmc -PKG_VERSION="32dccce" +PKG_VERSION="0cf9269" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPLv2.1+" From 1baf25487d946f2b7ae4684721066497d1186b42 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 24 Oct 2016 22:40:42 +0100 Subject: [PATCH 3/6] peripheral.joystick: move repo to xbmc org --- .../kodi-binary-addons/peripheral.joystick/package.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk b/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk index debdeed7ad..4bb6644f13 100644 --- a/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk +++ b/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk @@ -17,12 +17,12 @@ ################################################################################ PKG_NAME="peripheral.joystick" -PKG_VERSION="abff316" +PKG_VERSION="ae86732" PKG_REV="0" PKG_ARCH="any" PKG_LICENSE="GPL" -PKG_SITE="https://github.com/kodi-game/peripheral.joystick" -PKG_URL="https://github.com/kodi-game/peripheral.joystick/archive/$PKG_VERSION.tar.gz" +PKG_SITE="https://github.com/xbmc/peripheral.joystick" +PKG_URL="https://github.com/xbmc/peripheral.joystick/archive/$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain kodi-platform p8-platform" PKG_SECTION="" PKG_SHORTDESC="peripheral.joystick: Joystick support in Kodi" From df29b4175287526b95ae790cab3eee6d6a3b1240 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 24 Oct 2016 22:41:05 +0100 Subject: [PATCH 4/6] inputstream.smoothstream: change repo owner --- .../kodi-binary-addons/inputstream.smoothstream/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk index c5d9c913c0..230bb7ede7 100644 --- a/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk +++ b/packages/mediacenter/kodi-binary-addons/inputstream.smoothstream/package.mk @@ -20,7 +20,7 @@ PKG_NAME="inputstream.smoothstream" 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" +PKG_URL="https://github.com/peak3d/inputstream.smoothstream/archive/$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain kodi-platform" PKG_SECTION="" PKG_SHORTDESC="inputstream.smoothstream" From c88001ac8ab66343f43ac8686ca4b392dd0dd5ca Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 24 Oct 2016 23:00:46 +0100 Subject: [PATCH 5/6] kodi-binary-addons: update to latest versions --- .../mediacenter/kodi-binary-addons/inputstream.mpd/package.mk | 2 +- packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk | 2 +- .../mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk | 2 +- packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk | 2 +- packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk | 2 +- packages/mediacenter/kodi-binary-addons/pvr.vdr.vnsi/package.mk | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/mediacenter/kodi-binary-addons/inputstream.mpd/package.mk b/packages/mediacenter/kodi-binary-addons/inputstream.mpd/package.mk index 4d045c2447..382030d3c2 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="c5ee8ac" +PKG_VERSION="4c8013f" 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/pvr.dvblink/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk index 4ca902ef44..07c51c5d61 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.dvblink/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.dvblink" -PKG_VERSION="e842db9" +PKG_VERSION="043aa89" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk index 720ed4056e..db766b4257 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.iptvsimple/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.iptvsimple" -PKG_VERSION="a4c5255" +PKG_VERSION="adee8a7" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk index 78310ee131..cb49adefa6 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.mythtv/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.mythtv" -PKG_VERSION="b1b426f" +PKG_VERSION="2f3dfcd" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk b/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk index f7d8badd88..d6dc868be1 100644 --- a/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk +++ b/packages/mediacenter/kodi-binary-addons/pvr.nextpvr/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="pvr.nextpvr" -PKG_VERSION="f99b17d" +PKG_VERSION="6a2128d" 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 13bbb79bc5..92d5b6ca3d 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="dd95ede" +PKG_VERSION="5b47bd0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From 46bc3ae8086bf583497a2566df384236624bea00 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 24 Oct 2016 23:01:11 +0100 Subject: [PATCH 6/6] RPi/RPi2: Update kodi support patches --- .../RPi/patches/kodi/kodi-001-backport.patch | 1548 +++++++++-------- .../RPi2/patches/kodi/kodi-001-backport.patch | 1548 +++++++++-------- 2 files changed, 1718 insertions(+), 1378 deletions(-) diff --git a/projects/RPi/patches/kodi/kodi-001-backport.patch b/projects/RPi/patches/kodi/kodi-001-backport.patch index b7ee1682e9..be742b6ec4 100644 --- a/projects/RPi/patches/kodi/kodi-001-backport.patch +++ b/projects/RPi/patches/kodi/kodi-001-backport.patch @@ -1,7 +1,7 @@ -From 202e6e44d01a65054e0609f659cb3a3244012fc6 Mon Sep 17 00:00:00 2001 +From 8d1013867be79401fbf6031a77c9559836300481 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 17:27:39 +0100 -Subject: [PATCH 01/71] build: Allow installed links to be overwritten +Subject: [PATCH 01/73] build: Allow installed links to be overwritten --- tools/depends/target/Makefile | 72 +++++++++++++++++++-------------------- @@ -137,10 +137,10 @@ index 5eb06d2001cfd049fce02b9dacf20f4fc76252d6..499d41f3c4c2307c3275dc3562d37def + [ -f $(ADDON_DEPS_DIR)/lib/libm.so ] || ln -sf /usr/lib/$(HOST)/libm.so $(ADDON_DEPS_DIR)/lib/ -From 1329a7396dd89969d74e7de39afd19d1a7222301 Mon Sep 17 00:00:00 2001 +From c2d4af27ae0c490f8b3b21c40938f69eddb3b993 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 02/71] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 02/73] [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 0314e11a8feb42ae384949cd37f51b2896415bda Mon Sep 17 00:00:00 2001 +From b4539526e1b39f837de148f31ac72c1984987925 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 03/71] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 03/73] [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 a78b4e9bbfc81096248953941c45fd01c86bcbda Mon Sep 17 00:00:00 2001 +From ead0ca4a8494d6eb946a38d801d6f538d1464b25 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 04/71] Improved file buffering in CArchive +Subject: [PATCH 04/73] 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 0a3b521962f2aaa2e0d30ab608dc53e01926a8c3 Mon Sep 17 00:00:00 2001 +From c77ae55125886d20a9dc5d4f6bbffa9bad1f4e82 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 05/71] filesystem: Make support of browsing into archives +Subject: [PATCH 05/73] 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 7d8a53cadd599d0ff415f80c497f63e577b58334..d86a219b8f5a586c237494656ba77ea204aa41aa 100644 +index 5d2af8d8705ecf61dc5b7c91f0517b8d1e1e640a..488e590d5a48467b19e27d01863487f51442b130 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19309,6 +19309,15 @@ msgstr "" +@@ -19333,6 +19333,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 161304a597b4c8fb859d5951d3037e33cfeadf5c..e7e13cae766c00133b67c2a9a6962a9a451a1d64 100644 +index c3567941192c724f2600494a8d7e355584b57b52..da1508dcedbd196789988d895e64548a08439d8f 100644 --- a/xbmc/Util.cpp +++ b/xbmc/Util.cpp -@@ -1886,7 +1886,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1899,7 +1899,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, URIUtils::RemoveExtension(strCandidate); if (StringUtils::StartsWithNoCase(strCandidate, videoName)) { @@ -327,7 +327,7 @@ index 161304a597b4c8fb859d5951d3037e33cfeadf5c..e7e13cae766c00133b67c2a9a6962a9a CUtil::ScanArchiveForAssociatedItems(pItem->GetPath(), "", item_exts, associatedFiles); else { -@@ -1896,7 +1896,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1909,7 +1909,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, } else { @@ -366,10 +366,10 @@ index a0fd0a9011e71f4af1535110c696b6ea5c4b37db..688b71a297c7c617c6764bfe6be157d7 { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); -From b80c2a021a60985149d421825e49fcf6fc766d4c Mon Sep 17 00:00:00 2001 +From 6fdad9365c972c6ba48db3487f8228b3a6e69afd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 06/71] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 06/73] [rbp] Make cachemembuffersize default depend on memory size --- @@ -471,10 +471,10 @@ index 6beebe0c9c11b0bab63e5abbd4aea2d62bb05f0c..03f566d3ee4eab690d2236b773908026 } -From 116128e0f9fcc11c5f7b373a30afb4c4facacfcb Mon Sep 17 00:00:00 2001 +From 66ba52b064d5697ad214f71bdf50c704275f0e87 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 07/71] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 07/73] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -482,7 +482,7 @@ Subject: [PATCH 07/71] [settings] Experiment: Report DESKTOP resolution in 1 file changed, 3 insertions(+) diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp -index c1cca7efdd5d119b07308b947c569911f2a9bdc9..e03f3c8ef21ba824c0d707042e5a735ac74a86b8 100644 +index ef95bc286fa982790248bad26da3c3e00c1da002..da69c6960867621d4ebe9267929664d973d00beb 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -704,6 +704,9 @@ void CDisplaySettings::SettingOptionsResolutionsFiller(const CSetting *setting, @@ -496,10 +496,10 @@ index c1cca7efdd5d119b07308b947c569911f2a9bdc9..e03f3c8ef21ba824c0d707042e5a735a StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From bee429c529aae1f826d6c3d8417a3bb3e4c02abc Mon Sep 17 00:00:00 2001 +From 859c87e3ac2360ecaa7eb846c24ae565228b9d85 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 08/71] [audio] Add settings option to boost centre channel +Subject: [PATCH 08/73] [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 d86a219b8f5a586c237494656ba77ea204aa41aa..4e4dd800fd0ad8f4b4bb2956d99f881b018b1022 100644 +index 488e590d5a48467b19e27d01863487f51442b130..a867d3205bbad13ac4f3b0862911f04c694e0f07 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19507,6 +19507,21 @@ msgstr "" +@@ -19531,6 +19531,21 @@ msgstr "" #empty strings from id 38047 to 38099 @@ -543,7 +543,7 @@ index d86a219b8f5a586c237494656ba77ea204aa41aa..4e4dd800fd0ad8f4b4bb2956d99f881b #: system/settings/settings.xml msgctxt "#38100" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 1ec0aa46101746ca21909c5effb36a74811b0d1e..7f43d130c47edcaf22f33ef547124134d30e7cbb 100644 +index 6ff6b4c63fdb49ebe02f63b93c6995e0ddd21d40..52f7d29eaa509c8d648c2cf2e125b9e7e4b90f3b 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -2361,6 +2361,18 @@ @@ -625,10 +625,10 @@ index f16b822ed7b4aebe18b5d339b3f71ee66e97c23f..993d4b33a294e88c2c004b7943895ba5 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From f7e5a05d6fbdb4cbd467d5ffa6bd809c5bd2ab33 Mon Sep 17 00:00:00 2001 +From 5b64f68afe3f41097e46b278f02db69190d2628d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 09/71] [rbp] Default extract thumbnails to false +Subject: [PATCH 09/73] [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 603a4b2646b57853646a661c23862bab8db4583a Mon Sep 17 00:00:00 2001 +From d52a6e898409a2c72e04c8f3abc9bff0cf01bec1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 10/71] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 10/73] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -680,10 +680,10 @@ index fcdd0633f30cd9595ae6cc4ed293677cdcb1f422..16f0c8916b5e0a9e90973d194cf2ebd1 } -From 4a5f93e97a2b82b0c7f6894da3936440e714aa63 Mon Sep 17 00:00:00 2001 +From 9b1420ca7a51442c3937106d739b01879a3568f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 11/71] logging: Add microsecond timer to log messages +Subject: [PATCH 11/73] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 15 +++++++++++++-- @@ -734,10 +734,10 @@ index 3443f1293d86018830269ed992c90a4e69c0430c..d330320842243df6f5ff256e608dddfa levelNames[logLevel]) + strData; -From dc92e0e62f88c0828188701c5cfa5d0819949159 Mon Sep 17 00:00:00 2001 +From a2e3b4c8b1af982f133cc894d249fb9322f8f9a2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 12/71] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 12/73] [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 1777c5c26c2fb2173d61ab50334d14f533aa5b45 Mon Sep 17 00:00:00 2001 +From 0b55fcce3a914ba67822156986f7aca2a0fd97ed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 13/71] Fix for UI not showing both extractflags and +Subject: [PATCH 13/73] Fix for UI not showing both extractflags and extractthumb --- @@ -833,10 +833,10 @@ Subject: [PATCH 13/71] 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 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a1635d2c43c 100644 +index a867d3205bbad13ac4f3b0862911f04c694e0f07..ca11841fdb24ed2f420e1b9ff92ed3e184af2fc3 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -12443,7 +12443,7 @@ msgstr "" +@@ -12450,7 +12450,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -845,7 +845,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -16945,7 +16945,7 @@ msgstr "" +@@ -16969,7 +16969,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36178" @@ -854,7 +854,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 msgstr "" #. Description of setting with label #20419 "Replace file names with library titles" -@@ -16957,7 +16957,7 @@ msgstr "" +@@ -16981,7 +16981,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36180" @@ -863,7 +863,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 msgstr "" #: system/settings/settings.xml -@@ -19654,3 +19654,7 @@ msgstr "" +@@ -19678,3 +19678,7 @@ msgstr "" msgctxt "#39010" msgid "Select sort method" msgstr "" @@ -872,7 +872,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 +msgid "Extract thumbnails from video files" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 7f43d130c47edcaf22f33ef547124134d30e7cbb..f2cf001e5ef8cfd881617b8f9887d054a0902176 100644 +index 52f7d29eaa509c8d648c2cf2e125b9e7e4b90f3b..785b431b40eb7fad5791bca97c1d20ef4c3d4817 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -977,8 +977,8 @@ @@ -887,10 +887,10 @@ index 7f43d130c47edcaf22f33ef547124134d30e7cbb..f2cf001e5ef8cfd881617b8f9887d054 -From bc596cd94ede919c2b31f4fbf448a3a4f1638bc6 Mon Sep 17 00:00:00 2001 +From 21b1d6a4c44e5e88288d4d436477c2bfd05f6588 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 14/71] Disable autoscrolling while on screensaver and while +Subject: [PATCH 14/73] Disable autoscrolling while on screensaver and while opening streams. --- @@ -903,10 +903,10 @@ Subject: [PATCH 14/71] 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 c780168e0fc2a0ffcbbaf4a8a0a7886210fbf57d..ad529fdb715d97497f9b851343e2aafc927b7d71 100644 +index 83c79ccc94c61c1740a65fd7e9402ca7c2b82813..cad5c05a1397a12309482dae7928b2a118a42925 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5213,3 +5213,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -5208,3 +5208,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -1021,10 +1021,10 @@ index d7bc1c5ba6067af9a460589920367288c640a915..ac766293f1c47c7f145cb46f6b152144 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 47998740e492c134e0b176de38dc008cd2344f0d Mon Sep 17 00:00:00 2001 +From e5b903c3dfb34e4361f8f6075cb772b2a8bf92b0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 15/71] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 15/73] [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 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889ddb0e5ef81 100644 +index 64dce349ad574e1bd115a1bfb08102034c1aef95..ca952e157690fe464c731e82cd302883c8ff437b 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -895,7 +895,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -906,7 +906,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { if(m_pkt.pkt.stream_index == (int)m_pFormatContext->programs[m_program]->stream_index[i]) { @@ -1047,7 +1047,7 @@ index 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889dd break; } } -@@ -904,7 +904,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -915,7 +915,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() bReturnEmpty = true; } else @@ -1056,7 +1056,7 @@ index 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889dd } else bReturnEmpty = true; -@@ -934,9 +934,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -945,9 +945,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() // copy contents into our own packet pPacket->iSize = m_pkt.pkt.size; @@ -1072,7 +1072,7 @@ index 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889dd 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); -@@ -990,7 +994,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1001,7 +1005,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() pPacket->iStreamId = m_pkt.pkt.stream_index; } m_pkt.result = -1; @@ -1124,10 +1124,10 @@ index df0f35bd49c65b302de4ccd110d859e8b881ea5f..b4b591ae4c4dd4fb0b36d4d00fedca96 } catch(...) { -From 7144fb5b424a40bbf5ec226dc8976959f9b0c17b Mon Sep 17 00:00:00 2001 +From 520156ba013cc22da40d68d232fc4760c3595d29 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 16/71] Load OSD dialogs on startup. +Subject: [PATCH 16/73] 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. @@ -1222,10 +1222,10 @@ index 0534828dd85520134f7a6890e43a873e223062c1..5a86dfc1e2a54c8fe8d82cb75b612d8e CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 852d35cfa51340faf7ae9015bf19c63639d9fdef Mon Sep 17 00:00:00 2001 +From b0c4cebc6683c71e88e1e86aeaaef53c759d9666 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 17/71] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 17/73] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -1233,10 +1233,10 @@ Subject: [PATCH 17/71] [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 ad529fdb715d97497f9b851343e2aafc927b7d71..c311fb5f06e0f1e7e887b79ec811941f17ffc34d 100644 +index cad5c05a1397a12309482dae7928b2a118a42925..826bc68488ed2227bd5175c3c20cacb1ab8b9930 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2759,7 +2759,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2754,7 +2754,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 ad529fdb715d97497f9b851343e2aafc927b7d71..c311fb5f06e0f1e7e887b79ec811941f fps = CSettings::GetInstance().GetInt(CSettings::SETTING_VIDEOPLAYER_LIMITGUIUPDATE); #endif -@@ -2772,6 +2772,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2767,6 +2767,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -1255,10 +1255,10 @@ index ad529fdb715d97497f9b851343e2aafc927b7d71..c311fb5f06e0f1e7e887b79ec811941f g_windowManager.FrameMove(); } -From 0c05fc9d4dfa04af6fd1def2c427385b6c0cc64a Mon Sep 17 00:00:00 2001 +From d1ed850bff3522923aa92c84a7faf6de41e31f81 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 18/71] [screensaver] Leave GUI contents available for +Subject: [PATCH 18/73] [screensaver] Leave GUI contents available for screensaver --- @@ -1288,10 +1288,10 @@ index f6f64414831232558751c9f35f5c1d61eacd4fd6..9350bfd4ed53954fc500ff813da3cc9d // Add window to the history list (we must do this before we activate it, -From 96fb9251dc5c13fb7b19ea7851b5cb01b00421cf Mon Sep 17 00:00:00 2001 +From 2e458883e7d819a8f51acbf0832d035d3a79452a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH 19/71] ffmpeg: Automatic switch to software decode for GMC +Subject: [PATCH 19/73] 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 984521b55341c9387c8853fb346d846c36ff6b9e..9b763bc30aaf473d656f53c140ead8f948eff812 100644 +index eaf9fc49319d5f0ee450ddd802bba569e291f0b5..8dd14cdfd053f142f386b6dee1fc0b21bb1f8d93 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,6 +1,7 @@ @@ -1374,7 +1374,7 @@ index 984521b55341c9387c8853fb346d846c36ff6b9e..9b763bc30aaf473d656f53c140ead8f9 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -72,6 +73,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -76,6 +77,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) rm -rf $(PLATFORM); mkdir -p $(PLATFORM) cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure @@ -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 090af6fd3d16b5d723ed665cac9889ddb0e5ef81..b2f2268c6e92b38f2e17f4d1e99b4681413a27b4 100644 +index ca952e157690fe464c731e82cd302883c8ff437b..f00e95324849011df9d078432699030f6c4afae8 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1367,7 +1367,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1393,7 +1393,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 928f3f8d99122a98d873b94cf306963a7538c935 Mon Sep 17 00:00:00 2001 +From 82f78893a3e6809a5deba403df8b37a2bae734fe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH 20/71] [rbp] HW mouse pointer +Subject: [PATCH 20/73] [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 c5a3be140b5890f3dc1e0ba682c3a676519eb0c0 Mon Sep 17 00:00:00 2001 +From 8ec830426891523384c72770524644469ba58d78 Mon Sep 17 00:00:00 2001 From: Claudio-Sjo Date: Mon, 16 Feb 2015 14:51:26 +0100 -Subject: [PATCH 21/71] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer +Subject: [PATCH 21/73] - 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 0d7f8d31adf8109c545a6ef2ca272bd944eb819d Mon Sep 17 00:00:00 2001 +From 285514a249509a62393980e93dd4b30906e702e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Jun 2016 19:38:13 +0100 -Subject: [PATCH 22/71] codecoverlay: Include codec name in overlay +Subject: [PATCH 22/73] codecoverlay: Include codec name in overlay --- xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp | 4 ++++ @@ -2164,7 +2164,7 @@ Subject: [PATCH 22/71] 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 5da89e55c83568513cbf829679b60780572d5b49..27d7065a61b495b36abcfb96bc75131750054be4 100644 +index f822935ab7fc919128db53f70a6c4eb84d9759bc..9db3a9cc91fd5f9b194d6c1aa66aa02121164c29 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 5da89e55c83568513cbf829679b60780572d5b49..27d7065a61b495b36abcfb96bc751317 //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 86513278362e65c3fb01d6c27662bbc9099fa68a..f80c62ef56303bac91c4813f854c60985d3f812f 100644 +index c1e91b52884b7268c580ef6814596832cdf222c7..babe49ec6c4a3650b17ddcf9b1f20ada93551e1d 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -@@ -921,10 +921,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) +@@ -917,10 +917,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) std::string CVideoPlayerVideo::GetPlayerInfo() { @@ -2213,7 +2213,7 @@ index 1e5d2b98bbef15b47994c3e4735873a9946b58c7..d43350fa0eefb5960475a02c1327efc2 return s.str(); } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index cdf67ff4741854e883818aa82c3c427531850963..f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c 100644 +index e9444d10405a88cef5d1e34ab5325802f0a938ea..84f389f6e37381a22db024667eebe4e8113857db 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp @@ -593,12 +593,14 @@ void OMXPlayerVideo::SetSpeed(int speed) @@ -2247,10 +2247,10 @@ index 0df7e72cc9d1947173c2bac5e72eb09976b51aa5..b5050081c360d29b1b478c27e6b88291 double m_iSubtitleDelay; bool m_bRenderSubs; -From 9c4175da7381fcb59d4bebfd60d02b23e3b1cfeb Mon Sep 17 00:00:00 2001 +From dbbdecf89a7496be839920f2efb6105bba0fb059 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 8 Mar 2016 21:20:58 +0300 -Subject: [PATCH 23/71] [DebugInfo] Add cpu usage info. +Subject: [PATCH 23/73] [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 b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d9065362c240f9 100644 +index b2c09cad49daab09794b375c643dfb670597e68e..d38031da337aa9ff180c2866c5d5924c8537978e 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp @@ -24,6 +24,7 @@ @@ -2398,7 +2398,7 @@ index b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d90653 #include "utils/log.h" #include "utils/StringUtils.h" #include "windowing/WindowingFactory.h" -@@ -906,7 +907,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -922,7 +923,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) if (m_renderDebug) { @@ -2407,7 +2407,7 @@ index b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d90653 m_playerPort->GetDebugInfo(audio, video, player); -@@ -920,8 +921,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -936,8 +937,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) missedvblanks, clockspeed * 100); } @@ -2420,17 +2420,17 @@ index b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d90653 m_debugTimer.Set(1000); -From 0804e3b54d11c2d9af6de2f81b00e12416dccf0d Mon Sep 17 00:00:00 2001 +From 7260435be2b9f432dd40d0296e301d89a1c85db6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH 24/71] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 24/73] 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 9b763bc30aaf473d656f53c140ead8f948eff812..4e3cbf75331240ef33deb8f99ae9c57aef53e8ac 100644 +index 8dd14cdfd053f142f386b6dee1fc0b21bb1f8d93..b5f38a458dfb341c43089e07afded153e234b9cd 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 9b763bc30aaf473d656f53c140ead8f948eff812..4e3cbf75331240ef33deb8f99ae9c57a ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) -From 65d542b66ad63df25cae7cc0bdc8b1b2bb829f89 Mon Sep 17 00:00:00 2001 +From 06bd1e13b97ac36991da8b844b6c23c7c4db25ed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH 25/71] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 25/73] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -2461,7 +2461,7 @@ Subject: [PATCH 25/71] 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 4e3cbf75331240ef33deb8f99ae9c57aef53e8ac..cdfd3334412d7392321c9ca63b7cc73487310875 100644 +index b5f38a458dfb341c43089e07afded153e234b9cd..c46b533e47497cb7b1e7200eff2cee1a6f2a1a2f 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,7 +1,8 @@ @@ -2474,7 +2474,7 @@ index 4e3cbf75331240ef33deb8f99ae9c57aef53e8ac..cdfd3334412d7392321c9ca63b7cc734 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -78,6 +79,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -82,6 +83,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure cd $(PLATFORM); patch -p1 < ../0001-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch @@ -6247,10 +6247,10 @@ index 0000000000000000000000000000000000000000..5e8e07d407f045fc99554f0f061d1e81 +2.5.0 + -From 44f8a8562b7a72443c5830b09905bf6d145f5930 Mon Sep 17 00:00:00 2001 +From 6d77c3fa90ff76fbe476911dcd70a4e2bf4461b4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH 26/71] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 26/73] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -6260,7 +6260,7 @@ Subject: [PATCH 26/71] [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 cdfd3334412d7392321c9ca63b7cc73487310875..f17db07af6440391a9c31eff8367fe7393f77dfc 100644 +index c46b533e47497cb7b1e7200eff2cee1a6f2a1a2f..48f8d56988718dd53294e8291a53e532f0ff338d 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -2,7 +2,8 @@ include ../../Makefile.include @@ -6273,7 +6273,7 @@ index cdfd3334412d7392321c9ca63b7cc73487310875..f17db07af6440391a9c31eff8367fe73 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -81,6 +82,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -85,6 +86,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../0001-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch cd $(PLATFORM); patch -p1 < ../hevcdsp_ARM_NEON_optimized_epel_functions.patch cd $(PLATFORM); patch -p1 < ../added_ARM_NEON_optimized_SAO_patches.patch @@ -44436,450 +44436,16 @@ index 0000000000000000000000000000000000000000..e172ebf157aebffe1ae50b4a2b25fd71 +2.7.4 + -From 79f478c571cf8a51531b236a4bbac30d116b4569 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sat, 22 Aug 2015 23:06:56 +0100 -Subject: [PATCH 27/71] [dvdmessage] Increase timeout on - CDVDMsgGeneralSynchronize - ---- - xbmc/cores/VideoPlayer/DVDMessage.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/VideoPlayer/DVDMessage.cpp b/xbmc/cores/VideoPlayer/DVDMessage.cpp -index 0dcc664fd862706c60659f3664c7d964597c94d5..7614c831af9dfc821121a4111546fd4dfc664d06 100644 ---- a/xbmc/cores/VideoPlayer/DVDMessage.cpp -+++ b/xbmc/cores/VideoPlayer/DVDMessage.cpp -@@ -90,7 +90,7 @@ bool CDVDMsgGeneralSynchronize::Wait(unsigned int milliseconds, unsigned int sou - - void CDVDMsgGeneralSynchronize::Wait(std::atomic& abort, unsigned int source) - { -- while(!Wait(100, source) && !abort); -+ while(!Wait(200, source) && !abort); - } - - long CDVDMsgGeneralSynchronize::Release() - -From d8b0fda81af7df889d223337496fea088f5dcdd7 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH 28/71] [3d] Make MVC a valid 3D filename tag - ---- - xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ - xbmc/settings/AdvancedSettings.cpp | 2 ++ - xbmc/settings/AdvancedSettings.h | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp -index b34873cba6534086ae243326550385867a03256a..1443acaf0f25df458ae49766e13dd0323454f2eb 100644 ---- a/xbmc/guilib/StereoscopicsManager.cpp -+++ b/xbmc/guilib/StereoscopicsManager.cpp -@@ -197,6 +197,15 @@ std::string CStereoscopicsManager::DetectStereoModeByString(const std::string &n - if (re.RegFind(searchString) > -1) - stereoMode = "top_bottom"; - -+ if (!re.RegComp(g_advancedSettings.m_stereoscopicregex_mvc.c_str())) -+ { -+ CLog::Log(LOGERROR, "%s: Invalid RegExp for matching 3d MVC content:'%s'", __FUNCTION__, g_advancedSettings.m_stereoscopicregex_mvc.c_str()); -+ return stereoMode; -+ } -+ -+ if (re.RegFind(searchString) > -1) -+ stereoMode = "left_right"; -+ - return stereoMode; - } - -diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 03f566d3ee4eab690d2236b7739080269d552511..60e5652f69e96a559d8080e01dc214a56fb19343 100644 ---- a/xbmc/settings/AdvancedSettings.cpp -+++ b/xbmc/settings/AdvancedSettings.cpp -@@ -402,6 +402,7 @@ void CAdvancedSettings::Initialize() - m_stereoscopicregex_3d = "[-. _]3d[-. _]"; - m_stereoscopicregex_sbs = "[-. _]h?sbs[-. _]"; - m_stereoscopicregex_tab = "[-. _]h?tab[-. _]"; -+ m_stereoscopicregex_mvc = "[-. _]h?mvc[-. _]"; - - m_useDisplayControlHWStereo = false; - -@@ -516,6 +517,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) - XMLUtils::GetString(pElement, "stereoscopicregex3d", m_stereoscopicregex_3d); - XMLUtils::GetString(pElement, "stereoscopicregexsbs", m_stereoscopicregex_sbs); - XMLUtils::GetString(pElement, "stereoscopicregextab", m_stereoscopicregex_tab); -+ XMLUtils::GetString(pElement, "stereoscopicregexmvc", m_stereoscopicregex_mvc); - XMLUtils::GetFloat(pElement, "subsdelayrange", m_videoSubsDelayRange, 10, 600); - XMLUtils::GetFloat(pElement, "audiodelayrange", m_videoAudioDelayRange, 10, 600); - XMLUtils::GetString(pElement, "defaultplayer", m_videoDefaultPlayer); -diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h -index fc526d11c3a78bc74125429120e29bf295bd3b16..6b0e3b8cf9e3ff40e6af758c54fe7eefb89a131c 100644 ---- a/xbmc/settings/AdvancedSettings.h -+++ b/xbmc/settings/AdvancedSettings.h -@@ -372,6 +372,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler - std::string m_stereoscopicregex_3d; - std::string m_stereoscopicregex_sbs; - std::string m_stereoscopicregex_tab; -+ std::string m_stereoscopicregex_mvc; - - bool m_useDisplayControlHWStereo; - - -From 2b49536142534a8197b3ef2800c8ec4fe9d49dca Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 5 Oct 2015 14:58:05 +0100 -Subject: [PATCH 29/71] [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 3706e4d80b3b31da4c5be0a1b21f36e59d2910f2..e170b3fb05279ffa316794dbce1d4f9dc5697bd0 100644 ---- a/xbmc/guilib/GraphicContext.cpp -+++ b/xbmc/guilib/GraphicContext.cpp -@@ -266,7 +266,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const - { - const RESOLUTION_INFO info = GetResInfo(); - -- if(m_stereoView == RENDER_STEREO_VIEW_RIGHT) -+ if(m_stereoView == RENDER_STEREO_VIEW_LEFT) - res.y += info.iHeight + info.iBlanking; - } - if(m_stereoMode == RENDER_STEREO_MODE_SPLIT_VERTICAL) - -From b3e6758fc9ff329c26c2867e01eca7b9b60cc15a Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sun, 11 Oct 2015 20:51:37 +0100 -Subject: [PATCH 30/71] Revert "Revert "Disable extra logging by default"" - -This reverts commit a880554325be187b877cd8f0e2b338e7267da636. ---- - system/settings/settings.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index f2cf001e5ef8cfd881617b8f9887d054a0902176..52dfd4e3e261388a5fe0f6997e62b906ccfa007a 100644 ---- a/system/settings/settings.xml -+++ b/system/settings/settings.xml -@@ -2815,12 +2815,12 @@ - - - 1 -- true -+ false - - - - 1 -- 32768 -+ - - loggingcomponents - , - -From 360f50196733d6e07328b62b6326076654af7e74 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Thu, 26 Nov 2015 17:14:49 +0000 -Subject: [PATCH 31/71] [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 5b2243f3094403ce485006333fd000342f0e58b2..799dc57a130d15a025a7c525ddac8e1748ff6416 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -2450,6 +2450,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) - if (stream->m_processingBuffers) - { - stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold); -+ CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error); - } - } - else if (stream->m_processingBuffers) - -From 8e6ec4f5a9713fbdfa7a0690ca92f9efe1d943bf Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH 32/71] [omximage] Fall back to arm jpeg encode/decode when gpu - is busy - ---- - xbmc/cores/omxplayer/OMXImage.cpp | 50 ++++++++++++++++++++++++++++++++------- - xbmc/cores/omxplayer/OMXImage.h | 7 ++++++ - 2 files changed, 48 insertions(+), 9 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp -index d2560aa78980e44d5f2d1483bce976cb83353502..e16dbf00b8d8192df4c6e946a48d8f20a72d762d 100644 ---- a/xbmc/cores/omxplayer/OMXImage.cpp -+++ b/xbmc/cores/omxplayer/OMXImage.cpp -@@ -57,12 +57,17 @@ static XbmcThreads::ConditionVariable g_count_cond; - static CCriticalSection g_count_lock; - static int g_count_val; - --static void limit_calls_enter() -+static bool limit_calls_enter() - { - CSingleLock lock(g_count_lock); -+ // on Pi2 fall back to arm decode if the queue is getting big -+ if (g_RBP.RasberryPiVersion() > 1 && g_count_val >= 2) -+ return false; -+ - while (g_count_val >= 3) - g_count_cond.wait(lock); - g_count_val++; -+ return true; - } - - static void limit_calls_leave() -@@ -112,6 +117,9 @@ bool COMXImage::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int w - unsigned int format, unsigned int pitch, const std::string& destFile) - { - COMXImageEnc omxImageEnc; -+ if (!omxImageEnc.Gpu()) -+ return false; -+ - bool ret = omxImageEnc.CreateThumbnailFromSurface(buffer, width, height, format, pitch, destFile); - if (!ret) - CLog::Log(LOGNOTICE, "%s: unable to create thumbnail %s %dx%d", __func__, destFile.c_str(), width, height); -@@ -205,6 +213,8 @@ bool COMXImage::CreateThumb(const std::string& srcFile, unsigned int maxHeight, - bool okay = false; - COMXImageFile file; - COMXImageReEnc reenc; -+ if (!reenc.Gpu()) -+ return false; - void *pDestBuffer; - unsigned int nDestSize; - int orientation = additional_info == "flipped" ? 1:0; -@@ -310,6 +320,9 @@ bool COMXImage::DecodeJpegToTexture(COMXImageFile *file, unsigned int width, uns - bool ret = false; - COMXTexture omx_image; - -+ if (!omx_image.Gpu()) -+ return false; -+ - struct textureinfo *tex = new struct textureinfo; - if (!tex) - return NULL; -@@ -924,7 +937,7 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) - - COMXImageDec::COMXImageDec() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - m_decoded_buffer = NULL; - OMX_INIT_STRUCTURE(m_decoded_format); - m_success = false; -@@ -936,7 +949,8 @@ COMXImageDec::~COMXImageDec() - - OMX_INIT_STRUCTURE(m_decoded_format); - m_decoded_buffer = NULL; -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - void COMXImageDec::Close() -@@ -1086,6 +1100,9 @@ bool COMXImageDec::HandlePortSettingChange(unsigned int resize_width, unsigned i - - bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned width, unsigned height, unsigned stride, void *pixels) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - OMX_BUFFERHEADERTYPE *omx_buffer = NULL; -@@ -1223,7 +1240,7 @@ bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes - - COMXImageEnc::COMXImageEnc() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - CSingleLock lock(m_OMXSection); - OMX_INIT_STRUCTURE(m_encoded_format); - m_encoded_buffer = NULL; -@@ -1247,11 +1264,15 @@ COMXImageEnc::~COMXImageEnc() - m_omx_encoder.Deinitialize(); - } - } -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsigned height, unsigned int pitch) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - - unsigned int demuxer_bytes = 0; -@@ -1432,6 +1453,9 @@ bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsig - bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, - unsigned int format, unsigned int pitch, const std::string& destFile) - { -+ if (!m_gpu) -+ return false; -+ - if(format != XB_FMT_A8R8G8B8 || !buffer) - { - CLog::Log(LOGDEBUG, "%s::%s : %s failed format=0x%x\n", CLASSNAME, __func__, destFile.c_str(), format); -@@ -1465,7 +1489,7 @@ bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned in - - COMXImageReEnc::COMXImageReEnc() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - m_encoded_buffer = NULL; - m_pDestBuffer = NULL; - m_nDestAllocSize = 0; -@@ -1479,7 +1503,8 @@ COMXImageReEnc::~COMXImageReEnc() - free (m_pDestBuffer); - m_pDestBuffer = NULL; - m_nDestAllocSize = 0; -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - void COMXImageReEnc::Close() -@@ -1771,6 +1796,9 @@ bool COMXImageReEnc::HandlePortSettingChange(unsigned int resize_width, unsigned - - bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, unsigned int maxHeight, void * &pDestBuffer, unsigned int &nDestSize) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - -@@ -1943,14 +1971,15 @@ bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, uns - - COMXTexture::COMXTexture() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - m_success = false; - } - - COMXTexture::~COMXTexture() - { - Close(); -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - void COMXTexture::Close() -@@ -2134,6 +2163,9 @@ bool COMXTexture::HandlePortSettingChange(unsigned int resize_width, unsigned in - - bool COMXTexture::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned int width, unsigned int height, void *egl_image) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - -diff --git a/xbmc/cores/omxplayer/OMXImage.h b/xbmc/cores/omxplayer/OMXImage.h -index a93aa82663903fb1bf712058c2e259290ee742e6..6f38dbc7e5cc721c59a3633935f08218eb1dd169 100644 ---- a/xbmc/cores/omxplayer/OMXImage.h -+++ b/xbmc/cores/omxplayer/OMXImage.h -@@ -133,6 +133,7 @@ protected: - OMX_PARAM_PORTDEFINITIONTYPE m_decoded_format; - CCriticalSection m_OMXSection; - bool m_success; -+ bool m_gpu; - }; - - class COMXImageEnc -@@ -144,6 +145,7 @@ public: - // Required overrides - bool CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, - unsigned int format, unsigned int pitch, const std::string& destFile); -+ bool Gpu() { return m_gpu; } - protected: - bool Encode(unsigned char *buffer, int size, unsigned int width, unsigned int height, unsigned int pitch); - // Components -@@ -152,6 +154,7 @@ protected: - OMX_PARAM_PORTDEFINITIONTYPE m_encoded_format; - CCriticalSection m_OMXSection; - bool m_success; -+ bool m_gpu; - }; - - class COMXImageReEnc -@@ -163,6 +166,7 @@ public: - // Required overrides - void Close(); - bool ReEncode(COMXImageFile &srcFile, unsigned int width, unsigned int height, void * &pDestBuffer, unsigned int &nDestSize); -+ bool Gpu() { return m_gpu; } - protected: - bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed); - // Components -@@ -176,6 +180,7 @@ protected: - void *m_pDestBuffer; - unsigned int m_nDestAllocSize; - bool m_success; -+ bool m_gpu; - }; - - class COMXTexture -@@ -187,6 +192,7 @@ public: - // Required overrides - void Close(void); - bool Decode(const uint8_t *data, unsigned size, unsigned int width, unsigned int height, void *egl_image); -+ bool Gpu() { return m_gpu; } - protected: - bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed); - -@@ -201,6 +207,7 @@ protected: - OMX_BUFFERHEADERTYPE *m_egl_buffer; - CCriticalSection m_OMXSection; - bool m_success; -+ bool m_gpu; - }; - - extern COMXImage g_OMXImage; - -From 643886cf5e2dd5c6ea75c8798eeb02332e18767a Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH 33/71] [mmalcodec] Fail to open when width is invalid. Can - happen with mpegts files - ---- - xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -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) - if (g_advancedSettings.CanLogComponent(LOGVIDEO)) - CLog::Log(LOGDEBUG, "%s::%s usemmal:%d software:%d %dx%d renderer:%p", CLASSNAME, __func__, CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL), hints.software, hints.width, hints.height, options.m_opaque_pointer); - -+ // This occurs at start of m2ts files before streams have been fully identified - just ignore -+ if (!hints.width) -+ return false; - // we always qualify even if DVDFactoryCodec does this too. - if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) - return false; - -From 6c3e8391b719b76353055162c73a3375e958f87e Mon Sep 17 00:00:00 2001 +From 8dde9060e177029f52161cd53dd24afe6edbdee7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH 34/71] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 27/73] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2179 ++++++++++++++++++++ tools/depends/target/ffmpeg/Makefile | 5 +- - tools/depends/target/ffmpeg/autobuild.sh | 1 + - 3 files changed, 2184 insertions(+), 1 deletion(-) + tools/depends/target/ffmpeg/autobuild.sh | 2 + + 3 files changed, 2185 insertions(+), 1 deletion(-) create mode 100644 tools/depends/target/ffmpeg/0001-Squashed-commit-of-the-following.patch diff --git a/tools/depends/target/ffmpeg/0001-Squashed-commit-of-the-following.patch b/tools/depends/target/ffmpeg/0001-Squashed-commit-of-the-following.patch @@ -47068,7 +46634,7 @@ index 0000000000000000000000000000000000000000..38554af0af30a85b7d88d31b7d21775c +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d59021500 100644 +index 48f8d56988718dd53294e8291a53e532f0ff338d..337dbaab927919858e44d79f647207ef0513eea1 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -3,7 +3,8 @@ include FFMPEG-VERSION @@ -47081,7 +46647,7 @@ index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -67,6 +68,7 @@ ifeq ($(Configuration), Release) +@@ -71,6 +72,7 @@ ifeq ($(Configuration), Release) ffmpg_config += --disable-debug endif @@ -47089,7 +46655,7 @@ index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d CLEAN_FILES=$(ARCHIVE) $(PLATFORM) -@@ -83,6 +85,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -87,6 +89,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../hevcdsp_ARM_NEON_optimized_epel_functions.patch cd $(PLATFORM); patch -p1 < ../added_ARM_NEON_optimized_SAO_patches.patch cd $(PLATFORM); patch -p1 < ../pfcd_hevc_optimisations.patch @@ -47098,7 +46664,7 @@ index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh -index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..7022b5fadef58ad27b61725d77131bd78af2f51d 100755 +index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..41248acbe1ff6d8883e55678ae256b566bf925c3 100755 --- a/tools/depends/target/ffmpeg/autobuild.sh +++ b/tools/depends/target/ffmpeg/autobuild.sh @@ -131,6 +131,7 @@ patch -p1 < ../0001-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch @@ -47109,11 +46675,429 @@ index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..7022b5fadef58ad27b61725d77131bd7 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ +@@ -165,6 +166,7 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ + --enable-zlib \ + --disable-mipsdsp \ + --disable-mipsdspr2 \ ++ --extra-cflags="-DRPI=1" \ + ${FLAGS} + + make -j ${BUILDTHREADS} -From f951553df2c7891607ca73715009627f6066766c Mon Sep 17 00:00:00 2001 +From a76e212aeac830e30521517ec45f88d6934881e6 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 16 Sep 2015 19:05:12 +0100 +Subject: [PATCH 28/73] [3d] Make MVC a valid 3D filename tag + +--- + xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ + xbmc/settings/AdvancedSettings.cpp | 2 ++ + xbmc/settings/AdvancedSettings.h | 1 + + 3 files changed, 12 insertions(+) + +diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp +index b34873cba6534086ae243326550385867a03256a..1443acaf0f25df458ae49766e13dd0323454f2eb 100644 +--- a/xbmc/guilib/StereoscopicsManager.cpp ++++ b/xbmc/guilib/StereoscopicsManager.cpp +@@ -197,6 +197,15 @@ std::string CStereoscopicsManager::DetectStereoModeByString(const std::string &n + if (re.RegFind(searchString) > -1) + stereoMode = "top_bottom"; + ++ if (!re.RegComp(g_advancedSettings.m_stereoscopicregex_mvc.c_str())) ++ { ++ CLog::Log(LOGERROR, "%s: Invalid RegExp for matching 3d MVC content:'%s'", __FUNCTION__, g_advancedSettings.m_stereoscopicregex_mvc.c_str()); ++ return stereoMode; ++ } ++ ++ if (re.RegFind(searchString) > -1) ++ stereoMode = "left_right"; ++ + return stereoMode; + } + +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index 03f566d3ee4eab690d2236b7739080269d552511..60e5652f69e96a559d8080e01dc214a56fb19343 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -402,6 +402,7 @@ void CAdvancedSettings::Initialize() + m_stereoscopicregex_3d = "[-. _]3d[-. _]"; + m_stereoscopicregex_sbs = "[-. _]h?sbs[-. _]"; + m_stereoscopicregex_tab = "[-. _]h?tab[-. _]"; ++ m_stereoscopicregex_mvc = "[-. _]h?mvc[-. _]"; + + m_useDisplayControlHWStereo = false; + +@@ -516,6 +517,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) + XMLUtils::GetString(pElement, "stereoscopicregex3d", m_stereoscopicregex_3d); + XMLUtils::GetString(pElement, "stereoscopicregexsbs", m_stereoscopicregex_sbs); + XMLUtils::GetString(pElement, "stereoscopicregextab", m_stereoscopicregex_tab); ++ XMLUtils::GetString(pElement, "stereoscopicregexmvc", m_stereoscopicregex_mvc); + XMLUtils::GetFloat(pElement, "subsdelayrange", m_videoSubsDelayRange, 10, 600); + XMLUtils::GetFloat(pElement, "audiodelayrange", m_videoAudioDelayRange, 10, 600); + XMLUtils::GetString(pElement, "defaultplayer", m_videoDefaultPlayer); +diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h +index fc526d11c3a78bc74125429120e29bf295bd3b16..6b0e3b8cf9e3ff40e6af758c54fe7eefb89a131c 100644 +--- a/xbmc/settings/AdvancedSettings.h ++++ b/xbmc/settings/AdvancedSettings.h +@@ -372,6 +372,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler + std::string m_stereoscopicregex_3d; + std::string m_stereoscopicregex_sbs; + std::string m_stereoscopicregex_tab; ++ std::string m_stereoscopicregex_mvc; + + bool m_useDisplayControlHWStereo; + + +From 787ee8e5ad59ef95b9c6e02f8b54ce942922c87c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 5 Oct 2015 14:58:05 +0100 +Subject: [PATCH 29/73] [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 3706e4d80b3b31da4c5be0a1b21f36e59d2910f2..e170b3fb05279ffa316794dbce1d4f9dc5697bd0 100644 +--- a/xbmc/guilib/GraphicContext.cpp ++++ b/xbmc/guilib/GraphicContext.cpp +@@ -266,7 +266,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const + { + const RESOLUTION_INFO info = GetResInfo(); + +- if(m_stereoView == RENDER_STEREO_VIEW_RIGHT) ++ if(m_stereoView == RENDER_STEREO_VIEW_LEFT) + res.y += info.iHeight + info.iBlanking; + } + if(m_stereoMode == RENDER_STEREO_MODE_SPLIT_VERTICAL) + +From 266b32ce92b7794c18301d74338408bf570e1375 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 11 Oct 2015 20:51:37 +0100 +Subject: [PATCH 30/73] Revert "Revert "Disable extra logging by default"" + +This reverts commit a880554325be187b877cd8f0e2b338e7267da636. +--- + system/settings/settings.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/system/settings/settings.xml b/system/settings/settings.xml +index 785b431b40eb7fad5791bca97c1d20ef4c3d4817..291a781e33496a0e6fe5cd869c857f5a851586ce 100644 +--- a/system/settings/settings.xml ++++ b/system/settings/settings.xml +@@ -2825,12 +2825,12 @@ + + + 1 +- true ++ false + + + + 1 +- 32768 ++ + + loggingcomponents + , + +From d385c7c046adc03f7fd7357a722ec2b0305361f7 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 26 Nov 2015 17:14:49 +0000 +Subject: [PATCH 31/73] [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 f5671b8dfb03216301d936ae3b08bfc3e8225729..7db4a6e3610ccea32fe19574b4f2838d4a3a2bdb 100644 +--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp ++++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +@@ -2457,6 +2457,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) + if (stream->m_processingBuffers) + { + stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold); ++ CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error); + } + } + else if (stream->m_processingBuffers) + +From b592933a9bf174678474554b552734fa101ea430 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 21 Dec 2015 22:17:25 +0000 +Subject: [PATCH 32/73] [omximage] Fall back to arm jpeg encode/decode when gpu + is busy + +--- + xbmc/cores/omxplayer/OMXImage.cpp | 50 ++++++++++++++++++++++++++++++++------- + xbmc/cores/omxplayer/OMXImage.h | 7 ++++++ + 2 files changed, 48 insertions(+), 9 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp +index d2560aa78980e44d5f2d1483bce976cb83353502..e16dbf00b8d8192df4c6e946a48d8f20a72d762d 100644 +--- a/xbmc/cores/omxplayer/OMXImage.cpp ++++ b/xbmc/cores/omxplayer/OMXImage.cpp +@@ -57,12 +57,17 @@ static XbmcThreads::ConditionVariable g_count_cond; + static CCriticalSection g_count_lock; + static int g_count_val; + +-static void limit_calls_enter() ++static bool limit_calls_enter() + { + CSingleLock lock(g_count_lock); ++ // on Pi2 fall back to arm decode if the queue is getting big ++ if (g_RBP.RasberryPiVersion() > 1 && g_count_val >= 2) ++ return false; ++ + while (g_count_val >= 3) + g_count_cond.wait(lock); + g_count_val++; ++ return true; + } + + static void limit_calls_leave() +@@ -112,6 +117,9 @@ bool COMXImage::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int w + unsigned int format, unsigned int pitch, const std::string& destFile) + { + COMXImageEnc omxImageEnc; ++ if (!omxImageEnc.Gpu()) ++ return false; ++ + bool ret = omxImageEnc.CreateThumbnailFromSurface(buffer, width, height, format, pitch, destFile); + if (!ret) + CLog::Log(LOGNOTICE, "%s: unable to create thumbnail %s %dx%d", __func__, destFile.c_str(), width, height); +@@ -205,6 +213,8 @@ bool COMXImage::CreateThumb(const std::string& srcFile, unsigned int maxHeight, + bool okay = false; + COMXImageFile file; + COMXImageReEnc reenc; ++ if (!reenc.Gpu()) ++ return false; + void *pDestBuffer; + unsigned int nDestSize; + int orientation = additional_info == "flipped" ? 1:0; +@@ -310,6 +320,9 @@ bool COMXImage::DecodeJpegToTexture(COMXImageFile *file, unsigned int width, uns + bool ret = false; + COMXTexture omx_image; + ++ if (!omx_image.Gpu()) ++ return false; ++ + struct textureinfo *tex = new struct textureinfo; + if (!tex) + return NULL; +@@ -924,7 +937,7 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + + COMXImageDec::COMXImageDec() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + m_decoded_buffer = NULL; + OMX_INIT_STRUCTURE(m_decoded_format); + m_success = false; +@@ -936,7 +949,8 @@ COMXImageDec::~COMXImageDec() + + OMX_INIT_STRUCTURE(m_decoded_format); + m_decoded_buffer = NULL; +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + void COMXImageDec::Close() +@@ -1086,6 +1100,9 @@ bool COMXImageDec::HandlePortSettingChange(unsigned int resize_width, unsigned i + + bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned width, unsigned height, unsigned stride, void *pixels) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + OMX_ERRORTYPE omx_err = OMX_ErrorNone; + OMX_BUFFERHEADERTYPE *omx_buffer = NULL; +@@ -1223,7 +1240,7 @@ bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes + + COMXImageEnc::COMXImageEnc() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + CSingleLock lock(m_OMXSection); + OMX_INIT_STRUCTURE(m_encoded_format); + m_encoded_buffer = NULL; +@@ -1247,11 +1264,15 @@ COMXImageEnc::~COMXImageEnc() + m_omx_encoder.Deinitialize(); + } + } +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsigned height, unsigned int pitch) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + + unsigned int demuxer_bytes = 0; +@@ -1432,6 +1453,9 @@ bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsig + bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, + unsigned int format, unsigned int pitch, const std::string& destFile) + { ++ if (!m_gpu) ++ return false; ++ + if(format != XB_FMT_A8R8G8B8 || !buffer) + { + CLog::Log(LOGDEBUG, "%s::%s : %s failed format=0x%x\n", CLASSNAME, __func__, destFile.c_str(), format); +@@ -1465,7 +1489,7 @@ bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned in + + COMXImageReEnc::COMXImageReEnc() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + m_encoded_buffer = NULL; + m_pDestBuffer = NULL; + m_nDestAllocSize = 0; +@@ -1479,7 +1503,8 @@ COMXImageReEnc::~COMXImageReEnc() + free (m_pDestBuffer); + m_pDestBuffer = NULL; + m_nDestAllocSize = 0; +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + void COMXImageReEnc::Close() +@@ -1771,6 +1796,9 @@ bool COMXImageReEnc::HandlePortSettingChange(unsigned int resize_width, unsigned + + bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, unsigned int maxHeight, void * &pDestBuffer, unsigned int &nDestSize) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + OMX_ERRORTYPE omx_err = OMX_ErrorNone; + +@@ -1943,14 +1971,15 @@ bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, uns + + COMXTexture::COMXTexture() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + m_success = false; + } + + COMXTexture::~COMXTexture() + { + Close(); +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + void COMXTexture::Close() +@@ -2134,6 +2163,9 @@ bool COMXTexture::HandlePortSettingChange(unsigned int resize_width, unsigned in + + bool COMXTexture::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned int width, unsigned int height, void *egl_image) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + OMX_ERRORTYPE omx_err = OMX_ErrorNone; + +diff --git a/xbmc/cores/omxplayer/OMXImage.h b/xbmc/cores/omxplayer/OMXImage.h +index a93aa82663903fb1bf712058c2e259290ee742e6..6f38dbc7e5cc721c59a3633935f08218eb1dd169 100644 +--- a/xbmc/cores/omxplayer/OMXImage.h ++++ b/xbmc/cores/omxplayer/OMXImage.h +@@ -133,6 +133,7 @@ protected: + OMX_PARAM_PORTDEFINITIONTYPE m_decoded_format; + CCriticalSection m_OMXSection; + bool m_success; ++ bool m_gpu; + }; + + class COMXImageEnc +@@ -144,6 +145,7 @@ public: + // Required overrides + bool CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, + unsigned int format, unsigned int pitch, const std::string& destFile); ++ bool Gpu() { return m_gpu; } + protected: + bool Encode(unsigned char *buffer, int size, unsigned int width, unsigned int height, unsigned int pitch); + // Components +@@ -152,6 +154,7 @@ protected: + OMX_PARAM_PORTDEFINITIONTYPE m_encoded_format; + CCriticalSection m_OMXSection; + bool m_success; ++ bool m_gpu; + }; + + class COMXImageReEnc +@@ -163,6 +166,7 @@ public: + // Required overrides + void Close(); + bool ReEncode(COMXImageFile &srcFile, unsigned int width, unsigned int height, void * &pDestBuffer, unsigned int &nDestSize); ++ bool Gpu() { return m_gpu; } + protected: + bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed); + // Components +@@ -176,6 +180,7 @@ protected: + void *m_pDestBuffer; + unsigned int m_nDestAllocSize; + bool m_success; ++ bool m_gpu; + }; + + class COMXTexture +@@ -187,6 +192,7 @@ public: + // Required overrides + void Close(void); + bool Decode(const uint8_t *data, unsigned size, unsigned int width, unsigned int height, void *egl_image); ++ bool Gpu() { return m_gpu; } + protected: + bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed); + +@@ -201,6 +207,7 @@ protected: + OMX_BUFFERHEADERTYPE *m_egl_buffer; + CCriticalSection m_OMXSection; + bool m_success; ++ bool m_gpu; + }; + + extern COMXImage g_OMXImage; + +From fb991421a324fc5245614fca885a36f7554a3fc2 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 9 Dec 2015 13:31:14 +0000 +Subject: [PATCH 33/73] [mmalcodec] Fail to open when width is invalid. Can + happen with mpegts files + +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +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) + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s usemmal:%d software:%d %dx%d renderer:%p", CLASSNAME, __func__, CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL), hints.software, hints.width, hints.height, options.m_opaque_pointer); + ++ // This occurs at start of m2ts files before streams have been fully identified - just ignore ++ if (!hints.width) ++ return false; + // we always qualify even if DVDFactoryCodec does this too. + if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) + return false; + +From d3e36c19b8c0382ad963c316822703aaf2f082c8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 35/71] [videoplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 34/73] [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 +47119,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 2d352a3a844ec7888f982dc2330f2a1635d2c43c..45ee30ba64153eb4287e7cf0f2af6dd6553e9d26 100644 +index ca11841fdb24ed2f420e1b9ff92ed3e184af2fc3..7ace950c83e1497b4d96a31b33b524e7eafb1783 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19658,3 +19658,35 @@ msgstr "" +@@ -19682,3 +19682,35 @@ msgstr "" msgctxt "#38190" msgid "Extract thumbnails from video files" msgstr "" @@ -47200,7 +47184,7 @@ index 289dc55ec41aa44848519a05f8ee1ccc72740085..2572e25753712186f69390965ee1448b diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e683721976752e833238 100644 +index 7db4a6e3610ccea32fe19574b4f2838d4a3a2bdb..497b4433ed5fa45051b9b344cd59d949603ccda2 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 +47214,7 @@ index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e68372197675 par->stream->m_resampleIntegral = 0.0; } return; -@@ -2445,7 +2450,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) +@@ -2452,7 +2457,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) if (!newerror || stream->m_syncState != CAESyncInfo::AESyncState::SYNC_INSYNC) return ret; @@ -47248,7 +47232,7 @@ index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e68372197675 { if (stream->m_processingBuffers) { -@@ -3303,13 +3317,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) +@@ -3323,13 +3337,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) &msg, sizeof(MsgStreamParameter)); } @@ -47268,10 +47252,10 @@ index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e68372197675 void CActiveAE::SetStreamFFmpegInfo(CActiveAEStream *stream, int profile, enum AVMatrixEncoding matrix_encoding, enum AVAudioServiceType audio_service_type) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -index 502ee4ea0367a4f4423f3c2bf4bcfcb7df8e111e..14249e13ce294b70ce4df19ed170c8596cf5a535 100644 +index e29eb5719a2e24562a16180e53b2decd955e50a5..e2d3a6824ca0dc93fb08f3374c745ac1dcc63db3 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -@@ -175,6 +175,13 @@ struct MsgStreamFFmpegInfo +@@ -177,6 +177,13 @@ struct MsgStreamFFmpegInfo enum AVAudioServiceType audio_service_type; }; @@ -47285,7 +47269,7 @@ index 502ee4ea0367a4f4423f3c2bf4bcfcb7df8e111e..14249e13ce294b70ce4df19ed170c859 class CEngineStats { public: -@@ -291,7 +298,7 @@ protected: +@@ -293,7 +300,7 @@ protected: void SetStreamReplaygain(CActiveAEStream *stream, float rgain); void SetStreamVolume(CActiveAEStream *stream, float volume); void SetStreamResampleRatio(CActiveAEStream *stream, double ratio); @@ -47404,7 +47388,7 @@ index 81882a1a3828e3f95df26c1bd88c061d3b994b44..ed6974b1155a7272f3ef5bfed3f74967 void Drain(); void AbortAddPackets(); diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp -index 27d7065a61b495b36abcfb96bc75131750054be4..22c6480fc55e93e1f6a99b31851c7e5da3fd60b1 100644 +index 9db3a9cc91fd5f9b194d6c1aa66aa02121164c29..56170f48cda417554c57b2adf934c2df58a23abf 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp @@ -96,6 +96,7 @@ bool CVideoPlayerAudio::OpenStream(CDVDStreamInfo &hints) @@ -47509,10 +47493,10 @@ index 90b04db5405058be2ff20aeaa6af2d2ac651586f..084fba87f49f4c3b33a8dd4a20a626a3 void init_cursor(); void set_cursor(const void *pixels, int width, int height, int hotspot_x, int hotspot_y); -From ecf6ace9d336fb53689481288783edd2a35db890 Mon Sep 17 00:00:00 2001 +From 93d5e234c992e2b99148ecf128b46b321e49ed78 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH 36/71] rbp: Support zero copy interface with hevc acceleration +Subject: [PATCH 35/73] rbp: Support zero copy interface with hevc acceleration --- xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 9 +++++++++ @@ -47520,10 +47504,10 @@ Subject: [PATCH 36/71] 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 bd9d08fba188ec4e1ad3880cd7707974b0373b61..63df72700298c881107a3992c0eef893ae85f512 100644 +index b0bd4b5b4009520367525132a8455557830a3741..fc152c13ed5b17ccfbb0ab4c659dedf8fd63d6bd 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -369,6 +369,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options +@@ -368,6 +368,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options if (tryhw && m_decoderState == STATE_NONE) { m_decoderState = STATE_HW_SINGLE; @@ -47556,10 +47540,10 @@ index 29c4e6d15dd838cf845c301ea1a1f4c05db29871..864650d488d0f5b3dc9f89f01aa5c3b8 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 7c8d2db0bc531fd6e3b3788abc451b54dc58ca59 Mon Sep 17 00:00:00 2001 +From 2ba5f8b40e899f9ddd37b66803c65c4199324476 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 May 2015 18:26:04 +0100 -Subject: [PATCH 37/71] ffmpeg: use upstream mvc patches +Subject: [PATCH 36/73] ffmpeg: use upstream mvc patches --- ...vcodec-add-h264_mvc-codec-id-and-profiles.patch | 68 ++++++++++++ @@ -47769,7 +47753,7 @@ index 0000000000000000000000000000000000000000..399e8a95984771e4388bfe4785423ff3 +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e23794be3a 100644 +index 337dbaab927919858e44d79f647207ef0513eea1..7e97e4d91a443d46d933df528763422ff5e8f4fa 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -4,7 +4,9 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -47783,7 +47767,7 @@ index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e2 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -86,6 +88,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -90,6 +92,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../added_ARM_NEON_optimized_SAO_patches.patch cd $(PLATFORM); patch -p1 < ../pfcd_hevc_optimisations.patch cd $(PLATFORM); patch -p1 < ../0001-Squashed-commit-of-the-following.patch @@ -47794,7 +47778,7 @@ index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e2 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh -index 7022b5fadef58ad27b61725d77131bd78af2f51d..0c323ac47f7f79f4ce786c29c8f58bccad5d96dd 100755 +index 41248acbe1ff6d8883e55678ae256b566bf925c3..aa12d8d4ab30a43e405cac37d7daf1bc6686fe5a 100755 --- a/tools/depends/target/ffmpeg/autobuild.sh +++ b/tools/depends/target/ffmpeg/autobuild.sh @@ -132,6 +132,9 @@ patch -p1 < ../hevcdsp_ARM_NEON_optimized_epel_functions.patch @@ -47869,10 +47853,10 @@ index 0000000000000000000000000000000000000000..b39480ad098b9cd0882fcf75b96afb1b +2.7.4 + -From ec064d0dd35e383c434da78be6e7e2dd701b5b01 Mon Sep 17 00:00:00 2001 +From b52627c29eb93ede720d7473f91b644f868e6691 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 20 Jan 2016 17:02:16 +0300 -Subject: [PATCH 38/71] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc +Subject: [PATCH 37/73] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc streams. --- @@ -47880,7 +47864,7 @@ Subject: [PATCH 38/71] [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 b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3bdf14eeb 100644 +index f00e95324849011df9d078432699030f6c4afae8..c673115f4c5b1f80a0f2beb157f2821a337debee 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -25,6 +25,7 @@ @@ -47891,7 +47875,7 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 #include "DVDClock.h" // for DVD_TIME_BASE #include "DVDDemuxUtils.h" #include "DVDInputStreams/DVDInputStream.h" -@@ -1306,6 +1307,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1332,6 +1333,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) } case AVMEDIA_TYPE_VIDEO: { @@ -47907,7 +47891,7 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); stream = st; if(strcmp(m_pFormatContext->iformat->name, "flv") == 0) -@@ -1314,7 +1324,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1340,7 +1350,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) st->bVFR = false; // never trust pts in avi files with h264. @@ -47916,7 +47900,7 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 st->bPTSInvalid = true; #if defined(AVFORMAT_HAS_STREAM_GET_R_FRAME_RATE) -@@ -1385,6 +1395,17 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1411,6 +1421,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 +47919,10 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 } case AVMEDIA_TYPE_DATA: -From 558263b03a7fb773002a9b979f871acff4670063 Mon Sep 17 00:00:00 2001 +From 5e3d8ff9954cd60f9c896eabb9219b824d9844f3 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 25 Feb 2016 11:21:25 +0300 -Subject: [PATCH 39/71] [Stereo3D] Added mvc modes. +Subject: [PATCH 38/73] [Stereo3D] Added mvc modes. --- xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 4 ++++ @@ -47946,7 +47930,7 @@ Subject: [PATCH 39/71] [Stereo3D] Added mvc modes. 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp -index 809766a64b0289ca0a7f69cf68dd7651c249d161..04ceed1504c2d81aaa165d232e128c410b9fdc2c 100644 +index 24b1b10519467cbbfd96f7048efaf49aab7700cc..0b7b6178427302e0824734eb5c7aecd2a3b21a8c 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp @@ -104,6 +104,8 @@ namespace RenderManager { @@ -47960,8 +47944,8 @@ index 809766a64b0289ca0a7f69cf68dd7651c249d161..04ceed1504c2d81aaa165d232e128c41 } @@ -125,6 +127,8 @@ namespace RenderManager { convert["col_interleaved_lr"] = "col_interleaved_rl"; - convert["block_lr"] = "block_lr"; - convert["block_rl"] = "block_rl"; + convert["block_lr"] = "block_rl"; + convert["block_rl"] = "block_lr"; + convert["mvc_lr"] = "mvc_rl"; + convert["mvc_rl"] = "mvc_lr"; } @@ -47992,17 +47976,17 @@ index 1443acaf0f25df458ae49766e13dd0323454f2eb..6eb0752994bc5f8c47efbbf211120af0 i++; } -From 40af2076a7c8a476d48eb5fc6ee9b346b585e106 Mon Sep 17 00:00:00 2001 +From 7e689b0ba66c1626583734f772dd449760e36ac8 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Sat, 23 Jan 2016 10:21:32 +0300 -Subject: [PATCH 40/71] [VideoPlayer] Fix possible wrong aspect. +Subject: [PATCH 39/73] [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 f80c62ef56303bac91c4813f854c60985d3f812f..946518c7da7a7980052f98469c5726e8e7d55501 100644 +index babe49ec6c4a3650b17ddcf9b1f20ada93551e1d..693de6bc868b808eb746d6e304849e8a6c8d7e63 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 +47999,10 @@ index f80c62ef56303bac91c4813f854c60985d3f812f..946518c7da7a7980052f98469c5726e8 else m_fForcedAspectRatio = 0.0; -From 96a5c710aae0495f75aef9a760353060e096a69c Mon Sep 17 00:00:00 2001 +From 4b756099637b1cb748fde03af22ea6276f979cbf Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 22 Jan 2016 18:18:33 +0300 -Subject: [PATCH 41/71] [VideoPlayer] DemuxFFmpeg: ssif remux +Subject: [PATCH 40/73] [VideoPlayer] DemuxFFmpeg: ssif remux --- xbmc/cores/VideoPlayer/DVDDemuxers/CMakeLists.txt | 2 + @@ -48053,10 +48037,10 @@ index 63776b1333bb66483303e44d6ebe60f3cd7e14d7..0da129ff99f57dc38ca8a854854d9fe6 DVDDemuxUtils.h DVDDemuxVobsub.h diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d6b2fd624 100644 +index c673115f4c5b1f80a0f2beb157f2821a337debee..d028c5642585ffca236882a2f316150cac2cb0d4 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -164,6 +164,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() +@@ -166,6 +166,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() m_currentPts = DVD_NOPTS_VALUE; m_bMatroska = false; m_bAVI = false; @@ -48064,7 +48048,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d m_speed = DVD_PLAYSPEED_NORMAL; m_program = UINT_MAX; m_pkt.result = -1; -@@ -535,6 +536,8 @@ void CDVDDemuxFFmpeg::Dispose() +@@ -543,6 +544,8 @@ void CDVDDemuxFFmpeg::Dispose() m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48073,7 +48057,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d if (m_pFormatContext) { for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) -@@ -585,6 +588,9 @@ void CDVDDemuxFFmpeg::Flush() +@@ -596,6 +599,9 @@ void CDVDDemuxFFmpeg::Flush() m_displayTime = 0; m_dtsAtDisplayTime = DVD_NOPTS_VALUE; @@ -48083,7 +48067,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d } void CDVDDemuxFFmpeg::Abort() -@@ -852,7 +858,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -863,7 +869,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48094,7 +48078,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d { // update streams CreateStreams(m_program); -@@ -880,6 +888,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -891,6 +899,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48104,7 +48088,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d } else { -@@ -889,7 +900,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -900,7 +911,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { @@ -48115,7 +48099,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -1038,6 +1051,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1049,6 +1062,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() stream = AddStream(pPacket->iStreamId); } } @@ -48131,7 +48115,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d if (!stream) { CLog::Log(LOGERROR, "CDVDDemuxFFmpeg::AddStream - internal error, stream is null"); -@@ -1067,6 +1089,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) +@@ -1078,6 +1100,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48141,7 +48125,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d CDVDInputStream::IPosTime* ist = m_pInput->GetIPosTime(); if (ist) { -@@ -1142,6 +1167,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) +@@ -1158,6 +1183,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48151,7 +48135,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d return (ret >= 0); } -@@ -1309,11 +1337,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1335,11 +1363,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (pStream->codec->codec_id == AV_CODEC_ID_H264_MVC) { @@ -48167,7 +48151,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d break; } CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); -@@ -1399,7 +1428,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1425,7 +1454,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (CDVDCodecUtils::IsH264AnnexB(m_pFormatContext->iformat->name, pStream)) { @@ -48180,7 +48164,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) { -@@ -1492,7 +1525,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1537,7 +1570,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (langTag) strncpy(stream->language, langTag->value, 3); @@ -48452,10 +48436,10 @@ index 60e5652f69e96a559d8080e01dc214a56fb19343..cdaf53585a89a0da3a4038178806ee93 m_discStubExtensions = ".disc"; // internal music extensions -From c5d9b2d4efd4c615a4572749e85727b344acde75 Mon Sep 17 00:00:00 2001 +From bc26543c6ed60a2d9775d2fc03d4a6f0d9c72203 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:01:08 +0300 -Subject: [PATCH 42/71] [libbluray] bump libbluray to 0.9.2-mvc. +Subject: [PATCH 41/73] [libbluray] bump libbluray to 0.9.2-mvc. --- project/BuildDependencies/scripts/0_package.list | 2 +- @@ -48475,10 +48459,10 @@ index 4d1be9c2cb2bb0c9531413c7300342444df023e1..bc4913a3d0c1fcb7e27106a2ddd6988f libcec-3.1.0-win32-vc140.7z libfribidi-0.19.2-win32.7z -From c5a9af6e17d4bcfb07df6f99523a9331fc707b74 Mon Sep 17 00:00:00 2001 +From 45649c80d6a0ae44ad09d040d616401980b3946c Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:02:46 +0300 -Subject: [PATCH 43/71] [3DBD] Added support of 3D-BluRay playback. +Subject: [PATCH 42/73] [3DBD] Added support of 3D-BluRay playback. --- lib/DllLibbluray.h | 8 + @@ -48556,7 +48540,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 ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea10a58b472 100644 +index d028c5642585ffca236882a2f316150cac2cb0d4..9498f676602e85d020968a7ecf12a31a750ef0ba 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -27,6 +27,7 @@ @@ -48567,7 +48551,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 #include "DVDDemuxUtils.h" #include "DVDInputStreams/DVDInputStream.h" #include "DVDInputStreams/DVDInputStreamFFmpeg.h" -@@ -495,6 +496,16 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein +@@ -503,6 +504,16 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein UpdateCurrentPTS(); @@ -48584,7 +48568,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 // in case of mpegts and we have not seen pat/pmt, defer creation of streams if (!skipCreateStreams || m_pFormatContext->nb_programs > 0) { -@@ -858,9 +869,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -869,9 +880,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48595,7 +48579,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 { // update streams CreateStreams(m_program); -@@ -901,8 +910,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -912,8 +921,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { // libavformat is confused by the interleaved SSIF. @@ -48605,7 +48589,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -1053,10 +1061,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1064,10 +1072,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() } if (stream && m_pSSIF) { @@ -48617,7 +48601,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 if (stream->type == STREAM_DATA && stream->codec == AV_CODEC_ID_H264_MVC && pPacket->iSize) stream = GetStream(pPacket->iStreamId); } -@@ -1432,6 +1437,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1458,6 +1463,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { m_pSSIF->SetH264StreamId(streamIdx); pStream->codec->codec_tag = MKTAG('A', 'M', 'V', 'C'); @@ -48647,7 +48631,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 } } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) -@@ -1692,6 +1720,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) +@@ -1737,6 +1765,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) } Flush(); @@ -48660,7 +48644,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 return true; } -@@ -1736,6 +1770,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) +@@ -1781,6 +1815,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) bool CDVDDemuxFFmpeg::IsProgramChange() { @@ -49477,10 +49461,10 @@ index b967a85e6557e42a7f1235cdd804d5a0263b866f..561fb5cd4f971bc9ee4f41218a60bb3d typedef std::shared_ptr SOverlay; typedef std::list SOverlays; -From 26a07cfcbdd19e30743c04ee30b08e2f6219261d Mon Sep 17 00:00:00 2001 +From 9364454aa08e510e8285fd792abb8cdf63aace2f Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 2 Mar 2016 23:31:50 +0300 -Subject: [PATCH 44/71] [BaseRenderer] Fix aspect for TAB/SBS (need more +Subject: [PATCH 43/73] [BaseRenderer] Fix aspect for TAB/SBS (need more testing) --- @@ -49524,10 +49508,10 @@ index f9b3bfb4eb35eff3ef7af370136882bc733461e6..ab804ab0259992e4700e0ba99759c3f7 void CBaseRenderer::ManageRenderArea() -From 7cbfc3e33e6ea0513ad1321b80bbade1760df6b4 Mon Sep 17 00:00:00 2001 +From 023ad967694764e1c6f1ae964a284de3eac0474b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Feb 2016 17:00:50 +0000 -Subject: [PATCH 45/71] libbluray: Bump to Nevcairie's v0.9.2 +Subject: [PATCH 44/73] libbluray: Bump to Nevcairie's v0.9.2 This includes 3D support --- @@ -51184,10 +51168,10 @@ index 0000000000000000000000000000000000000000..5ef0124e35c9d81143921a328e272220 + + return fp; -From 6a6e521b5a8c0ba87b9704dd9aa10ae3896b69a2 Mon Sep 17 00:00:00 2001 +From e513afc9435f9652af6e31e159e0a9e5217e3c96 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Mar 2016 19:40:47 +0000 -Subject: [PATCH 46/71] [VideoPlayer] Added new msdk-mvc decoder. +Subject: [PATCH 45/73] [VideoPlayer] Added new msdk-mvc decoder. --- xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecUtils.cpp | 61 ++++++++++++++++++++++ @@ -51303,10 +51287,10 @@ index 361c96623660305fc393273b1eaea4db096c417d..8ec50bbf79e9e163ccae25e30f3a40bf static AVPixelFormat PixfmtFromEFormat(ERenderFormat format); }; -From 25f77b57fba31fff99ecd9af8e0943d74ba83389 Mon Sep 17 00:00:00 2001 +From 8ac9fae10b66960c1405aa06fede7ea2f2d4ab50 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 6 Mar 2016 12:54:59 +0000 -Subject: [PATCH 47/71] mvc: Automatically enable stereo mode +Subject: [PATCH 46/73] mvc: Automatically enable stereo mode --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 6 +++++- @@ -51364,10 +51348,10 @@ index 311dd6689236d660919c4c4483c51dca2752514a..536332c43e22ccb229e72b88518e54dd break; case AV_CODEC_ID_MPEG4: -From 3937828729ed7d4f48c3b8fa6b54d00299e32aa2 Mon Sep 17 00:00:00 2001 +From 2764d1e7a679c4b570af7e8cb704cffc02590dcd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 24 Mar 2016 13:02:58 +0000 -Subject: [PATCH 48/71] ffmpeg: mvc: fix for pixelation from packets with no +Subject: [PATCH 47/73] ffmpeg: mvc: fix for pixelation from packets with no pts/dts --- @@ -51407,7 +51391,7 @@ index 0000000000000000000000000000000000000000..5240cf58ce40c28d12354db63b7e2914 + *poutbuf = NULL; + *poutbuf_size = 0; diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c638197f3446b 100644 +index 7e97e4d91a443d46d933df528763422ff5e8f4fa..d4f279fd4f2ceb260698cd6fedb124bae61018d0 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -6,7 +6,8 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -51420,7 +51404,7 @@ index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c6381 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -91,6 +92,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -95,6 +96,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../0001-avcodec-add-h264_mvc-codec-id-and-profiles.patch cd $(PLATFORM); patch -p1 < ../0001-h264_parser-add-support-for-parsing-h264-mvc-NALUs.patch cd $(PLATFORM); patch -p1 < ../h264_parser_fix_parsing_of_mvc_slices_in_some_corner_cases.patch @@ -51429,10 +51413,10 @@ index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c6381 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ -From 1d276f429465651312f03e96fc1d16c292a21318 Mon Sep 17 00:00:00 2001 +From c966666795999cb4bd4f8e43107d78e42cde580f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Mar 2016 13:08:44 +0000 -Subject: [PATCH 49/71] stereoscopicmanager: remove hardwarebased for rbp +Subject: [PATCH 48/73] stereoscopicmanager: remove hardwarebased for rbp --- xbmc/guilib/StereoscopicsManager.cpp | 2 ++ @@ -51454,20 +51438,20 @@ index 6eb0752994bc5f8c47efbbf211120af0a0720d0c..9426604f6460651f54cc035476e69530 { "mvc_rl", RENDER_STEREO_MODE_SPLIT_HORIZONTAL }, // fallback {} -From 6a6175b80008d559b965ab8e31c2ced4f9c43203 Mon Sep 17 00:00:00 2001 +From c2b6b76b5b397bdae56fe26490aa55267d6d2465 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 17 May 2016 19:24:08 +0100 -Subject: [PATCH 50/71] stereoscopics: Switch to using block_lr for mvc to +Subject: [PATCH 49/73] stereoscopics: Switch to using block_lr for mvc to match makemkv See: http://forum.kodi.tv/showthread.php?tid=221407&pid=2339656#pid2339656 --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 2 +- - xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 12 ++++-------- + xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 8 ++------ xbmc/cores/omxplayer/OMXVideo.cpp | 2 +- xbmc/guilib/StereoscopicsManager.cpp | 11 +++++------ - 5 files changed, 12 insertions(+), 17 deletions(-) + 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp index 38e7d44b7968039120b9821fd5b6b2d552edf3c1..654a927a0d4cbf877a3bb2616d62f46a63e7cadb 100644 @@ -51483,10 +51467,10 @@ index 38e7d44b7968039120b9821fd5b6b2d552edf3c1..654a927a0d4cbf877a3bb2616d62f46a break; case AV_CODEC_ID_H263: diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 511b44b4682d204c43aa051ba62f7ea10a58b472..ba7371221f06aeecacc5a68ed059b55276d752e4 100644 +index 9498f676602e85d020968a7ecf12a31a750ef0ba..6ac2da1262bd7f6a8304ef3192d67d1ea8d910c5 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1444,7 +1444,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1470,7 +1470,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) CDVDInputStreamBluray *bluRay = static_cast(m_pInput); if (bluRay->HasMVC()) { @@ -51496,7 +51480,7 @@ index 511b44b4682d204c43aa051ba62f7ea10a58b472..ba7371221f06aeecacc5a68ed059b552 } } diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp -index 04ceed1504c2d81aaa165d232e128c410b9fdc2c..49f7f7ca7e144a259f6d06bd11cd97aa0b3242aa 100644 +index 0b7b6178427302e0824734eb5c7aecd2a3b21a8c..49f7f7ca7e144a259f6d06bd11cd97aa0b3242aa 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp @@ -102,10 +102,8 @@ namespace RenderManager { @@ -51512,16 +51496,12 @@ index 04ceed1504c2d81aaa165d232e128c410b9fdc2c..49f7f7ca7e144a259f6d06bd11cd97aa } return convert[mode]; } -@@ -125,10 +123,8 @@ namespace RenderManager { - convert["row_interleaved_lr"] = "row_interleaved_rl"; - convert["col_interleaved_rl"] = "col_interleaved_lr"; +@@ -127,8 +125,6 @@ namespace RenderManager { convert["col_interleaved_lr"] = "col_interleaved_rl"; -- convert["block_lr"] = "block_lr"; -- convert["block_rl"] = "block_rl"; + convert["block_lr"] = "block_rl"; + convert["block_rl"] = "block_lr"; - convert["mvc_lr"] = "mvc_rl"; - convert["mvc_rl"] = "mvc_lr"; -+ convert["block_lr"] = "block_rl"; -+ convert["block_rl"] = "block_lr"; } std::string res = convert[mode]; if(res.empty()) @@ -51563,10 +51543,10 @@ index 9426604f6460651f54cc035476e69530b2ea8493..cc929b599125a44ac128713fd4331782 }; -From 3683605496df55d79f763aa98ce6201b05b66f46 Mon Sep 17 00:00:00 2001 +From f1301d05093a677529ccc63fabbb161ea09a9d83 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 10 Mar 2016 18:11:33 +0300 -Subject: [PATCH 51/71] fixup! Revert supporting crappy tab/sbs subtitles. this +Subject: [PATCH 50/73] fixup! Revert supporting crappy tab/sbs subtitles. this fixes regular subtitles. --- @@ -51611,10 +51591,10 @@ index 3a080d06c90b0762482816928642e6de7810b539..7c0b70777556ac7694e7fc511cd4bb18 } -From d17055c05d41949c917e969aa4876a49cbed4bcc Mon Sep 17 00:00:00 2001 +From 7552084189bbac0c9b2a443fa071b1ebe85b1cf3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH 52/71] [libcec] Add repeating keypress patch from popcornmix' +Subject: [PATCH 51/73] [libcec] Add repeating keypress patch from popcornmix' repo --- @@ -52501,10 +52481,10 @@ index 0000000000000000000000000000000000000000..8366a696562a934144cc9a21ea6f2cab +1.9.1 + -From 3e32144c1bbd9aabfe39e87a743971959954ff12 Mon Sep 17 00:00:00 2001 +From 32d910f5fb777a2d18b2d81b8242e0abd48e6388 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 17:15:29 +0000 -Subject: [PATCH 53/71] cec: hack: pretend bump to 3.1.0 +Subject: [PATCH 52/73] cec: hack: pretend bump to 3.1.0 --- tools/depends/target/libcec/Makefile | 1 + @@ -52552,10 +52532,10 @@ index 0000000000000000000000000000000000000000..9e55e51068e7befd9d4ff003156ce1ff + # cec-client + add_subdirectory(src/cec-client) -From 08abeee53082011303685263203843929e364f61 Mon Sep 17 00:00:00 2001 +From 2e98d936f34bb32d80b7edfc86f10e4cd6073a85 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH 54/71] [cec] Add settings for configuring button repeats +Subject: [PATCH 53/73] [cec] Add settings for configuring button repeats --- addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ @@ -52564,10 +52544,10 @@ Subject: [PATCH 54/71] [cec] Add settings for configuring button repeats 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 45ee30ba64153eb4287e7cf0f2af6dd6553e9d26..c66858390045d010ab5d22bea362be03a8f48292 100644 +index 7ace950c83e1497b4d96a31b33b524e7eafb1783..bdc5953503cf382091706240505c850084d84d94 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19690,3 +19690,18 @@ msgstr "" +@@ -19714,3 +19714,18 @@ msgstr "" msgctxt "#38206" msgid "Max" msgstr "" @@ -52636,10 +52616,10 @@ index e6bcbce6911a1714e129ecd5aceead94769231f4..19b3c37bc18fcab30920b12902e8c339 if (GetSettingBool("pause_playback_on_deactivate")) { -From 6e00438089530706a2707ce168d95d95bf319f7d Mon Sep 17 00:00:00 2001 +From 4b033455b05332c157035752984e7c8da9ddce20 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH 55/71] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 54/73] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -52662,10 +52642,10 @@ index 19b3c37bc18fcab30920b12902e8c3397a69dccc..f859f44f6d5379154317b5760d7df720 if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { -From 3ead9831955410d3d750a70457802e8bd33d73d9 Mon Sep 17 00:00:00 2001 +From 6e8d828760fc9a98acb6d7599926b9bc33ff4f4e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH 56/71] [cec] Temp - more logging +Subject: [PATCH 55/73] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -52717,10 +52697,10 @@ index f859f44f6d5379154317b5760d7df720f0894e0d..f1c3a6d242183507c4ce9ebf4651b0c0 } -From 4420f962ccbef459efc7adbabbc6b940d04c1fd2 Mon Sep 17 00:00:00 2001 +From f422270e1333ba02c8c2321538ae171572e9879d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 Jan 2016 12:29:41 +0000 -Subject: [PATCH 57/71] [cec] Update for libcec 3.1.0 +Subject: [PATCH 56/73] [cec] Update for libcec 3.1.0 --- configure.ac | 4 ++-- @@ -52728,10 +52708,10 @@ Subject: [PATCH 57/71] [cec] Update for libcec 3.1.0 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 6a8b4a26a5d150e2965441798b178644cdfabba4..e99d80720f6c74346b77fcca1da017635bfb25c8 100644 +index 3df753bde53593ecea534455056268f9f8a24c1a..738d23e3272cd56b095cef821a3993bb9aa69b55 100644 --- a/configure.ac +++ b/configure.ac -@@ -1447,9 +1447,9 @@ if test "x$use_libcec" != "xno"; then +@@ -1453,9 +1453,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 @@ -52766,10 +52746,10 @@ index f1c3a6d242183507c4ce9ebf4651b0c0f7e9c5c9..28a6a8148810da940f977976a627018c // device name 'XBMC' snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str()); -From ea618c200f3b79644bb630ad9228bea0df3be14d Mon Sep 17 00:00:00 2001 +From 2748fd05bec256b540214e0e3e4cbbacac5aea31 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 14:46:41 +0000 -Subject: [PATCH 58/71] libcec: use system audio mode request instead of power +Subject: [PATCH 57/73] libcec: use system audio mode request instead of power on to start AVR reliable --- @@ -52835,10 +52815,10 @@ index 39ba882d0c7e270b4d1d1d566027cbaffb76b587..4565dc9f6fc0b3e6b49133443c19e107 $(LIBDYLIB): $(PLATFORM) -From 7e25a34208ce3e6d8f27a2bce29c1fa49e9d387a Mon Sep 17 00:00:00 2001 +From 25e789e48fd92bd81c780834328846abde00c69f Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 22 Mar 2016 09:51:52 +0100 -Subject: [PATCH 59/71] python: use kodi provided cert if available +Subject: [PATCH 58/73] python: use kodi provided cert if available --- xbmc/interfaces/python/XBPython.cpp | 6 ++++++ @@ -52862,10 +52842,10 @@ index bc84af9411ef55eaf5ba71a320b5cbfec5f49548..ff4ed7db26845905108ea0ae504e4f58 PyEval_AcquireLock(); else -From 5e2703cf3297145ce88ece33c54de5f9c337ec51 Mon Sep 17 00:00:00 2001 +From 2c9d4750f89d50ab7350a6f258d219190111c0b3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 25 May 2016 18:31:17 +0100 -Subject: [PATCH 60/71] rbp: Hard code the number of buffers to improve audio +Subject: [PATCH 59/73] rbp: Hard code the number of buffers to improve audio sync --- @@ -52891,10 +52871,10 @@ index 2572e25753712186f69390965ee1448bff3fadd5..5d9f716bac49f9850f1062a4d5ac8517 diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -index 9160a9b90319d64f102aa869f2d9065362c240f9..e03af0cd4dfbcf67b728b5ad26d912e4c098b109 100644 +index d38031da337aa9ff180c2866c5d5924c8537978e..370485e08080d421b12ad5ad4dd0f4985a55147d 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -@@ -1047,7 +1047,11 @@ void CRenderManager::UpdateDisplayLatency() +@@ -1063,7 +1063,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); @@ -52907,10 +52887,10 @@ index 9160a9b90319d64f102aa869f2d9065362c240f9..e03af0cd4dfbcf67b728b5ad26d912e4 } -From da39a1c8163325532ac99e3630244e0220145216 Mon Sep 17 00:00:00 2001 +From 2881008fef3d6c44ad33d258fa9be3c3346ab8d6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 4 Jul 2016 18:30:03 +0100 -Subject: [PATCH 61/71] rbp: Update the GL libs to new naming scheme +Subject: [PATCH 60/73] 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. @@ -52924,10 +52904,10 @@ will be dropped at some point 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac -index e99d80720f6c74346b77fcca1da017635bfb25c8..4f5486fb33f95338bc668437a605d552df3c8054 100644 +index 738d23e3272cd56b095cef821a3993bb9aa69b55..db912db732d5b55a5c8abfca0b4c7a04bf96d535 100644 --- a/configure.ac +++ b/configure.ac -@@ -943,7 +943,7 @@ if test "$use_gles" = "yes"; then +@@ -949,7 +949,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.) @@ -52962,10 +52942,10 @@ index ab06f968b3e314fca1ae001139f687dce9a5098b..87f1faa248b91a2e50758b23c0b9e5b0 else() find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac -index 9c8ddade7b7a20e072ddd41a3465ab6e1678b20d..4d728508ce5c18789c50a60dd302deb8c1b8f99d 100644 +index a0bc386284f168c982b8cfed7e28768fd42459b5..dbe3ec83221396d1a5ae5b8715b7ca45f17d247c 100644 --- a/tools/depends/configure.ac +++ b/tools/depends/configure.ac -@@ -391,7 +391,7 @@ if test "$target_platform" = "raspberry-pi" ; then +@@ -432,7 +432,7 @@ if test "$target_platform" = "raspberry-pi" ; then -isystem${use_firmware}/opt/vc/include \ -isystem${use_firmware}/opt/vc/include/interface/vcos/pthreads \ -isystem${use_firmware}/opt/vc/include/interface/vmcs_host/linux" @@ -52975,10 +52955,10 @@ index 9c8ddade7b7a20e072ddd41a3465ab6e1678b20d..4d728508ce5c18789c50a60dd302deb8 fi -From 0063738ac14e696f44c0709a608ef6555fed0b47 Mon Sep 17 00:00:00 2001 +From c8be496ad1ad4e4abe988ac1a4fc264d518f7393 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 16:49:02 +0100 -Subject: [PATCH 62/71] Revert "[settings] remove show EXIF picture information +Subject: [PATCH 61/73] Revert "[settings] remove show EXIF picture information setting" This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. @@ -52993,10 +52973,10 @@ This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. 7 files changed, 25 insertions(+), 3 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c66858390045d010ab5d22bea362be03a8f48292..622b491a999a84c90420ceb974cb8db238d14a7d 100644 +index bdc5953503cf382091706240505c850084d84d94..a459a333cd646462956e2e2925cc5bcbfb972bd8 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19705,3 +19705,13 @@ msgstr "" +@@ -19729,3 +19729,13 @@ msgstr "" msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -53011,7 +52991,7 @@ index c66858390045d010ab5d22bea362be03a8f48292..622b491a999a84c90420ceb974cb8db2 +msgid "If EXIF information exists (date, time, camera used, etc.), it will be displayed." +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 52dfd4e3e261388a5fe0f6997e62b906ccfa007a..c02b2d727283cdfbc6d64124404f93c21f7f3b3d 100644 +index 291a781e33496a0e6fe5cd869c857f5a851586ce..508055794481729aa6394b84d2527e6c2e9dc4e2 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -1180,6 +1180,11 @@ @@ -53027,7 +53007,7 @@ index 52dfd4e3e261388a5fe0f6997e62b906ccfa007a..c02b2d727283cdfbc6d64124404f93c2 0 true diff --git a/xbmc/pictures/GUIWindowPictures.cpp b/xbmc/pictures/GUIWindowPictures.cpp -index c68371900dd42a154220e440266a45a7b2ab3118..653942232843ed0fc6c54c8bc405852797da6605 100644 +index 4b5ec502a49d5116cafd53441a6d823be0da6b54..072639baae58479ec7d746f96634de069ee87e34 100644 --- a/xbmc/pictures/GUIWindowPictures.cpp +++ b/xbmc/pictures/GUIWindowPictures.cpp @@ -203,7 +203,7 @@ void CGUIWindowPictures::OnPrepareFileItems(CFileItemList& items) @@ -53077,7 +53057,7 @@ index 000b54fe1bb1dd1963edd5cf208ea318a5a5499d..2a022ff0ff66d237f0ebd12092c7b5ce }; diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp -index 3444a135954775a2c2fd60c151f447f76471d307..15d408b6a11357e200d236d6b025cee08751bbdd 100644 +index 8f7f14cce4281daeb1cf4ba18cb9304615ef17b8..69bd754cf2f97bc2416b4929e5fd6653e9e1fbc6 100644 --- a/xbmc/settings/Settings.cpp +++ b/xbmc/settings/Settings.cpp @@ -297,6 +297,7 @@ const std::string CSettings::SETTING_AUDIOCDS_SETTINGS = "audiocds.settings"; @@ -53089,7 +53069,7 @@ index 3444a135954775a2c2fd60c151f447f76471d307..15d408b6a11357e200d236d6b025cee0 const std::string CSettings::SETTING_PICTURES_SHOWVIDEOS = "pictures.showvideos"; const std::string CSettings::SETTING_PICTURES_DISPLAYRESOLUTION = "pictures.displayresolution"; diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h -index 0829f6b15207bf0b8f2e4a699600b46427fe6267..432a23ce6b501fa4f3fad1f4ecff9f19c28ca9b5 100644 +index 038b8c6b9436ed30e2a670164cf1f9556382c8c6..583f1079ce70192d133c43335a27bc0a49350648 100644 --- a/xbmc/settings/Settings.h +++ b/xbmc/settings/Settings.h @@ -254,6 +254,7 @@ public: @@ -53101,20 +53081,20 @@ index 0829f6b15207bf0b8f2e4a699600b46427fe6267..432a23ce6b501fa4f3fad1f4ecff9f19 static const std::string SETTING_PICTURES_SHOWVIDEOS; static const std::string SETTING_PICTURES_DISPLAYRESOLUTION; -From 44c44f0491ac34ac0d7212162175bfd09b69c09d Mon Sep 17 00:00:00 2001 +From 6be024ea730bcd2513b897e122be3ca1fbb1416b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Jun 2016 14:46:01 +0100 -Subject: [PATCH 63/71] ffmpeg: hacky fix for files with GMC +Subject: [PATCH 62/73] 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 ba7371221f06aeecacc5a68ed059b55276d752e4..952498322e789364462f68f168ac9ac197f3dd8c 100644 +index 6ac2da1262bd7f6a8304ef3192d67d1ea8d910c5..563556d7ab6858a767af6df83e24737e3ade5663 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1410,8 +1410,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1436,8 +1436,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) stereoMode = GetStereoModeFromMetadata(m_pFormatContext->metadata); if (!stereoMode.empty()) st->stereo_mode = stereoMode; @@ -53126,10 +53106,10 @@ index ba7371221f06aeecacc5a68ed059b55276d752e4..952498322e789364462f68f168ac9ac1 { if (pStream->codec->codec_id == AV_CODEC_ID_PROBE) -From d1c4f771b5608a853d5f1b96da0ee095c7425148 Mon Sep 17 00:00:00 2001 +From d926e32b95f3353f1d12a81709e8bbaab12f1be5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Jul 2016 20:39:18 +0100 -Subject: [PATCH 64/71] mmalrender: Add sharpness control +Subject: [PATCH 63/73] mmalrender: Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -53138,10 +53118,10 @@ Subject: [PATCH 64/71] 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 622b491a999a84c90420ceb974cb8db238d14a7d..d88ae3626dca2f86e7aa28ed62ae319aa3e0148a 100644 +index a459a333cd646462956e2e2925cc5bcbfb972bd8..dc220fb9809e277b1be60653c7fa1a6f62ff5a2c 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -8691,7 +8691,7 @@ msgstr "" +@@ -8695,7 +8695,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" @@ -53201,10 +53181,10 @@ index a056a25f4f74fc6be023404286e044dac9d8ca7c..5d3baa6534a2fe449990402ab805d844 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From cc99de7db0c2b2a9c48a923d3dea91194e68f30f Mon Sep 17 00:00:00 2001 +From 1f66b2a9ff102af96f70d8fa6b9b8a80bfcb2dce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jul 2016 19:00:03 +0100 -Subject: [PATCH 65/71] rbp: Ensure processinfo values are initialised +Subject: [PATCH 64/73] rbp: Ensure processinfo values are initialised --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 ++ @@ -53225,7 +53205,7 @@ index 654a927a0d4cbf877a3bb2616d62f46a63e7cadb..2c5144c44403de9d8ddea7cfbb0c7f83 return true; } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c..e653f1a37a275f61698969bb2f79f6e4689cee18 100644 +index 84f389f6e37381a22db024667eebe4e8113857db..f6fb241dfec9269f4e501248de4dc83d5fdc2d3a 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp @@ -739,9 +739,6 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f @@ -53248,10 +53228,10 @@ index f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c..e653f1a37a275f61698969bb2f79f6e4 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 c6d8d9bf6467a2730a4c02b408a4c5921924a3b1 Mon Sep 17 00:00:00 2001 +From b958fb38ea881c4da2f98a4a3c9b5290e0b7fbed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 16 Sep 2016 15:37:07 +0100 -Subject: [PATCH 66/71] MMAL: Indicate when picture came from still frame so +Subject: [PATCH 65/73] 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 @@ -53270,10 +53250,10 @@ deinterlace that does not require context for stills. 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 63df72700298c881107a3992c0eef893ae85f512..539882db7694e653df1d2caa5eaa955add0d7b71 100644 +index fc152c13ed5b17ccfbb0ab4c659dedf8fd63d6bd..ec2cc3d867d446a748024ce85e079aea8451fb85 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 +@@ -243,7 +243,7 @@ enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat(struct AVCodecContext * avctx #ifdef HAS_MMAL if (*cur == AV_PIX_FMT_YUV420P) { @@ -53395,10 +53375,10 @@ index a0104d9ff67402e74ea8076dd47e9e9bd11a74f1..2f9af729c26f81327a666a59a90f707e if (!g_graphicsContext.IsFullScreenVideo()) { -From 5030873f7ff40eaf7bddd1948cf9b832d1881438 Mon Sep 17 00:00:00 2001 +From 2eff85dc93732ef5fed900a933680fa8ba10f104 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 15:19:02 +0100 -Subject: [PATCH 67/71] MMAL: Move pool into base class +Subject: [PATCH 66/73] MMAL: Move pool into base class --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -53493,10 +53473,10 @@ index 60aff83a3e55f11313d0d9186212e9badbb6d52e..20eab3bed39fa11bd1454f6c6decd4ec class CDecoder -From 6297a1f607bfcb2fae0e05af8c8b2b7b91ec9b3b Mon Sep 17 00:00:00 2001 +From f3cd5d153db54994cebd549bf0181b030978a39e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 16:20:30 +0100 -Subject: [PATCH 68/71] MMAL: Make setting the decoder more consistent between +Subject: [PATCH 67/73] MMAL: Make setting the decoder more consistent between MMALCodec and MMALFFMpeg --- @@ -53607,10 +53587,10 @@ index 5d3baa6534a2fe449990402ab805d84423fbc636..b7a61eab678f8aedeff96795c9ba3a06 class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable -From e7eaba9534259eb067272938f849be91cbded991 Mon Sep 17 00:00:00 2001 +From dc0a901b361cc7e40ed64d3b77c06a7a5f38a042 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 16:32:45 +0100 -Subject: [PATCH 69/71] MMAL: Set processInfo in pool +Subject: [PATCH 68/73] MMAL: Set processInfo in pool --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 1 + @@ -53676,10 +53656,10 @@ index b7a61eab678f8aedeff96795c9ba3a06157bb88d..b7621a8cf37907d544987b06dd4528ee class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable -From 7201b3b43f2c3468bd8c158289611bc546264534 Mon Sep 17 00:00:00 2001 +From f9fcf79aa64dec676674a0237f15db390a225bce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 18:35:55 +0100 -Subject: [PATCH 70/71] MMAL: Report deinterlace method to processinfo overlay +Subject: [PATCH 69/73] MMAL: Report deinterlace method to processinfo overlay --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +-- @@ -53778,10 +53758,10 @@ index b7621a8cf37907d544987b06dd4528eed468abc0..5758deba4d5d30662507968ac7af0fb0 uint32_t m_mmal_format, m_width, m_height, m_aligned_width, m_aligned_height, m_size; AVCodecContext *m_avctx; -From 204ea8e03c62d18ba2c9793c63d289346678a082 Mon Sep 17 00:00:00 2001 +From 85dc8a110e932cb99d9ae5f1366a2d683274ebb5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 19 Sep 2016 19:56:07 +0100 -Subject: [PATCH 71/71] MMALRenderer: Ensure updated aspect ratio is seen in +Subject: [PATCH 70/73] MMALRenderer: Ensure updated aspect ratio is seen in the case of a single still frame --- @@ -53864,3 +53844,193 @@ index 5758deba4d5d30662507968ac7af0fb0497ae35e..a2af6d5fd0f5fa6736cb3ca31ee6c778 CRect m_src_rect; CRect m_dst_rect; RENDER_STEREO_MODE m_video_stereo_mode; + +From db293141be4e15f5d567d82fe151f2e2ede82aa1 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 19 Jul 2016 20:37:46 +0100 +Subject: [PATCH 71/73] mmalrender: Use computed framerate rather than version + from configure + +--- + .../VideoRenderers/HwDecRender/MMALRenderer.cpp | 58 ++++++++++++++++++++-- + .../VideoRenderers/HwDecRender/MMALRenderer.h | 5 +- + 2 files changed, 57 insertions(+), 6 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index 81dd06167b65ab8c29300d68f3138fd0bb7f6a48..d3ddcdeea8a71f9c24656c0ff2f7f95e7e845906 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -34,6 +34,7 @@ + #include "cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h" + #include "xbmc/Application.h" + #include "linux/RBP.h" ++#include "cores/VideoPlayer/DVDClock.h" + + extern "C" { + #include "libavutil/imgutils.h" +@@ -405,6 +406,10 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer"), m_processThread(this, + m_queue_render = nullptr; + m_queue_process = nullptr; + m_error = 0.0; ++ m_fps = 0.0; ++ m_lastPts = DVD_NOPTS_VALUE; ++ m_frameInterval = 0.0; ++ m_frameIntervalDiff = 1e5; + m_vsync_count = ~0U; + m_sharpness = -2.0f; + m_vout_width = 0; +@@ -452,14 +457,32 @@ void CMMALRenderer::Process() + CLog::Log(LOGDEBUG, "%s::%s - starting", CLASSNAME, __func__); + while (!bStop) + { +- g_RBP.WaitVsync(); + double dfps = g_graphicsContext.GetFPS(); +- if (dfps <= 0.0) +- dfps = m_fps; ++ double fps = 0.0; ++ double inc = 1.0; ++ g_RBP.WaitVsync(); ++ ++ CSingleLock lock(m_sharedSection); ++ // if good enough framerate measure then use it ++ if (dfps > 0.0 && m_frameInterval > 0.0 && m_frameIntervalDiff * 1e-6 < 1e-3) ++ { ++ fps = 1e6 / m_frameInterval; ++ inc = fps / dfps; ++ if (fabs(inc - 1.0) < 1e-2) ++ inc = 1.0; ++ else if (fabs(inc - 0.5) < 1e-2) ++ inc = 0.5; ++ else if (fabs(inc - 24.0/60.0) < 1e-2) ++ inc = 24.0/60.0; ++ if (m_deint) ++ inc *= 2.0; ++ } + // This algorithm is basically making the decision according to Bresenham's line algorithm. Imagine drawing a line where x-axis is display frames, and y-axis is video frames +- m_error += m_fps / dfps; ++ m_error += inc; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - debug vsync:%d queue:%d fps:%.2f/%.2f/%.2f inc:%f diff:%f", CLASSNAME, __func__, g_RBP.LastVsync(), mmal_queue_length(m_queue_render), fps, m_fps, dfps, inc, m_error); + // we may need to discard frames if queue length gets too high or video frame rate is above display frame rate +- while (mmal_queue_length(m_queue_render) > 2 || m_error > 1.0) ++ while (mmal_queue_length(m_queue_render) > 2 || (mmal_queue_length(m_queue_render) > 1 && m_error > 1.0)) + { + if (m_error > 1.0) + m_error -= 1.0; +@@ -655,6 +678,26 @@ void CMMALRenderer::Run() + CLog::Log(LOGDEBUG, "%s::%s - stopping", CLASSNAME, __func__); + } + ++void CMMALRenderer::UpdateFramerateStats(double pts) ++{ ++ double diff = 0.0; ++ if (m_lastPts != DVD_NOPTS_VALUE && pts != DVD_NOPTS_VALUE && pts - m_lastPts > 0.0 && pts - m_lastPts < DVD_SEC_TO_TIME(1./20.0)) ++ { ++ diff = pts - m_lastPts; ++ if (m_frameInterval == 0.0) ++ m_frameInterval = diff; ++ else if (diff > 0.0) ++ { ++ m_frameIntervalDiff = m_frameIntervalDiff * 0.9 + 0.1 * fabs(m_frameInterval - diff); ++ m_frameInterval = m_frameInterval * 0.9 + diff * 0.1; ++ } ++ } ++ if (pts != DVD_NOPTS_VALUE) ++ m_lastPts = pts; ++ if (VERBOSE && g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s pts:%.3f diff:%.3f m_frameInterval:%.6f m_frameIntervalDiff:%.6f", CLASSNAME, __func__, pts*1e-6, diff * 1e-6 , m_frameInterval * 1e-6, m_frameIntervalDiff *1e-6); ++} ++ + void CMMALRenderer::AddVideoPictureHW(DVDVideoPicture& pic, int index) + { + if (m_format != RENDER_FMT_MMAL) +@@ -669,6 +712,7 @@ void CMMALRenderer::AddVideoPictureHW(DVDVideoPicture& pic, int index) + CLog::Log(LOGDEBUG, "%s::%s MMAL - %p (%p) %i", CLASSNAME, __func__, buffer, buffer->mmal_buffer, index); + + m_buffers[index] = buffer->Acquire(); ++ UpdateFramerateStats(pic.pts); + } + + bool CMMALRenderer::Configure(unsigned int width, unsigned int height, unsigned int d_width, unsigned int d_height, float fps, unsigned flags, ERenderFormat format, unsigned extended_format, unsigned int orientation) +@@ -682,6 +726,10 @@ bool CMMALRenderer::Configure(unsigned int width, unsigned int height, unsigned + + m_fps = fps; + m_iFlags = flags; ++ m_error = 0.0; ++ m_lastPts = DVD_NOPTS_VALUE; ++ m_frameInterval = 0.0; ++ m_frameIntervalDiff = 1e5; + + // cause SetVideoRect to trigger - needed after a hdmi mode change + m_src_rect.SetRect(0, 0, 0, 0); +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +index a2af6d5fd0f5fa6736cb3ca31ee6c778fa78e3f7..69eae6cbef0131d20dc979dcb35915cd73967592 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +@@ -150,7 +150,9 @@ protected: + CThread m_processThread; + MMAL_BUFFER_HEADER_T m_quitpacket; + double m_error; +- ++ double m_lastPts; ++ double m_frameInterval; ++ double m_frameIntervalDiff; + uint32_t m_vout_width, m_vout_height, m_vout_aligned_width, m_vout_aligned_height; + // deinterlace + MMAL_COMPONENT_T *m_deint; +@@ -168,5 +170,6 @@ protected: + uint32_t m_vsync_count; + void ReleaseBuffers(); + void UnInitMMAL(); ++ void UpdateFramerateStats(double pts); + virtual void Run() override; + }; + +From e2e4983038147c5a0c104ed51c9a11eef1c787a0 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 13 Oct 2016 19:31:46 +0100 +Subject: [PATCH 72/73] MMALRender: Switch to deinterlace mode where frame + flags are exclusively used + +Ensures non-interlace frames are not deinterlaced when stream switches from interlaced to progressive +with software decode +--- + xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index d3ddcdeea8a71f9c24656c0ff2f7f95e7e845906..2f1e5bfc280ca1d608650ae97dc7df3d8d5a438c 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -1338,7 +1338,7 @@ bool CMMALRenderer::CheckConfigurationDeint(uint32_t width, uint32_t height, uin + if (m_deint_output && (sizeChanged || deinterlaceChanged || encodingChanged)) + { + MMAL_PARAMETER_IMAGEFX_PARAMETERS_T imfx_param = {{MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS, sizeof(imfx_param)}, +- advanced_deinterlace ? MMAL_PARAM_IMAGEFX_DEINTERLACE_ADV : MMAL_PARAM_IMAGEFX_DEINTERLACE_FAST, 4, {3, 0, half_framerate, 1 }}; ++ advanced_deinterlace ? MMAL_PARAM_IMAGEFX_DEINTERLACE_ADV : MMAL_PARAM_IMAGEFX_DEINTERLACE_FAST, 4, {5, 0, half_framerate, 1 }}; + + status = mmal_port_parameter_set(m_deint_output, &imfx_param.hdr); + if (status != MMAL_SUCCESS) + +From ee966fcdd5219fc0ab777c9ad50d0e045d69f359 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 14 Oct 2016 15:37:53 +0100 +Subject: [PATCH 73/73] MMALFFMpeg: Report as SW decode in codec overlay info + +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index ec2cc3d867d446a748024ce85e079aea8451fb85..e180ba5b73fe9a521a585722d3959291e919c375 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -579,7 +579,7 @@ void CDVDVideoCodecFFmpeg::UpdateName() + if(m_pHardware) + m_name += "-" + m_pHardware->Name(); + +- m_processInfo.SetVideoDecoderName(m_name, m_pHardware ? true : false); ++ m_processInfo.SetVideoDecoderName(m_name, m_pHardware && m_pHardware->Name() != "mmal" ? true : false); + + CLog::Log(LOGDEBUG, "CDVDVideoCodecFFmpeg - Updated codec: %s", m_name.c_str()); + } diff --git a/projects/RPi2/patches/kodi/kodi-001-backport.patch b/projects/RPi2/patches/kodi/kodi-001-backport.patch index b7ee1682e9..be742b6ec4 100644 --- a/projects/RPi2/patches/kodi/kodi-001-backport.patch +++ b/projects/RPi2/patches/kodi/kodi-001-backport.patch @@ -1,7 +1,7 @@ -From 202e6e44d01a65054e0609f659cb3a3244012fc6 Mon Sep 17 00:00:00 2001 +From 8d1013867be79401fbf6031a77c9559836300481 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 17:27:39 +0100 -Subject: [PATCH 01/71] build: Allow installed links to be overwritten +Subject: [PATCH 01/73] build: Allow installed links to be overwritten --- tools/depends/target/Makefile | 72 +++++++++++++++++++-------------------- @@ -137,10 +137,10 @@ index 5eb06d2001cfd049fce02b9dacf20f4fc76252d6..499d41f3c4c2307c3275dc3562d37def + [ -f $(ADDON_DEPS_DIR)/lib/libm.so ] || ln -sf /usr/lib/$(HOST)/libm.so $(ADDON_DEPS_DIR)/lib/ -From 1329a7396dd89969d74e7de39afd19d1a7222301 Mon Sep 17 00:00:00 2001 +From c2d4af27ae0c490f8b3b21c40938f69eddb3b993 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 -Subject: [PATCH 02/71] [rbp/omxplayer] When opening a stream don't try to +Subject: [PATCH 02/73] [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 0314e11a8feb42ae384949cd37f51b2896415bda Mon Sep 17 00:00:00 2001 +From b4539526e1b39f837de148f31ac72c1984987925 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 8 Mar 2014 15:36:06 +0000 -Subject: [PATCH 03/71] [hifiberry] Hack: force it to be recognised as IEC958 +Subject: [PATCH 03/73] [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 a78b4e9bbfc81096248953941c45fd01c86bcbda Mon Sep 17 00:00:00 2001 +From ead0ca4a8494d6eb946a38d801d6f538d1464b25 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 -Subject: [PATCH 04/71] Improved file buffering in CArchive +Subject: [PATCH 04/73] 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 0a3b521962f2aaa2e0d30ab608dc53e01926a8c3 Mon Sep 17 00:00:00 2001 +From c77ae55125886d20a9dc5d4f6bbffa9bad1f4e82 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 10 Aug 2014 16:45:16 +0100 -Subject: [PATCH 05/71] filesystem: Make support of browsing into archives +Subject: [PATCH 05/73] 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 7d8a53cadd599d0ff415f80c497f63e577b58334..d86a219b8f5a586c237494656ba77ea204aa41aa 100644 +index 5d2af8d8705ecf61dc5b7c91f0517b8d1e1e640a..488e590d5a48467b19e27d01863487f51442b130 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19309,6 +19309,15 @@ msgstr "" +@@ -19333,6 +19333,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 161304a597b4c8fb859d5951d3037e33cfeadf5c..e7e13cae766c00133b67c2a9a6962a9a451a1d64 100644 +index c3567941192c724f2600494a8d7e355584b57b52..da1508dcedbd196789988d895e64548a08439d8f 100644 --- a/xbmc/Util.cpp +++ b/xbmc/Util.cpp -@@ -1886,7 +1886,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1899,7 +1899,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, URIUtils::RemoveExtension(strCandidate); if (StringUtils::StartsWithNoCase(strCandidate, videoName)) { @@ -327,7 +327,7 @@ index 161304a597b4c8fb859d5951d3037e33cfeadf5c..e7e13cae766c00133b67c2a9a6962a9a CUtil::ScanArchiveForAssociatedItems(pItem->GetPath(), "", item_exts, associatedFiles); else { -@@ -1896,7 +1896,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, +@@ -1909,7 +1909,7 @@ void CUtil::ScanPathsForAssociatedItems(const std::string& videoName, } else { @@ -366,10 +366,10 @@ index a0fd0a9011e71f4af1535110c696b6ea5c4b37db..688b71a297c7c617c6764bfe6be157d7 { CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url); -From b80c2a021a60985149d421825e49fcf6fc766d4c Mon Sep 17 00:00:00 2001 +From 6fdad9365c972c6ba48db3487f8228b3a6e69afd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 -Subject: [PATCH 06/71] [rbp] Make cachemembuffersize default depend on memory +Subject: [PATCH 06/73] [rbp] Make cachemembuffersize default depend on memory size --- @@ -471,10 +471,10 @@ index 6beebe0c9c11b0bab63e5abbd4aea2d62bb05f0c..03f566d3ee4eab690d2236b773908026 } -From 116128e0f9fcc11c5f7b373a30afb4c4facacfcb Mon Sep 17 00:00:00 2001 +From 66ba52b064d5697ad214f71bdf50c704275f0e87 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 30 May 2014 14:58:43 +0100 -Subject: [PATCH 07/71] [settings] Experiment: Report DESKTOP resolution in +Subject: [PATCH 07/73] [settings] Experiment: Report DESKTOP resolution in video settings --- @@ -482,7 +482,7 @@ Subject: [PATCH 07/71] [settings] Experiment: Report DESKTOP resolution in 1 file changed, 3 insertions(+) diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp -index c1cca7efdd5d119b07308b947c569911f2a9bdc9..e03f3c8ef21ba824c0d707042e5a735ac74a86b8 100644 +index ef95bc286fa982790248bad26da3c3e00c1da002..da69c6960867621d4ebe9267929664d973d00beb 100644 --- a/xbmc/settings/DisplaySettings.cpp +++ b/xbmc/settings/DisplaySettings.cpp @@ -704,6 +704,9 @@ void CDisplaySettings::SettingOptionsResolutionsFiller(const CSetting *setting, @@ -496,10 +496,10 @@ index c1cca7efdd5d119b07308b947c569911f2a9bdc9..e03f3c8ef21ba824c0d707042e5a735a StringUtils::Format("%dx%d%s", resolution->width, resolution->height, ModeFlagsToString(resolution->flags, false).c_str()), -From bee429c529aae1f826d6c3d8417a3bb3e4c02abc Mon Sep 17 00:00:00 2001 +From 859c87e3ac2360ecaa7eb846c24ae565228b9d85 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 24 Sep 2014 23:13:52 +0100 -Subject: [PATCH 08/71] [audio] Add settings option to boost centre channel +Subject: [PATCH 08/73] [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 d86a219b8f5a586c237494656ba77ea204aa41aa..4e4dd800fd0ad8f4b4bb2956d99f881b018b1022 100644 +index 488e590d5a48467b19e27d01863487f51442b130..a867d3205bbad13ac4f3b0862911f04c694e0f07 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19507,6 +19507,21 @@ msgstr "" +@@ -19531,6 +19531,21 @@ msgstr "" #empty strings from id 38047 to 38099 @@ -543,7 +543,7 @@ index d86a219b8f5a586c237494656ba77ea204aa41aa..4e4dd800fd0ad8f4b4bb2956d99f881b #: system/settings/settings.xml msgctxt "#38100" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 1ec0aa46101746ca21909c5effb36a74811b0d1e..7f43d130c47edcaf22f33ef547124134d30e7cbb 100644 +index 6ff6b4c63fdb49ebe02f63b93c6995e0ddd21d40..52f7d29eaa509c8d648c2cf2e125b9e7e4b90f3b 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -2361,6 +2361,18 @@ @@ -625,10 +625,10 @@ index f16b822ed7b4aebe18b5d339b3f71ee66e97c23f..993d4b33a294e88c2c004b7943895ba5 // stereo upmix if (upmix && m_src_channels == 2 && m_dst_channels > 2) -From f7e5a05d6fbdb4cbd467d5ffa6bd809c5bd2ab33 Mon Sep 17 00:00:00 2001 +From 5b64f68afe3f41097e46b278f02db69190d2628d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 -Subject: [PATCH 09/71] [rbp] Default extract thumbnails to false +Subject: [PATCH 09/73] [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 603a4b2646b57853646a661c23862bab8db4583a Mon Sep 17 00:00:00 2001 +From d52a6e898409a2c72e04c8f3abc9bff0cf01bec1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 -Subject: [PATCH 10/71] [languageinvoker] Reduce priority of python threads +Subject: [PATCH 10/73] [languageinvoker] Reduce priority of python threads --- xbmc/interfaces/generic/LanguageInvokerThread.cpp | 5 +++++ @@ -680,10 +680,10 @@ index fcdd0633f30cd9595ae6cc4ed293677cdcb1f422..16f0c8916b5e0a9e90973d194cf2ebd1 } -From 4a5f93e97a2b82b0c7f6894da3936440e714aa63 Mon Sep 17 00:00:00 2001 +From 9b1420ca7a51442c3937106d739b01879a3568f8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 14 Dec 2013 16:55:05 +0000 -Subject: [PATCH 11/71] logging: Add microsecond timer to log messages +Subject: [PATCH 11/73] logging: Add microsecond timer to log messages --- xbmc/utils/log.cpp | 15 +++++++++++++-- @@ -734,10 +734,10 @@ index 3443f1293d86018830269ed992c90a4e69c0430c..d330320842243df6f5ff256e608dddfa levelNames[logLevel]) + strData; -From dc92e0e62f88c0828188701c5cfa5d0819949159 Mon Sep 17 00:00:00 2001 +From a2e3b4c8b1af982f133cc894d249fb9322f8f9a2 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 -Subject: [PATCH 12/71] [rbp] hack: wait for splash to complete before changing +Subject: [PATCH 12/73] [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 1777c5c26c2fb2173d61ab50334d14f533aa5b45 Mon Sep 17 00:00:00 2001 +From 0b55fcce3a914ba67822156986f7aca2a0fd97ed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 11 Dec 2014 17:00:57 +0000 -Subject: [PATCH 13/71] Fix for UI not showing both extractflags and +Subject: [PATCH 13/73] Fix for UI not showing both extractflags and extractthumb --- @@ -833,10 +833,10 @@ Subject: [PATCH 13/71] 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 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a1635d2c43c 100644 +index a867d3205bbad13ac4f3b0862911f04c694e0f07..ca11841fdb24ed2f420e1b9ff92ed3e184af2fc3 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -12443,7 +12443,7 @@ msgstr "" +@@ -12450,7 +12450,7 @@ msgstr "" #: system/settings/settings.xml msgctxt "#20433" @@ -845,7 +845,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 msgstr "" #: xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp -@@ -16945,7 +16945,7 @@ msgstr "" +@@ -16969,7 +16969,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36178" @@ -854,7 +854,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 msgstr "" #. Description of setting with label #20419 "Replace file names with library titles" -@@ -16957,7 +16957,7 @@ msgstr "" +@@ -16981,7 +16981,7 @@ msgstr "" #. Description of setting with label #20433 "Extract thumbnails and video information" #: system/settings/settings.xml msgctxt "#36180" @@ -863,7 +863,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 msgstr "" #: system/settings/settings.xml -@@ -19654,3 +19654,7 @@ msgstr "" +@@ -19678,3 +19678,7 @@ msgstr "" msgctxt "#39010" msgid "Select sort method" msgstr "" @@ -872,7 +872,7 @@ index 4e4dd800fd0ad8f4b4bb2956d99f881b018b1022..2d352a3a844ec7888f982dc2330f2a16 +msgid "Extract thumbnails from video files" +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 7f43d130c47edcaf22f33ef547124134d30e7cbb..f2cf001e5ef8cfd881617b8f9887d054a0902176 100644 +index 52f7d29eaa509c8d648c2cf2e125b9e7e4b90f3b..785b431b40eb7fad5791bca97c1d20ef4c3d4817 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -977,8 +977,8 @@ @@ -887,10 +887,10 @@ index 7f43d130c47edcaf22f33ef547124134d30e7cbb..f2cf001e5ef8cfd881617b8f9887d054 -From bc596cd94ede919c2b31f4fbf448a3a4f1638bc6 Mon Sep 17 00:00:00 2001 +From 21b1d6a4c44e5e88288d4d436477c2bfd05f6588 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 -Subject: [PATCH 14/71] Disable autoscrolling while on screensaver and while +Subject: [PATCH 14/73] Disable autoscrolling while on screensaver and while opening streams. --- @@ -903,10 +903,10 @@ Subject: [PATCH 14/71] 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 c780168e0fc2a0ffcbbaf4a8a0a7886210fbf57d..ad529fdb715d97497f9b851343e2aafc927b7d71 100644 +index 83c79ccc94c61c1740a65fd7e9402ca7c2b82813..cad5c05a1397a12309482dae7928b2a118a42925 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -5213,3 +5213,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -5208,3 +5208,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -1021,10 +1021,10 @@ index d7bc1c5ba6067af9a460589920367288c640a915..ac766293f1c47c7f145cb46f6b152144 if (m_lastRenderTime) m_autoScrollDelayTime += currentTime - m_lastRenderTime; -From 47998740e492c134e0b176de38dc008cd2344f0d Mon Sep 17 00:00:00 2001 +From e5b903c3dfb34e4361f8f6075cb772b2a8bf92b0 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 13 Dec 2014 18:35:20 +0000 -Subject: [PATCH 15/71] [demuxer] Avoid memcpy on every demuxer packet +Subject: [PATCH 15/73] [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 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889ddb0e5ef81 100644 +index 64dce349ad574e1bd115a1bfb08102034c1aef95..ca952e157690fe464c731e82cd302883c8ff437b 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -895,7 +895,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -906,7 +906,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { if(m_pkt.pkt.stream_index == (int)m_pFormatContext->programs[m_program]->stream_index[i]) { @@ -1047,7 +1047,7 @@ index 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889dd break; } } -@@ -904,7 +904,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -915,7 +915,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() bReturnEmpty = true; } else @@ -1056,7 +1056,7 @@ index 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889dd } else bReturnEmpty = true; -@@ -934,9 +934,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -945,9 +945,13 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() // copy contents into our own packet pPacket->iSize = m_pkt.pkt.size; @@ -1072,7 +1072,7 @@ index 926cc744ee8171f45a2764e170420a0df514c245..090af6fd3d16b5d723ed665cac9889dd 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); -@@ -990,7 +994,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1001,7 +1005,10 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() pPacket->iStreamId = m_pkt.pkt.stream_index; } m_pkt.result = -1; @@ -1124,10 +1124,10 @@ index df0f35bd49c65b302de4ccd110d859e8b881ea5f..b4b591ae4c4dd4fb0b36d4d00fedca96 } catch(...) { -From 7144fb5b424a40bbf5ec226dc8976959f9b0c17b Mon Sep 17 00:00:00 2001 +From 520156ba013cc22da40d68d232fc4760c3595d29 Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 -Subject: [PATCH 16/71] Load OSD dialogs on startup. +Subject: [PATCH 16/73] 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. @@ -1222,10 +1222,10 @@ index 0534828dd85520134f7a6890e43a873e223062c1..5a86dfc1e2a54c8fe8d82cb75b612d8e CGUIDialogVideoSettings::~CGUIDialogVideoSettings() { } -From 852d35cfa51340faf7ae9015bf19c63639d9fdef Mon Sep 17 00:00:00 2001 +From b0c4cebc6683c71e88e1e86aeaaef53c759d9666 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 -Subject: [PATCH 17/71] [gui] Also limit GUI updates when in non full-screen +Subject: [PATCH 17/73] [gui] Also limit GUI updates when in non full-screen video mode --- @@ -1233,10 +1233,10 @@ Subject: [PATCH 17/71] [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 ad529fdb715d97497f9b851343e2aafc927b7d71..c311fb5f06e0f1e7e887b79ec811941f17ffc34d 100644 +index cad5c05a1397a12309482dae7928b2a118a42925..826bc68488ed2227bd5175c3c20cacb1ab8b9930 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2759,7 +2759,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2754,7 +2754,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 ad529fdb715d97497f9b851343e2aafc927b7d71..c311fb5f06e0f1e7e887b79ec811941f fps = CSettings::GetInstance().GetInt(CSettings::SETTING_VIDEOPLAYER_LIMITGUIUPDATE); #endif -@@ -2772,6 +2772,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) +@@ -2767,6 +2767,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) { if (!m_skipGuiRender) g_windowManager.Process(CTimeUtils::GetFrameTime()); @@ -1255,10 +1255,10 @@ index ad529fdb715d97497f9b851343e2aafc927b7d71..c311fb5f06e0f1e7e887b79ec811941f g_windowManager.FrameMove(); } -From 0c05fc9d4dfa04af6fd1def2c427385b6c0cc64a Mon Sep 17 00:00:00 2001 +From d1ed850bff3522923aa92c84a7faf6de41e31f81 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 -Subject: [PATCH 18/71] [screensaver] Leave GUI contents available for +Subject: [PATCH 18/73] [screensaver] Leave GUI contents available for screensaver --- @@ -1288,10 +1288,10 @@ index f6f64414831232558751c9f35f5c1d61eacd4fd6..9350bfd4ed53954fc500ff813da3cc9d // Add window to the history list (we must do this before we activate it, -From 96fb9251dc5c13fb7b19ea7851b5cb01b00421cf Mon Sep 17 00:00:00 2001 +From 2e458883e7d819a8f51acbf0832d035d3a79452a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 6 Jun 2015 18:43:57 +0100 -Subject: [PATCH 19/71] ffmpeg: Automatic switch to software decode for GMC +Subject: [PATCH 19/73] 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 984521b55341c9387c8853fb346d846c36ff6b9e..9b763bc30aaf473d656f53c140ead8f948eff812 100644 +index eaf9fc49319d5f0ee450ddd802bba569e291f0b5..8dd14cdfd053f142f386b6dee1fc0b21bb1f8d93 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,6 +1,7 @@ @@ -1374,7 +1374,7 @@ index 984521b55341c9387c8853fb346d846c36ff6b9e..9b763bc30aaf473d656f53c140ead8f9 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -72,6 +73,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -76,6 +77,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) rm -rf $(PLATFORM); mkdir -p $(PLATFORM) cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure @@ -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 090af6fd3d16b5d723ed665cac9889ddb0e5ef81..b2f2268c6e92b38f2e17f4d1e99b4681413a27b4 100644 +index ca952e157690fe464c731e82cd302883c8ff437b..f00e95324849011df9d078432699030f6c4afae8 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1367,7 +1367,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1393,7 +1393,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 928f3f8d99122a98d873b94cf306963a7538c935 Mon Sep 17 00:00:00 2001 +From 82f78893a3e6809a5deba403df8b37a2bae734fe Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 10 Mar 2016 17:56:11 +0000 -Subject: [PATCH 20/71] [rbp] HW mouse pointer +Subject: [PATCH 20/73] [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 c5a3be140b5890f3dc1e0ba682c3a676519eb0c0 Mon Sep 17 00:00:00 2001 +From 8ec830426891523384c72770524644469ba58d78 Mon Sep 17 00:00:00 2001 From: Claudio-Sjo Date: Mon, 16 Feb 2015 14:51:26 +0100 -Subject: [PATCH 21/71] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer +Subject: [PATCH 21/73] - 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 0d7f8d31adf8109c545a6ef2ca272bd944eb819d Mon Sep 17 00:00:00 2001 +From 285514a249509a62393980e93dd4b30906e702e5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Jun 2016 19:38:13 +0100 -Subject: [PATCH 22/71] codecoverlay: Include codec name in overlay +Subject: [PATCH 22/73] codecoverlay: Include codec name in overlay --- xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp | 4 ++++ @@ -2164,7 +2164,7 @@ Subject: [PATCH 22/71] 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 5da89e55c83568513cbf829679b60780572d5b49..27d7065a61b495b36abcfb96bc75131750054be4 100644 +index f822935ab7fc919128db53f70a6c4eb84d9759bc..9db3a9cc91fd5f9b194d6c1aa66aa02121164c29 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 5da89e55c83568513cbf829679b60780572d5b49..27d7065a61b495b36abcfb96bc751317 //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 86513278362e65c3fb01d6c27662bbc9099fa68a..f80c62ef56303bac91c4813f854c60985d3f812f 100644 +index c1e91b52884b7268c580ef6814596832cdf222c7..babe49ec6c4a3650b17ddcf9b1f20ada93551e1d 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -@@ -921,10 +921,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) +@@ -917,10 +917,13 @@ int CVideoPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) std::string CVideoPlayerVideo::GetPlayerInfo() { @@ -2213,7 +2213,7 @@ index 1e5d2b98bbef15b47994c3e4735873a9946b58c7..d43350fa0eefb5960475a02c1327efc2 return s.str(); } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index cdf67ff4741854e883818aa82c3c427531850963..f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c 100644 +index e9444d10405a88cef5d1e34ab5325802f0a938ea..84f389f6e37381a22db024667eebe4e8113857db 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp @@ -593,12 +593,14 @@ void OMXPlayerVideo::SetSpeed(int speed) @@ -2247,10 +2247,10 @@ index 0df7e72cc9d1947173c2bac5e72eb09976b51aa5..b5050081c360d29b1b478c27e6b88291 double m_iSubtitleDelay; bool m_bRenderSubs; -From 9c4175da7381fcb59d4bebfd60d02b23e3b1cfeb Mon Sep 17 00:00:00 2001 +From dbbdecf89a7496be839920f2efb6105bba0fb059 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 8 Mar 2016 21:20:58 +0300 -Subject: [PATCH 23/71] [DebugInfo] Add cpu usage info. +Subject: [PATCH 23/73] [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 b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d9065362c240f9 100644 +index b2c09cad49daab09794b375c643dfb670597e68e..d38031da337aa9ff180c2866c5d5924c8537978e 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp @@ -24,6 +24,7 @@ @@ -2398,7 +2398,7 @@ index b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d90653 #include "utils/log.h" #include "utils/StringUtils.h" #include "windowing/WindowingFactory.h" -@@ -906,7 +907,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -922,7 +923,7 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) if (m_renderDebug) { @@ -2407,7 +2407,7 @@ index b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d90653 m_playerPort->GetDebugInfo(audio, video, player); -@@ -920,8 +921,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) +@@ -936,8 +937,10 @@ void CRenderManager::Render(bool clear, DWORD flags, DWORD alpha, bool gui) missedvblanks, clockspeed * 100); } @@ -2420,17 +2420,17 @@ index b2d3a388d48ed61d978c85faffc04c0e1385a6dc..9160a9b90319d64f102aa869f2d90653 m_debugTimer.Set(1000); -From 0804e3b54d11c2d9af6de2f81b00e12416dccf0d Mon Sep 17 00:00:00 2001 +From 7260435be2b9f432dd40d0296e301d89a1c85db6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 May 2015 13:56:29 +0100 -Subject: [PATCH 24/71] ffmpeg: Allow neon to be enabled in unified builds +Subject: [PATCH 24/73] 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 9b763bc30aaf473d656f53c140ead8f948eff812..4e3cbf75331240ef33deb8f99ae9c57aef53e8ac 100644 +index 8dd14cdfd053f142f386b6dee1fc0b21bb1f8d93..b5f38a458dfb341c43089e07afded153e234b9cd 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 9b763bc30aaf473d656f53c140ead8f948eff812..4e3cbf75331240ef33deb8f99ae9c57a ifeq ($(OS), linux) ffmpg_config += --target-os=$(OS) --cpu=$(CPU) -From 65d542b66ad63df25cae7cc0bdc8b1b2bb829f89 Mon Sep 17 00:00:00 2001 +From 06bd1e13b97ac36991da8b844b6c23c7c4db25ed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 27 Feb 2015 14:37:27 +0000 -Subject: [PATCH 25/71] ffmpeg: Add some upstream HEVC optimisations +Subject: [PATCH 25/73] ffmpeg: Add some upstream HEVC optimisations --- tools/depends/target/ffmpeg/Makefile | 6 +- @@ -2461,7 +2461,7 @@ Subject: [PATCH 25/71] 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 4e3cbf75331240ef33deb8f99ae9c57aef53e8ac..cdfd3334412d7392321c9ca63b7cc73487310875 100644 +index b5f38a458dfb341c43089e07afded153e234b9cd..c46b533e47497cb7b1e7200eff2cee1a6f2a1a2f 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -1,7 +1,8 @@ @@ -2474,7 +2474,7 @@ index 4e3cbf75331240ef33deb8f99ae9c57aef53e8ac..cdfd3334412d7392321c9ca63b7cc734 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -78,6 +79,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -82,6 +83,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure cd $(PLATFORM); patch -p1 < ../0001-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch @@ -6247,10 +6247,10 @@ index 0000000000000000000000000000000000000000..5e8e07d407f045fc99554f0f061d1e81 +2.5.0 + -From 44f8a8562b7a72443c5830b09905bf6d145f5930 Mon Sep 17 00:00:00 2001 +From 6d77c3fa90ff76fbe476911dcd70a4e2bf4461b4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 14:04:18 +0100 -Subject: [PATCH 26/71] [ffmpeg] Add GPU acceleration to hevc +Subject: [PATCH 26/73] [ffmpeg] Add GPU acceleration to hevc --- tools/depends/target/ffmpeg/Makefile | 4 +- @@ -6260,7 +6260,7 @@ Subject: [PATCH 26/71] [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 cdfd3334412d7392321c9ca63b7cc73487310875..f17db07af6440391a9c31eff8367fe7393f77dfc 100644 +index c46b533e47497cb7b1e7200eff2cee1a6f2a1a2f..48f8d56988718dd53294e8291a53e532f0ff338d 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -2,7 +2,8 @@ include ../../Makefile.include @@ -6273,7 +6273,7 @@ index cdfd3334412d7392321c9ca63b7cc73487310875..f17db07af6440391a9c31eff8367fe73 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -81,6 +82,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -85,6 +86,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../0001-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch cd $(PLATFORM); patch -p1 < ../hevcdsp_ARM_NEON_optimized_epel_functions.patch cd $(PLATFORM); patch -p1 < ../added_ARM_NEON_optimized_SAO_patches.patch @@ -44436,450 +44436,16 @@ index 0000000000000000000000000000000000000000..e172ebf157aebffe1ae50b4a2b25fd71 +2.7.4 + -From 79f478c571cf8a51531b236a4bbac30d116b4569 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sat, 22 Aug 2015 23:06:56 +0100 -Subject: [PATCH 27/71] [dvdmessage] Increase timeout on - CDVDMsgGeneralSynchronize - ---- - xbmc/cores/VideoPlayer/DVDMessage.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/VideoPlayer/DVDMessage.cpp b/xbmc/cores/VideoPlayer/DVDMessage.cpp -index 0dcc664fd862706c60659f3664c7d964597c94d5..7614c831af9dfc821121a4111546fd4dfc664d06 100644 ---- a/xbmc/cores/VideoPlayer/DVDMessage.cpp -+++ b/xbmc/cores/VideoPlayer/DVDMessage.cpp -@@ -90,7 +90,7 @@ bool CDVDMsgGeneralSynchronize::Wait(unsigned int milliseconds, unsigned int sou - - void CDVDMsgGeneralSynchronize::Wait(std::atomic& abort, unsigned int source) - { -- while(!Wait(100, source) && !abort); -+ while(!Wait(200, source) && !abort); - } - - long CDVDMsgGeneralSynchronize::Release() - -From d8b0fda81af7df889d223337496fea088f5dcdd7 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 16 Sep 2015 19:05:12 +0100 -Subject: [PATCH 28/71] [3d] Make MVC a valid 3D filename tag - ---- - xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ - xbmc/settings/AdvancedSettings.cpp | 2 ++ - xbmc/settings/AdvancedSettings.h | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp -index b34873cba6534086ae243326550385867a03256a..1443acaf0f25df458ae49766e13dd0323454f2eb 100644 ---- a/xbmc/guilib/StereoscopicsManager.cpp -+++ b/xbmc/guilib/StereoscopicsManager.cpp -@@ -197,6 +197,15 @@ std::string CStereoscopicsManager::DetectStereoModeByString(const std::string &n - if (re.RegFind(searchString) > -1) - stereoMode = "top_bottom"; - -+ if (!re.RegComp(g_advancedSettings.m_stereoscopicregex_mvc.c_str())) -+ { -+ CLog::Log(LOGERROR, "%s: Invalid RegExp for matching 3d MVC content:'%s'", __FUNCTION__, g_advancedSettings.m_stereoscopicregex_mvc.c_str()); -+ return stereoMode; -+ } -+ -+ if (re.RegFind(searchString) > -1) -+ stereoMode = "left_right"; -+ - return stereoMode; - } - -diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 03f566d3ee4eab690d2236b7739080269d552511..60e5652f69e96a559d8080e01dc214a56fb19343 100644 ---- a/xbmc/settings/AdvancedSettings.cpp -+++ b/xbmc/settings/AdvancedSettings.cpp -@@ -402,6 +402,7 @@ void CAdvancedSettings::Initialize() - m_stereoscopicregex_3d = "[-. _]3d[-. _]"; - m_stereoscopicregex_sbs = "[-. _]h?sbs[-. _]"; - m_stereoscopicregex_tab = "[-. _]h?tab[-. _]"; -+ m_stereoscopicregex_mvc = "[-. _]h?mvc[-. _]"; - - m_useDisplayControlHWStereo = false; - -@@ -516,6 +517,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) - XMLUtils::GetString(pElement, "stereoscopicregex3d", m_stereoscopicregex_3d); - XMLUtils::GetString(pElement, "stereoscopicregexsbs", m_stereoscopicregex_sbs); - XMLUtils::GetString(pElement, "stereoscopicregextab", m_stereoscopicregex_tab); -+ XMLUtils::GetString(pElement, "stereoscopicregexmvc", m_stereoscopicregex_mvc); - XMLUtils::GetFloat(pElement, "subsdelayrange", m_videoSubsDelayRange, 10, 600); - XMLUtils::GetFloat(pElement, "audiodelayrange", m_videoAudioDelayRange, 10, 600); - XMLUtils::GetString(pElement, "defaultplayer", m_videoDefaultPlayer); -diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h -index fc526d11c3a78bc74125429120e29bf295bd3b16..6b0e3b8cf9e3ff40e6af758c54fe7eefb89a131c 100644 ---- a/xbmc/settings/AdvancedSettings.h -+++ b/xbmc/settings/AdvancedSettings.h -@@ -372,6 +372,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler - std::string m_stereoscopicregex_3d; - std::string m_stereoscopicregex_sbs; - std::string m_stereoscopicregex_tab; -+ std::string m_stereoscopicregex_mvc; - - bool m_useDisplayControlHWStereo; - - -From 2b49536142534a8197b3ef2800c8ec4fe9d49dca Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 5 Oct 2015 14:58:05 +0100 -Subject: [PATCH 29/71] [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 3706e4d80b3b31da4c5be0a1b21f36e59d2910f2..e170b3fb05279ffa316794dbce1d4f9dc5697bd0 100644 ---- a/xbmc/guilib/GraphicContext.cpp -+++ b/xbmc/guilib/GraphicContext.cpp -@@ -266,7 +266,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const - { - const RESOLUTION_INFO info = GetResInfo(); - -- if(m_stereoView == RENDER_STEREO_VIEW_RIGHT) -+ if(m_stereoView == RENDER_STEREO_VIEW_LEFT) - res.y += info.iHeight + info.iBlanking; - } - if(m_stereoMode == RENDER_STEREO_MODE_SPLIT_VERTICAL) - -From b3e6758fc9ff329c26c2867e01eca7b9b60cc15a Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Sun, 11 Oct 2015 20:51:37 +0100 -Subject: [PATCH 30/71] Revert "Revert "Disable extra logging by default"" - -This reverts commit a880554325be187b877cd8f0e2b338e7267da636. ---- - system/settings/settings.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index f2cf001e5ef8cfd881617b8f9887d054a0902176..52dfd4e3e261388a5fe0f6997e62b906ccfa007a 100644 ---- a/system/settings/settings.xml -+++ b/system/settings/settings.xml -@@ -2815,12 +2815,12 @@ - - - 1 -- true -+ false - - - - 1 -- 32768 -+ - - loggingcomponents - , - -From 360f50196733d6e07328b62b6326076654af7e74 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Thu, 26 Nov 2015 17:14:49 +0000 -Subject: [PATCH 31/71] [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 5b2243f3094403ce485006333fd000342f0e58b2..799dc57a130d15a025a7c525ddac8e1748ff6416 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -2450,6 +2450,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) - if (stream->m_processingBuffers) - { - stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold); -+ CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error); - } - } - else if (stream->m_processingBuffers) - -From 8e6ec4f5a9713fbdfa7a0690ca92f9efe1d943bf Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 21 Dec 2015 22:17:25 +0000 -Subject: [PATCH 32/71] [omximage] Fall back to arm jpeg encode/decode when gpu - is busy - ---- - xbmc/cores/omxplayer/OMXImage.cpp | 50 ++++++++++++++++++++++++++++++++------- - xbmc/cores/omxplayer/OMXImage.h | 7 ++++++ - 2 files changed, 48 insertions(+), 9 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp -index d2560aa78980e44d5f2d1483bce976cb83353502..e16dbf00b8d8192df4c6e946a48d8f20a72d762d 100644 ---- a/xbmc/cores/omxplayer/OMXImage.cpp -+++ b/xbmc/cores/omxplayer/OMXImage.cpp -@@ -57,12 +57,17 @@ static XbmcThreads::ConditionVariable g_count_cond; - static CCriticalSection g_count_lock; - static int g_count_val; - --static void limit_calls_enter() -+static bool limit_calls_enter() - { - CSingleLock lock(g_count_lock); -+ // on Pi2 fall back to arm decode if the queue is getting big -+ if (g_RBP.RasberryPiVersion() > 1 && g_count_val >= 2) -+ return false; -+ - while (g_count_val >= 3) - g_count_cond.wait(lock); - g_count_val++; -+ return true; - } - - static void limit_calls_leave() -@@ -112,6 +117,9 @@ bool COMXImage::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int w - unsigned int format, unsigned int pitch, const std::string& destFile) - { - COMXImageEnc omxImageEnc; -+ if (!omxImageEnc.Gpu()) -+ return false; -+ - bool ret = omxImageEnc.CreateThumbnailFromSurface(buffer, width, height, format, pitch, destFile); - if (!ret) - CLog::Log(LOGNOTICE, "%s: unable to create thumbnail %s %dx%d", __func__, destFile.c_str(), width, height); -@@ -205,6 +213,8 @@ bool COMXImage::CreateThumb(const std::string& srcFile, unsigned int maxHeight, - bool okay = false; - COMXImageFile file; - COMXImageReEnc reenc; -+ if (!reenc.Gpu()) -+ return false; - void *pDestBuffer; - unsigned int nDestSize; - int orientation = additional_info == "flipped" ? 1:0; -@@ -310,6 +320,9 @@ bool COMXImage::DecodeJpegToTexture(COMXImageFile *file, unsigned int width, uns - bool ret = false; - COMXTexture omx_image; - -+ if (!omx_image.Gpu()) -+ return false; -+ - struct textureinfo *tex = new struct textureinfo; - if (!tex) - return NULL; -@@ -924,7 +937,7 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) - - COMXImageDec::COMXImageDec() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - m_decoded_buffer = NULL; - OMX_INIT_STRUCTURE(m_decoded_format); - m_success = false; -@@ -936,7 +949,8 @@ COMXImageDec::~COMXImageDec() - - OMX_INIT_STRUCTURE(m_decoded_format); - m_decoded_buffer = NULL; -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - void COMXImageDec::Close() -@@ -1086,6 +1100,9 @@ bool COMXImageDec::HandlePortSettingChange(unsigned int resize_width, unsigned i - - bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned width, unsigned height, unsigned stride, void *pixels) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - OMX_BUFFERHEADERTYPE *omx_buffer = NULL; -@@ -1223,7 +1240,7 @@ bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes - - COMXImageEnc::COMXImageEnc() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - CSingleLock lock(m_OMXSection); - OMX_INIT_STRUCTURE(m_encoded_format); - m_encoded_buffer = NULL; -@@ -1247,11 +1264,15 @@ COMXImageEnc::~COMXImageEnc() - m_omx_encoder.Deinitialize(); - } - } -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsigned height, unsigned int pitch) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - - unsigned int demuxer_bytes = 0; -@@ -1432,6 +1453,9 @@ bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsig - bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, - unsigned int format, unsigned int pitch, const std::string& destFile) - { -+ if (!m_gpu) -+ return false; -+ - if(format != XB_FMT_A8R8G8B8 || !buffer) - { - CLog::Log(LOGDEBUG, "%s::%s : %s failed format=0x%x\n", CLASSNAME, __func__, destFile.c_str(), format); -@@ -1465,7 +1489,7 @@ bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned in - - COMXImageReEnc::COMXImageReEnc() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - m_encoded_buffer = NULL; - m_pDestBuffer = NULL; - m_nDestAllocSize = 0; -@@ -1479,7 +1503,8 @@ COMXImageReEnc::~COMXImageReEnc() - free (m_pDestBuffer); - m_pDestBuffer = NULL; - m_nDestAllocSize = 0; -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - void COMXImageReEnc::Close() -@@ -1771,6 +1796,9 @@ bool COMXImageReEnc::HandlePortSettingChange(unsigned int resize_width, unsigned - - bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, unsigned int maxHeight, void * &pDestBuffer, unsigned int &nDestSize) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - -@@ -1943,14 +1971,15 @@ bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, uns - - COMXTexture::COMXTexture() - { -- limit_calls_enter(); -+ m_gpu = limit_calls_enter(); - m_success = false; - } - - COMXTexture::~COMXTexture() - { - Close(); -- limit_calls_leave(); -+ if (m_gpu) -+ limit_calls_leave(); - } - - void COMXTexture::Close() -@@ -2134,6 +2163,9 @@ bool COMXTexture::HandlePortSettingChange(unsigned int resize_width, unsigned in - - bool COMXTexture::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned int width, unsigned int height, void *egl_image) - { -+ if (!m_gpu) -+ return false; -+ - CSingleLock lock(m_OMXSection); - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - -diff --git a/xbmc/cores/omxplayer/OMXImage.h b/xbmc/cores/omxplayer/OMXImage.h -index a93aa82663903fb1bf712058c2e259290ee742e6..6f38dbc7e5cc721c59a3633935f08218eb1dd169 100644 ---- a/xbmc/cores/omxplayer/OMXImage.h -+++ b/xbmc/cores/omxplayer/OMXImage.h -@@ -133,6 +133,7 @@ protected: - OMX_PARAM_PORTDEFINITIONTYPE m_decoded_format; - CCriticalSection m_OMXSection; - bool m_success; -+ bool m_gpu; - }; - - class COMXImageEnc -@@ -144,6 +145,7 @@ public: - // Required overrides - bool CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, - unsigned int format, unsigned int pitch, const std::string& destFile); -+ bool Gpu() { return m_gpu; } - protected: - bool Encode(unsigned char *buffer, int size, unsigned int width, unsigned int height, unsigned int pitch); - // Components -@@ -152,6 +154,7 @@ protected: - OMX_PARAM_PORTDEFINITIONTYPE m_encoded_format; - CCriticalSection m_OMXSection; - bool m_success; -+ bool m_gpu; - }; - - class COMXImageReEnc -@@ -163,6 +166,7 @@ public: - // Required overrides - void Close(); - bool ReEncode(COMXImageFile &srcFile, unsigned int width, unsigned int height, void * &pDestBuffer, unsigned int &nDestSize); -+ bool Gpu() { return m_gpu; } - protected: - bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed); - // Components -@@ -176,6 +180,7 @@ protected: - void *m_pDestBuffer; - unsigned int m_nDestAllocSize; - bool m_success; -+ bool m_gpu; - }; - - class COMXTexture -@@ -187,6 +192,7 @@ public: - // Required overrides - void Close(void); - bool Decode(const uint8_t *data, unsigned size, unsigned int width, unsigned int height, void *egl_image); -+ bool Gpu() { return m_gpu; } - protected: - bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed); - -@@ -201,6 +207,7 @@ protected: - OMX_BUFFERHEADERTYPE *m_egl_buffer; - CCriticalSection m_OMXSection; - bool m_success; -+ bool m_gpu; - }; - - extern COMXImage g_OMXImage; - -From 643886cf5e2dd5c6ea75c8798eeb02332e18767a Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 9 Dec 2015 13:31:14 +0000 -Subject: [PATCH 33/71] [mmalcodec] Fail to open when width is invalid. Can - happen with mpegts files - ---- - xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp -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) - if (g_advancedSettings.CanLogComponent(LOGVIDEO)) - CLog::Log(LOGDEBUG, "%s::%s usemmal:%d software:%d %dx%d renderer:%p", CLASSNAME, __func__, CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL), hints.software, hints.width, hints.height, options.m_opaque_pointer); - -+ // This occurs at start of m2ts files before streams have been fully identified - just ignore -+ if (!hints.width) -+ return false; - // we always qualify even if DVDFactoryCodec does this too. - if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) - return false; - -From 6c3e8391b719b76353055162c73a3375e958f87e Mon Sep 17 00:00:00 2001 +From 8dde9060e177029f52161cd53dd24afe6edbdee7 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 12 Jan 2016 16:29:57 +0000 -Subject: [PATCH 34/71] ffmpeg: Add cabac opimisations for hevc +Subject: [PATCH 27/73] ffmpeg: Add cabac opimisations for hevc --- .../0001-Squashed-commit-of-the-following.patch | 2179 ++++++++++++++++++++ tools/depends/target/ffmpeg/Makefile | 5 +- - tools/depends/target/ffmpeg/autobuild.sh | 1 + - 3 files changed, 2184 insertions(+), 1 deletion(-) + tools/depends/target/ffmpeg/autobuild.sh | 2 + + 3 files changed, 2185 insertions(+), 1 deletion(-) create mode 100644 tools/depends/target/ffmpeg/0001-Squashed-commit-of-the-following.patch diff --git a/tools/depends/target/ffmpeg/0001-Squashed-commit-of-the-following.patch b/tools/depends/target/ffmpeg/0001-Squashed-commit-of-the-following.patch @@ -47068,7 +46634,7 @@ index 0000000000000000000000000000000000000000..38554af0af30a85b7d88d31b7d21775c +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d59021500 100644 +index 48f8d56988718dd53294e8291a53e532f0ff338d..337dbaab927919858e44d79f647207ef0513eea1 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -3,7 +3,8 @@ include FFMPEG-VERSION @@ -47081,7 +46647,7 @@ index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -67,6 +68,7 @@ ifeq ($(Configuration), Release) +@@ -71,6 +72,7 @@ ifeq ($(Configuration), Release) ffmpg_config += --disable-debug endif @@ -47089,7 +46655,7 @@ index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d CLEAN_FILES=$(ARCHIVE) $(PLATFORM) -@@ -83,6 +85,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -87,6 +89,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../hevcdsp_ARM_NEON_optimized_epel_functions.patch cd $(PLATFORM); patch -p1 < ../added_ARM_NEON_optimized_SAO_patches.patch cd $(PLATFORM); patch -p1 < ../pfcd_hevc_optimisations.patch @@ -47098,7 +46664,7 @@ index f17db07af6440391a9c31eff8367fe7393f77dfc..55fb495c399c718b55ff253d79652e0d cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh -index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..7022b5fadef58ad27b61725d77131bd78af2f51d 100755 +index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..41248acbe1ff6d8883e55678ae256b566bf925c3 100755 --- a/tools/depends/target/ffmpeg/autobuild.sh +++ b/tools/depends/target/ffmpeg/autobuild.sh @@ -131,6 +131,7 @@ patch -p1 < ../0001-mpeg4video-Signal-unsupported-GMC-with-more-than-one.patch @@ -47109,11 +46675,429 @@ index e2641093d15e5b465fae7e5f87c3ea18573dd6ee..7022b5fadef58ad27b61725d77131bd7 CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ ./configure --prefix=$FFMPEG_PREFIX \ +@@ -165,6 +166,7 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ + --enable-zlib \ + --disable-mipsdsp \ + --disable-mipsdspr2 \ ++ --extra-cflags="-DRPI=1" \ + ${FLAGS} + + make -j ${BUILDTHREADS} -From f951553df2c7891607ca73715009627f6066766c Mon Sep 17 00:00:00 2001 +From a76e212aeac830e30521517ec45f88d6934881e6 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 16 Sep 2015 19:05:12 +0100 +Subject: [PATCH 28/73] [3d] Make MVC a valid 3D filename tag + +--- + xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ + xbmc/settings/AdvancedSettings.cpp | 2 ++ + xbmc/settings/AdvancedSettings.h | 1 + + 3 files changed, 12 insertions(+) + +diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp +index b34873cba6534086ae243326550385867a03256a..1443acaf0f25df458ae49766e13dd0323454f2eb 100644 +--- a/xbmc/guilib/StereoscopicsManager.cpp ++++ b/xbmc/guilib/StereoscopicsManager.cpp +@@ -197,6 +197,15 @@ std::string CStereoscopicsManager::DetectStereoModeByString(const std::string &n + if (re.RegFind(searchString) > -1) + stereoMode = "top_bottom"; + ++ if (!re.RegComp(g_advancedSettings.m_stereoscopicregex_mvc.c_str())) ++ { ++ CLog::Log(LOGERROR, "%s: Invalid RegExp for matching 3d MVC content:'%s'", __FUNCTION__, g_advancedSettings.m_stereoscopicregex_mvc.c_str()); ++ return stereoMode; ++ } ++ ++ if (re.RegFind(searchString) > -1) ++ stereoMode = "left_right"; ++ + return stereoMode; + } + +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index 03f566d3ee4eab690d2236b7739080269d552511..60e5652f69e96a559d8080e01dc214a56fb19343 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -402,6 +402,7 @@ void CAdvancedSettings::Initialize() + m_stereoscopicregex_3d = "[-. _]3d[-. _]"; + m_stereoscopicregex_sbs = "[-. _]h?sbs[-. _]"; + m_stereoscopicregex_tab = "[-. _]h?tab[-. _]"; ++ m_stereoscopicregex_mvc = "[-. _]h?mvc[-. _]"; + + m_useDisplayControlHWStereo = false; + +@@ -516,6 +517,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) + XMLUtils::GetString(pElement, "stereoscopicregex3d", m_stereoscopicregex_3d); + XMLUtils::GetString(pElement, "stereoscopicregexsbs", m_stereoscopicregex_sbs); + XMLUtils::GetString(pElement, "stereoscopicregextab", m_stereoscopicregex_tab); ++ XMLUtils::GetString(pElement, "stereoscopicregexmvc", m_stereoscopicregex_mvc); + XMLUtils::GetFloat(pElement, "subsdelayrange", m_videoSubsDelayRange, 10, 600); + XMLUtils::GetFloat(pElement, "audiodelayrange", m_videoAudioDelayRange, 10, 600); + XMLUtils::GetString(pElement, "defaultplayer", m_videoDefaultPlayer); +diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h +index fc526d11c3a78bc74125429120e29bf295bd3b16..6b0e3b8cf9e3ff40e6af758c54fe7eefb89a131c 100644 +--- a/xbmc/settings/AdvancedSettings.h ++++ b/xbmc/settings/AdvancedSettings.h +@@ -372,6 +372,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler + std::string m_stereoscopicregex_3d; + std::string m_stereoscopicregex_sbs; + std::string m_stereoscopicregex_tab; ++ std::string m_stereoscopicregex_mvc; + + bool m_useDisplayControlHWStereo; + + +From 787ee8e5ad59ef95b9c6e02f8b54ce942922c87c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 5 Oct 2015 14:58:05 +0100 +Subject: [PATCH 29/73] [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 3706e4d80b3b31da4c5be0a1b21f36e59d2910f2..e170b3fb05279ffa316794dbce1d4f9dc5697bd0 100644 +--- a/xbmc/guilib/GraphicContext.cpp ++++ b/xbmc/guilib/GraphicContext.cpp +@@ -266,7 +266,7 @@ CPoint CGraphicContext::StereoCorrection(const CPoint &point) const + { + const RESOLUTION_INFO info = GetResInfo(); + +- if(m_stereoView == RENDER_STEREO_VIEW_RIGHT) ++ if(m_stereoView == RENDER_STEREO_VIEW_LEFT) + res.y += info.iHeight + info.iBlanking; + } + if(m_stereoMode == RENDER_STEREO_MODE_SPLIT_VERTICAL) + +From 266b32ce92b7794c18301d74338408bf570e1375 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 11 Oct 2015 20:51:37 +0100 +Subject: [PATCH 30/73] Revert "Revert "Disable extra logging by default"" + +This reverts commit a880554325be187b877cd8f0e2b338e7267da636. +--- + system/settings/settings.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/system/settings/settings.xml b/system/settings/settings.xml +index 785b431b40eb7fad5791bca97c1d20ef4c3d4817..291a781e33496a0e6fe5cd869c857f5a851586ce 100644 +--- a/system/settings/settings.xml ++++ b/system/settings/settings.xml +@@ -2825,12 +2825,12 @@ + + + 1 +- true ++ false + + + + 1 +- 32768 ++ + + loggingcomponents + , + +From d385c7c046adc03f7fd7357a722ec2b0305361f7 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 26 Nov 2015 17:14:49 +0000 +Subject: [PATCH 31/73] [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 f5671b8dfb03216301d936ae3b08bfc3e8225729..7db4a6e3610ccea32fe19574b4f2838d4a3a2bdb 100644 +--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp ++++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +@@ -2457,6 +2457,7 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) + if (stream->m_processingBuffers) + { + stream->m_processingBuffers->SetRR(stream->CalcResampleRatio(error), m_settings.atempoThreshold); ++ CLog::Log(LOGDEBUG, "CDVDPlayerAudio::%s rr:%.5f threshold:%.3f error:%.6f", __FUNCTION__, stream->m_processingBuffers->GetRR(), m_settings.atempoThreshold, error); + } + } + else if (stream->m_processingBuffers) + +From b592933a9bf174678474554b552734fa101ea430 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 21 Dec 2015 22:17:25 +0000 +Subject: [PATCH 32/73] [omximage] Fall back to arm jpeg encode/decode when gpu + is busy + +--- + xbmc/cores/omxplayer/OMXImage.cpp | 50 ++++++++++++++++++++++++++++++++------- + xbmc/cores/omxplayer/OMXImage.h | 7 ++++++ + 2 files changed, 48 insertions(+), 9 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp +index d2560aa78980e44d5f2d1483bce976cb83353502..e16dbf00b8d8192df4c6e946a48d8f20a72d762d 100644 +--- a/xbmc/cores/omxplayer/OMXImage.cpp ++++ b/xbmc/cores/omxplayer/OMXImage.cpp +@@ -57,12 +57,17 @@ static XbmcThreads::ConditionVariable g_count_cond; + static CCriticalSection g_count_lock; + static int g_count_val; + +-static void limit_calls_enter() ++static bool limit_calls_enter() + { + CSingleLock lock(g_count_lock); ++ // on Pi2 fall back to arm decode if the queue is getting big ++ if (g_RBP.RasberryPiVersion() > 1 && g_count_val >= 2) ++ return false; ++ + while (g_count_val >= 3) + g_count_cond.wait(lock); + g_count_val++; ++ return true; + } + + static void limit_calls_leave() +@@ -112,6 +117,9 @@ bool COMXImage::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int w + unsigned int format, unsigned int pitch, const std::string& destFile) + { + COMXImageEnc omxImageEnc; ++ if (!omxImageEnc.Gpu()) ++ return false; ++ + bool ret = omxImageEnc.CreateThumbnailFromSurface(buffer, width, height, format, pitch, destFile); + if (!ret) + CLog::Log(LOGNOTICE, "%s: unable to create thumbnail %s %dx%d", __func__, destFile.c_str(), width, height); +@@ -205,6 +213,8 @@ bool COMXImage::CreateThumb(const std::string& srcFile, unsigned int maxHeight, + bool okay = false; + COMXImageFile file; + COMXImageReEnc reenc; ++ if (!reenc.Gpu()) ++ return false; + void *pDestBuffer; + unsigned int nDestSize; + int orientation = additional_info == "flipped" ? 1:0; +@@ -310,6 +320,9 @@ bool COMXImage::DecodeJpegToTexture(COMXImageFile *file, unsigned int width, uns + bool ret = false; + COMXTexture omx_image; + ++ if (!omx_image.Gpu()) ++ return false; ++ + struct textureinfo *tex = new struct textureinfo; + if (!tex) + return NULL; +@@ -924,7 +937,7 @@ bool COMXImageFile::ReadFile(const std::string& inputFile, int orientation) + + COMXImageDec::COMXImageDec() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + m_decoded_buffer = NULL; + OMX_INIT_STRUCTURE(m_decoded_format); + m_success = false; +@@ -936,7 +949,8 @@ COMXImageDec::~COMXImageDec() + + OMX_INIT_STRUCTURE(m_decoded_format); + m_decoded_buffer = NULL; +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + void COMXImageDec::Close() +@@ -1086,6 +1100,9 @@ bool COMXImageDec::HandlePortSettingChange(unsigned int resize_width, unsigned i + + bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned width, unsigned height, unsigned stride, void *pixels) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + OMX_ERRORTYPE omx_err = OMX_ErrorNone; + OMX_BUFFERHEADERTYPE *omx_buffer = NULL; +@@ -1223,7 +1240,7 @@ bool COMXImageDec::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes + + COMXImageEnc::COMXImageEnc() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + CSingleLock lock(m_OMXSection); + OMX_INIT_STRUCTURE(m_encoded_format); + m_encoded_buffer = NULL; +@@ -1247,11 +1264,15 @@ COMXImageEnc::~COMXImageEnc() + m_omx_encoder.Deinitialize(); + } + } +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsigned height, unsigned int pitch) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + + unsigned int demuxer_bytes = 0; +@@ -1432,6 +1453,9 @@ bool COMXImageEnc::Encode(unsigned char *buffer, int size, unsigned width, unsig + bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, + unsigned int format, unsigned int pitch, const std::string& destFile) + { ++ if (!m_gpu) ++ return false; ++ + if(format != XB_FMT_A8R8G8B8 || !buffer) + { + CLog::Log(LOGDEBUG, "%s::%s : %s failed format=0x%x\n", CLASSNAME, __func__, destFile.c_str(), format); +@@ -1465,7 +1489,7 @@ bool COMXImageEnc::CreateThumbnailFromSurface(unsigned char* buffer, unsigned in + + COMXImageReEnc::COMXImageReEnc() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + m_encoded_buffer = NULL; + m_pDestBuffer = NULL; + m_nDestAllocSize = 0; +@@ -1479,7 +1503,8 @@ COMXImageReEnc::~COMXImageReEnc() + free (m_pDestBuffer); + m_pDestBuffer = NULL; + m_nDestAllocSize = 0; +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + void COMXImageReEnc::Close() +@@ -1771,6 +1796,9 @@ bool COMXImageReEnc::HandlePortSettingChange(unsigned int resize_width, unsigned + + bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, unsigned int maxHeight, void * &pDestBuffer, unsigned int &nDestSize) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + OMX_ERRORTYPE omx_err = OMX_ErrorNone; + +@@ -1943,14 +1971,15 @@ bool COMXImageReEnc::ReEncode(COMXImageFile &srcFile, unsigned int maxWidth, uns + + COMXTexture::COMXTexture() + { +- limit_calls_enter(); ++ m_gpu = limit_calls_enter(); + m_success = false; + } + + COMXTexture::~COMXTexture() + { + Close(); +- limit_calls_leave(); ++ if (m_gpu) ++ limit_calls_leave(); + } + + void COMXTexture::Close() +@@ -2134,6 +2163,9 @@ bool COMXTexture::HandlePortSettingChange(unsigned int resize_width, unsigned in + + bool COMXTexture::Decode(const uint8_t *demuxer_content, unsigned demuxer_bytes, unsigned int width, unsigned int height, void *egl_image) + { ++ if (!m_gpu) ++ return false; ++ + CSingleLock lock(m_OMXSection); + OMX_ERRORTYPE omx_err = OMX_ErrorNone; + +diff --git a/xbmc/cores/omxplayer/OMXImage.h b/xbmc/cores/omxplayer/OMXImage.h +index a93aa82663903fb1bf712058c2e259290ee742e6..6f38dbc7e5cc721c59a3633935f08218eb1dd169 100644 +--- a/xbmc/cores/omxplayer/OMXImage.h ++++ b/xbmc/cores/omxplayer/OMXImage.h +@@ -133,6 +133,7 @@ protected: + OMX_PARAM_PORTDEFINITIONTYPE m_decoded_format; + CCriticalSection m_OMXSection; + bool m_success; ++ bool m_gpu; + }; + + class COMXImageEnc +@@ -144,6 +145,7 @@ public: + // Required overrides + bool CreateThumbnailFromSurface(unsigned char* buffer, unsigned int width, unsigned int height, + unsigned int format, unsigned int pitch, const std::string& destFile); ++ bool Gpu() { return m_gpu; } + protected: + bool Encode(unsigned char *buffer, int size, unsigned int width, unsigned int height, unsigned int pitch); + // Components +@@ -152,6 +154,7 @@ protected: + OMX_PARAM_PORTDEFINITIONTYPE m_encoded_format; + CCriticalSection m_OMXSection; + bool m_success; ++ bool m_gpu; + }; + + class COMXImageReEnc +@@ -163,6 +166,7 @@ public: + // Required overrides + void Close(); + bool ReEncode(COMXImageFile &srcFile, unsigned int width, unsigned int height, void * &pDestBuffer, unsigned int &nDestSize); ++ bool Gpu() { return m_gpu; } + protected: + bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, int orientation, bool port_settings_changed); + // Components +@@ -176,6 +180,7 @@ protected: + void *m_pDestBuffer; + unsigned int m_nDestAllocSize; + bool m_success; ++ bool m_gpu; + }; + + class COMXTexture +@@ -187,6 +192,7 @@ public: + // Required overrides + void Close(void); + bool Decode(const uint8_t *data, unsigned size, unsigned int width, unsigned int height, void *egl_image); ++ bool Gpu() { return m_gpu; } + protected: + bool HandlePortSettingChange(unsigned int resize_width, unsigned int resize_height, void *egl_image, bool port_settings_changed); + +@@ -201,6 +207,7 @@ protected: + OMX_BUFFERHEADERTYPE *m_egl_buffer; + CCriticalSection m_OMXSection; + bool m_success; ++ bool m_gpu; + }; + + extern COMXImage g_OMXImage; + +From fb991421a324fc5245614fca885a36f7554a3fc2 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 9 Dec 2015 13:31:14 +0000 +Subject: [PATCH 33/73] [mmalcodec] Fail to open when width is invalid. Can + happen with mpegts files + +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp +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) + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "%s::%s usemmal:%d software:%d %dx%d renderer:%p", CLASSNAME, __func__, CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL), hints.software, hints.width, hints.height, options.m_opaque_pointer); + ++ // This occurs at start of m2ts files before streams have been fully identified - just ignore ++ if (!hints.width) ++ return false; + // we always qualify even if DVDFactoryCodec does this too. + if (!CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEMMAL) || hints.software) + return false; + +From d3e36c19b8c0382ad963c316822703aaf2f082c8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 -Subject: [PATCH 35/71] [videoplayer/rbp] Add pi specific option to maintain +Subject: [PATCH 34/73] [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 +47119,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 2d352a3a844ec7888f982dc2330f2a1635d2c43c..45ee30ba64153eb4287e7cf0f2af6dd6553e9d26 100644 +index ca11841fdb24ed2f420e1b9ff92ed3e184af2fc3..7ace950c83e1497b4d96a31b33b524e7eafb1783 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19658,3 +19658,35 @@ msgstr "" +@@ -19682,3 +19682,35 @@ msgstr "" msgctxt "#38190" msgid "Extract thumbnails from video files" msgstr "" @@ -47200,7 +47184,7 @@ index 289dc55ec41aa44848519a05f8ee1ccc72740085..2572e25753712186f69390965ee1448b diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e683721976752e833238 100644 +index 7db4a6e3610ccea32fe19574b4f2838d4a3a2bdb..497b4433ed5fa45051b9b344cd59d949603ccda2 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 +47214,7 @@ index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e68372197675 par->stream->m_resampleIntegral = 0.0; } return; -@@ -2445,7 +2450,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) +@@ -2452,7 +2457,16 @@ CSampleBuffer* CActiveAE::SyncStream(CActiveAEStream *stream) if (!newerror || stream->m_syncState != CAESyncInfo::AESyncState::SYNC_INSYNC) return ret; @@ -47248,7 +47232,7 @@ index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e68372197675 { if (stream->m_processingBuffers) { -@@ -3303,13 +3317,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) +@@ -3323,13 +3337,14 @@ void CActiveAE::SetStreamResampleRatio(CActiveAEStream *stream, double ratio) &msg, sizeof(MsgStreamParameter)); } @@ -47268,10 +47252,10 @@ index 799dc57a130d15a025a7c525ddac8e1748ff6416..35bde3aa491507dd26b8e68372197675 void CActiveAE::SetStreamFFmpegInfo(CActiveAEStream *stream, int profile, enum AVMatrixEncoding matrix_encoding, enum AVAudioServiceType audio_service_type) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -index 502ee4ea0367a4f4423f3c2bf4bcfcb7df8e111e..14249e13ce294b70ce4df19ed170c8596cf5a535 100644 +index e29eb5719a2e24562a16180e53b2decd955e50a5..e2d3a6824ca0dc93fb08f3374c745ac1dcc63db3 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -@@ -175,6 +175,13 @@ struct MsgStreamFFmpegInfo +@@ -177,6 +177,13 @@ struct MsgStreamFFmpegInfo enum AVAudioServiceType audio_service_type; }; @@ -47285,7 +47269,7 @@ index 502ee4ea0367a4f4423f3c2bf4bcfcb7df8e111e..14249e13ce294b70ce4df19ed170c859 class CEngineStats { public: -@@ -291,7 +298,7 @@ protected: +@@ -293,7 +300,7 @@ protected: void SetStreamReplaygain(CActiveAEStream *stream, float rgain); void SetStreamVolume(CActiveAEStream *stream, float volume); void SetStreamResampleRatio(CActiveAEStream *stream, double ratio); @@ -47404,7 +47388,7 @@ index 81882a1a3828e3f95df26c1bd88c061d3b994b44..ed6974b1155a7272f3ef5bfed3f74967 void Drain(); void AbortAddPackets(); diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp -index 27d7065a61b495b36abcfb96bc75131750054be4..22c6480fc55e93e1f6a99b31851c7e5da3fd60b1 100644 +index 9db3a9cc91fd5f9b194d6c1aa66aa02121164c29..56170f48cda417554c57b2adf934c2df58a23abf 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp @@ -96,6 +96,7 @@ bool CVideoPlayerAudio::OpenStream(CDVDStreamInfo &hints) @@ -47509,10 +47493,10 @@ index 90b04db5405058be2ff20aeaa6af2d2ac651586f..084fba87f49f4c3b33a8dd4a20a626a3 void init_cursor(); void set_cursor(const void *pixels, int width, int height, int hotspot_x, int hotspot_y); -From ecf6ace9d336fb53689481288783edd2a35db890 Mon Sep 17 00:00:00 2001 +From 93d5e234c992e2b99148ecf128b46b321e49ed78 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 -Subject: [PATCH 36/71] rbp: Support zero copy interface with hevc acceleration +Subject: [PATCH 35/73] rbp: Support zero copy interface with hevc acceleration --- xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 9 +++++++++ @@ -47520,10 +47504,10 @@ Subject: [PATCH 36/71] 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 bd9d08fba188ec4e1ad3880cd7707974b0373b61..63df72700298c881107a3992c0eef893ae85f512 100644 +index b0bd4b5b4009520367525132a8455557830a3741..fc152c13ed5b17ccfbb0ab4c659dedf8fd63d6bd 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -369,6 +369,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options +@@ -368,6 +368,15 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options if (tryhw && m_decoderState == STATE_NONE) { m_decoderState = STATE_HW_SINGLE; @@ -47556,10 +47540,10 @@ index 29c4e6d15dd838cf845c301ea1a1f4c05db29871..864650d488d0f5b3dc9f89f01aa5c3b8 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 7c8d2db0bc531fd6e3b3788abc451b54dc58ca59 Mon Sep 17 00:00:00 2001 +From 2ba5f8b40e899f9ddd37b66803c65c4199324476 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 16 May 2015 18:26:04 +0100 -Subject: [PATCH 37/71] ffmpeg: use upstream mvc patches +Subject: [PATCH 36/73] ffmpeg: use upstream mvc patches --- ...vcodec-add-h264_mvc-codec-id-and-profiles.patch | 68 ++++++++++++ @@ -47769,7 +47753,7 @@ index 0000000000000000000000000000000000000000..399e8a95984771e4388bfe4785423ff3 +2.7.4 + diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e23794be3a 100644 +index 337dbaab927919858e44d79f647207ef0513eea1..7e97e4d91a443d46d933df528763422ff5e8f4fa 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -4,7 +4,9 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -47783,7 +47767,7 @@ index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e2 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -86,6 +88,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -90,6 +92,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../added_ARM_NEON_optimized_SAO_patches.patch cd $(PLATFORM); patch -p1 < ../pfcd_hevc_optimisations.patch cd $(PLATFORM); patch -p1 < ../0001-Squashed-commit-of-the-following.patch @@ -47794,7 +47778,7 @@ index 55fb495c399c718b55ff253d79652e0d59021500..46e7138e6906dc99d03c09b0f94340e2 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh -index 7022b5fadef58ad27b61725d77131bd78af2f51d..0c323ac47f7f79f4ce786c29c8f58bccad5d96dd 100755 +index 41248acbe1ff6d8883e55678ae256b566bf925c3..aa12d8d4ab30a43e405cac37d7daf1bc6686fe5a 100755 --- a/tools/depends/target/ffmpeg/autobuild.sh +++ b/tools/depends/target/ffmpeg/autobuild.sh @@ -132,6 +132,9 @@ patch -p1 < ../hevcdsp_ARM_NEON_optimized_epel_functions.patch @@ -47869,10 +47853,10 @@ index 0000000000000000000000000000000000000000..b39480ad098b9cd0882fcf75b96afb1b +2.7.4 + -From ec064d0dd35e383c434da78be6e7e2dd701b5b01 Mon Sep 17 00:00:00 2001 +From b52627c29eb93ede720d7473f91b644f868e6691 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 20 Jan 2016 17:02:16 +0300 -Subject: [PATCH 38/71] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc +Subject: [PATCH 37/73] [VideoPlayer] DemuxFFmpeg: Properly demuxing h264_mvc streams. --- @@ -47880,7 +47864,7 @@ Subject: [PATCH 38/71] [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 b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3bdf14eeb 100644 +index f00e95324849011df9d078432699030f6c4afae8..c673115f4c5b1f80a0f2beb157f2821a337debee 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -25,6 +25,7 @@ @@ -47891,7 +47875,7 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 #include "DVDClock.h" // for DVD_TIME_BASE #include "DVDDemuxUtils.h" #include "DVDInputStreams/DVDInputStream.h" -@@ -1306,6 +1307,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1332,6 +1333,15 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) } case AVMEDIA_TYPE_VIDEO: { @@ -47907,7 +47891,7 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); stream = st; if(strcmp(m_pFormatContext->iformat->name, "flv") == 0) -@@ -1314,7 +1324,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1340,7 +1350,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) st->bVFR = false; // never trust pts in avi files with h264. @@ -47916,7 +47900,7 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 st->bPTSInvalid = true; #if defined(AVFORMAT_HAS_STREAM_GET_R_FRAME_RATE) -@@ -1385,6 +1395,17 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1411,6 +1421,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 +47919,10 @@ index b2f2268c6e92b38f2e17f4d1e99b4681413a27b4..d648bb31faace595818a7e5b507372e3 } case AVMEDIA_TYPE_DATA: -From 558263b03a7fb773002a9b979f871acff4670063 Mon Sep 17 00:00:00 2001 +From 5e3d8ff9954cd60f9c896eabb9219b824d9844f3 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 25 Feb 2016 11:21:25 +0300 -Subject: [PATCH 39/71] [Stereo3D] Added mvc modes. +Subject: [PATCH 38/73] [Stereo3D] Added mvc modes. --- xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 4 ++++ @@ -47946,7 +47930,7 @@ Subject: [PATCH 39/71] [Stereo3D] Added mvc modes. 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp -index 809766a64b0289ca0a7f69cf68dd7651c249d161..04ceed1504c2d81aaa165d232e128c410b9fdc2c 100644 +index 24b1b10519467cbbfd96f7048efaf49aab7700cc..0b7b6178427302e0824734eb5c7aecd2a3b21a8c 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp @@ -104,6 +104,8 @@ namespace RenderManager { @@ -47960,8 +47944,8 @@ index 809766a64b0289ca0a7f69cf68dd7651c249d161..04ceed1504c2d81aaa165d232e128c41 } @@ -125,6 +127,8 @@ namespace RenderManager { convert["col_interleaved_lr"] = "col_interleaved_rl"; - convert["block_lr"] = "block_lr"; - convert["block_rl"] = "block_rl"; + convert["block_lr"] = "block_rl"; + convert["block_rl"] = "block_lr"; + convert["mvc_lr"] = "mvc_rl"; + convert["mvc_rl"] = "mvc_lr"; } @@ -47992,17 +47976,17 @@ index 1443acaf0f25df458ae49766e13dd0323454f2eb..6eb0752994bc5f8c47efbbf211120af0 i++; } -From 40af2076a7c8a476d48eb5fc6ee9b346b585e106 Mon Sep 17 00:00:00 2001 +From 7e689b0ba66c1626583734f772dd449760e36ac8 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Sat, 23 Jan 2016 10:21:32 +0300 -Subject: [PATCH 40/71] [VideoPlayer] Fix possible wrong aspect. +Subject: [PATCH 39/73] [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 f80c62ef56303bac91c4813f854c60985d3f812f..946518c7da7a7980052f98469c5726e8e7d55501 100644 +index babe49ec6c4a3650b17ddcf9b1f20ada93551e1d..693de6bc868b808eb746d6e304849e8a6c8d7e63 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 +47999,10 @@ index f80c62ef56303bac91c4813f854c60985d3f812f..946518c7da7a7980052f98469c5726e8 else m_fForcedAspectRatio = 0.0; -From 96a5c710aae0495f75aef9a760353060e096a69c Mon Sep 17 00:00:00 2001 +From 4b756099637b1cb748fde03af22ea6276f979cbf Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 22 Jan 2016 18:18:33 +0300 -Subject: [PATCH 41/71] [VideoPlayer] DemuxFFmpeg: ssif remux +Subject: [PATCH 40/73] [VideoPlayer] DemuxFFmpeg: ssif remux --- xbmc/cores/VideoPlayer/DVDDemuxers/CMakeLists.txt | 2 + @@ -48053,10 +48037,10 @@ index 63776b1333bb66483303e44d6ebe60f3cd7e14d7..0da129ff99f57dc38ca8a854854d9fe6 DVDDemuxUtils.h DVDDemuxVobsub.h diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d6b2fd624 100644 +index c673115f4c5b1f80a0f2beb157f2821a337debee..d028c5642585ffca236882a2f316150cac2cb0d4 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -164,6 +164,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() +@@ -166,6 +166,7 @@ CDVDDemuxFFmpeg::CDVDDemuxFFmpeg() : CDVDDemux() m_currentPts = DVD_NOPTS_VALUE; m_bMatroska = false; m_bAVI = false; @@ -48064,7 +48048,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d m_speed = DVD_PLAYSPEED_NORMAL; m_program = UINT_MAX; m_pkt.result = -1; -@@ -535,6 +536,8 @@ void CDVDDemuxFFmpeg::Dispose() +@@ -543,6 +544,8 @@ void CDVDDemuxFFmpeg::Dispose() m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48073,7 +48057,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d if (m_pFormatContext) { for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) -@@ -585,6 +588,9 @@ void CDVDDemuxFFmpeg::Flush() +@@ -596,6 +599,9 @@ void CDVDDemuxFFmpeg::Flush() m_displayTime = 0; m_dtsAtDisplayTime = DVD_NOPTS_VALUE; @@ -48083,7 +48067,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d } void CDVDDemuxFFmpeg::Abort() -@@ -852,7 +858,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -863,7 +869,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48094,7 +48078,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d { // update streams CreateStreams(m_program); -@@ -880,6 +888,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -891,6 +899,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48104,7 +48088,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d } else { -@@ -889,7 +900,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -900,7 +911,9 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { @@ -48115,7 +48099,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -1038,6 +1051,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1049,6 +1062,15 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() stream = AddStream(pPacket->iStreamId); } } @@ -48131,7 +48115,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d if (!stream) { CLog::Log(LOGERROR, "CDVDDemuxFFmpeg::AddStream - internal error, stream is null"); -@@ -1067,6 +1089,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) +@@ -1078,6 +1100,9 @@ bool CDVDDemuxFFmpeg::SeekTime(int time, bool backwords, double *startpts) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48141,7 +48125,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d CDVDInputStream::IPosTime* ist = m_pInput->GetIPosTime(); if (ist) { -@@ -1142,6 +1167,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) +@@ -1158,6 +1183,9 @@ bool CDVDDemuxFFmpeg::SeekByte(int64_t pos) m_pkt.result = -1; av_packet_unref(&m_pkt.pkt); @@ -48151,7 +48135,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d return (ret >= 0); } -@@ -1309,11 +1337,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1335,11 +1363,12 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (pStream->codec->codec_id == AV_CODEC_ID_H264_MVC) { @@ -48167,7 +48151,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d break; } CDemuxStreamVideoFFmpeg* st = new CDemuxStreamVideoFFmpeg(this, pStream); -@@ -1399,7 +1428,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1425,7 +1454,11 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { if (CDVDCodecUtils::IsH264AnnexB(m_pFormatContext->iformat->name, pStream)) { @@ -48180,7 +48164,7 @@ index d648bb31faace595818a7e5b507372e3bdf14eeb..ac2c9124426d5427e1103757ba9a755d } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) { -@@ -1492,7 +1525,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1537,7 +1570,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) if (langTag) strncpy(stream->language, langTag->value, 3); @@ -48452,10 +48436,10 @@ index 60e5652f69e96a559d8080e01dc214a56fb19343..cdaf53585a89a0da3a4038178806ee93 m_discStubExtensions = ".disc"; // internal music extensions -From c5d9b2d4efd4c615a4572749e85727b344acde75 Mon Sep 17 00:00:00 2001 +From bc26543c6ed60a2d9775d2fc03d4a6f0d9c72203 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:01:08 +0300 -Subject: [PATCH 42/71] [libbluray] bump libbluray to 0.9.2-mvc. +Subject: [PATCH 41/73] [libbluray] bump libbluray to 0.9.2-mvc. --- project/BuildDependencies/scripts/0_package.list | 2 +- @@ -48475,10 +48459,10 @@ index 4d1be9c2cb2bb0c9531413c7300342444df023e1..bc4913a3d0c1fcb7e27106a2ddd6988f libcec-3.1.0-win32-vc140.7z libfribidi-0.19.2-win32.7z -From c5a9af6e17d4bcfb07df6f99523a9331fc707b74 Mon Sep 17 00:00:00 2001 +From 45649c80d6a0ae44ad09d040d616401980b3946c Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 23 Feb 2016 16:02:46 +0300 -Subject: [PATCH 43/71] [3DBD] Added support of 3D-BluRay playback. +Subject: [PATCH 42/73] [3DBD] Added support of 3D-BluRay playback. --- lib/DllLibbluray.h | 8 + @@ -48556,7 +48540,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 ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea10a58b472 100644 +index d028c5642585ffca236882a2f316150cac2cb0d4..9498f676602e85d020968a7ecf12a31a750ef0ba 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -27,6 +27,7 @@ @@ -48567,7 +48551,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 #include "DVDDemuxUtils.h" #include "DVDInputStreams/DVDInputStream.h" #include "DVDInputStreams/DVDInputStreamFFmpeg.h" -@@ -495,6 +496,16 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein +@@ -503,6 +504,16 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein UpdateCurrentPTS(); @@ -48584,7 +48568,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 // in case of mpegts and we have not seen pat/pmt, defer creation of streams if (!skipCreateStreams || m_pFormatContext->nb_programs > 0) { -@@ -858,9 +869,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -869,9 +880,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() { Flush(); } @@ -48595,7 +48579,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 { // update streams CreateStreams(m_program); -@@ -901,8 +910,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -912,8 +921,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() if (IsVideoReady()) { // libavformat is confused by the interleaved SSIF. @@ -48605,7 +48589,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 { /* check so packet belongs to selected program */ for (unsigned int i = 0; i < m_pFormatContext->programs[m_program]->nb_stream_indexes; i++) -@@ -1053,10 +1061,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() +@@ -1064,10 +1072,7 @@ DemuxPacket* CDVDDemuxFFmpeg::Read() } if (stream && m_pSSIF) { @@ -48617,7 +48601,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 if (stream->type == STREAM_DATA && stream->codec == AV_CODEC_ID_H264_MVC && pPacket->iSize) stream = GetStream(pPacket->iStreamId); } -@@ -1432,6 +1437,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1458,6 +1463,29 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) { m_pSSIF->SetH264StreamId(streamIdx); pStream->codec->codec_tag = MKTAG('A', 'M', 'V', 'C'); @@ -48647,7 +48631,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 } } else if (CDVDCodecUtils::ProcessH264MVCExtradata(pStream->codec->extradata, pStream->codec->extradata_size)) -@@ -1692,6 +1720,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) +@@ -1737,6 +1765,12 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) } Flush(); @@ -48660,7 +48644,7 @@ index ac2c9124426d5427e1103757ba9a755d6b2fd624..511b44b4682d204c43aa051ba62f7ea1 return true; } -@@ -1736,6 +1770,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) +@@ -1781,6 +1815,11 @@ std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) bool CDVDDemuxFFmpeg::IsProgramChange() { @@ -49477,10 +49461,10 @@ index b967a85e6557e42a7f1235cdd804d5a0263b866f..561fb5cd4f971bc9ee4f41218a60bb3d typedef std::shared_ptr SOverlay; typedef std::list SOverlays; -From 26a07cfcbdd19e30743c04ee30b08e2f6219261d Mon Sep 17 00:00:00 2001 +From 9364454aa08e510e8285fd792abb8cdf63aace2f Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 2 Mar 2016 23:31:50 +0300 -Subject: [PATCH 44/71] [BaseRenderer] Fix aspect for TAB/SBS (need more +Subject: [PATCH 43/73] [BaseRenderer] Fix aspect for TAB/SBS (need more testing) --- @@ -49524,10 +49508,10 @@ index f9b3bfb4eb35eff3ef7af370136882bc733461e6..ab804ab0259992e4700e0ba99759c3f7 void CBaseRenderer::ManageRenderArea() -From 7cbfc3e33e6ea0513ad1321b80bbade1760df6b4 Mon Sep 17 00:00:00 2001 +From 023ad967694764e1c6f1ae964a284de3eac0474b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Feb 2016 17:00:50 +0000 -Subject: [PATCH 45/71] libbluray: Bump to Nevcairie's v0.9.2 +Subject: [PATCH 44/73] libbluray: Bump to Nevcairie's v0.9.2 This includes 3D support --- @@ -51184,10 +51168,10 @@ index 0000000000000000000000000000000000000000..5ef0124e35c9d81143921a328e272220 + + return fp; -From 6a6e521b5a8c0ba87b9704dd9aa10ae3896b69a2 Mon Sep 17 00:00:00 2001 +From e513afc9435f9652af6e31e159e0a9e5217e3c96 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 2 Mar 2016 19:40:47 +0000 -Subject: [PATCH 46/71] [VideoPlayer] Added new msdk-mvc decoder. +Subject: [PATCH 45/73] [VideoPlayer] Added new msdk-mvc decoder. --- xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecUtils.cpp | 61 ++++++++++++++++++++++ @@ -51303,10 +51287,10 @@ index 361c96623660305fc393273b1eaea4db096c417d..8ec50bbf79e9e163ccae25e30f3a40bf static AVPixelFormat PixfmtFromEFormat(ERenderFormat format); }; -From 25f77b57fba31fff99ecd9af8e0943d74ba83389 Mon Sep 17 00:00:00 2001 +From 8ac9fae10b66960c1405aa06fede7ea2f2d4ab50 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 6 Mar 2016 12:54:59 +0000 -Subject: [PATCH 47/71] mvc: Automatically enable stereo mode +Subject: [PATCH 46/73] mvc: Automatically enable stereo mode --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 6 +++++- @@ -51364,10 +51348,10 @@ index 311dd6689236d660919c4c4483c51dca2752514a..536332c43e22ccb229e72b88518e54dd break; case AV_CODEC_ID_MPEG4: -From 3937828729ed7d4f48c3b8fa6b54d00299e32aa2 Mon Sep 17 00:00:00 2001 +From 2764d1e7a679c4b570af7e8cb704cffc02590dcd Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 24 Mar 2016 13:02:58 +0000 -Subject: [PATCH 48/71] ffmpeg: mvc: fix for pixelation from packets with no +Subject: [PATCH 47/73] ffmpeg: mvc: fix for pixelation from packets with no pts/dts --- @@ -51407,7 +51391,7 @@ index 0000000000000000000000000000000000000000..5240cf58ce40c28d12354db63b7e2914 + *poutbuf = NULL; + *poutbuf_size = 0; diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile -index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c638197f3446b 100644 +index 7e97e4d91a443d46d933df528763422ff5e8f4fa..d4f279fd4f2ceb260698cd6fedb124bae61018d0 100644 --- a/tools/depends/target/ffmpeg/Makefile +++ b/tools/depends/target/ffmpeg/Makefile @@ -6,7 +6,8 @@ DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ @@ -51420,7 +51404,7 @@ index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c6381 # set to "yes" to enable patching # we don't apply patches until we move to a vanilla ffmpeg tarball -@@ -91,6 +92,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) +@@ -95,6 +96,7 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) cd $(PLATFORM); patch -p1 < ../0001-avcodec-add-h264_mvc-codec-id-and-profiles.patch cd $(PLATFORM); patch -p1 < ../0001-h264_parser-add-support-for-parsing-h264-mvc-NALUs.patch cd $(PLATFORM); patch -p1 < ../h264_parser_fix_parsing_of_mvc_slices_in_some_corner_cases.patch @@ -51429,10 +51413,10 @@ index 46e7138e6906dc99d03c09b0f94340e23794be3a..d90cc23cfc391f2d289c7da6c69c6381 cd $(PLATFORM);\ CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ -From 1d276f429465651312f03e96fc1d16c292a21318 Mon Sep 17 00:00:00 2001 +From c966666795999cb4bd4f8e43107d78e42cde580f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 9 Mar 2016 13:08:44 +0000 -Subject: [PATCH 49/71] stereoscopicmanager: remove hardwarebased for rbp +Subject: [PATCH 48/73] stereoscopicmanager: remove hardwarebased for rbp --- xbmc/guilib/StereoscopicsManager.cpp | 2 ++ @@ -51454,20 +51438,20 @@ index 6eb0752994bc5f8c47efbbf211120af0a0720d0c..9426604f6460651f54cc035476e69530 { "mvc_rl", RENDER_STEREO_MODE_SPLIT_HORIZONTAL }, // fallback {} -From 6a6175b80008d559b965ab8e31c2ced4f9c43203 Mon Sep 17 00:00:00 2001 +From c2b6b76b5b397bdae56fe26490aa55267d6d2465 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 17 May 2016 19:24:08 +0100 -Subject: [PATCH 50/71] stereoscopics: Switch to using block_lr for mvc to +Subject: [PATCH 49/73] stereoscopics: Switch to using block_lr for mvc to match makemkv See: http://forum.kodi.tv/showthread.php?tid=221407&pid=2339656#pid2339656 --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 2 +- - xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 12 ++++-------- + xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp | 8 ++------ xbmc/cores/omxplayer/OMXVideo.cpp | 2 +- xbmc/guilib/StereoscopicsManager.cpp | 11 +++++------ - 5 files changed, 12 insertions(+), 17 deletions(-) + 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp index 38e7d44b7968039120b9821fd5b6b2d552edf3c1..654a927a0d4cbf877a3bb2616d62f46a63e7cadb 100644 @@ -51483,10 +51467,10 @@ index 38e7d44b7968039120b9821fd5b6b2d552edf3c1..654a927a0d4cbf877a3bb2616d62f46a break; case AV_CODEC_ID_H263: diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index 511b44b4682d204c43aa051ba62f7ea10a58b472..ba7371221f06aeecacc5a68ed059b55276d752e4 100644 +index 9498f676602e85d020968a7ecf12a31a750ef0ba..6ac2da1262bd7f6a8304ef3192d67d1ea8d910c5 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1444,7 +1444,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1470,7 +1470,7 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) CDVDInputStreamBluray *bluRay = static_cast(m_pInput); if (bluRay->HasMVC()) { @@ -51496,7 +51480,7 @@ index 511b44b4682d204c43aa051ba62f7ea10a58b472..ba7371221f06aeecacc5a68ed059b552 } } diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp -index 04ceed1504c2d81aaa165d232e128c410b9fdc2c..49f7f7ca7e144a259f6d06bd11cd97aa0b3242aa 100644 +index 0b7b6178427302e0824734eb5c7aecd2a3b21a8c..49f7f7ca7e144a259f6d06bd11cd97aa0b3242aa 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderFlags.cpp @@ -102,10 +102,8 @@ namespace RenderManager { @@ -51512,16 +51496,12 @@ index 04ceed1504c2d81aaa165d232e128c410b9fdc2c..49f7f7ca7e144a259f6d06bd11cd97aa } return convert[mode]; } -@@ -125,10 +123,8 @@ namespace RenderManager { - convert["row_interleaved_lr"] = "row_interleaved_rl"; - convert["col_interleaved_rl"] = "col_interleaved_lr"; +@@ -127,8 +125,6 @@ namespace RenderManager { convert["col_interleaved_lr"] = "col_interleaved_rl"; -- convert["block_lr"] = "block_lr"; -- convert["block_rl"] = "block_rl"; + convert["block_lr"] = "block_rl"; + convert["block_rl"] = "block_lr"; - convert["mvc_lr"] = "mvc_rl"; - convert["mvc_rl"] = "mvc_lr"; -+ convert["block_lr"] = "block_rl"; -+ convert["block_rl"] = "block_lr"; } std::string res = convert[mode]; if(res.empty()) @@ -51563,10 +51543,10 @@ index 9426604f6460651f54cc035476e69530b2ea8493..cc929b599125a44ac128713fd4331782 }; -From 3683605496df55d79f763aa98ce6201b05b66f46 Mon Sep 17 00:00:00 2001 +From f1301d05093a677529ccc63fabbb161ea09a9d83 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 10 Mar 2016 18:11:33 +0300 -Subject: [PATCH 51/71] fixup! Revert supporting crappy tab/sbs subtitles. this +Subject: [PATCH 50/73] fixup! Revert supporting crappy tab/sbs subtitles. this fixes regular subtitles. --- @@ -51611,10 +51591,10 @@ index 3a080d06c90b0762482816928642e6de7810b539..7c0b70777556ac7694e7fc511cd4bb18 } -From d17055c05d41949c917e969aa4876a49cbed4bcc Mon Sep 17 00:00:00 2001 +From 7552084189bbac0c9b2a443fa071b1ebe85b1cf3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 10 Feb 2015 15:29:16 +0000 -Subject: [PATCH 52/71] [libcec] Add repeating keypress patch from popcornmix' +Subject: [PATCH 51/73] [libcec] Add repeating keypress patch from popcornmix' repo --- @@ -52501,10 +52481,10 @@ index 0000000000000000000000000000000000000000..8366a696562a934144cc9a21ea6f2cab +1.9.1 + -From 3e32144c1bbd9aabfe39e87a743971959954ff12 Mon Sep 17 00:00:00 2001 +From 32d910f5fb777a2d18b2d81b8242e0abd48e6388 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 17:15:29 +0000 -Subject: [PATCH 53/71] cec: hack: pretend bump to 3.1.0 +Subject: [PATCH 52/73] cec: hack: pretend bump to 3.1.0 --- tools/depends/target/libcec/Makefile | 1 + @@ -52552,10 +52532,10 @@ index 0000000000000000000000000000000000000000..9e55e51068e7befd9d4ff003156ce1ff + # cec-client + add_subdirectory(src/cec-client) -From 08abeee53082011303685263203843929e364f61 Mon Sep 17 00:00:00 2001 +From 2e98d936f34bb32d80b7edfc86f10e4cd6073a85 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Oct 2014 00:19:40 +0000 -Subject: [PATCH 54/71] [cec] Add settings for configuring button repeats +Subject: [PATCH 53/73] [cec] Add settings for configuring button repeats --- addons/resource.language.en_gb/resources/strings.po | 15 +++++++++++++++ @@ -52564,10 +52544,10 @@ Subject: [PATCH 54/71] [cec] Add settings for configuring button repeats 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 45ee30ba64153eb4287e7cf0f2af6dd6553e9d26..c66858390045d010ab5d22bea362be03a8f48292 100644 +index 7ace950c83e1497b4d96a31b33b524e7eafb1783..bdc5953503cf382091706240505c850084d84d94 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19690,3 +19690,18 @@ msgstr "" +@@ -19714,3 +19714,18 @@ msgstr "" msgctxt "#38206" msgid "Max" msgstr "" @@ -52636,10 +52616,10 @@ index e6bcbce6911a1714e129ecd5aceead94769231f4..19b3c37bc18fcab30920b12902e8c339 if (GetSettingBool("pause_playback_on_deactivate")) { -From 6e00438089530706a2707ce168d95d95bf319f7d Mon Sep 17 00:00:00 2001 +From 4b033455b05332c157035752984e7c8da9ddce20 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 3 Nov 2014 23:17:46 +0000 -Subject: [PATCH 55/71] [cec] Don't discard buttons when repeat mode is enabled +Subject: [PATCH 54/73] [cec] Don't discard buttons when repeat mode is enabled --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 5 ++++- @@ -52662,10 +52642,10 @@ index 19b3c37bc18fcab30920b12902e8c3397a69dccc..f859f44f6d5379154317b5760d7df720 if (m_currentButton.iButton == key.iButton && m_currentButton.iDuration == 0) { -From 3ead9831955410d3d750a70457802e8bd33d73d9 Mon Sep 17 00:00:00 2001 +From 6e8d828760fc9a98acb6d7599926b9bc33ff4f4e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 -Subject: [PATCH 56/71] [cec] Temp - more logging +Subject: [PATCH 55/73] [cec] Temp - more logging --- xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 8 +++++++- @@ -52717,10 +52697,10 @@ index f859f44f6d5379154317b5760d7df720f0894e0d..f1c3a6d242183507c4ce9ebf4651b0c0 } -From 4420f962ccbef459efc7adbabbc6b940d04c1fd2 Mon Sep 17 00:00:00 2001 +From f422270e1333ba02c8c2321538ae171572e9879d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 22 Jan 2016 12:29:41 +0000 -Subject: [PATCH 57/71] [cec] Update for libcec 3.1.0 +Subject: [PATCH 56/73] [cec] Update for libcec 3.1.0 --- configure.ac | 4 ++-- @@ -52728,10 +52708,10 @@ Subject: [PATCH 57/71] [cec] Update for libcec 3.1.0 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 6a8b4a26a5d150e2965441798b178644cdfabba4..e99d80720f6c74346b77fcca1da017635bfb25c8 100644 +index 3df753bde53593ecea534455056268f9f8a24c1a..738d23e3272cd56b095cef821a3993bb9aa69b55 100644 --- a/configure.ac +++ b/configure.ac -@@ -1447,9 +1447,9 @@ if test "x$use_libcec" != "xno"; then +@@ -1453,9 +1453,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 @@ -52766,10 +52746,10 @@ index f1c3a6d242183507c4ce9ebf4651b0c0f7e9c5c9..28a6a8148810da940f977976a627018c // device name 'XBMC' snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str()); -From ea618c200f3b79644bb630ad9228bea0df3be14d Mon Sep 17 00:00:00 2001 +From 2748fd05bec256b540214e0e3e4cbbacac5aea31 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 19 Mar 2016 14:46:41 +0000 -Subject: [PATCH 58/71] libcec: use system audio mode request instead of power +Subject: [PATCH 57/73] libcec: use system audio mode request instead of power on to start AVR reliable --- @@ -52835,10 +52815,10 @@ index 39ba882d0c7e270b4d1d1d566027cbaffb76b587..4565dc9f6fc0b3e6b49133443c19e107 $(LIBDYLIB): $(PLATFORM) -From 7e25a34208ce3e6d8f27a2bce29c1fa49e9d387a Mon Sep 17 00:00:00 2001 +From 25e789e48fd92bd81c780834328846abde00c69f Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 22 Mar 2016 09:51:52 +0100 -Subject: [PATCH 59/71] python: use kodi provided cert if available +Subject: [PATCH 58/73] python: use kodi provided cert if available --- xbmc/interfaces/python/XBPython.cpp | 6 ++++++ @@ -52862,10 +52842,10 @@ index bc84af9411ef55eaf5ba71a320b5cbfec5f49548..ff4ed7db26845905108ea0ae504e4f58 PyEval_AcquireLock(); else -From 5e2703cf3297145ce88ece33c54de5f9c337ec51 Mon Sep 17 00:00:00 2001 +From 2c9d4750f89d50ab7350a6f258d219190111c0b3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 25 May 2016 18:31:17 +0100 -Subject: [PATCH 60/71] rbp: Hard code the number of buffers to improve audio +Subject: [PATCH 59/73] rbp: Hard code the number of buffers to improve audio sync --- @@ -52891,10 +52871,10 @@ index 2572e25753712186f69390965ee1448bff3fadd5..5d9f716bac49f9850f1062a4d5ac8517 diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -index 9160a9b90319d64f102aa869f2d9065362c240f9..e03af0cd4dfbcf67b728b5ad26d912e4c098b109 100644 +index d38031da337aa9ff180c2866c5d5924c8537978e..370485e08080d421b12ad5ad4dd0f4985a55147d 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp -@@ -1047,7 +1047,11 @@ void CRenderManager::UpdateDisplayLatency() +@@ -1063,7 +1063,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); @@ -52907,10 +52887,10 @@ index 9160a9b90319d64f102aa869f2d9065362c240f9..e03af0cd4dfbcf67b728b5ad26d912e4 } -From da39a1c8163325532ac99e3630244e0220145216 Mon Sep 17 00:00:00 2001 +From 2881008fef3d6c44ad33d258fa9be3c3346ab8d6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 4 Jul 2016 18:30:03 +0100 -Subject: [PATCH 61/71] rbp: Update the GL libs to new naming scheme +Subject: [PATCH 60/73] 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. @@ -52924,10 +52904,10 @@ will be dropped at some point 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac -index e99d80720f6c74346b77fcca1da017635bfb25c8..4f5486fb33f95338bc668437a605d552df3c8054 100644 +index 738d23e3272cd56b095cef821a3993bb9aa69b55..db912db732d5b55a5c8abfca0b4c7a04bf96d535 100644 --- a/configure.ac +++ b/configure.ac -@@ -943,7 +943,7 @@ if test "$use_gles" = "yes"; then +@@ -949,7 +949,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.) @@ -52962,10 +52942,10 @@ index ab06f968b3e314fca1ae001139f687dce9a5098b..87f1faa248b91a2e50758b23c0b9e5b0 else() find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac -index 9c8ddade7b7a20e072ddd41a3465ab6e1678b20d..4d728508ce5c18789c50a60dd302deb8c1b8f99d 100644 +index a0bc386284f168c982b8cfed7e28768fd42459b5..dbe3ec83221396d1a5ae5b8715b7ca45f17d247c 100644 --- a/tools/depends/configure.ac +++ b/tools/depends/configure.ac -@@ -391,7 +391,7 @@ if test "$target_platform" = "raspberry-pi" ; then +@@ -432,7 +432,7 @@ if test "$target_platform" = "raspberry-pi" ; then -isystem${use_firmware}/opt/vc/include \ -isystem${use_firmware}/opt/vc/include/interface/vcos/pthreads \ -isystem${use_firmware}/opt/vc/include/interface/vmcs_host/linux" @@ -52975,10 +52955,10 @@ index 9c8ddade7b7a20e072ddd41a3465ab6e1678b20d..4d728508ce5c18789c50a60dd302deb8 fi -From 0063738ac14e696f44c0709a608ef6555fed0b47 Mon Sep 17 00:00:00 2001 +From c8be496ad1ad4e4abe988ac1a4fc264d518f7393 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 21 Apr 2016 16:49:02 +0100 -Subject: [PATCH 62/71] Revert "[settings] remove show EXIF picture information +Subject: [PATCH 61/73] Revert "[settings] remove show EXIF picture information setting" This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. @@ -52993,10 +52973,10 @@ This reverts commit e7d90188436b6966eff23fd695e1a9d18f4af1b4. 7 files changed, 25 insertions(+), 3 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index c66858390045d010ab5d22bea362be03a8f48292..622b491a999a84c90420ceb974cb8db238d14a7d 100644 +index bdc5953503cf382091706240505c850084d84d94..a459a333cd646462956e2e2925cc5bcbfb972bd8 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19705,3 +19705,13 @@ msgstr "" +@@ -19729,3 +19729,13 @@ msgstr "" msgctxt "#38052" msgid "Remote button press release time (ms)" msgstr "" @@ -53011,7 +52991,7 @@ index c66858390045d010ab5d22bea362be03a8f48292..622b491a999a84c90420ceb974cb8db2 +msgid "If EXIF information exists (date, time, camera used, etc.), it will be displayed." +msgstr "" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 52dfd4e3e261388a5fe0f6997e62b906ccfa007a..c02b2d727283cdfbc6d64124404f93c21f7f3b3d 100644 +index 291a781e33496a0e6fe5cd869c857f5a851586ce..508055794481729aa6394b84d2527e6c2e9dc4e2 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -1180,6 +1180,11 @@ @@ -53027,7 +53007,7 @@ index 52dfd4e3e261388a5fe0f6997e62b906ccfa007a..c02b2d727283cdfbc6d64124404f93c2 0 true diff --git a/xbmc/pictures/GUIWindowPictures.cpp b/xbmc/pictures/GUIWindowPictures.cpp -index c68371900dd42a154220e440266a45a7b2ab3118..653942232843ed0fc6c54c8bc405852797da6605 100644 +index 4b5ec502a49d5116cafd53441a6d823be0da6b54..072639baae58479ec7d746f96634de069ee87e34 100644 --- a/xbmc/pictures/GUIWindowPictures.cpp +++ b/xbmc/pictures/GUIWindowPictures.cpp @@ -203,7 +203,7 @@ void CGUIWindowPictures::OnPrepareFileItems(CFileItemList& items) @@ -53077,7 +53057,7 @@ index 000b54fe1bb1dd1963edd5cf208ea318a5a5499d..2a022ff0ff66d237f0ebd12092c7b5ce }; diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp -index 3444a135954775a2c2fd60c151f447f76471d307..15d408b6a11357e200d236d6b025cee08751bbdd 100644 +index 8f7f14cce4281daeb1cf4ba18cb9304615ef17b8..69bd754cf2f97bc2416b4929e5fd6653e9e1fbc6 100644 --- a/xbmc/settings/Settings.cpp +++ b/xbmc/settings/Settings.cpp @@ -297,6 +297,7 @@ const std::string CSettings::SETTING_AUDIOCDS_SETTINGS = "audiocds.settings"; @@ -53089,7 +53069,7 @@ index 3444a135954775a2c2fd60c151f447f76471d307..15d408b6a11357e200d236d6b025cee0 const std::string CSettings::SETTING_PICTURES_SHOWVIDEOS = "pictures.showvideos"; const std::string CSettings::SETTING_PICTURES_DISPLAYRESOLUTION = "pictures.displayresolution"; diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h -index 0829f6b15207bf0b8f2e4a699600b46427fe6267..432a23ce6b501fa4f3fad1f4ecff9f19c28ca9b5 100644 +index 038b8c6b9436ed30e2a670164cf1f9556382c8c6..583f1079ce70192d133c43335a27bc0a49350648 100644 --- a/xbmc/settings/Settings.h +++ b/xbmc/settings/Settings.h @@ -254,6 +254,7 @@ public: @@ -53101,20 +53081,20 @@ index 0829f6b15207bf0b8f2e4a699600b46427fe6267..432a23ce6b501fa4f3fad1f4ecff9f19 static const std::string SETTING_PICTURES_SHOWVIDEOS; static const std::string SETTING_PICTURES_DISPLAYRESOLUTION; -From 44c44f0491ac34ac0d7212162175bfd09b69c09d Mon Sep 17 00:00:00 2001 +From 6be024ea730bcd2513b897e122be3ca1fbb1416b Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 28 Jun 2016 14:46:01 +0100 -Subject: [PATCH 63/71] ffmpeg: hacky fix for files with GMC +Subject: [PATCH 62/73] 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 ba7371221f06aeecacc5a68ed059b55276d752e4..952498322e789364462f68f168ac9ac197f3dd8c 100644 +index 6ac2da1262bd7f6a8304ef3192d67d1ea8d910c5..563556d7ab6858a767af6df83e24737e3ade5663 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -1410,8 +1410,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) +@@ -1436,8 +1436,8 @@ CDemuxStream* CDVDDemuxFFmpeg::AddStream(int streamIdx) stereoMode = GetStereoModeFromMetadata(m_pFormatContext->metadata); if (!stereoMode.empty()) st->stereo_mode = stereoMode; @@ -53126,10 +53106,10 @@ index ba7371221f06aeecacc5a68ed059b55276d752e4..952498322e789364462f68f168ac9ac1 { if (pStream->codec->codec_id == AV_CODEC_ID_PROBE) -From d1c4f771b5608a853d5f1b96da0ee095c7425148 Mon Sep 17 00:00:00 2001 +From d926e32b95f3353f1d12a81709e8bbaab12f1be5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Jul 2016 20:39:18 +0100 -Subject: [PATCH 64/71] mmalrender: Add sharpness control +Subject: [PATCH 63/73] mmalrender: Add sharpness control --- addons/resource.language.en_gb/resources/strings.po | 2 +- @@ -53138,10 +53118,10 @@ Subject: [PATCH 64/71] 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 622b491a999a84c90420ceb974cb8db238d14a7d..d88ae3626dca2f86e7aa28ed62ae319aa3e0148a 100644 +index a459a333cd646462956e2e2925cc5bcbfb972bd8..dc220fb9809e277b1be60653c7fa1a6f62ff5a2c 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -8691,7 +8691,7 @@ msgstr "" +@@ -8695,7 +8695,7 @@ msgstr "" #: xbmc/video/dialogs/GUIDialogVideoSettings.cpp msgctxt "#16313" @@ -53201,10 +53181,10 @@ index a056a25f4f74fc6be023404286e044dac9d8ca7c..5d3baa6534a2fe449990402ab805d844 CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; -From cc99de7db0c2b2a9c48a923d3dea91194e68f30f Mon Sep 17 00:00:00 2001 +From 1f66b2a9ff102af96f70d8fa6b9b8a80bfcb2dce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 26 Jul 2016 19:00:03 +0100 -Subject: [PATCH 65/71] rbp: Ensure processinfo values are initialised +Subject: [PATCH 64/73] rbp: Ensure processinfo values are initialised --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 ++ @@ -53225,7 +53205,7 @@ index 654a927a0d4cbf877a3bb2616d62f46a63e7cadb..2c5144c44403de9d8ddea7cfbb0c7f83 return true; } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp -index f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c..e653f1a37a275f61698969bb2f79f6e4689cee18 100644 +index 84f389f6e37381a22db024667eebe4e8113857db..f6fb241dfec9269f4e501248de4dc83d5fdc2d3a 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp @@ -739,9 +739,6 @@ void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height, f @@ -53248,10 +53228,10 @@ index f54f53a3b18fd2baf9c696b76f6ff0a6c1a9da5c..e653f1a37a275f61698969bb2f79f6e4 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 c6d8d9bf6467a2730a4c02b408a4c5921924a3b1 Mon Sep 17 00:00:00 2001 +From b958fb38ea881c4da2f98a4a3c9b5290e0b7fbed Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 16 Sep 2016 15:37:07 +0100 -Subject: [PATCH 66/71] MMAL: Indicate when picture came from still frame so +Subject: [PATCH 65/73] 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 @@ -53270,10 +53250,10 @@ deinterlace that does not require context for stills. 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 63df72700298c881107a3992c0eef893ae85f512..539882db7694e653df1d2caa5eaa955add0d7b71 100644 +index fc152c13ed5b17ccfbb0ab4c659dedf8fd63d6bd..ec2cc3d867d446a748024ce85e079aea8451fb85 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 +@@ -243,7 +243,7 @@ enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat(struct AVCodecContext * avctx #ifdef HAS_MMAL if (*cur == AV_PIX_FMT_YUV420P) { @@ -53395,10 +53375,10 @@ index a0104d9ff67402e74ea8076dd47e9e9bd11a74f1..2f9af729c26f81327a666a59a90f707e if (!g_graphicsContext.IsFullScreenVideo()) { -From 5030873f7ff40eaf7bddd1948cf9b832d1881438 Mon Sep 17 00:00:00 2001 +From 2eff85dc93732ef5fed900a933680fa8ba10f104 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 15:19:02 +0100 -Subject: [PATCH 67/71] MMAL: Move pool into base class +Subject: [PATCH 66/73] MMAL: Move pool into base class --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 2 +- @@ -53493,10 +53473,10 @@ index 60aff83a3e55f11313d0d9186212e9badbb6d52e..20eab3bed39fa11bd1454f6c6decd4ec class CDecoder -From 6297a1f607bfcb2fae0e05af8c8b2b7b91ec9b3b Mon Sep 17 00:00:00 2001 +From f3cd5d153db54994cebd549bf0181b030978a39e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 16:20:30 +0100 -Subject: [PATCH 68/71] MMAL: Make setting the decoder more consistent between +Subject: [PATCH 67/73] MMAL: Make setting the decoder more consistent between MMALCodec and MMALFFMpeg --- @@ -53607,10 +53587,10 @@ index 5d3baa6534a2fe449990402ab805d84423fbc636..b7a61eab678f8aedeff96795c9ba3a06 class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable -From e7eaba9534259eb067272938f849be91cbded991 Mon Sep 17 00:00:00 2001 +From dc0a901b361cc7e40ed64d3b77c06a7a5f38a042 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 16:32:45 +0100 -Subject: [PATCH 69/71] MMAL: Set processInfo in pool +Subject: [PATCH 68/73] MMAL: Set processInfo in pool --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 1 + @@ -53676,10 +53656,10 @@ index b7a61eab678f8aedeff96795c9ba3a06157bb88d..b7621a8cf37907d544987b06dd4528ee class CMMALRenderer : public CBaseRenderer, public CThread, public IRunnable -From 7201b3b43f2c3468bd8c158289611bc546264534 Mon Sep 17 00:00:00 2001 +From f9fcf79aa64dec676674a0237f15db390a225bce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 18 Sep 2016 18:35:55 +0100 -Subject: [PATCH 70/71] MMAL: Report deinterlace method to processinfo overlay +Subject: [PATCH 69/73] MMAL: Report deinterlace method to processinfo overlay --- xbmc/cores/VideoPlayer/DVDCodecs/Video/MMALCodec.cpp | 3 +-- @@ -53778,10 +53758,10 @@ index b7621a8cf37907d544987b06dd4528eed468abc0..5758deba4d5d30662507968ac7af0fb0 uint32_t m_mmal_format, m_width, m_height, m_aligned_width, m_aligned_height, m_size; AVCodecContext *m_avctx; -From 204ea8e03c62d18ba2c9793c63d289346678a082 Mon Sep 17 00:00:00 2001 +From 85dc8a110e932cb99d9ae5f1366a2d683274ebb5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 19 Sep 2016 19:56:07 +0100 -Subject: [PATCH 71/71] MMALRenderer: Ensure updated aspect ratio is seen in +Subject: [PATCH 70/73] MMALRenderer: Ensure updated aspect ratio is seen in the case of a single still frame --- @@ -53864,3 +53844,193 @@ index 5758deba4d5d30662507968ac7af0fb0497ae35e..a2af6d5fd0f5fa6736cb3ca31ee6c778 CRect m_src_rect; CRect m_dst_rect; RENDER_STEREO_MODE m_video_stereo_mode; + +From db293141be4e15f5d567d82fe151f2e2ede82aa1 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 19 Jul 2016 20:37:46 +0100 +Subject: [PATCH 71/73] mmalrender: Use computed framerate rather than version + from configure + +--- + .../VideoRenderers/HwDecRender/MMALRenderer.cpp | 58 ++++++++++++++++++++-- + .../VideoRenderers/HwDecRender/MMALRenderer.h | 5 +- + 2 files changed, 57 insertions(+), 6 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index 81dd06167b65ab8c29300d68f3138fd0bb7f6a48..d3ddcdeea8a71f9c24656c0ff2f7f95e7e845906 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -34,6 +34,7 @@ + #include "cores/VideoPlayer/DVDCodecs/Video/MMALCodec.h" + #include "xbmc/Application.h" + #include "linux/RBP.h" ++#include "cores/VideoPlayer/DVDClock.h" + + extern "C" { + #include "libavutil/imgutils.h" +@@ -405,6 +406,10 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer"), m_processThread(this, + m_queue_render = nullptr; + m_queue_process = nullptr; + m_error = 0.0; ++ m_fps = 0.0; ++ m_lastPts = DVD_NOPTS_VALUE; ++ m_frameInterval = 0.0; ++ m_frameIntervalDiff = 1e5; + m_vsync_count = ~0U; + m_sharpness = -2.0f; + m_vout_width = 0; +@@ -452,14 +457,32 @@ void CMMALRenderer::Process() + CLog::Log(LOGDEBUG, "%s::%s - starting", CLASSNAME, __func__); + while (!bStop) + { +- g_RBP.WaitVsync(); + double dfps = g_graphicsContext.GetFPS(); +- if (dfps <= 0.0) +- dfps = m_fps; ++ double fps = 0.0; ++ double inc = 1.0; ++ g_RBP.WaitVsync(); ++ ++ CSingleLock lock(m_sharedSection); ++ // if good enough framerate measure then use it ++ if (dfps > 0.0 && m_frameInterval > 0.0 && m_frameIntervalDiff * 1e-6 < 1e-3) ++ { ++ fps = 1e6 / m_frameInterval; ++ inc = fps / dfps; ++ if (fabs(inc - 1.0) < 1e-2) ++ inc = 1.0; ++ else if (fabs(inc - 0.5) < 1e-2) ++ inc = 0.5; ++ else if (fabs(inc - 24.0/60.0) < 1e-2) ++ inc = 24.0/60.0; ++ if (m_deint) ++ inc *= 2.0; ++ } + // This algorithm is basically making the decision according to Bresenham's line algorithm. Imagine drawing a line where x-axis is display frames, and y-axis is video frames +- m_error += m_fps / dfps; ++ m_error += inc; ++ if (g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s - debug vsync:%d queue:%d fps:%.2f/%.2f/%.2f inc:%f diff:%f", CLASSNAME, __func__, g_RBP.LastVsync(), mmal_queue_length(m_queue_render), fps, m_fps, dfps, inc, m_error); + // we may need to discard frames if queue length gets too high or video frame rate is above display frame rate +- while (mmal_queue_length(m_queue_render) > 2 || m_error > 1.0) ++ while (mmal_queue_length(m_queue_render) > 2 || (mmal_queue_length(m_queue_render) > 1 && m_error > 1.0)) + { + if (m_error > 1.0) + m_error -= 1.0; +@@ -655,6 +678,26 @@ void CMMALRenderer::Run() + CLog::Log(LOGDEBUG, "%s::%s - stopping", CLASSNAME, __func__); + } + ++void CMMALRenderer::UpdateFramerateStats(double pts) ++{ ++ double diff = 0.0; ++ if (m_lastPts != DVD_NOPTS_VALUE && pts != DVD_NOPTS_VALUE && pts - m_lastPts > 0.0 && pts - m_lastPts < DVD_SEC_TO_TIME(1./20.0)) ++ { ++ diff = pts - m_lastPts; ++ if (m_frameInterval == 0.0) ++ m_frameInterval = diff; ++ else if (diff > 0.0) ++ { ++ m_frameIntervalDiff = m_frameIntervalDiff * 0.9 + 0.1 * fabs(m_frameInterval - diff); ++ m_frameInterval = m_frameInterval * 0.9 + diff * 0.1; ++ } ++ } ++ if (pts != DVD_NOPTS_VALUE) ++ m_lastPts = pts; ++ if (VERBOSE && g_advancedSettings.CanLogComponent(LOGVIDEO)) ++ CLog::Log(LOGDEBUG, "%s::%s pts:%.3f diff:%.3f m_frameInterval:%.6f m_frameIntervalDiff:%.6f", CLASSNAME, __func__, pts*1e-6, diff * 1e-6 , m_frameInterval * 1e-6, m_frameIntervalDiff *1e-6); ++} ++ + void CMMALRenderer::AddVideoPictureHW(DVDVideoPicture& pic, int index) + { + if (m_format != RENDER_FMT_MMAL) +@@ -669,6 +712,7 @@ void CMMALRenderer::AddVideoPictureHW(DVDVideoPicture& pic, int index) + CLog::Log(LOGDEBUG, "%s::%s MMAL - %p (%p) %i", CLASSNAME, __func__, buffer, buffer->mmal_buffer, index); + + m_buffers[index] = buffer->Acquire(); ++ UpdateFramerateStats(pic.pts); + } + + bool CMMALRenderer::Configure(unsigned int width, unsigned int height, unsigned int d_width, unsigned int d_height, float fps, unsigned flags, ERenderFormat format, unsigned extended_format, unsigned int orientation) +@@ -682,6 +726,10 @@ bool CMMALRenderer::Configure(unsigned int width, unsigned int height, unsigned + + m_fps = fps; + m_iFlags = flags; ++ m_error = 0.0; ++ m_lastPts = DVD_NOPTS_VALUE; ++ m_frameInterval = 0.0; ++ m_frameIntervalDiff = 1e5; + + // cause SetVideoRect to trigger - needed after a hdmi mode change + m_src_rect.SetRect(0, 0, 0, 0); +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +index a2af6d5fd0f5fa6736cb3ca31ee6c778fa78e3f7..69eae6cbef0131d20dc979dcb35915cd73967592 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +@@ -150,7 +150,9 @@ protected: + CThread m_processThread; + MMAL_BUFFER_HEADER_T m_quitpacket; + double m_error; +- ++ double m_lastPts; ++ double m_frameInterval; ++ double m_frameIntervalDiff; + uint32_t m_vout_width, m_vout_height, m_vout_aligned_width, m_vout_aligned_height; + // deinterlace + MMAL_COMPONENT_T *m_deint; +@@ -168,5 +170,6 @@ protected: + uint32_t m_vsync_count; + void ReleaseBuffers(); + void UnInitMMAL(); ++ void UpdateFramerateStats(double pts); + virtual void Run() override; + }; + +From e2e4983038147c5a0c104ed51c9a11eef1c787a0 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 13 Oct 2016 19:31:46 +0100 +Subject: [PATCH 72/73] MMALRender: Switch to deinterlace mode where frame + flags are exclusively used + +Ensures non-interlace frames are not deinterlaced when stream switches from interlaced to progressive +with software decode +--- + xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +index d3ddcdeea8a71f9c24656c0ff2f7f95e7e845906..2f1e5bfc280ca1d608650ae97dc7df3d8d5a438c 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +@@ -1338,7 +1338,7 @@ bool CMMALRenderer::CheckConfigurationDeint(uint32_t width, uint32_t height, uin + if (m_deint_output && (sizeChanged || deinterlaceChanged || encodingChanged)) + { + MMAL_PARAMETER_IMAGEFX_PARAMETERS_T imfx_param = {{MMAL_PARAMETER_IMAGE_EFFECT_PARAMETERS, sizeof(imfx_param)}, +- advanced_deinterlace ? MMAL_PARAM_IMAGEFX_DEINTERLACE_ADV : MMAL_PARAM_IMAGEFX_DEINTERLACE_FAST, 4, {3, 0, half_framerate, 1 }}; ++ advanced_deinterlace ? MMAL_PARAM_IMAGEFX_DEINTERLACE_ADV : MMAL_PARAM_IMAGEFX_DEINTERLACE_FAST, 4, {5, 0, half_framerate, 1 }}; + + status = mmal_port_parameter_set(m_deint_output, &imfx_param.hdr); + if (status != MMAL_SUCCESS) + +From ee966fcdd5219fc0ab777c9ad50d0e045d69f359 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 14 Oct 2016 15:37:53 +0100 +Subject: [PATCH 73/73] MMALFFMpeg: Report as SW decode in codec overlay info + +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index ec2cc3d867d446a748024ce85e079aea8451fb85..e180ba5b73fe9a521a585722d3959291e919c375 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -579,7 +579,7 @@ void CDVDVideoCodecFFmpeg::UpdateName() + if(m_pHardware) + m_name += "-" + m_pHardware->Name(); + +- m_processInfo.SetVideoDecoderName(m_name, m_pHardware ? true : false); ++ m_processInfo.SetVideoDecoderName(m_name, m_pHardware && m_pHardware->Name() != "mmal" ? true : false); + + CLog::Log(LOGDEBUG, "CDVDVideoCodecFFmpeg - Updated codec: %s", m_name.c_str()); + }