From faf12ef1380363059394666a6ad6840f2a55bdbb Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Tue, 23 Apr 2019 02:08:46 +0100 Subject: [PATCH 01/47] [installer] [target] Fix build >= 18.04 Signed-off-by: Sam Nazarko --- .../patches/all-012-bump-automake-version.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 installer/target/patches/all-012-bump-automake-version.patch diff --git a/installer/target/patches/all-012-bump-automake-version.patch b/installer/target/patches/all-012-bump-automake-version.patch new file mode 100644 index 000000000000..743d61584a9e --- /dev/null +++ b/installer/target/patches/all-012-bump-automake-version.patch @@ -0,0 +1,12 @@ +--- b/package/automake/automake.mk 2019-04-22 18:55:25.525608073 +0100 ++++ b/package/automake/automake.mk 2019-04-22 18:55:33.545636039 +0100 +@@ -4,7 +4,7 @@ + # + ################################################################################ + +-AUTOMAKE_VERSION = 1.14.1 ++AUTOMAKE_VERSION = 1.16.1 + AUTOMAKE_SOURCE = automake-$(AUTOMAKE_VERSION).tar.xz + AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake + AUTOMAKE_LICENSE = GPLv2+ + From f0a3936de5f9db52c22ddad09b9aca4b07715a4d Mon Sep 17 00:00:00 2001 From: Graham Horner Date: Mon, 22 Apr 2019 19:35:41 +0100 Subject: [PATCH 02/47] Add support for script and fix check on filesystem files --- .../qt_target/qt_target_installer/extractworker.cpp | 11 ++++++++--- .../qt_target/qt_target_installer/mainwindow.cpp | 5 +++-- 2 files changed, 11 insertions(+), 5 deletions(-) mode change 100755 => 100644 installer/target/qt_target/qt_target_installer/extractworker.cpp mode change 100755 => 100644 installer/target/qt_target/qt_target_installer/mainwindow.cpp diff --git a/installer/target/qt_target/qt_target_installer/extractworker.cpp b/installer/target/qt_target/qt_target_installer/extractworker.cpp old mode 100755 new mode 100644 index 9f79eb28cf82..0870999343d1 --- a/installer/target/qt_target/qt_target_installer/extractworker.cpp +++ b/installer/target/qt_target/qt_target_installer/extractworker.cpp @@ -17,15 +17,20 @@ ExtractWorker::ExtractWorker(QString sourcename, QString targetname, Logger *log void ExtractWorker::extract() { - logger->addLine("Starting extract progress..."); + logger->addLine("Starting extract process ..."); process = new QProcess(); connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(readFromStdOut())); connect(process, SIGNAL(readyReadStandardError()), this, SLOT(readFromStdErr())); if (sourceName.endsWith("xz")) + { + logger->addLine("Extracting from " + sourceName); process->start("/bin/sh -c \"/usr/bin/pv -n " + sourceName + " | tar xJf - -C " + destName + "\""); + } else - process->start("/bin/sh -c \"/usr/bin/pv -n " + sourceName + " | tar xf - -C " + destName + "\""); - + { + logger->addLine("Running " + sourceName); + process->start("/bin/sh -c \"" + sourceName + "\""); + } process->waitForFinished(-1); if (process->exitCode() != 0) { diff --git a/installer/target/qt_target/qt_target_installer/mainwindow.cpp b/installer/target/qt_target/qt_target_installer/mainwindow.cpp old mode 100755 new mode 100644 index 9775fef5b1f0..5c967222149a --- a/installer/target/qt_target/qt_target_installer/mainwindow.cpp +++ b/installer/target/qt_target/qt_target_installer/mainwindow.cpp @@ -104,17 +104,18 @@ void MainWindow::install() haltInstall("could not mount bootfs"); return; } - /* Sanity check: need filesystem.tar.xz or filesystem.tar */ + /* Sanity check: need filesystem.tar.xz or filesystem.sh */ QFile fileSystem(QString(MNT_BOOT) + "/filesystem.tar.xz"); if (! fileSystem.exists()) { - QFile fileSystem(QString(MNT_BOOT) + "/filesystem.tar"); + fileSystem.setFileName(QString(MNT_BOOT) + "/filesystem.sh"); if (! fileSystem.exists()) { haltInstall("no filesystem found"); return; } } + logger->addLine("Filesystem defined by " + fileSystem.fileName()); /* Load in preseeded values */ preseed = new PreseedParser(); if (preseed->isLoaded()) From c7f088d22a24d820490d0c3649e220078a2827b5 Mon Sep 17 00:00:00 2001 From: DBMandrake Date: Tue, 30 Apr 2019 11:30:36 +0100 Subject: [PATCH 03/47] [package] [eventlircd-osmc] Add udev rule to set delay and repeat period for libinput devices to sane defaults. Fixes unwanted repeats from keyboard-like remote devices such as Flirc. Also applies to lircd and libinput remotes routed through eventlircd so eventlircd's repeat filter can now be disabled allowing a unified repeat/delay period for different remote types. --- package/eventlircd-osmc/files/DEBIAN/control | 3 ++- .../files/lib/systemd/system/eventlircd.service | 2 +- .../files/lib/udev/rules.d/70-input-repeat.rules | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules diff --git a/package/eventlircd-osmc/files/DEBIAN/control b/package/eventlircd-osmc/files/DEBIAN/control index 08c47cb8e7a4..4a3a62b27a52 100644 --- a/package/eventlircd-osmc/files/DEBIAN/control +++ b/package/eventlircd-osmc/files/DEBIAN/control @@ -1,7 +1,8 @@ Origin: OSMC -Version: 1.3.4 +Version: 1.3.5 Section: utils Essential: No +Depends: ir-keytable Priority: optional Maintainer: Sam G Nazarko Description: eventlircd for OSMC diff --git a/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service b/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service index 39a5d9380405..fc3d24dc2ede 100644 --- a/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service +++ b/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service @@ -5,7 +5,7 @@ Before = mediacenter.service [Service] Type = simple ExecStartPre = /bin/mkdir -p /var/run/lirc -ExecStart = /usr/sbin/eventlircd --evmap=/etc/eventlircd.d --socket=/var/run/lirc/lircd --repeat-filter --release=_UP -f +ExecStart = /usr/sbin/eventlircd --evmap=/etc/eventlircd.d --socket=/var/run/lirc/lircd --release=_UP -f ExecStartPost = /bin/sh -c "for f in /var/run/lirc/lircd-*.sh; do if [ -e $f ]; then s=$(basename $f .sh | sed 's/lircd-//g'); systemctl start lircd_helper@$s; fi; done" Restart = on-abort diff --git a/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules b/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules new file mode 100644 index 000000000000..495e80e666ce --- /dev/null +++ b/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules @@ -0,0 +1,8 @@ +ACTION=="add", SUBSYSTEM=="input", KERNEL=="event[0-9]*", GOTO="start" +GOTO="end" +LABEL="start" + +# set default repeat delay to 500ms like rc remotes +RUN+="/usr/bin/ir-keytable --delay=500 --period=33 --device=$devnode" + +LABEL="end" From 7cde08962f5433a38766d959041db235a2bc05f3 Mon Sep 17 00:00:00 2001 From: DBMandrake Date: Tue, 30 Apr 2019 13:00:30 +0100 Subject: [PATCH 04/47] [package] [eventlircd-osmc] Make sure we trigger the new udev rule during upgrade to avoid unwanted repeats until rebooting. --- package/eventlircd-osmc/files/DEBIAN/control | 2 +- package/eventlircd-osmc/files/DEBIAN/postinst | 2 ++ .../files/lib/udev/rules.d/70-input-repeat.rules | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package/eventlircd-osmc/files/DEBIAN/control b/package/eventlircd-osmc/files/DEBIAN/control index 4a3a62b27a52..6daf51f2601a 100644 --- a/package/eventlircd-osmc/files/DEBIAN/control +++ b/package/eventlircd-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 1.3.5 +Version: 1.3.6 Section: utils Essential: No Depends: ir-keytable diff --git a/package/eventlircd-osmc/files/DEBIAN/postinst b/package/eventlircd-osmc/files/DEBIAN/postinst index 8c774368a21c..a773c1938922 100755 --- a/package/eventlircd-osmc/files/DEBIAN/postinst +++ b/package/eventlircd-osmc/files/DEBIAN/postinst @@ -17,6 +17,8 @@ if [ "$1" = "configure" ]; then systemctl daemon-reload systemctl enable eventlircd.service >/dev/null 2>&1 if ischroot; then exit 0; fi + udevadm control --reload + udevadm trigger --subsystem-match=input systemctl start eventlircd.service >/dev/null 2>&1 exit 0 fi diff --git a/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules b/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules index 495e80e666ce..5b909c7e50a7 100644 --- a/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules +++ b/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules @@ -1,4 +1,4 @@ -ACTION=="add", SUBSYSTEM=="input", KERNEL=="event[0-9]*", GOTO="start" +ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", GOTO="start" GOTO="end" LABEL="start" From beb28734faccc77c19ba061457ef5c01fc5b46a3 Mon Sep 17 00:00:00 2001 From: DBMandrake Date: Tue, 30 Apr 2019 15:57:04 +0100 Subject: [PATCH 05/47] [package] [eventlircd-osmc] Fix vero4k suspend by disabling unnecessary eventlircd generated key up events. --- package/eventlircd-osmc/files/DEBIAN/control | 2 +- .../eventlircd-osmc/files/lib/systemd/system/eventlircd.service | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/eventlircd-osmc/files/DEBIAN/control b/package/eventlircd-osmc/files/DEBIAN/control index 6daf51f2601a..1568d7b53d21 100644 --- a/package/eventlircd-osmc/files/DEBIAN/control +++ b/package/eventlircd-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 1.3.6 +Version: 1.3.7 Section: utils Essential: No Depends: ir-keytable diff --git a/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service b/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service index fc3d24dc2ede..35b06f11a832 100644 --- a/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service +++ b/package/eventlircd-osmc/files/lib/systemd/system/eventlircd.service @@ -5,7 +5,7 @@ Before = mediacenter.service [Service] Type = simple ExecStartPre = /bin/mkdir -p /var/run/lirc -ExecStart = /usr/sbin/eventlircd --evmap=/etc/eventlircd.d --socket=/var/run/lirc/lircd --release=_UP -f +ExecStart = /usr/sbin/eventlircd --evmap=/etc/eventlircd.d --socket=/var/run/lirc/lircd -f ExecStartPost = /bin/sh -c "for f in /var/run/lirc/lircd-*.sh; do if [ -e $f ]; then s=$(basename $f .sh | sed 's/lircd-//g'); systemctl start lircd_helper@$s; fi; done" Restart = on-abort From 6f5f2c675e1747a04999639dd3faab137eae5e39 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sun, 28 Apr 2019 18:06:16 +0100 Subject: [PATCH 06/47] [package] [mediacenter-addon-osmc] Fix MySQL configuration tab Signed-off-by: Sam Nazarko --- package/mediacenter-addon-osmc/files/DEBIAN/control | 2 +- .../resources/skins/Default/1080i/network_gui.xml | 8 ++++---- .../resources/skins/Default/1080i/network_gui_720.xml | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package/mediacenter-addon-osmc/files/DEBIAN/control b/package/mediacenter-addon-osmc/files/DEBIAN/control index 0b6cb8c06017..c72b835c89aa 100644 --- a/package/mediacenter-addon-osmc/files/DEBIAN/control +++ b/package/mediacenter-addon-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: mediacenter-addon-osmc -Version: 3.0.671 +Version: 3.0.672 Section: utils Essential: No Priority: optional diff --git a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui.xml b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui.xml index 412ccc83af7c..14c6026e5c09 100644 --- a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui.xml +++ b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui.xml @@ -1594,7 +1594,7 @@ - Control.IsEnabled(10510) + SubString(Control.GetLabel(10510),*) + Control.IsEnabled(10510) + String.Contains(Control.GetLabel(10510),*) 75 180 @@ -1877,7 +1877,7 @@ - Control.IsEnabled(10510) + SubString(Control.GetLabel(10510),*) + Control.IsEnabled(10510) + String.Contains(Control.GetLabel(10510),*) 0 460 @@ -1904,7 +1904,7 @@ 10520 - Control.IsEnabled(10510) + SubString(Control.GetLabel(10510),*) + Control.IsEnabled(10510) + String.Contains(Control.GetLabel(10510),*) Enable MySQL Video Database 0 @@ -1963,7 +1963,7 @@ - Control.IsEnabled(10520) + SubString(Control.GetLabel(10520),*) + Control.IsEnabled(10520) + String.Contains(Control.GetLabel(10520),*) 34 750 180 diff --git a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui_720.xml b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui_720.xml index 910d3e6e8d0d..7d36c12469e5 100644 --- a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui_720.xml +++ b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.networking/resources/skins/Default/1080i/network_gui_720.xml @@ -1594,7 +1594,7 @@ - Control.IsEnabled(10510) + SubString(Control.GetLabel(10510),*) + Control.IsEnabled(10510) + String.Contains(Control.GetLabel(10510),*) 75 180 @@ -1877,7 +1877,7 @@ - Control.IsEnabled(10510) + SubString(Control.GetLabel(10510),*) + Control.IsEnabled(10510) + String.Contains(Control.GetLabel(10510),*) 0 460 @@ -1904,7 +1904,7 @@ 10520 - Control.IsEnabled(10510) + SubString(Control.GetLabel(10510),*) + Control.IsEnabled(10510) + String.Contains(Control.GetLabel(10510),*) Enable MySQL Video Database 0 @@ -1963,7 +1963,7 @@ - Control.IsEnabled(10520) + SubString(Control.GetLabel(10520),*) + Control.IsEnabled(10520) + String.Contains(Control.GetLabel(10520),*) 34 750 180 From 1d9c61cc784f45ee66fe37a759aeb90c9ee5b6c8 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sat, 4 May 2019 19:07:02 +0100 Subject: [PATCH 07/47] [package] [mediacenter-osmc] Fix skin loading with profiles Signed-off-by: Sam Nazarko --- ...l-118-fix-skin-loading-with-profiles.patch | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch diff --git a/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch b/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch new file mode 100644 index 000000000000..6cd29b4dd9c6 --- /dev/null +++ b/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch @@ -0,0 +1,101 @@ +From be025d2b3946b7126fab63989d658f94e83af348 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Sat, 4 May 2019 18:53:14 +0100 +Subject: [PATCH 1/3] Add support for discerning between UI ready notification + from Kodi and profile manager + +Signed-off-by: Sam Nazarko +--- + xbmc/guilib/GUIMessage.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/xbmc/guilib/GUIMessage.h b/xbmc/guilib/GUIMessage.h +index 730c7ff..186117c 100644 +--- a/xbmc/guilib/GUIMessage.h ++++ b/xbmc/guilib/GUIMessage.h +@@ -159,6 +159,7 @@ + */ + #define GUI_MSG_SUBTITLE_DOWNLOADED 52 + ++#define GUI_MSG_UI_READY_PROFILE 53 + + #define GUI_MSG_USER 1000 + +-- +2.7.4 + + +From 88d4a572f5c13dcd95d87c84f375213d9ea7cc57 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Sat, 4 May 2019 18:54:36 +0100 +Subject: [PATCH 2/3] Signal when reload should occur from ProfileManager + +Signed-off-by: Sam Nazarko +--- + xbmc/profiles/ProfileManager.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/xbmc/profiles/ProfileManager.cpp b/xbmc/profiles/ProfileManager.cpp +index 59e8d04..0e732b3 100644 +--- a/xbmc/profiles/ProfileManager.cpp ++++ b/xbmc/profiles/ProfileManager.cpp +@@ -423,12 +423,14 @@ void CProfileManager::FinalizeLoadProfile() + // the startup window is considered part of the initialization as it most likely switches to the final window + bool uiInitializationFinished = firstWindow != WINDOW_STARTUP_ANIM; + ++ uInitializationFinished = true; ++ + CServiceBroker::GetGUI()->GetWindowManager().ChangeActiveWindow(firstWindow); + + // if the user interfaces has been fully initialized let everyone know + if (uiInitializationFinished) + { +- CGUIMessage msg(GUI_MSG_NOTIFY_ALL, 0, 0, GUI_MSG_UI_READY); ++ CGUIMessage msg(GUI_MSG_NOTIFY_ALL, 0, 0, GUI_MSG_UI_READY_PROFILE); + CServiceBroker::GetGUI()->GetWindowManager().SendThreadMessage(msg); + } + } +-- +2.7.4 + + +From 1230bcbdcbbd21ff538d23da20299eab7a191dc2 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Sat, 4 May 2019 19:02:28 +0100 +Subject: [PATCH 3/3] Ensure menu items are visible when profiles are used. If + profiles are active, we also know our walkthrough has run + +Signed-off-by: Sam Nazarko +--- + xbmc/Application.cpp | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index 1c4f5df..3dc528b 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -3721,7 +3721,7 @@ bool CApplication::OnMessage(CGUIMessage& message) + if (m_itemCurrentFile->IsOnDVD()) + StopPlaying(); + } +- else if (message.GetParam1() == GUI_MSG_UI_READY) ++ else if (message.GetParam1() == GUI_MSG_UI_READY || message.GetParam1() == GUI_MSG_UI_READY_PROFILE) + { + // remove splash window + CServiceBroker::GetGUI()->GetWindowManager().Delete(WINDOW_SPLASH); +@@ -3742,6 +3742,12 @@ bool CApplication::OnMessage(CGUIMessage& message) + ShowAppMigrationMessage(); + + m_bInitializing = false; ++ ++ if (message.GetParam1() == GUI_MSG_UI_READY_PROFILE) { ++ g_application.SetOSMCWalkthroughState(g_application.OSMC_WALKTHROUGH_ISDONE); ++ g_application.ReloadSkin(false); ++ } ++ + } + else if (message.GetParam1() == GUI_MSG_UPDATE_ITEM && message.GetItem()) + { +-- +2.7.4 + From 0afb72f6e265525f96c86f7d81b706aff85642bc Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sat, 4 May 2019 19:07:41 +0100 Subject: [PATCH 08/47] [package] [mediacenter-osmc] v18.2 final (cosmetic) Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/build.sh b/package/mediacenter-osmc/build.sh index 88e784343536..337fbce1896b 100755 --- a/package/mediacenter-osmc/build.sh +++ b/package/mediacenter-osmc/build.sh @@ -6,7 +6,7 @@ . ../common.sh if [ "$1" == "rbp1" ] || [ "$1" == "rbp2" ] || [ "$1" == "pc" ] || [ "$1" == "vero2" ] || [ "$1" == "vero3" ] then -pull_source "https://github.com/xbmc/xbmc/archive/f985f24e2c01f0fa21f472989854bca4e57982ad.tar.gz" "$(pwd)/src" +pull_source "https://github.com/xbmc/xbmc/archive/f2643566d0fe86534aa6732cc5c95ede220705c5.tar.gz" "$(pwd)/src" API_VERSION="18" else pull_source "https://github.com/xbmc/xbmc/archive/master.tar.gz" "$(pwd)/kodi" From d18e3cdcf7455551de01b4e913943d2b2a1fc8ff Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sat, 4 May 2019 19:22:38 +0100 Subject: [PATCH 09/47] [package] [mediacenter-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index 4737b8735ee6..2eaca7a9f777 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-6 +Version: 18.2.0-7 Section: video Essential: No Priority: required From 0c677fd0f331d2cde681ee0c9d79e7e2607b6a89 Mon Sep 17 00:00:00 2001 From: DBMandrake Date: Sat, 4 May 2019 19:59:40 +0100 Subject: [PATCH 10/47] [package] [eventlircd-osmc] Reduce repeat rate slightly. Add an extra 200ms repeat delay for remotes decoded by lircd as lircd is slower to detect button release. --- package/eventlircd-osmc/files/DEBIAN/control | 2 +- .../files/lib/udev/rules.d/70-input-repeat.rules | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/package/eventlircd-osmc/files/DEBIAN/control b/package/eventlircd-osmc/files/DEBIAN/control index 1568d7b53d21..b51e2f1aba66 100644 --- a/package/eventlircd-osmc/files/DEBIAN/control +++ b/package/eventlircd-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 1.3.7 +Version: 1.3.8 Section: utils Essential: No Depends: ir-keytable diff --git a/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules b/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules index 5b909c7e50a7..4df88d1e4a12 100644 --- a/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules +++ b/package/eventlircd-osmc/files/lib/udev/rules.d/70-input-repeat.rules @@ -2,7 +2,15 @@ ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", GOTO="start" GOTO="end" LABEL="start" +ATTRS{name}=="lircd", GOTO="lircd" + # set default repeat delay to 500ms like rc remotes -RUN+="/usr/bin/ir-keytable --delay=500 --period=33 --device=$devnode" +RUN+="/usr/bin/ir-keytable --delay=500 --period=50 --device=$devnode" + +GOTO="end" + +LABEL="lircd" +# longer repeat delay for lircd remotes as lircd is slow to recognise button up +RUN+="/usr/bin/ir-keytable --delay=700 --period=50 --device=$devnode" LABEL="end" From 84d622045abaf6ee4f704ef2bb9a69d6b11d9129 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sat, 4 May 2019 20:47:44 +0100 Subject: [PATCH 11/47] [package] [mediacenter-osmc] Fix typo Signed-off-by: Sam Nazarko --- .../patches/all-118-fix-skin-loading-with-profiles.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch b/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch index 6cd29b4dd9c6..96b8dc02fe6f 100644 --- a/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch +++ b/package/mediacenter-osmc/patches/all-118-fix-skin-loading-with-profiles.patch @@ -43,7 +43,7 @@ index 59e8d04..0e732b3 100644 // the startup window is considered part of the initialization as it most likely switches to the final window bool uiInitializationFinished = firstWindow != WINDOW_STARTUP_ANIM; -+ uInitializationFinished = true; ++ uiInitializationFinished = true; + CServiceBroker::GetGUI()->GetWindowManager().ChangeActiveWindow(firstWindow); From b95154fc2ecf9d63823238f054e57881d1ef06c5 Mon Sep 17 00:00:00 2001 From: DBMandrake Date: Sun, 5 May 2019 17:51:11 +0100 Subject: [PATCH 12/47] [package] [eventlircd-osmc] Fix mistake adding package dependency. --- package/eventlircd-osmc/build.sh | 2 +- package/eventlircd-osmc/files/DEBIAN/control | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package/eventlircd-osmc/build.sh b/package/eventlircd-osmc/build.sh index e8f97c028417..341a4b49849a 100755 --- a/package/eventlircd-osmc/build.sh +++ b/package/eventlircd-osmc/build.sh @@ -24,7 +24,7 @@ then sed '/Package/d' -i files/DEBIAN/control sed '/Depends/d' -i files/DEBIAN/control echo "Package: ${1}-eventlircd-osmc" >> files/DEBIAN/control - echo "Depends: ${1}-lirc-osmc, udev" >> files/DEBIAN/control + echo "Depends: ${1}-lirc-osmc, udev, ir-keytable" >> files/DEBIAN/control pushd src/eventlircd* sed -i 's/\s\-Werror//' configure.ac # Disable warnings being errors autoreconf -vif diff --git a/package/eventlircd-osmc/files/DEBIAN/control b/package/eventlircd-osmc/files/DEBIAN/control index b51e2f1aba66..f30447bda49e 100644 --- a/package/eventlircd-osmc/files/DEBIAN/control +++ b/package/eventlircd-osmc/files/DEBIAN/control @@ -1,8 +1,7 @@ Origin: OSMC -Version: 1.3.8 +Version: 1.3.9 Section: utils Essential: No -Depends: ir-keytable Priority: optional Maintainer: Sam G Nazarko Description: eventlircd for OSMC From 04932a4b9de737e44b909ab3406e8748225ed5bc Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Mon, 13 May 2019 08:52:03 +0100 Subject: [PATCH 13/47] [package] [libsqlite-osmc] Bump version Signed-off-by: Sam Nazarko --- package/libsqlite-osmc/build.sh | 2 +- package/libsqlite-osmc/files/DEBIAN/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/libsqlite-osmc/build.sh b/package/libsqlite-osmc/build.sh index 47afea457e9f..9a7909cb2e76 100644 --- a/package/libsqlite-osmc/build.sh +++ b/package/libsqlite-osmc/build.sh @@ -5,7 +5,7 @@ . ../common.sh -pull_source "https://www.sqlite.org/2017/sqlite-autoconf-3260000.tar.gz" "$(pwd)/src" +pull_source "https://sqlite.org/2019/sqlite-autoconf-3280000.tar.gz" "$(pwd)/src" if [ $? != 0 ]; then echo -e "Error downloading" && exit 1; fi # Build in native environment build_in_env "${1}" $(pwd) "libsqlite-osmc" diff --git a/package/libsqlite-osmc/files/DEBIAN/control b/package/libsqlite-osmc/files/DEBIAN/control index a0b41dbeade4..81d3f1540068 100644 --- a/package/libsqlite-osmc/files/DEBIAN/control +++ b/package/libsqlite-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 3.26.0-1 +Version: 3.28.0-1 Section: libs Essential: No Priority: optional From 1c49ce85217b245e23b03958211a363f5ddaa7f1 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Mon, 13 May 2019 08:53:31 +0100 Subject: [PATCH 14/47] [package] [mediacenter-osmc] Bump Leia to top of tree Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/build.sh b/package/mediacenter-osmc/build.sh index 337fbce1896b..f44425f9f77c 100755 --- a/package/mediacenter-osmc/build.sh +++ b/package/mediacenter-osmc/build.sh @@ -6,7 +6,7 @@ . ../common.sh if [ "$1" == "rbp1" ] || [ "$1" == "rbp2" ] || [ "$1" == "pc" ] || [ "$1" == "vero2" ] || [ "$1" == "vero3" ] then -pull_source "https://github.com/xbmc/xbmc/archive/f2643566d0fe86534aa6732cc5c95ede220705c5.tar.gz" "$(pwd)/src" +pull_source "https://github.com/xbmc/xbmc/archive/5a47c2c342dbfca174bade38a57794f8b4c7a993.tar.gz" "$(pwd)/src" API_VERSION="18" else pull_source "https://github.com/xbmc/xbmc/archive/master.tar.gz" "$(pwd)/kodi" From 598a2bac5d1c6c064586ef04869667c061997581 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Wed, 15 May 2019 16:41:21 +0100 Subject: [PATCH 15/47] [package] [tvheadend-app-osmc] Bump to v4.2.8 Signed-off-by: Sam Nazarko --- package/tvheadend-app-osmc/app.json | 4 ++-- package/tvheadend-app-osmc/build.sh | 2 +- package/tvheadend-app-osmc/files/DEBIAN/control | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/tvheadend-app-osmc/app.json b/package/tvheadend-app-osmc/app.json index 8e2e67823724..f2d9f095a8f5 100644 --- a/package/tvheadend-app-osmc/app.json +++ b/package/tvheadend-app-osmc/app.json @@ -6,8 +6,8 @@ "shortdesc": "This allows you to connect your OSMC device as a TV tuner.", "longdesc": "This installs a TVHeadend server on your device which brings live TV and PVR capabilities. A web interface is available on port 9981 and the default username and password are both osmc.", "maintained-by": "OSMC", - "version": "4.2.6-1", - "lastupdated": "2018-04-07", + "version": "4.2.8-1", + "lastupdated": "2019-05-15", "iconurl": "NA", "iconhash": "NA" } diff --git a/package/tvheadend-app-osmc/build.sh b/package/tvheadend-app-osmc/build.sh index c2ca91b63e12..bd1c4ad07f39 100755 --- a/package/tvheadend-app-osmc/build.sh +++ b/package/tvheadend-app-osmc/build.sh @@ -4,7 +4,7 @@ #!/bin/bash . ../common.sh -VERSION="v4.2.6" +VERSION="v4.2.8" pull_source "https://github.com/tvheadend/tvheadend/archive/${VERSION}.tar.gz" "$(pwd)/src" if [ $? != 0 ]; then echo -e "Error downloading" && exit 1; fi # Build in native environment diff --git a/package/tvheadend-app-osmc/files/DEBIAN/control b/package/tvheadend-app-osmc/files/DEBIAN/control index 26bd78ae4f8b..f1880b180da3 100644 --- a/package/tvheadend-app-osmc/files/DEBIAN/control +++ b/package/tvheadend-app-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 4.2.6-1 +Version: 4.2.8-1 Section: video Essential: No Depends: dvb-firmware-osmc, dvb-tools, libavahi-client3, avahi-daemon, zlib1g, liburiparser1, python-minimal, libhdhomerun3, bzip2, liburiparser1, gzip, libdvbcsa1, libssl1.0.2, libcurl3, libsystemd0 From 7adf2154a8ac8e63be3812a66f18ebc5c7f18480 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 17:51:04 +0100 Subject: [PATCH 16/47] [package] [mediacenter-osmc] Vero 4K: forward-port old Kodi patches from LE era Signed-off-by: Sam Nazarko --- .../vero3-146-AMLCodec-control-fixes.patch | 249 ++++++++++++++++++ .../patches/vero3-147-fix-FPS.patch | 28 ++ .../vero3-148-fix-chapter-seeking.patch | 51 ++++ .../patches/vero3-149-handle-lateframes.patch | 77 ++++++ ...o3-150-fix-seeking-when-timeshifting.patch | 100 +++++++ .../vero3-151-fix-for-salled-audio.patch | 29 ++ .../vero3-152-improved-av-getlevel.patch | 146 ++++++++++ .../vero3-153-fix-timeout-calculation.patch | 26 ++ ...-154-update-PTS-overflow-every-frame.patch | 70 +++++ 9 files changed, 776 insertions(+) create mode 100644 package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch create mode 100644 package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch create mode 100644 package/mediacenter-osmc/patches/vero3-148-fix-chapter-seeking.patch create mode 100644 package/mediacenter-osmc/patches/vero3-149-handle-lateframes.patch create mode 100644 package/mediacenter-osmc/patches/vero3-150-fix-seeking-when-timeshifting.patch create mode 100644 package/mediacenter-osmc/patches/vero3-151-fix-for-salled-audio.patch create mode 100644 package/mediacenter-osmc/patches/vero3-152-improved-av-getlevel.patch create mode 100644 package/mediacenter-osmc/patches/vero3-153-fix-timeout-calculation.patch create mode 100644 package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch diff --git a/package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch b/package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch new file mode 100644 index 000000000000..e02eeab80a61 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch @@ -0,0 +1,249 @@ +From de267629ae536e0aeca0917c224e9756b06ef206 Mon Sep 17 00:00:00 2001 +From: afl1 +Date: Wed, 10 Apr 2019 10:22:49 +0200 +Subject: [PATCH] VideoPlayer: AMLCodec control fixies + +--- + .../cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 51 ++++++++++++++++------ + xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h | 1 + + xbmc/cores/VideoPlayer/DVDStreamInfo.h | 3 ++ + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 6 +++ + xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 10 ++++- + 5 files changed, 56 insertions(+), 15 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +index 456cf37..7635ee4 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +@@ -247,7 +247,7 @@ static const int64_t INT64_0 = 0x8000000000000000ULL; + #define CODEC_TAG_jpeg (0x6765706a) + #define CODEC_TAG_mjpa (0x61706a6d) + +-#define RW_WAIT_TIME (20 * 1000) // 20ms ++#define RW_WAIT_TIME (5 * 1000) // 20ms + + #define P_PRE (0x02000000) + #define F_PRE (0x03000000) +@@ -669,7 +669,7 @@ int write_av_packet(am_private_t *para, am_packet_t *pkt) + pkt->data += len; + pkt->data_size -= len; + usleep(RW_WAIT_TIME); +- CLog::Log(LOGDEBUG, "usleep(RW_WAIT_TIME), len(%d)", len); ++ CLog::Log(LOGDEBUG, "Codec buffer full, try after %d ms, len(%d)", RW_WAIT_TIME / 1000, len); + return PLAYER_SUCCESS; + } + } else { +@@ -1522,6 +1522,7 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) + m_state = 0; + m_frameSizes.clear(); + m_frameSizeSum = 0; ++ m_hints.pClock = hints.pClock; + + if (!OpenAmlVideo(hints)) + { +@@ -1848,6 +1849,7 @@ void CAMLCodec::CloseAmlVideo() + { + m_amlVideoFile.reset(); + SetVfmMap("default", m_defaultVfmMap); ++ m_amlVideoFile = NULL; + } + + void CAMLCodec::Reset() +@@ -1904,6 +1906,12 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + if (!m_opened || !pData) + return false; + ++ struct buf_status bs; ++ m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); ++ if (iSize > (size_t)bs.free_len) { ++ CLog::Log(LOGERROR, "CAMLCodec::AddData: packet to big: %d, probably corrupted", iSize); ++ return false; ++ } + m_frameSizes.push_back(iSize); + m_frameSizeSum += iSize; + +@@ -1984,11 +1992,21 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + Reset(); + return false; + } ++ if (iSize > 50000) ++ usleep(2000); // wait 2ms to process larger packets + +- CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::AddData: sz: %u, dts_in: %0.4lf[%llX], pts_in: %0.4lf[%llX], overflow:%llx", ++ int64_t cur_pts = m_cur_pts + m_ptsOverflow; ++ if (static_cast(cur_pts) / PTS_FREQ - static_cast(m_hints.pClock->GetClock()) / DVD_TIME_BASE > 10000.0) ++ cur_pts -= 0x80000000; ++ m_ttd = static_cast(cur_pts) / PTS_FREQ - static_cast(m_hints.pClock->GetClock()) / DVD_TIME_BASE + am_private->video_rate / UNIT_FREQ; ++ m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); ++ if (iSize > 0) ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::AddData: dl:%d sum:%u sz:%u dts_in:%0.3lf pts_in:%0.3lf ptsOut:%0.3f ttd:%0.0fms overflow:%llx", bs.data_len, m_frameSizeSum, + static_cast(iSize), +- dts / DVD_TIME_BASE, am_private->am_pkt.avdts, +- pts / DVD_TIME_BASE, am_private->am_pkt.avpts, ++ dts / DVD_TIME_BASE, ++ pts / DVD_TIME_BASE, ++ static_cast(cur_pts) / PTS_FREQ, ++ m_ttd * 1000.0, + m_ptsOverflow + ); + return true; +@@ -1996,6 +2014,7 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + + std::atomic_flag CAMLCodec::m_pollSync = ATOMIC_FLAG_INIT; + int CAMLCodec::m_pollDevice; ++double CAMLCodec::m_ttd = 0; + + int CAMLCodec::PollFrame() + { +@@ -2004,16 +2023,16 @@ int CAMLCodec::PollFrame() + return 0; + + struct pollfd codec_poll_fd[1]; ++ std::chrono::time_point now(std::chrono::system_clock::now()); + + codec_poll_fd[0].fd = m_pollDevice; + codec_poll_fd[0].events = POLLOUT; + +- if (poll(codec_poll_fd, 1, 100) > 0) +- { +- g_aml_sync_event.Set(); +- return 1; +- } +- return 0; ++ poll(codec_poll_fd, 1, 50); ++ g_aml_sync_event.Set(); ++ int elapsed = std::chrono::duration_cast(std::chrono::system_clock::now() - now).count(); ++ CLog::Log(LOGDEBUG, LOGAVTIMING, "CAMLCodec::PollFrame elapsed:%0.3fms", elapsed / 1000.0); ++ return 1; + } + + void CAMLCodec::SetPollDevice(int dev) +@@ -2062,7 +2081,10 @@ DRAIN: + if (elapsed < std::chrono::milliseconds(waitTime)) + std::this_thread::sleep_for(std::chrono::milliseconds(waitTime) - elapsed); + +- if (m_drain && elapsed < std::chrono::milliseconds(100)) ++ int waited = std::chrono::duration_cast(std::chrono::system_clock::now() - now).count(); ++ CLog::Log(LOGDEBUG, LOGAVTIMING, "CAMLCodec::DequeueBuffer waited:%0.3fms", waited / 1000.0); ++ ++ if (m_drain && elapsed < std::chrono::milliseconds(300)) + { + waitTime += 10; + goto DRAIN; +@@ -2096,11 +2118,14 @@ float CAMLCodec::GetTimeSize() + struct buf_status bs; + m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); + +- //CLog::Log(LOGDEBUG, "CAMLCodec::Decode: buf status: s:%d dl:%d fl:%d rp:%u wp:%u",bs.size, bs.data_len, bs.free_len, bs.read_pointer, bs.write_pointer); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::GetTimeSize: len:%d dl:%d fs:%u front:%u", ++ m_frameSizes.size(), bs.data_len, m_frameSizeSum, m_frameSizes.front()); + while (m_frameSizeSum > (unsigned int)bs.data_len) + { + m_frameSizeSum -= m_frameSizes.front(); + m_frameSizes.pop_front(); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::GetTimeSize: len:%d dl:%d fs:%u front:%u", ++ m_frameSizes.size(), bs.data_len, m_frameSizeSum, m_frameSizes.front()); + } + if (bs.free_len < (bs.data_len >> 1)) + return 7.0; +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h +index f7ec391..becf831 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h +@@ -103,5 +103,6 @@ private: + + static std::atomic_flag m_pollSync; + static int m_pollDevice; ++ static double m_ttd; + CProcessInfo &m_processInfo; + }; +diff --git a/xbmc/cores/VideoPlayer/DVDStreamInfo.h b/xbmc/cores/VideoPlayer/DVDStreamInfo.h +index aed2b30..cdf7bcd 100644 +--- a/xbmc/cores/VideoPlayer/DVDStreamInfo.h ++++ b/xbmc/cores/VideoPlayer/DVDStreamInfo.h +@@ -14,6 +14,8 @@ extern "C" { + #include + } + ++#include "DVDClock.h" ++ + #define CODEC_FORCE_SOFTWARE 0x01 + #define CODEC_ALLOW_FALLBACK 0x02 + +@@ -60,6 +62,7 @@ public: + int orientation; // orientation of the video in degrees counter clockwise + int bitsperpixel; + std::string stereo_mode; // stereoscopic 3d mode ++ CDVDClock *pClock; + + // AUDIO + int channels; +diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +index d8840ce..5165506 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +@@ -1749,6 +1749,12 @@ void CVideoPlayer::ProcessVideoData(CDemuxStream* pStream, DemuxPacket* pPacket) + if (CheckSceneSkip(m_CurrentVideo)) + drop = true; + ++ if ((m_CurrentVideo.lastdts == DVD_NOPTS_VALUE || pPacket->dts == DVD_NOPTS_VALUE) && (pPacket->pts != DVD_NOPTS_VALUE)) ++ m_clock.Discontinuity(pPacket->pts - DVD_TIME_BASE/2); ++ ++ m_CurrentVideo.lastdts = pPacket->dts; ++ CLog::Log(LOGDEBUG, "CVideoPlayer::ProcessVideoData size:%d dts:%0.3f pts:%0.3f dur:%0.3fms, clock:%0.3f level:%d", ++ pPacket->iSize, pPacket->dts/1000000, pPacket->pts/1000000, pPacket->duration/1000.0, m_clock.GetClock()/1000000.0, m_processInfo->GetLevelVQ()); + m_VideoPlayerVideo->SendMessage(new CDVDMsgDemuxerPacket(pPacket, drop)); + m_CurrentVideo.packets++; + } +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +index 1a3e7db..ba27f5b 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +@@ -23,6 +23,7 @@ + #include + #include + #include "utils/log.h" ++#include + + class CDVDMsgVideoCodecChange : public CDVDMsg + { +@@ -116,7 +117,8 @@ bool CVideoPlayerVideo::OpenStream(CDVDStreamInfo hint) + return false; + } + +- CLog::Log(LOGNOTICE, "Creating video codec with codec id: %i", hint.codec); ++ CLog::Log(LOGNOTICE, "CVideoPlayerVideo::%s - Creating codec: %i",__FUNCTION__, hint.codec); ++ hint.pClock = m_pClock; + + if (m_messageQueue.IsInited()) + { +@@ -200,7 +202,8 @@ void CVideoPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) + } + if (!codec) + { +- CLog::Log(LOGNOTICE, "Creating video codec with codec id: %i", hint.codec); ++ CLog::Log(LOGNOTICE, "CVideoPlayerVideo::%s - Creating Codec: %i",__FUNCTION__, hint.codec); ++ hint.pClock = m_pClock; + hint.codecOptions |= CODEC_ALLOW_FALLBACK; + codec = CDVDFactoryCodec::CreateVideoCodec(hint, m_processInfo); + if (!codec) +@@ -901,6 +904,7 @@ CVideoPlayerVideo::EOutputState CVideoPlayerVideo::OutputPicture(const VideoPict + } + + int timeToDisplay = DVD_TIME_TO_MSEC(pPicture->pts - iPlayingClock); ++ std::chrono::time_point now(std::chrono::system_clock::now()); + + // make sure waiting time is not negative + int maxWaitTime = std::min(std::max(timeToDisplay + 500, 50), 500); +@@ -908,6 +912,8 @@ CVideoPlayerVideo::EOutputState CVideoPlayerVideo::OutputPicture(const VideoPict + if (m_speed > DVD_PLAYSPEED_NORMAL) + maxWaitTime = std::max(timeToDisplay, 0); + int buffer = m_renderManager.WaitForBuffer(m_bAbortOutput, maxWaitTime); ++ CLog::Log(LOGDEBUG,"CVideoPlayerVideo::%s - ttd:%dms pts:%0.3lf Clock:%0.3f Level:%d elapsed:%0.3fms", ++ __FUNCTION__, timeToDisplay, pPicture->pts/1000000, iPlayingClock/1000000.0, buffer, std::chrono::duration_cast(std::chrono::system_clock::now() - now).count() / 1000.0); + if (buffer < 0) + { + return OUTPUT_AGAIN; +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch b/package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch new file mode 100644 index 000000000000..4732e6682dd2 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch @@ -0,0 +1,28 @@ +From 0d02bbdc050b091d5798ed2a3415c11679c7725d Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:20:09 +0100 +Subject: [PATCH] Fix FPS (59.94) from LE + +Signed-off-by: Sam Nazarko +--- + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +index 5165506..43e88cc 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +@@ -3601,6 +3601,10 @@ bool CVideoPlayer::OpenStream(CCurrentStream& current, int64_t demuxerId, int iS + + if(m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) + hint.filename = "dvd"; ++ if (hint.fpsrate / hint.fpsscale > 200) { ++ hint.fpsrate = 60000; ++ hint.fpsscale = 1001; ++ } + } + else if(STREAM_SOURCE_MASK(source) == STREAM_SOURCE_VIDEOMUX) + { +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-148-fix-chapter-seeking.patch b/package/mediacenter-osmc/patches/vero3-148-fix-chapter-seeking.patch new file mode 100644 index 000000000000..e575c7ec0a47 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-148-fix-chapter-seeking.patch @@ -0,0 +1,51 @@ +From 2f4190e9718666cab6d2cfb19795993c660064f6 Mon Sep 17 00:00:00 2001 +From: afl1 +Date: Mon, 11 Mar 2019 19:16:02 +0100 +Subject: [PATCH] Chapter seek patch. + +In professional movies chapters are always on keyframes, but this is not true for remuxes. +This commit implement seeking the closest keyframe to chapter time. + +Patch: kodi-le-034-chapter-seek-fix.patch +--- + xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +index e87b7ad..d45f376 100644 +--- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp ++++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +@@ -1182,7 +1182,7 @@ bool CDVDDemuxFFmpeg::SeekTime(double time, bool backwards, double *startpts) + if(m_currentPts == DVD_NOPTS_VALUE) + CLog::Log(LOGDEBUG, "%s - unknown position after seek", __FUNCTION__); + else +- CLog::Log(LOGDEBUG, "%s - seek ended up on time %d", __FUNCTION__, (int)(m_currentPts / DVD_TIME_BASE * 1000)); ++ CLog::Log(LOGDEBUG, "%s - seek ended up on time %0.3f", __FUNCTION__, m_currentPts / DVD_TIME_BASE); + + // in this case the start time is requested time + if (startpts) +@@ -1838,7 +1838,20 @@ bool CDVDDemuxFFmpeg::SeekChapter(int chapter, double* startpts) + + AVChapter *ch = m_pFormatContext->chapters[chapter-1]; + double dts = ConvertTimestamp(ch->start, ch->time_base.den, ch->time_base.num); +- return SeekTime(DVD_TIME_TO_MSEC(dts), true, startpts); ++ bool rtn = SeekTime(DVD_TIME_TO_MSEC(dts), true, startpts); ++ if (rtn) ++ { ++ double startpts_b; ++ if (SeekTime(DVD_TIME_TO_MSEC(dts), false, &startpts_b)) ++ { ++ if (*startpts - dts < dts -startpts_b) ++ rtn = SeekTime(DVD_TIME_TO_MSEC(dts), true, startpts); ++ else ++ *startpts = startpts_b; ++ } ++ } ++ CLog::Log(LOGDEBUG, "CDVDDemuxFFmpeg::%s - seeking chapter:%d start:%0.3f key-frame:%0.3f ", __FUNCTION__, chapter, DVD_TIME_TO_MSEC(dts) / 1000.0, m_currentPts / DVD_TIME_BASE); ++ return rtn; + } + + std::string CDVDDemuxFFmpeg::GetStreamCodecName(int iStreamId) +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-149-handle-lateframes.patch b/package/mediacenter-osmc/patches/vero3-149-handle-lateframes.patch new file mode 100644 index 000000000000..da9657ee3cd1 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-149-handle-lateframes.patch @@ -0,0 +1,77 @@ +From def17b486446417e3fe28b7c274c58673954e897 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:22:11 +0100 +Subject: [PATCH] Re-introduce lateframes patch from LE + +Signed-off-by: Sam Nazarko +--- + .../VideoPlayer/VideoRenderers/RenderManager.cpp | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +index f5120a6..67d827f 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/RenderManager.cpp +@@ -224,7 +224,7 @@ bool CRenderManager::Configure() + m_lateframes = -1; + m_presentevent.notifyAll(); + m_renderedOverlay = false; +- m_renderDebug = false; ++ m_QueueSkip = 0; + m_clockSync.Reset(); + m_dvdClock.SetVsyncAdjust(0); + m_overlays.SetStereoMode(m_stereomode); +@@ -1056,7 +1056,8 @@ int CRenderManager::WaitForBuffer(volatile std::atomic_bool&bStop, int timeout) + XbmcThreads::EndTime endtime(timeout); + while(m_free.empty()) + { +- m_presentevent.wait(lock, std::min(50, timeout)); ++ CLog::Log(LOGDEBUG, LOGAVTIMING, "CRenderManager::WaitForBuffer - timeout:%d",std::min(20, timeout)); ++ m_presentevent.wait(lock, std::min(20, timeout)); + if (endtime.IsTimePast() || bStop) + { + if (timeout != 0 && !bStop) +@@ -1119,7 +1120,8 @@ void CRenderManager::PrepareNextRender() + m_dvdClock.SetVsyncAdjust(0); + } + +- CLog::LogF(LOGDEBUG, LOGAVTIMING, "frameOnScreen: %f renderPts: %f nextFramePts: %f -> diff: %f render: %u forceNext: %u", frameOnScreen, renderPts, nextFramePts, (renderPts - nextFramePts), renderPts >= nextFramePts, m_forceNext); ++ CLog::LogF(LOGDEBUG, LOGAVTIMING, "frameOnScreen: %0.3f renderPts: %0.3f nextFramePts: %0.3f -> diff: %0.3f render: %u forceNext: %u", ++ frameOnScreen / DVD_TIME_BASE, renderPts / DVD_TIME_BASE, nextFramePts / DVD_TIME_BASE, (renderPts - nextFramePts) / DVD_TIME_BASE, renderPts >= nextFramePts, m_forceNext); + + bool combined = false; + if (m_presentsourcePast >= 0) +@@ -1141,9 +1143,13 @@ void CRenderManager::PrepareNextRender() + // renderer/drivers have internal queues, being slightly late here does not mean that + // we are really late. The likelihood that we recover decreases the greater m_lateframes + // get. Skipping a frame is easier than having decoder dropping one (lateframes > 10) +- double x = (m_lateframes <= 6) ? 0.98 : 0; +- if (renderPts < m_Queue[*iter].pts + x * frametime) ++ double x = (m_lateframes <= 6) ? 1.99 : 0; ++ if (m_dvdClock.GetClock() < m_Queue[*iter].pts + x * frametime) + break; ++ m_QueueSkip++; ++ CLog::Log(LOGDEBUG, "CRenderManager::PrepareNextRender Frame Skip:%d iter.pts:%0.3f lf:%d latency:%0.3f Clock:%0.3f", m_QueueSkip, ++ m_Queue[*iter].pts / DVD_TIME_BASE, static_cast((m_dvdClock.GetClock() - m_Queue[*iter].pts) * m_fps / DVD_TIME_BASE), ++ m_displayLatency / DVD_TIME_BASE, m_dvdClock.GetClock() / DVD_TIME_BASE); + idx = *iter; + ++iter; + } +@@ -1154,13 +1160,12 @@ void CRenderManager::PrepareNextRender() + if (m_presentsourcePast >= 0) + { + m_discard.push_back(m_presentsourcePast); +- m_QueueSkip++; + } + m_presentsourcePast = m_queued.front(); + m_queued.pop_front(); + } + +- int lateframes = static_cast((renderPts - m_Queue[idx].pts) * m_fps / DVD_TIME_BASE); ++ int lateframes = static_cast((m_dvdClock.GetClock() - m_Queue[idx].pts) * m_fps / DVD_TIME_BASE); + if (lateframes) + m_lateframes += lateframes; + else +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-150-fix-seeking-when-timeshifting.patch b/package/mediacenter-osmc/patches/vero3-150-fix-seeking-when-timeshifting.patch new file mode 100644 index 000000000000..b25a2eeed42d --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-150-fix-seeking-when-timeshifting.patch @@ -0,0 +1,100 @@ +From e85feee7fcda217a0e6932e9569773d7cf3a11e9 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:22:58 +0100 +Subject: [PATCH] Fix seeking when timeshifting (from LE) + +Signed-off-by: Sam Nazarko +--- + xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp | 1 + + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 17 ++++++++++------- + 2 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp +index 48e8275..df66742 100644 +--- a/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp ++++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp +@@ -616,6 +616,7 @@ bool CDVDDemuxClient::SeekTime(double timems, bool backwards, double *startpts) + { + if (m_IDemux) + { ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CDVDDemuxClient::SeekTime: %0.3f", timems / 1000.0); + m_displayTime = 0; + m_dtsAtDisplayTime = DVD_NOPTS_VALUE; + return m_IDemux->SeekTime(timems, backwards, startpts); +diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +index 43e88cc..ed197fe 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +@@ -2017,6 +2017,7 @@ void CVideoPlayer::HandlePlaySpeed() + else if (m_CurrentVideo.syncState == IDVDStreamPlayer::SYNC_WAITSYNC && + m_CurrentVideo.avsync == CCurrentStream::AV_SYNC_CONT) + { ++ CLog::Log(LOGDEBUG, LOGVIDEO, "VideoPlayer::Sync - Video - Waiting, clock: %0.3f", m_clock.GetClock()); + m_CurrentVideo.syncState = IDVDStreamPlayer::SYNC_INSYNC; + m_CurrentVideo.avsync = CCurrentStream::AV_SYNC_NONE; + m_VideoPlayerVideo->SendMessage(new CDVDMsgDouble(CDVDMsg::GENERAL_RESYNC, m_clock.GetClock()), 1); +@@ -2173,17 +2174,19 @@ void CVideoPlayer::HandlePlaySpeed() + errorwin = 8; + error /= errorwin; + } ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayer::Process - ffd/rwd: lastpts:%0.3f clock:%0.3f lastseekpts:%0.3f speed:%d error:%0.3f", ++ m_SpeedState.lastpts / 1000000.0, m_clock.GetClock() / 1000000.0, m_SpeedState.lastseekpts / 1000000.0, (int)m_playSpeed, error / 1000000.0); + +- if (error > DVD_MSEC_TO_TIME(1000)) ++ if (std::abs(error) > DVD_MSEC_TO_TIME(1000)) + { + error = (m_clock.GetClock() - m_SpeedState.lastseekpts) / 1000; + + if (std::abs(error) > 1000 || (m_VideoPlayerVideo->IsRewindStalled() && std::abs(error) > 100)) + { +- CLog::Log(LOGDEBUG, "CVideoPlayer::Process - Seeking to catch up, error was: %f", error); + m_SpeedState.lastseekpts = m_clock.GetClock(); + int direction = (m_playSpeed > 0) ? 1 : -1; + double iTime = (m_clock.GetClock() + m_State.time_offset + 1000000.0 * direction) / 1000; ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayer::Process - Seeking to catch up, error was: %0.3f time:%0.3f", error / 1000.0, iTime/1000.0); + CDVDMsgPlayerSeek::CMode mode; + mode.time = iTime; + mode.backward = (m_playSpeed < 0); +@@ -2673,10 +2676,9 @@ void CVideoPlayer::HandleMessages() + if (m_pInputStream->GetIPosTime() == nullptr) + time -= m_State.time_offset/1000l; + +- CLog::Log(LOGDEBUG, "demuxer seek to: %f", time); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayer::HandleMessages: demuxer seek to: %0.3f", time / 1000.0); + if (m_pDemuxer && m_pDemuxer->SeekTime(time, msg.GetBackward(), &start)) + { +- CLog::Log(LOGDEBUG, "demuxer seek to: %f, success", time); + if(m_pSubtitleDemuxer) + { + if(!m_pSubtitleDemuxer->SeekTime(time, msg.GetBackward())) +@@ -2690,6 +2692,7 @@ void CVideoPlayer::HandleMessages() + m_State.lastSeek = m_clock.GetAbsoluteClock(); + + FlushBuffers(start, msg.GetAccurate(), msg.GetSync()); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayer::HandleMessages: flush buffers: dts:%0.3f lastSeek:%0.3f clock:%0.3f", start / 1000000., m_State.lastSeek / 1000.0, m_clock.GetClock() / 1000000.0); + } + else if (m_pDemuxer) + { +@@ -3074,7 +3077,8 @@ void CVideoPlayer::SetCaching(ECacheState state) + if(m_caching == state) + return; + +- CLog::Log(LOGDEBUG, "CVideoPlayer::SetCaching - caching state %d", state); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayer::SetCaching - caching state %d clock:%0.3f start pts:%0.3f", ++ state, m_clock.GetClock() / 1000000.0, m_CurrentVideo.starttime == DVD_NOPTS_VALUE ? -1.0 : m_CurrentVideo.starttime / 1000000.0); + if (state == CACHESTATE_FULL || + state == CACHESTATE_INIT) + { +@@ -3986,8 +3990,7 @@ void CVideoPlayer::FlushBuffers(double pts, bool accurate, bool sync) + } + } + +- if(pts != DVD_NOPTS_VALUE && sync) +- m_clock.Discontinuity(pts); ++ m_CurrentVideo.lastdts = DVD_NOPTS_VALUE; + UpdatePlayState(0); + + if (m_omxplayer_mode) +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-151-fix-for-salled-audio.patch b/package/mediacenter-osmc/patches/vero3-151-fix-for-salled-audio.patch new file mode 100644 index 000000000000..0c5e96e2e4bf --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-151-fix-for-salled-audio.patch @@ -0,0 +1,29 @@ +From ea03d162a0650eb45f6248d37823cd1b133fa4ea Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:23:37 +0100 +Subject: [PATCH] Fix for stalled audio (from LE) + +Signed-off-by: Sam Nazarko +--- + xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +index 7b15b42..cb40171 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +@@ -275,9 +275,9 @@ void CVideoPlayerAudio::Process() + !m_stalled && m_syncState == IDVDStreamPlayer::SYNC_INSYNC) + { + // while AE sync is active, we still have time to fill buffers +- if (m_syncTimer.IsTimePast()) ++ if (m_syncTimer.IsTimePast() && m_audioClock < m_pClock->GetClock()) + { +- CLog::Log(LOGNOTICE, "CVideoPlayerAudio::Process - stream stalled"); ++ CLog::Log(LOGNOTICE, "CVideoPlayerAudio::Process - stream stalled pts:%0.3f clock:%0.3f ", m_audioClock / DVD_TIME_BASE, m_pClock->GetClock() / DVD_TIME_BASE); + m_stalled = true; + } + } +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-152-improved-av-getlevel.patch b/package/mediacenter-osmc/patches/vero3-152-improved-av-getlevel.patch new file mode 100644 index 000000000000..201183652915 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-152-improved-av-getlevel.patch @@ -0,0 +1,146 @@ +From 242e4df79b7b33c80cdf8e9d3b8baac7645d05e8 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:24:48 +0100 +Subject: [PATCH] Improved av GetLevel (from LE) + +Signed-off-by: Sam Nazarko +--- + xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp | 4 +++- + xbmc/cores/VideoPlayer/VideoPlayerAudio.h | 4 +++- + xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 11 +++++++---- + xbmc/cores/VideoPlayer/VideoPlayerVideo.h | 3 +++ + 4 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +index cb40171..554cf4c 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.cpp +@@ -221,6 +221,7 @@ void CVideoPlayerAudio::Process() + audioframe.nb_frames = 0; + audioframe.framesOut = 0; + m_audioStats.Start(); ++ m_pts = DVD_NOPTS_VALUE; + + bool onlyPrioMsgs = false; + +@@ -329,6 +330,7 @@ void CVideoPlayerAudio::Process() + m_stalled = true; + m_audioClock = 0; + audioframe.nb_frames = 0; ++ m_pts = DVD_NOPTS_VALUE; + + if (sync) + { +@@ -410,7 +412,7 @@ void CVideoPlayerAudio::Process() + { + onlyPrioMsgs = true; + } +- ++ m_pts = pPacket->pts; + } // demuxer packet + + pMsg->Release(); +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerAudio.h b/xbmc/cores/VideoPlayer/VideoPlayerAudio.h +index 5aedd08..248f1be 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerAudio.h ++++ b/xbmc/cores/VideoPlayer/VideoPlayerAudio.h +@@ -40,7 +40,8 @@ public: + // waits until all available data has been rendered + bool AcceptsData() const override; + bool HasData() const override { return m_messageQueue.GetDataSize() > 0; } +- int GetLevel() const override { return m_messageQueue.GetLevel(); } ++ int GetLevel() const override { return (m_pts == DVD_NOPTS_VALUE) || (m_pts < m_pClock->GetClock() + 80000) ? ++ m_messageQueue.GetLevel() : m_messageQueue.GetLevel() + int((m_pts - m_pClock->GetClock() - 80000) / 80000);} + bool IsInited() const override { return m_messageQueue.IsInited(); } + void SendMessage(CDVDMsg* pMsg, int priority = 0) override { m_messageQueue.Put(pMsg, priority); } + void FlushMessages() override { m_messageQueue.Flush(); } +@@ -94,6 +95,7 @@ protected: + + bool m_prevskipped; + double m_maxspeedadjust; ++ double m_pts; + + struct SInfo + { +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +index ba27f5b..44970d1 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +@@ -275,25 +275,25 @@ bool CVideoPlayerVideo::IsInited() const + inline void CVideoPlayerVideo::SendMessage(CDVDMsg* pMsg, int priority) + { + m_messageQueue.Put(pMsg, priority); +- m_processInfo.SetLevelVQ(m_messageQueue.GetLevel()); ++ SetLevel(); + } + + inline void CVideoPlayerVideo::SendMessageBack(CDVDMsg* pMsg, int priority) + { + m_messageQueue.PutBack(pMsg, priority); +- m_processInfo.SetLevelVQ(m_messageQueue.GetLevel()); ++ SetLevel(); + } + + inline void CVideoPlayerVideo::FlushMessages() + { + m_messageQueue.Flush(); +- m_processInfo.SetLevelVQ(m_messageQueue.GetLevel()); ++ SetLevel(); + } + + inline MsgQueueReturnCode CVideoPlayerVideo::GetMessage(CDVDMsg** pMsg, unsigned int iTimeoutInMilliSeconds, int &priority) + { + MsgQueueReturnCode ret = m_messageQueue.Get(pMsg, iTimeoutInMilliSeconds, priority); +- m_processInfo.SetLevelVQ(m_messageQueue.GetLevel()); ++ SetLevel(); + return ret; + } + +@@ -314,6 +314,7 @@ void CVideoPlayerVideo::Process() + m_iDroppedFrames = 0; + m_rewindStalled = false; + m_outputSate = OUTPUT_NORMAL; ++ m_pts = DVD_NOPTS_VALUE; + + while (!m_bStop) + { +@@ -451,6 +452,7 @@ void CVideoPlayerVideo::Process() + m_packets.clear(); + pts = 0; + m_rewindStalled = false; ++ m_pts = DVD_NOPTS_VALUE; + + m_ptsTracker.Flush(); + //we need to recalculate the framerate +@@ -578,6 +580,7 @@ void CVideoPlayerVideo::Process() + { + onlyPrioMsgs = true; + } ++ m_pts = pPacket->pts; + } + else + { +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.h b/xbmc/cores/VideoPlayer/VideoPlayerVideo.h +index 689948c..b4b5cde 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.h ++++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.h +@@ -75,6 +75,7 @@ public: + // classes + CDVDOverlayContainer* m_pOverlayContainer; + CDVDClock* m_pClock; ++ double m_pts; + + protected: + +@@ -100,6 +101,8 @@ protected: + void ResetFrameRateCalc(); + void CalcFrameRate(); + int CalcDropRequirement(double pts); ++ void SetLevel(){ m_processInfo.SetLevelVQ((m_pts == DVD_NOPTS_VALUE) || (m_pts < m_pClock->GetClock() + 80000) ? ++ m_messageQueue.GetLevel() : m_messageQueue.GetLevel() + int((m_pts - m_pClock->GetClock() - 80000) / 80000));} + + double m_iSubtitleDelay; + +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-153-fix-timeout-calculation.patch b/package/mediacenter-osmc/patches/vero3-153-fix-timeout-calculation.patch new file mode 100644 index 000000000000..c75867e02f2c --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-153-fix-timeout-calculation.patch @@ -0,0 +1,26 @@ +From 489566238850754bd10eebf071da73e57df4b628 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:25:39 +0100 +Subject: [PATCH] Adjust timeout calculation (from LE) + +Signed-off-by: Sam Nazarko +--- + 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 44970d1..a78a3b4 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +@@ -318,7 +318,7 @@ void CVideoPlayerVideo::Process() + + while (!m_bStop) + { +- int iQueueTimeOut = (int)(m_stalled ? frametime : frametime * 10) / 1000; ++ int iQueueTimeOut = (int)(m_stalled ? frametime * 10 : frametime * 11) / 10000; + int iPriority = 0; + + if (m_syncState == IDVDStreamPlayer::SYNC_WAITSYNC) +-- +2.7.4 + diff --git a/package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch b/package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch new file mode 100644 index 000000000000..67033f3e80fa --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch @@ -0,0 +1,70 @@ +From fe5a8b66c398c7990e2be5b3e13e85e8d78b862c Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:26:24 +0100 +Subject: [PATCH] Update PTS overflow on every frame (from LE) + +Signed-off-by: Sam Nazarko +--- + xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 21 +++++++-------------- + 1 file changed, 7 insertions(+), 14 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +index 7635ee4..10ef7d3 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +@@ -1760,7 +1760,7 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) + + CLog::Log(LOGNOTICE, "CAMLCodec::OpenDecoder - using V4L2 pts format: %s", m_ptsIs64us ? "64Bit":"32Bit"); + +- m_ptsOverflow = (sizeof(long) == 8) ? 0 : INT64_0; ++ m_ptsOverflow = 0; + + m_opened = true; + // vcodec is open, update speed if it was +@@ -1891,7 +1891,7 @@ void CAMLCodec::Reset() + + // reset some interal vars + m_cur_pts = INT64_0; +- m_ptsOverflow = (sizeof(long) == 8) ? 0 : INT64_0; ++ m_ptsOverflow = 0; + m_state = 0; + m_frameSizes.clear(); + m_frameSizeSum = 0; +@@ -1950,12 +1950,14 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + { + if (am_private->am_pkt.avpts != INT64_0) + { +- if (m_ptsOverflow == INT64_0) +- m_ptsOverflow = am_private->am_pkt.avpts & 0xFFFF80000000ULL; ++ m_ptsOverflow = am_private->am_pkt.avpts & 0xFFFFFFFF80000000ULL; + am_private->am_pkt.avpts &= 0x7FFFFFFF; + } + if (am_private->am_pkt.avdts != INT64_0) ++ { ++ m_ptsOverflow = am_private->am_pkt.avdts & 0xFFFFFFFF80000000ULL; + am_private->am_pkt.avdts &= 0x7FFFFFFF; ++ } + } + + // We use this to determine the fill state if no PTS is given +@@ -2149,16 +2151,7 @@ CDVDVideoCodec::VCReturn CAMLCodec::GetPicture(VideoPicture *pVideoPicture) + if (m_last_pts <= 0) + pVideoPicture->iDuration = (double)(am_private->video_rate * DVD_TIME_BASE) / UNIT_FREQ; + else +- { +- // Check for int overflow +- if (m_cur_pts + 0xFFFFFFF < m_last_pts) +- { +- m_last_pts -= 0x7FFFFFFF; +- m_ptsOverflow += 0x80000000; +- CLog::Log(LOGDEBUG, "CAMLCodec::GetPicture, PTS overflow incremented(%llX)", m_ptsOverflow); +- } +- pVideoPicture->iDuration = (double)((m_cur_pts - m_last_pts) * DVD_TIME_BASE) / PTS_FREQ; +- } ++ pVideoPicture->iDuration = (double)((0x7FFFFFFF & (m_cur_pts - m_last_pts)) * DVD_TIME_BASE) / PTS_FREQ; + + pVideoPicture->dts = DVD_NOPTS_VALUE; + pVideoPicture->pts = (double)(m_cur_pts + m_ptsOverflow) / PTS_FREQ * DVD_TIME_BASE; +-- +2.7.4 + From de8f25f2a8180bbe11ba7430fad3db142a944f38 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 19:53:45 +0100 Subject: [PATCH 17/47] [package] [mediacenter-osmc] Fix playback of M3U internet streams Signed-off-by: Sam Nazarko --- ...fix-playback-of-m3u-internet-streams.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 package/mediacenter-osmc/patches/all-119-fix-playback-of-m3u-internet-streams.patch diff --git a/package/mediacenter-osmc/patches/all-119-fix-playback-of-m3u-internet-streams.patch b/package/mediacenter-osmc/patches/all-119-fix-playback-of-m3u-internet-streams.patch new file mode 100644 index 000000000000..2980d6c25d7d --- /dev/null +++ b/package/mediacenter-osmc/patches/all-119-fix-playback-of-m3u-internet-streams.patch @@ -0,0 +1,26 @@ +From e5c42a8590ba6f8c6bd55c07d1c046497d6e061f Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:39:35 +0100 +Subject: [PATCH 1/2] Fix playback of M3U internet streams + +Signed-off-by: Sam Nazarko +--- + xbmc/playlists/PlayListFactory.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/playlists/PlayListFactory.cpp b/xbmc/playlists/PlayListFactory.cpp +index f98c230..273d3bf 100644 +--- a/xbmc/playlists/PlayListFactory.cpp ++++ b/xbmc/playlists/PlayListFactory.cpp +@@ -118,7 +118,7 @@ bool CPlayListFactory::IsPlaylist(const CFileItem& item) + */ + + // online m3u8 files are hls:// -- do not treat as playlist +- if (item.IsInternetStream() && item.IsType(".m3u8")) ++ if (item.IsInternetStream() && (item.IsType(".m3u8") || item.IsType("m3u"))) + return false; + + if(strMimeType == "audio/x-pn-realaudio" +-- +2.7.4 + From 18d7963ae79b178879b7108f8b104da32c7b8a01 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 19:54:14 +0100 Subject: [PATCH 18/47] [package] [mediacenter-osmc] Vero 4K: fix erroneous source too slow message during playback Signed-off-by: Sam Nazarko --- ...55-fix-erroneous-source-too-slow-msg.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 package/mediacenter-osmc/patches/vero3-155-fix-erroneous-source-too-slow-msg.patch diff --git a/package/mediacenter-osmc/patches/vero3-155-fix-erroneous-source-too-slow-msg.patch b/package/mediacenter-osmc/patches/vero3-155-fix-erroneous-source-too-slow-msg.patch new file mode 100644 index 000000000000..88955bad130e --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-155-fix-erroneous-source-too-slow-msg.patch @@ -0,0 +1,26 @@ +From 5e709d58615cc5e294d43d78d5d3daf7a8c2c8d3 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 17:50:15 +0100 +Subject: [PATCH 2/2] Fix erroneous source too slow message + +Signed-off-by: Sam Nazarko +--- + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +index ed197fe..15758fa 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +@@ -1872,7 +1872,7 @@ void CVideoPlayer::HandlePlaySpeed() + { + if (level < 0.0) + { +- CGUIDialogKaiToast::QueueNotification(g_localizeStrings.Get(21454), g_localizeStrings.Get(21455)); ++ //CGUIDialogKaiToast::QueueNotification(g_localizeStrings.Get(21454), g_localizeStrings.Get(21455)); + SetCaching(CACHESTATE_INIT); + } + if (level >= 1.0) +-- +2.7.4 + From 2eff5a2fe11598a6af50d2564b0ce1ffe83b0b87 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 19:59:14 +0100 Subject: [PATCH 19/47] [package] [mediacenter-osmc] Vero 4K: fix network wait for wired connections using static network config Signed-off-by: Sam Nazarko --- .../vero3-156-fix-wait-for-network.patch | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch diff --git a/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch b/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch new file mode 100644 index 000000000000..7c58fad0ecf4 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch @@ -0,0 +1,27 @@ +From 6371a0cab41cec3872279f70ba123f8c82cde0e5 Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Thu, 16 May 2019 19:58:05 +0100 +Subject: [PATCH] HACK: wait for network for 1 sec to fix static IP being + initialised too fast on Wired + +Signed-off-by: Sam Nazarko +--- + xbmc/network/Network.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/network/Network.cpp b/xbmc/network/Network.cpp +index bfd59c1..7e12f41 100644 +--- a/xbmc/network/Network.cpp ++++ b/xbmc/network/Network.cpp +@@ -520,7 +520,7 @@ void CNetworkBase::WaitForNet() + { + const int timeout = CServiceBroker::GetSettingsComponent()->GetSettings()->GetInt(CSettings::SETTING_POWERMANAGEMENT_WAITFORNETWORK); + if (timeout <= 0) +- return; // wait for network is disabled ++ timeout = 1; + + // check if we have at least one network interface to wait for + if (!IsAvailable()) +-- +2.7.4 + From b2af600779ef6f6ef45de008ca9829f9bc45a35c Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 20:04:23 +0100 Subject: [PATCH 20/47] [package] [mediacenter-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index 2eaca7a9f777..8607613c0955 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-7 +Version: 18.2.0-8 Section: video Essential: No Priority: required From 53907a27423335cdaf47304ab2716eb8d5b60999 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 20:05:31 +0100 Subject: [PATCH 21/47] [package] [mediacenter-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/build.sh b/package/mediacenter-osmc/build.sh index f44425f9f77c..fab71f5985ca 100755 --- a/package/mediacenter-osmc/build.sh +++ b/package/mediacenter-osmc/build.sh @@ -6,7 +6,7 @@ . ../common.sh if [ "$1" == "rbp1" ] || [ "$1" == "rbp2" ] || [ "$1" == "pc" ] || [ "$1" == "vero2" ] || [ "$1" == "vero3" ] then -pull_source "https://github.com/xbmc/xbmc/archive/5a47c2c342dbfca174bade38a57794f8b4c7a993.tar.gz" "$(pwd)/src" +pull_source "https://github.com/xbmc/xbmc/archive/5b87b2addf4000488e4b659c74f1e9fafed17823.tar.gz" "$(pwd)/src" API_VERSION="18" else pull_source "https://github.com/xbmc/xbmc/archive/master.tar.gz" "$(pwd)/kodi" From 94f52dffee15aa0e80bd4e02dbaad708e91d3b5f Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 20:16:37 +0100 Subject: [PATCH 22/47] [package] [mediacenter-osmc] Vero: Remove upstreamed patches Signed-off-by: Sam Nazarko --- .../vero3-142-fix-div-by-0-mpeg2.patch | 23 ------ ...-154-update-PTS-overflow-every-frame.patch | 70 ------------------- 2 files changed, 93 deletions(-) delete mode 100644 package/mediacenter-osmc/patches/vero3-142-fix-div-by-0-mpeg2.patch delete mode 100644 package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch diff --git a/package/mediacenter-osmc/patches/vero3-142-fix-div-by-0-mpeg2.patch b/package/mediacenter-osmc/patches/vero3-142-fix-div-by-0-mpeg2.patch deleted file mode 100644 index 8335084a88a8..000000000000 --- a/package/mediacenter-osmc/patches/vero3-142-fix-div-by-0-mpeg2.patch +++ /dev/null @@ -1,23 +0,0 @@ -From fae2d0991bb6c24959a693bdb90d01758bf4e7b0 Mon Sep 17 00:00:00 2001 -From: afl1 -Date: Sun, 17 Mar 2019 20:59:04 +0100 -Subject: [PATCH] DVDVideoCodecAmlogic: fix div by 0 in FrameRateTracking - ---- - .../cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp -index 53463e30cbea..11fd9b4bb96f 100644 ---- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp -+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp -@@ -471,6 +471,9 @@ void CDVDVideoCodecAmlogic::FrameRateTracking(uint8_t *pData, int iSize, double - // decode aspect ratio and frame rate. - if (CBitstreamConverter::mpeg2_sequence_header(pData, iSize, m_mpeg2_sequence)) - { -+ if (!m_mpeg2_sequence->fps_scale) -+ return; -+ - m_mpeg2_sequence_pts = pts; - if (m_mpeg2_sequence_pts == DVD_NOPTS_VALUE) - m_mpeg2_sequence_pts = dts; diff --git a/package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch b/package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch deleted file mode 100644 index 67033f3e80fa..000000000000 --- a/package/mediacenter-osmc/patches/vero3-154-update-PTS-overflow-every-frame.patch +++ /dev/null @@ -1,70 +0,0 @@ -From fe5a8b66c398c7990e2be5b3e13e85e8d78b862c Mon Sep 17 00:00:00 2001 -From: Sam Nazarko -Date: Thu, 16 May 2019 17:26:24 +0100 -Subject: [PATCH] Update PTS overflow on every frame (from LE) - -Signed-off-by: Sam Nazarko ---- - xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 21 +++++++-------------- - 1 file changed, 7 insertions(+), 14 deletions(-) - -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -index 7635ee4..10ef7d3 100644 ---- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -@@ -1760,7 +1760,7 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) - - CLog::Log(LOGNOTICE, "CAMLCodec::OpenDecoder - using V4L2 pts format: %s", m_ptsIs64us ? "64Bit":"32Bit"); - -- m_ptsOverflow = (sizeof(long) == 8) ? 0 : INT64_0; -+ m_ptsOverflow = 0; - - m_opened = true; - // vcodec is open, update speed if it was -@@ -1891,7 +1891,7 @@ void CAMLCodec::Reset() - - // reset some interal vars - m_cur_pts = INT64_0; -- m_ptsOverflow = (sizeof(long) == 8) ? 0 : INT64_0; -+ m_ptsOverflow = 0; - m_state = 0; - m_frameSizes.clear(); - m_frameSizeSum = 0; -@@ -1950,12 +1950,14 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) - { - if (am_private->am_pkt.avpts != INT64_0) - { -- if (m_ptsOverflow == INT64_0) -- m_ptsOverflow = am_private->am_pkt.avpts & 0xFFFF80000000ULL; -+ m_ptsOverflow = am_private->am_pkt.avpts & 0xFFFFFFFF80000000ULL; - am_private->am_pkt.avpts &= 0x7FFFFFFF; - } - if (am_private->am_pkt.avdts != INT64_0) -+ { -+ m_ptsOverflow = am_private->am_pkt.avdts & 0xFFFFFFFF80000000ULL; - am_private->am_pkt.avdts &= 0x7FFFFFFF; -+ } - } - - // We use this to determine the fill state if no PTS is given -@@ -2149,16 +2151,7 @@ CDVDVideoCodec::VCReturn CAMLCodec::GetPicture(VideoPicture *pVideoPicture) - if (m_last_pts <= 0) - pVideoPicture->iDuration = (double)(am_private->video_rate * DVD_TIME_BASE) / UNIT_FREQ; - else -- { -- // Check for int overflow -- if (m_cur_pts + 0xFFFFFFF < m_last_pts) -- { -- m_last_pts -= 0x7FFFFFFF; -- m_ptsOverflow += 0x80000000; -- CLog::Log(LOGDEBUG, "CAMLCodec::GetPicture, PTS overflow incremented(%llX)", m_ptsOverflow); -- } -- pVideoPicture->iDuration = (double)((m_cur_pts - m_last_pts) * DVD_TIME_BASE) / PTS_FREQ; -- } -+ pVideoPicture->iDuration = (double)((0x7FFFFFFF & (m_cur_pts - m_last_pts)) * DVD_TIME_BASE) / PTS_FREQ; - - pVideoPicture->dts = DVD_NOPTS_VALUE; - pVideoPicture->pts = (double)(m_cur_pts + m_ptsOverflow) / PTS_FREQ * DVD_TIME_BASE; --- -2.7.4 - From b9f3fddd7ba65046838bc4c129669d9a96616b11 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 20:55:47 +0100 Subject: [PATCH 23/47] [package] [mediacenter-osmc] Vero 4K: update VC-1 fix so that it also fixes Live TV issues Signed-off-by: Sam Nazarko --- .../patches/vero3-066-fix-deinterlacing-of-progressive.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch b/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch index 04d89f34a787..67db05a9ce14 100644 --- a/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch +++ b/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch @@ -22,9 +22,9 @@ index c77bc05..aa75060 100644 am_private->gcodec.param = NULL; + if (am_private->video_format == VFORMAT_VC1) -+ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 0); ++ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 0); + else -+ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 1); ++ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 1); + switch(am_private->video_format) { From a079f46babd3533c9a572cf7b3f739cc690941d5 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 20:56:20 +0100 Subject: [PATCH 24/47] [package] [mediacenter-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index 8607613c0955..ac744fcf15fe 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-8 +Version: 18.2.0-9 Section: video Essential: No Priority: required From c9537b15c49f038e79df853f4c825c0edacfd6c9 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 21:16:29 +0100 Subject: [PATCH 25/47] [package] [mediacenter-osmc] Vero 4K: fixup patch Signed-off-by: Sam Nazarko --- .../patches/vero3-156-fix-wait-for-network.patch | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch b/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch index 7c58fad0ecf4..3a071b86e497 100644 --- a/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch +++ b/package/mediacenter-osmc/patches/vero3-156-fix-wait-for-network.patch @@ -1,4 +1,4 @@ -From 6371a0cab41cec3872279f70ba123f8c82cde0e5 Mon Sep 17 00:00:00 2001 +From 8aaf5249b2e27684d54bae8e982c5677a5e169f9 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 19:58:05 +0100 Subject: [PATCH] HACK: wait for network for 1 sec to fix static IP being @@ -6,16 +6,19 @@ Subject: [PATCH] HACK: wait for network for 1 sec to fix static IP being Signed-off-by: Sam Nazarko --- - xbmc/network/Network.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + xbmc/network/Network.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/network/Network.cpp b/xbmc/network/Network.cpp -index bfd59c1..7e12f41 100644 +index bfd59c1..6bbfd5e 100644 --- a/xbmc/network/Network.cpp +++ b/xbmc/network/Network.cpp -@@ -520,7 +520,7 @@ void CNetworkBase::WaitForNet() +@@ -518,9 +518,9 @@ std::vector CreateTCPServerSocket(const int port, const bool bindLocal, + + void CNetworkBase::WaitForNet() { - const int timeout = CServiceBroker::GetSettingsComponent()->GetSettings()->GetInt(CSettings::SETTING_POWERMANAGEMENT_WAITFORNETWORK); +- const int timeout = CServiceBroker::GetSettingsComponent()->GetSettings()->GetInt(CSettings::SETTING_POWERMANAGEMENT_WAITFORNETWORK); ++ int timeout = CServiceBroker::GetSettingsComponent()->GetSettings()->GetInt(CSettings::SETTING_POWERMANAGEMENT_WAITFORNETWORK); if (timeout <= 0) - return; // wait for network is disabled + timeout = 1; From a9180cf0979a4c053a529708f59a17545e85cf27 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 16 May 2019 23:48:29 +0100 Subject: [PATCH 26/47] [packag] [mediacenter-skin-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-skin-osmc/build.sh | 2 +- package/mediacenter-skin-osmc/files/DEBIAN/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mediacenter-skin-osmc/build.sh b/package/mediacenter-skin-osmc/build.sh index e035d94a6979..ff988bd9cfd0 100755 --- a/package/mediacenter-skin-osmc/build.sh +++ b/package/mediacenter-skin-osmc/build.sh @@ -7,7 +7,7 @@ make clean -REV="59bd15c3140c6aad011d0c1db38acee80e2293f7" +REV="6122aeb0725e99b18df02c0726f1ba2256f996ef" echo -e "Building package mediacenter-skin-osmc" echo -e "Downloading skin" pull_source "https://github.com/osmc/skin.osmc/archive/${REV}.tar.gz" "$(pwd)/src" diff --git a/package/mediacenter-skin-osmc/files/DEBIAN/control b/package/mediacenter-skin-osmc/files/DEBIAN/control index 849812477912..5cad2d17d665 100644 --- a/package/mediacenter-skin-osmc/files/DEBIAN/control +++ b/package/mediacenter-skin-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: mediacenter-skin-osmc -Version: 18.0.0-6 +Version: 18.0.0-7 Section: video Essential: No Priority: optional From be9398e93e8dc1751825c1bbee6068fd6630c72b Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 17 May 2019 15:17:30 +0100 Subject: [PATCH 27/47] [package] [mediacenter-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index ac744fcf15fe..125a2056c7c6 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-9 +Version: 18.2.0-10 Section: video Essential: No Priority: required From 3d9a27009e0472855e5e96709b4a69f56727e99c Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 17 May 2019 16:22:29 +0100 Subject: [PATCH 28/47] [package] [mediacenter-osmc] Backport support for KEY_STOP Signed-off-by: Sam Nazarko --- .../all-120-re-add-support-for-KEY_STOP.patch | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 package/mediacenter-osmc/patches/all-120-re-add-support-for-KEY_STOP.patch diff --git a/package/mediacenter-osmc/patches/all-120-re-add-support-for-KEY_STOP.patch b/package/mediacenter-osmc/patches/all-120-re-add-support-for-KEY_STOP.patch new file mode 100644 index 000000000000..9a0ddb4acf8b --- /dev/null +++ b/package/mediacenter-osmc/patches/all-120-re-add-support-for-KEY_STOP.patch @@ -0,0 +1,27 @@ +From 3ca62524188b131291de8ade8f6cdf5357b2ecdd Mon Sep 17 00:00:00 2001 +From: Sam Nazarko +Date: Tue, 16 Apr 2019 19:28:34 +0100 +Subject: [PATCH] LibInputKeyboard: re-add support for KEY_STOP as we had in + CLinuxInputDevices + +Signed-off-by: Sam Nazarko +--- + xbmc/platform/linux/input/LibInputKeyboard.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/platform/linux/input/LibInputKeyboard.cpp b/xbmc/platform/linux/input/LibInputKeyboard.cpp +index 270f574..9bbc9de 100644 +--- a/xbmc/platform/linux/input/LibInputKeyboard.cpp ++++ b/xbmc/platform/linux/input/LibInputKeyboard.cpp +@@ -137,7 +137,7 @@ static const std::map xkbMap = + + // Media keys + { XKB_KEY_XF86Eject, XBMCK_EJECT }, +- // XBMCK_STOP clashes with XBMCK_MEDIA_STOP ++ { XKB_KEY_Cancel, XBMCK_STOP }, + { XKB_KEY_XF86AudioRecord, XBMCK_RECORD }, + // XBMCK_REWIND clashes with XBMCK_MEDIA_REWIND + { XKB_KEY_XF86Phone, XBMCK_PHONE }, +-- +2.7.4 + From bfd1a2ff26a17469115d5ab260fecdff36d116ca Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 17 May 2019 16:25:13 +0100 Subject: [PATCH 29/47] [package] [mediacenter-osmc] RBP: update backports Signed-off-by: Sam Nazarko --- .../patches/rbp-000-backports.patch | 130 ++++++++---------- 1 file changed, 58 insertions(+), 72 deletions(-) diff --git a/package/mediacenter-osmc/patches/rbp-000-backports.patch b/package/mediacenter-osmc/patches/rbp-000-backports.patch index cec3540fbe0e..3afa0b49d857 100644 --- a/package/mediacenter-osmc/patches/rbp-000-backports.patch +++ b/package/mediacenter-osmc/patches/rbp-000-backports.patch @@ -1,4 +1,4 @@ -From 7c0a2cc27678aed721972053d6ad9b63bb711a59 Mon Sep 17 00:00:00 2001 +From 60660d8d492c4644df682292f332c6a0ccf4a8f6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 4 Nov 2014 18:50:00 +0000 Subject: [PATCH 01/49] Temp - more logging @@ -56,7 +56,7 @@ index 1691c0f..410841a 100644 2.7.4 -From d5bef957eb413b0f396d287808d6bba98c2329de Mon Sep 17 00:00:00 2001 +From ff81459ed08556f08cb33b2171030edfbdc37059 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 7 Apr 2014 18:19:32 +0100 Subject: [PATCH 02/49] When opening a stream don't try to update gui so often @@ -85,7 +85,7 @@ index a0ed9fd..111e52e 100644 2.7.4 -From 9d44525fa4bc6eac1dd6353a021a90ac07e2c4f6 Mon Sep 17 00:00:00 2001 +From 8ebc7b213ed59f450b9b609ae1093851473263f1 Mon Sep 17 00:00:00 2001 From: Ben Avison Date: Thu, 1 May 2014 16:28:39 +0100 Subject: [PATCH 03/49] Improved file buffering in CArchive @@ -151,7 +151,7 @@ index e6bf427..185f22c 100644 2.7.4 -From 6db49754e801ee2c2328d4795f684257d07b8053 Mon Sep 17 00:00:00 2001 +From c461d3a4be3991f69a45be3b64ba9bf0822ae7c3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 13:06:57 +0000 Subject: [PATCH 04/49] Make cachemembuffersize default depend on memory size @@ -217,7 +217,7 @@ index aaddd14..c7859fc 100644 void Deinitialize(); int GetArmMem() { return m_arm_mem; } diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 35b0921..4c314a3 100644 +index 11cbbf1..8603ba4 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -38,6 +38,9 @@ @@ -258,7 +258,7 @@ index 35b0921..4c314a3 100644 2.7.4 -From f53cf910d8be22591e4ab518f026d88b95976b81 Mon Sep 17 00:00:00 2001 +From 960c09256352b424dedb453e10cfab9812e62bee Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 27 Oct 2014 15:23:51 +0000 Subject: [PATCH 05/49] Default extract thumbnails to false @@ -290,7 +290,7 @@ index f6c2282..4ebf63e 100644 2.7.4 -From 922c44eebd9fda80461261f06795d6cfa574e364 Mon Sep 17 00:00:00 2001 +From 571bae8ca4277a36120260ac407d9d342fc1e8b9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 27 Nov 2014 16:31:56 +0000 Subject: [PATCH 06/49] Reduce priority of python threads @@ -322,7 +322,7 @@ index c1000e2..ba04024 100644 2.7.4 -From 5bb420b7bcb3be1fd57b08712b19b85d36df5110 Mon Sep 17 00:00:00 2001 +From a1194c5c3f633541970814aa5b23f44d93866e7f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 29 Nov 2014 15:25:16 +0000 Subject: [PATCH 07/49] hack: wait for splash to complete before changing hdmi @@ -411,7 +411,7 @@ index 743a7fc..116b3bf 100644 2.7.4 -From 71f971153c209e8dbd64c7fc7210db074af65878 Mon Sep 17 00:00:00 2001 +From 7b852d3ad118e880a86eb2160ac55680170bd919 Mon Sep 17 00:00:00 2001 From: anaconda Date: Thu, 11 Sep 2014 21:30:43 +0200 Subject: [PATCH 08/49] Disable autoscrolling while on screensaver and while @@ -427,10 +427,10 @@ Subject: [PATCH 08/49] Disable autoscrolling while on screensaver and while 6 files changed, 23 insertions(+), 3 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 6e87c6f..3704fa3 100644 +index f156ea0..e67f949 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -4878,3 +4878,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const +@@ -4888,3 +4888,13 @@ bool CApplication::NotifyActionListeners(const CAction &action) const return false; } @@ -547,7 +547,7 @@ index d838213..96996fa 100644 2.7.4 -From d8ab5027babe37cead09426b757a4c21653859a0 Mon Sep 17 00:00:00 2001 +From 771b43f4d162b2e4573fe6f4e34060286297788e Mon Sep 17 00:00:00 2001 From: anaconda Date: Wed, 25 Feb 2015 18:22:21 +0100 Subject: [PATCH 09/49] Load OSD dialogs on startup. @@ -648,7 +648,7 @@ index 71b0e16..4db077e 100644 2.7.4 -From b0dfc810932cb1ff7ea97b1c51dd021daae991e9 Mon Sep 17 00:00:00 2001 +From 370c1fccd7901bba51657fcb7b0282715d2e353c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 14 Apr 2015 20:51:14 +0100 Subject: [PATCH 10/49] Also limit GUI updates when in non full-screen video @@ -659,7 +659,7 @@ Subject: [PATCH 10/49] Also limit GUI updates when in non full-screen video 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 3704fa3..d6c8b0a 100644 +index e67f949..d94429d 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2434,7 +2434,7 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) @@ -675,7 +675,7 @@ index 3704fa3..d6c8b0a 100644 2.7.4 -From 87856e1ddd21a6ab2ffec15a63e2272a2d8f94cd Mon Sep 17 00:00:00 2001 +From a72eacf7868448c1f52fef23db514241e8dcd7d3 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 5 May 2015 23:58:06 +0100 Subject: [PATCH 11/49] Leave GUI contents available for screensaver @@ -710,7 +710,7 @@ index 3b1e63d..137ee2a 100644 2.7.4 -From 8d6a9a6f7e377ac13527511f55cf46e48345c508 Mon Sep 17 00:00:00 2001 +From 7252d6d59d934e8ebc33b267937ba4313421a2ad Mon Sep 17 00:00:00 2001 From: Claudio-Sjo Date: Mon, 16 Feb 2015 14:51:26 +0100 Subject: [PATCH 12/49] - allow reads < CDIO_CD_FRAMESIZE_RAW by using a buffer @@ -908,7 +908,7 @@ index 61bfac2..d421053 100644 2.7.4 -From 2c799d266ad58618681a70b4a73236364eda0343 Mon Sep 17 00:00:00 2001 +From 54492aeff79084ef87f9fd957b254326ecdff9b1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 24 Jun 2016 19:38:13 +0100 Subject: [PATCH 13/49] codecoverlay: Include codec name in overlay @@ -1008,7 +1008,7 @@ index f184cd0..ba6a9e9 100644 2.7.4 -From ea16edb1bef162cd1fbf3a96f8860ce409f24428 Mon Sep 17 00:00:00 2001 +From 7f2637e9f9c33cebe45703d0bcbb87b9541a6562 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Tue, 8 Mar 2016 21:20:58 +0300 Subject: [PATCH 14/49] Add cpu usage info. @@ -1175,7 +1175,7 @@ index f5120a6..487024f 100644 2.7.4 -From 0f3ddf690ac863ae5f7b8d2edded42dbf881ecb0 Mon Sep 17 00:00:00 2001 +From afd8989e469c7d2ec4662d7b049abdd108586425 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 Subject: [PATCH 15/49] Make MVC a valid 3D filename tag @@ -1207,7 +1207,7 @@ index 89c9a69..839f453 100644 } diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 4c314a3..1207bc9 100644 +index 8603ba4..28e660a 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -448,6 +448,7 @@ void CAdvancedSettings::Initialize() @@ -1242,7 +1242,7 @@ index 1de3b00..627ba21 100644 2.7.4 -From 1c1dde418f7ac97e3f06cc155a2eae0d90e99bb2 Mon Sep 17 00:00:00 2001 +From fea0beedebc9fc8ac324bdf4bd867c5bb3d8c52d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 5 Oct 2015 14:58:05 +0100 Subject: [PATCH 16/49] Swap top/bottom sides of GUI @@ -1268,7 +1268,7 @@ index 1ced496..47036f8 100644 2.7.4 -From ccd50c3b68964696667268dda8c60c0e90647d3a Mon Sep 17 00:00:00 2001 +From 6728de614641dcd10656eabc7f2a0d633c8c1cac Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 21 Dec 2015 22:17:25 +0000 Subject: [PATCH 17/49] Fall back to arm jpeg encode/decode when gpu is busy @@ -1516,7 +1516,7 @@ index 55c85bd..46064d4 100644 2.7.4 -From 40589c89747b24c831d49057832e3279a875458f Mon Sep 17 00:00:00 2001 +From 690c4a19e62797e215c0618d6f84a5ff8508d9ce Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 19 Sep 2014 11:54:49 +0100 Subject: [PATCH 18/49] Add pi specific option to maintain vsync with pll @@ -1541,7 +1541,7 @@ or drop/dupe audio packets which is normally required. 12 files changed, 145 insertions(+), 21 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 41aaa8a..22a9aca 100644 +index 3614374..5fc3a34 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -21712,3 +21712,36 @@ msgstr "" @@ -1964,7 +1964,7 @@ index c7859fc..af835cf 100644 2.7.4 -From 013937d88e1d76541875b3a2a0780bb977877093 Mon Sep 17 00:00:00 2001 +From 6b877ace2f465bad9505a90c324e7a8ddf157c5a Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 7 May 2015 15:35:43 +0100 Subject: [PATCH 19/49] rbp: Support zero copy interface with hevc acceleration @@ -2014,7 +2014,7 @@ index 2cf3575..3c452be 100644 2.7.4 -From beae7c78ba5b4a8706137661eb0013b044046be2 Mon Sep 17 00:00:00 2001 +From b00c88cff0a22e5ab9cf3d44154e913099e1e793 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 29 Jan 2016 17:18:50 +0300 Subject: [PATCH 20/49] Settings: Added setting to enable/disable MVC decoder. @@ -2049,7 +2049,7 @@ index 095a627..29b7d70 100644 2.7.4 -From fa7fbd2f57d5c4a77c82b8c705d6eb3adbe5721f Mon Sep 17 00:00:00 2001 +From 5690680e30005d75524086cb28299aa11ebd641c Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Wed, 20 Jan 2016 17:02:16 +0300 Subject: [PATCH 21/49] DemuxFFmpeg: Properly demuxing h264_mvc streams. @@ -2117,7 +2117,7 @@ index ce559f0..539615a 100644 2.7.4 -From a8a6380d1a9d0f64b239906191c5b09cfc1b5e86 Mon Sep 17 00:00:00 2001 +From f0ac4814f2b3e0b473d7e841b373f65e9abe08db Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Thu, 25 Feb 2016 11:21:25 +0300 Subject: [PATCH 22/49] Added block_lr and block_rl to supported modes. @@ -2172,7 +2172,7 @@ index 839f453..d04458f 100644 2.7.4 -From 93f247d80d8afb42d24c1011bfca9c2c21650dbc Mon Sep 17 00:00:00 2001 +From b24fd5a785fd06c6134f9d80e431892bfbe69559 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Sat, 23 Jan 2016 10:21:32 +0300 Subject: [PATCH 23/49] Fix possible wrong aspect. @@ -2198,7 +2198,7 @@ index c5404c3..7f414fa 100644 2.7.4 -From a0e464110244c1097aad2606c0a6393f828220cb Mon Sep 17 00:00:00 2001 +From b0ad32af0e8151e9ed3db75a32d69867d16dbe06 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 22 Jan 2016 18:18:33 +0300 Subject: [PATCH 24/49] DemuxFFmpeg: ssif remux @@ -2219,8 +2219,7 @@ fix for compiling with libbluray disabled xbmc/cores/VideoPlayer/IVideoPlayer.h | 1 + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 4 + xbmc/cores/VideoPlayer/VideoPlayerVideo.h | 1 + - xbmc/settings/AdvancedSettings.cpp | 2 +- - 15 files changed, 874 insertions(+), 16 deletions(-) + 14 files changed, 873 insertions(+), 15 deletions(-) create mode 100644 xbmc/cores/VideoPlayer/DVDDemuxers/DemuxMVC.cpp create mode 100644 xbmc/cores/VideoPlayer/DVDDemuxers/DemuxMVC.h create mode 100644 xbmc/cores/VideoPlayer/DVDDemuxers/DemuxStreamSSIF.cpp @@ -3515,24 +3514,11 @@ index 689948c..83d4bb0 100644 // classes CDVDOverlayContainer* m_pOverlayContainer; -diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 1207bc9..b45b4b4 100644 ---- a/xbmc/settings/AdvancedSettings.cpp -+++ b/xbmc/settings/AdvancedSettings.cpp -@@ -437,7 +437,7 @@ void CAdvancedSettings::Initialize() - - m_pictureExtensions = ".png|.jpg|.jpeg|.bmp|.gif|.ico|.tif|.tiff|.tga|.pcx|.cbz|.zip|.rss|.webp|.jp2|.apng"; - m_musicExtensions = ".nsv|.m4a|.flac|.aac|.strm|.pls|.rm|.rma|.mpa|.wav|.wma|.ogg|.mp3|.mp2|.m3u|.gdm|.imf|.m15|.sfx|.uni|.ac3|.dts|.cue|.aif|.aiff|.wpl|.xspf|.ape|.mac|.mpc|.mp+|.mpp|.shn|.zip|.wv|.dsp|.xsp|.xwav|.waa|.wvs|.wam|.gcm|.idsp|.mpdsp|.mss|.spt|.rsd|.sap|.cmc|.cmr|.dmc|.mpt|.mpd|.rmt|.tmc|.tm8|.tm2|.oga|.url|.pxml|.tta|.rss|.wtv|.mka|.tak|.opus|.dff|.dsf|.m4b"; -- m_videoExtensions = ".m4v|.3g2|.3gp|.nsv|.tp|.ts|.ty|.strm|.pls|.rm|.rmvb|.mpd|.m3u|.m3u8|.ifo|.mov|.qt|.divx|.xvid|.bivx|.vob|.nrg|.img|.iso|.udf|.pva|.wmv|.asf|.asx|.ogm|.m2v|.avi|.bin|.dat|.mpg|.mpeg|.mp4|.mkv|.mk3d|.avc|.vp3|.svq3|.nuv|.viv|.dv|.fli|.flv|.001|.wpl|.xspf|.zip|.vdr|.dvr-ms|.xsp|.mts|.m2t|.m2ts|.evo|.ogv|.sdp|.avs|.rec|.url|.pxml|.vc1|.h264|.rcv|.rss|.mpls|.webm|.bdmv|.wtv|.trp|.f4v"; -+ m_videoExtensions = ".m4v|.3g2|.3gp|.nsv|.tp|.ts|.ty|.strm|.pls|.rm|.rmvb|.mpd|.m3u|.m3u8|.ifo|.mov|.qt|.divx|.xvid|.bivx|.vob|.nrg|.img|.iso|.udf|.pva|.wmv|.asf|.asx|.ogm|.m2v|.avi|.bin|.dat|.mpg|.mpeg|.mp4|.mkv|.mk3d|.avc|.vp3|.svq3|.nuv|.viv|.dv|.fli|.flv|.001|.wpl|.xspf|.zip|.vdr|.dvr-ms|.xsp|.mts|.m2t|.m2ts|.evo|.ogv|.sdp|.avs|.rec|.url|.pxml|.vc1|.h264|.rcv|.rss|.mpls|.webm|.bdmv|.wtv|.trp|.f4v|.ssif"; - m_subtitlesExtensions = ".utf|.utf8|.utf-8|.sub|.srt|.smi|.rt|.txt|.ssa|.text|.ssa|.aqt|.jss|.ass|.idx|.ifo|.zip"; - m_discStubExtensions = ".disc"; - // internal music extensions -- 2.7.4 -From 0e37f5b7a23d1f8257d8d68ab8965b5641cad1c5 Mon Sep 17 00:00:00 2001 +From d84af4d3e16ee6eaf21e10255de0dda41d8e0124 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 11 Mar 2016 16:58:53 +0300 Subject: [PATCH 25/49] HasVideo returns true if video stream exists. This @@ -3559,7 +3545,7 @@ index 339c985..063f57f 100644 2.7.4 -From 3386e6eef7565f9803023e779e6451e08149bec7 Mon Sep 17 00:00:00 2001 +From e2ef350b601b3244e8ab09c1cf4e2b320b435652 Mon Sep 17 00:00:00 2001 From: Anton Fedchin Date: Fri, 16 Sep 2016 11:37:48 +0300 Subject: [PATCH 26/49] move SETTING_VIDEOPLAYER_SUPPORTMVC from platform @@ -3591,7 +3577,7 @@ index 56ef2b5..6e3dba4 100644
diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index e2f5319..41abd44 100755 +index 0971c85..e4b3b63 100755 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -244,6 +244,12 @@ @@ -3638,7 +3624,7 @@ index 5320ce3..b675957 100644 2.7.4 -From a4b49f7dc7f772ec89d50cd2807123f02d475533 Mon Sep 17 00:00:00 2001 +From 9fac43e2b1953d39edd6ef44504a6e0a37480d1c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 29 Feb 2016 17:00:50 +0000 Subject: [PATCH 27/49] libbluray: Bump to Nevcairie's patches @@ -5969,7 +5955,7 @@ index 0000000..ca961f1 2.7.4 -From 3896192f228cc3f4e70bca2e2ae1dccf5f6e116c Mon Sep 17 00:00:00 2001 +From 12821c0f5bca6264ed5eac21c0f37b9453c84e2d Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 6 Mar 2016 12:54:59 +0000 Subject: [PATCH 28/49] mvc: Automatically enable stereo mode @@ -6037,7 +6023,7 @@ index 28bd3ec..eda4b54 100644 2.7.4 -From c03144b15faf0e0d107a5b2627dfe18dc74a33d6 Mon Sep 17 00:00:00 2001 +From 566d9cd1e44233c4229068686f8615159efdb875 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 11 Nov 2016 15:53:53 +0000 Subject: [PATCH 29/49] stereoscopicmanager: fixups for rbp @@ -6268,7 +6254,7 @@ index d04458f..dcda384 100644 2.7.4 -From 988faaa217120af8fd4414da423927ad60ef8820 Mon Sep 17 00:00:00 2001 +From a755064f68824f8cab2a15cbbdce5741c6cd4a94 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 22 Mar 2016 09:51:52 +0100 Subject: [PATCH 30/49] python: use kodi provided cert if available @@ -6298,7 +6284,7 @@ index 81e0d7c..b33b623 100644 2.7.4 -From 6d6b7397bdb8a2ae07a616ca116f203b6ce52854 Mon Sep 17 00:00:00 2001 +From 78ebad7a8bdcd94f45d2a98f43519c94d12244b5 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 25 May 2016 18:31:17 +0100 Subject: [PATCH 31/49] rbp: Hard code the number of buffers to improve audio @@ -6329,7 +6315,7 @@ index 6e3dba4..1db0d32 100644 2.7.4 -From 460ef8c29c2bcf55f48f9bbdc17b165aad0b186b Mon Sep 17 00:00:00 2001 +From 7ab87f0169a8984e57c0f4938d270111079073a6 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Jul 2016 20:39:18 +0100 Subject: [PATCH 32/49] mmalrender: Add sharpness control @@ -6341,7 +6327,7 @@ Subject: [PATCH 32/49] 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 22a9aca..5017db7 100644 +index 5fc3a34..722307d 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po @@ -8924,7 +8924,7 @@ msgstr "" @@ -6407,7 +6393,7 @@ index 9718fb0..40d82e5 100644 2.7.4 -From be6b028a749184417dda594957d74b153a987295 Mon Sep 17 00:00:00 2001 +From 63e8422df757be0eaeab482faea2ad9a6e401ba1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 14 Oct 2016 15:37:53 +0100 Subject: [PATCH 33/49] MMALFFMpeg: Report as SW decode in codec overlay info @@ -6433,7 +6419,7 @@ index a4f01a8..0f0bf4d 100644 2.7.4 -From 17241ba459c2ac3c67f3d7391dc032d8c4ba96f9 Mon Sep 17 00:00:00 2001 +From b1d1ccababd4c55e435cf9d12d84a8de591df31c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 19 Dec 2017 16:02:40 +0000 Subject: [PATCH 34/49] VideoPlayer: Fix stereo mode detection from filename in @@ -6468,7 +6454,7 @@ index 063f57f..4dd2403 100644 2.7.4 -From fe9ff02e941ac4491d68288936964d940cb31e93 Mon Sep 17 00:00:00 2001 +From 9721061ca1770d7e426f55d14756f404adf037b8 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 2 Feb 2018 14:35:34 +0000 Subject: [PATCH 35/49] stereoscopics: Remove instances of mono @@ -6591,7 +6577,7 @@ index 35f71e4..30d7219 100644 2.7.4 -From 48def6d534dbcb6d54b9647b2e903af70df9ce92 Mon Sep 17 00:00:00 2001 +From 228045ebedae3fb8e2d53cdae4de8161637601f1 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 29 May 2018 22:31:57 +0100 Subject: [PATCH 36/49] RenderManager: Revert show_video commit minimally @@ -6618,7 +6604,7 @@ index 487024f..7d857ae 100644 2.7.4 -From 82b0c5373fa20e1c7088b9412c147d30572c8024 Mon Sep 17 00:00:00 2001 +From 29021b55c84df39809bb5531df44846f9d656473 Mon Sep 17 00:00:00 2001 From: Nuno Senica Date: Tue, 27 Dec 2016 20:59:56 +0000 Subject: [PATCH 37/49] Apply ffmpeg patches automatically after downloading @@ -6655,7 +6641,7 @@ index ef74671..9ba4bff 100644 2.7.4 -From cdf5ce4e1183130a679c4a2ee24b397fc83d1b4f Mon Sep 17 00:00:00 2001 +From e0ee39adf4f0a70b1fbf639bc32895b1ec81806f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nuno=20S=C3=A9nica?= Date: Tue, 28 Mar 2017 22:33:00 +0200 Subject: [PATCH 38/49] Adds -DRPI=1 to the compiler flags so that ffmpeg can @@ -6684,7 +6670,7 @@ index 4a26222..5ab4feb 100644 2.7.4 -From 07988d953d6056a050faa7151c60f56afe5e7d03 Mon Sep 17 00:00:00 2001 +From 9fe4864dc2308cfc98504b2ee082232c1c4957ea Mon Sep 17 00:00:00 2001 From: diogomsantos Date: Mon, 3 Apr 2017 23:24:38 +0100 Subject: [PATCH 39/49] Fix compilling with latest ffmpeg patches which depends @@ -6711,7 +6697,7 @@ index 5ab4feb..b688175 100644 2.7.4 -From 0089a97f206c39f0dc472fd7b3d864e92c6a8a51 Mon Sep 17 00:00:00 2001 +From 9daf0ab56b2cbd723306184d97d9e8ef9793fc4b Mon Sep 17 00:00:00 2001 From: Nuno Senica Date: Tue, 28 Nov 2017 15:09:46 +0000 Subject: [PATCH 40/49] Apply ffmpeg patches automatically after downloading @@ -6772,7 +6758,7 @@ index dc990b8..fb6bea6 100755 2.7.4 -From 761e9a086489d138b2949268ac5101011826ccaf Mon Sep 17 00:00:00 2001 +From 716114459d36015e4105a5dd8cc35f6134430a99 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 23 Jun 2018 10:18:38 +0100 Subject: [PATCH 41/49] ffmpeg: hevc: Add gpu based hevc optimisation @@ -51446,7 +51432,7 @@ index 0000000..c64d5e5 2.7.4 -From 2a983de7eeb7ed2daff87c07acbe6f94754b85ef Mon Sep 17 00:00:00 2001 +From e96cf6f2365ea474daf4ae63fc28084d0f1b15e4 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sat, 4 Mar 2017 19:25:40 +0000 Subject: [PATCH 42/49] ffmpeg: Call get_format to fix an issue with MMAL @@ -51543,7 +51529,7 @@ index 0bb9eb3..5a3d3a9 100644 2.7.4 -From c26d48c7a33fd67f4254bf006530eb737bf2d238 Mon Sep 17 00:00:00 2001 +From 0fe69582aa0e8465123bbdc384d0ee66c75e6495 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Sun, 21 Jan 2018 20:12:07 +0000 Subject: [PATCH 43/49] ffmpeg: Automatic switch to software decode for GMC @@ -51764,7 +51750,7 @@ index 23c1b5a..6993dc0 100644 2.7.4 -From a3837648ba61cc29ff75f5a042b70ffb5557c479 Mon Sep 17 00:00:00 2001 +From 2ce9ba4ba962fcab91ed33f2d904be061d2d8f84 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Thu, 25 Jan 2018 15:23:34 +0000 Subject: [PATCH 44/49] ffmpeg: use upstream mvc patches @@ -52089,7 +52075,7 @@ index 0000000..551a271 2.7.4 -From 34e13bb2c1469b59737c60df37887051c88f27e0 Mon Sep 17 00:00:00 2001 +From 832c15d15607fbea7d27f85c684a7045f682d58c Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 23 May 2018 12:22:17 +0100 Subject: [PATCH 45/49] ffmpeg: Ensure correct arch gets passed to ffmpeg @@ -52130,7 +52116,7 @@ index e305a76..2692f0d 100644 2.7.4 -From 9919aa930ec30acea01eb4e84d036e6d84b909ec Mon Sep 17 00:00:00 2001 +From 261c4b88af357982bce3ea467adcca83793b3890 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 26 Jun 2017 20:17:09 +0100 Subject: [PATCH 46/49] MMAL: Add hevc support by allowing 4 planes @@ -52193,7 +52179,7 @@ index 7e1ad58..edfccfc 100644 2.7.4 -From 5235c6b24bff73a0290141964a25e449b89afe00 Mon Sep 17 00:00:00 2001 +From 55d6358a5f81a4ab760a8a5e4aa24adc53d68551 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 8 Sep 2017 12:17:34 +0100 Subject: [PATCH 47/49] DVDInputStreamBluray: Possible fix for 3D main movie @@ -52227,7 +52213,7 @@ index 601b5cd..05068bd 100644 2.7.4 -From 56d2662c4208cae8f31237dc642a12b49ae4e9ca Mon Sep 17 00:00:00 2001 +From 0763bafd25d8bca4de4373abe39a8bccc838dc8e Mon Sep 17 00:00:00 2001 From: Nuno Senica Date: Wed, 19 Sep 2018 09:36:09 +0200 Subject: [PATCH 48/49] Tell ffmpeg to compile with raspberry pi support thus @@ -52257,7 +52243,7 @@ index b688175..bf8a7f7 100644 2.7.4 -From f898507d555d4d8885c6a370ff7d8142309094f2 Mon Sep 17 00:00:00 2001 +From 3ef4dabccc0846b00f94a8ee4ce2b27617380a3e Mon Sep 17 00:00:00 2001 From: popcornmix Date: Fri, 26 Oct 2018 19:06:52 +0100 Subject: [PATCH 49/49] MMALRender: Destroy deinterlace component when method From fef053ede5b2cba4b94c6f0d762d88d20979dfb8 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 17 May 2019 17:40:58 +0100 Subject: [PATCH 30/47] [package] [mediacenter-osmc] Vero 4K: bump version; remove unneeded/unusuable patch Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- .../vero3-146-AMLCodec-control-fixes.patch | 249 ------------------ 2 files changed, 1 insertion(+), 250 deletions(-) delete mode 100644 package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index 125a2056c7c6..83d5e509162a 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-10 +Version: 18.2.0-11 Section: video Essential: No Priority: required diff --git a/package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch b/package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch deleted file mode 100644 index e02eeab80a61..000000000000 --- a/package/mediacenter-osmc/patches/vero3-146-AMLCodec-control-fixes.patch +++ /dev/null @@ -1,249 +0,0 @@ -From de267629ae536e0aeca0917c224e9756b06ef206 Mon Sep 17 00:00:00 2001 -From: afl1 -Date: Wed, 10 Apr 2019 10:22:49 +0200 -Subject: [PATCH] VideoPlayer: AMLCodec control fixies - ---- - .../cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 51 ++++++++++++++++------ - xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h | 1 + - xbmc/cores/VideoPlayer/DVDStreamInfo.h | 3 ++ - xbmc/cores/VideoPlayer/VideoPlayer.cpp | 6 +++ - xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 10 ++++- - 5 files changed, 56 insertions(+), 15 deletions(-) - -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -index 456cf37..7635ee4 100644 ---- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -@@ -247,7 +247,7 @@ static const int64_t INT64_0 = 0x8000000000000000ULL; - #define CODEC_TAG_jpeg (0x6765706a) - #define CODEC_TAG_mjpa (0x61706a6d) - --#define RW_WAIT_TIME (20 * 1000) // 20ms -+#define RW_WAIT_TIME (5 * 1000) // 20ms - - #define P_PRE (0x02000000) - #define F_PRE (0x03000000) -@@ -669,7 +669,7 @@ int write_av_packet(am_private_t *para, am_packet_t *pkt) - pkt->data += len; - pkt->data_size -= len; - usleep(RW_WAIT_TIME); -- CLog::Log(LOGDEBUG, "usleep(RW_WAIT_TIME), len(%d)", len); -+ CLog::Log(LOGDEBUG, "Codec buffer full, try after %d ms, len(%d)", RW_WAIT_TIME / 1000, len); - return PLAYER_SUCCESS; - } - } else { -@@ -1522,6 +1522,7 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) - m_state = 0; - m_frameSizes.clear(); - m_frameSizeSum = 0; -+ m_hints.pClock = hints.pClock; - - if (!OpenAmlVideo(hints)) - { -@@ -1848,6 +1849,7 @@ void CAMLCodec::CloseAmlVideo() - { - m_amlVideoFile.reset(); - SetVfmMap("default", m_defaultVfmMap); -+ m_amlVideoFile = NULL; - } - - void CAMLCodec::Reset() -@@ -1904,6 +1906,12 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) - if (!m_opened || !pData) - return false; - -+ struct buf_status bs; -+ m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); -+ if (iSize > (size_t)bs.free_len) { -+ CLog::Log(LOGERROR, "CAMLCodec::AddData: packet to big: %d, probably corrupted", iSize); -+ return false; -+ } - m_frameSizes.push_back(iSize); - m_frameSizeSum += iSize; - -@@ -1984,11 +1992,21 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) - Reset(); - return false; - } -+ if (iSize > 50000) -+ usleep(2000); // wait 2ms to process larger packets - -- CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::AddData: sz: %u, dts_in: %0.4lf[%llX], pts_in: %0.4lf[%llX], overflow:%llx", -+ int64_t cur_pts = m_cur_pts + m_ptsOverflow; -+ if (static_cast(cur_pts) / PTS_FREQ - static_cast(m_hints.pClock->GetClock()) / DVD_TIME_BASE > 10000.0) -+ cur_pts -= 0x80000000; -+ m_ttd = static_cast(cur_pts) / PTS_FREQ - static_cast(m_hints.pClock->GetClock()) / DVD_TIME_BASE + am_private->video_rate / UNIT_FREQ; -+ m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); -+ if (iSize > 0) -+ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::AddData: dl:%d sum:%u sz:%u dts_in:%0.3lf pts_in:%0.3lf ptsOut:%0.3f ttd:%0.0fms overflow:%llx", bs.data_len, m_frameSizeSum, - static_cast(iSize), -- dts / DVD_TIME_BASE, am_private->am_pkt.avdts, -- pts / DVD_TIME_BASE, am_private->am_pkt.avpts, -+ dts / DVD_TIME_BASE, -+ pts / DVD_TIME_BASE, -+ static_cast(cur_pts) / PTS_FREQ, -+ m_ttd * 1000.0, - m_ptsOverflow - ); - return true; -@@ -1996,6 +2014,7 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) - - std::atomic_flag CAMLCodec::m_pollSync = ATOMIC_FLAG_INIT; - int CAMLCodec::m_pollDevice; -+double CAMLCodec::m_ttd = 0; - - int CAMLCodec::PollFrame() - { -@@ -2004,16 +2023,16 @@ int CAMLCodec::PollFrame() - return 0; - - struct pollfd codec_poll_fd[1]; -+ std::chrono::time_point now(std::chrono::system_clock::now()); - - codec_poll_fd[0].fd = m_pollDevice; - codec_poll_fd[0].events = POLLOUT; - -- if (poll(codec_poll_fd, 1, 100) > 0) -- { -- g_aml_sync_event.Set(); -- return 1; -- } -- return 0; -+ poll(codec_poll_fd, 1, 50); -+ g_aml_sync_event.Set(); -+ int elapsed = std::chrono::duration_cast(std::chrono::system_clock::now() - now).count(); -+ CLog::Log(LOGDEBUG, LOGAVTIMING, "CAMLCodec::PollFrame elapsed:%0.3fms", elapsed / 1000.0); -+ return 1; - } - - void CAMLCodec::SetPollDevice(int dev) -@@ -2062,7 +2081,10 @@ DRAIN: - if (elapsed < std::chrono::milliseconds(waitTime)) - std::this_thread::sleep_for(std::chrono::milliseconds(waitTime) - elapsed); - -- if (m_drain && elapsed < std::chrono::milliseconds(100)) -+ int waited = std::chrono::duration_cast(std::chrono::system_clock::now() - now).count(); -+ CLog::Log(LOGDEBUG, LOGAVTIMING, "CAMLCodec::DequeueBuffer waited:%0.3fms", waited / 1000.0); -+ -+ if (m_drain && elapsed < std::chrono::milliseconds(300)) - { - waitTime += 10; - goto DRAIN; -@@ -2096,11 +2118,14 @@ float CAMLCodec::GetTimeSize() - struct buf_status bs; - m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); - -- //CLog::Log(LOGDEBUG, "CAMLCodec::Decode: buf status: s:%d dl:%d fl:%d rp:%u wp:%u",bs.size, bs.data_len, bs.free_len, bs.read_pointer, bs.write_pointer); -+ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::GetTimeSize: len:%d dl:%d fs:%u front:%u", -+ m_frameSizes.size(), bs.data_len, m_frameSizeSum, m_frameSizes.front()); - while (m_frameSizeSum > (unsigned int)bs.data_len) - { - m_frameSizeSum -= m_frameSizes.front(); - m_frameSizes.pop_front(); -+ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::GetTimeSize: len:%d dl:%d fs:%u front:%u", -+ m_frameSizes.size(), bs.data_len, m_frameSizeSum, m_frameSizes.front()); - } - if (bs.free_len < (bs.data_len >> 1)) - return 7.0; -diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h -index f7ec391..becf831 100644 ---- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h -+++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h -@@ -103,5 +103,6 @@ private: - - static std::atomic_flag m_pollSync; - static int m_pollDevice; -+ static double m_ttd; - CProcessInfo &m_processInfo; - }; -diff --git a/xbmc/cores/VideoPlayer/DVDStreamInfo.h b/xbmc/cores/VideoPlayer/DVDStreamInfo.h -index aed2b30..cdf7bcd 100644 ---- a/xbmc/cores/VideoPlayer/DVDStreamInfo.h -+++ b/xbmc/cores/VideoPlayer/DVDStreamInfo.h -@@ -14,6 +14,8 @@ extern "C" { - #include - } - -+#include "DVDClock.h" -+ - #define CODEC_FORCE_SOFTWARE 0x01 - #define CODEC_ALLOW_FALLBACK 0x02 - -@@ -60,6 +62,7 @@ public: - int orientation; // orientation of the video in degrees counter clockwise - int bitsperpixel; - std::string stereo_mode; // stereoscopic 3d mode -+ CDVDClock *pClock; - - // AUDIO - int channels; -diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp -index d8840ce..5165506 100644 ---- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp -+++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp -@@ -1749,6 +1749,12 @@ void CVideoPlayer::ProcessVideoData(CDemuxStream* pStream, DemuxPacket* pPacket) - if (CheckSceneSkip(m_CurrentVideo)) - drop = true; - -+ if ((m_CurrentVideo.lastdts == DVD_NOPTS_VALUE || pPacket->dts == DVD_NOPTS_VALUE) && (pPacket->pts != DVD_NOPTS_VALUE)) -+ m_clock.Discontinuity(pPacket->pts - DVD_TIME_BASE/2); -+ -+ m_CurrentVideo.lastdts = pPacket->dts; -+ CLog::Log(LOGDEBUG, "CVideoPlayer::ProcessVideoData size:%d dts:%0.3f pts:%0.3f dur:%0.3fms, clock:%0.3f level:%d", -+ pPacket->iSize, pPacket->dts/1000000, pPacket->pts/1000000, pPacket->duration/1000.0, m_clock.GetClock()/1000000.0, m_processInfo->GetLevelVQ()); - m_VideoPlayerVideo->SendMessage(new CDVDMsgDemuxerPacket(pPacket, drop)); - m_CurrentVideo.packets++; - } -diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -index 1a3e7db..ba27f5b 100644 ---- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -+++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp -@@ -23,6 +23,7 @@ - #include - #include - #include "utils/log.h" -+#include - - class CDVDMsgVideoCodecChange : public CDVDMsg - { -@@ -116,7 +117,8 @@ bool CVideoPlayerVideo::OpenStream(CDVDStreamInfo hint) - return false; - } - -- CLog::Log(LOGNOTICE, "Creating video codec with codec id: %i", hint.codec); -+ CLog::Log(LOGNOTICE, "CVideoPlayerVideo::%s - Creating codec: %i",__FUNCTION__, hint.codec); -+ hint.pClock = m_pClock; - - if (m_messageQueue.IsInited()) - { -@@ -200,7 +202,8 @@ void CVideoPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) - } - if (!codec) - { -- CLog::Log(LOGNOTICE, "Creating video codec with codec id: %i", hint.codec); -+ CLog::Log(LOGNOTICE, "CVideoPlayerVideo::%s - Creating Codec: %i",__FUNCTION__, hint.codec); -+ hint.pClock = m_pClock; - hint.codecOptions |= CODEC_ALLOW_FALLBACK; - codec = CDVDFactoryCodec::CreateVideoCodec(hint, m_processInfo); - if (!codec) -@@ -901,6 +904,7 @@ CVideoPlayerVideo::EOutputState CVideoPlayerVideo::OutputPicture(const VideoPict - } - - int timeToDisplay = DVD_TIME_TO_MSEC(pPicture->pts - iPlayingClock); -+ std::chrono::time_point now(std::chrono::system_clock::now()); - - // make sure waiting time is not negative - int maxWaitTime = std::min(std::max(timeToDisplay + 500, 50), 500); -@@ -908,6 +912,8 @@ CVideoPlayerVideo::EOutputState CVideoPlayerVideo::OutputPicture(const VideoPict - if (m_speed > DVD_PLAYSPEED_NORMAL) - maxWaitTime = std::max(timeToDisplay, 0); - int buffer = m_renderManager.WaitForBuffer(m_bAbortOutput, maxWaitTime); -+ CLog::Log(LOGDEBUG,"CVideoPlayerVideo::%s - ttd:%dms pts:%0.3lf Clock:%0.3f Level:%d elapsed:%0.3fms", -+ __FUNCTION__, timeToDisplay, pPicture->pts/1000000, iPlayingClock/1000000.0, buffer, std::chrono::duration_cast(std::chrono::system_clock::now() - now).count() / 1000.0); - if (buffer < 0) - { - return OUTPUT_AGAIN; --- -2.7.4 - From 0ae91e164feaf413a1b06e33e199f775da7a87e3 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 17 May 2019 18:48:48 +0100 Subject: [PATCH 31/47] [package] [mediacenter-osmc] Vero 4K: remove FPS patch as upstream version supersedes Signed-off-by: Sam Nazarko --- .../patches/vero3-147-fix-FPS.patch | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch diff --git a/package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch b/package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch deleted file mode 100644 index 4732e6682dd2..000000000000 --- a/package/mediacenter-osmc/patches/vero3-147-fix-FPS.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0d02bbdc050b091d5798ed2a3415c11679c7725d Mon Sep 17 00:00:00 2001 -From: Sam Nazarko -Date: Thu, 16 May 2019 17:20:09 +0100 -Subject: [PATCH] Fix FPS (59.94) from LE - -Signed-off-by: Sam Nazarko ---- - xbmc/cores/VideoPlayer/VideoPlayer.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp -index 5165506..43e88cc 100644 ---- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp -+++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp -@@ -3601,6 +3601,10 @@ bool CVideoPlayer::OpenStream(CCurrentStream& current, int64_t demuxerId, int iS - - if(m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD)) - hint.filename = "dvd"; -+ if (hint.fpsrate / hint.fpsscale > 200) { -+ hint.fpsrate = 60000; -+ hint.fpsscale = 1001; -+ } - } - else if(STREAM_SOURCE_MASK(source) == STREAM_SOURCE_VIDEOMUX) - { --- -2.7.4 - From 0858aa267b57ee36ecf9d7869111a17259e4778b Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Fri, 17 May 2019 20:38:57 +0100 Subject: [PATCH 32/47] [package] [mediacenter-osmc] Vero 4K: implement flush for AML render Signed-off-by: Sam Nazarko --- .../vero3-157-implement-buffer-flush.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 package/mediacenter-osmc/patches/vero3-157-implement-buffer-flush.patch diff --git a/package/mediacenter-osmc/patches/vero3-157-implement-buffer-flush.patch b/package/mediacenter-osmc/patches/vero3-157-implement-buffer-flush.patch new file mode 100644 index 000000000000..5f33795d547b --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-157-implement-buffer-flush.patch @@ -0,0 +1,39 @@ +From 798cef4baa2298304931fd1d1814d2901edfe359 Mon Sep 17 00:00:00 2001 +From: afl1 +Date: Wed, 20 Mar 2019 01:55:36 +0100 +Subject: [PATCH] RendereAML: add Flush() + +--- + .../VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp | 6 ++++++ + .../VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h | 1 + + 2 files changed, 7 insertions(+) + +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp +index c545374a549a..6fa5e513f840 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.cpp +@@ -141,6 +141,12 @@ void CRendererAML::Reset() + } + } + ++bool CRendererAML::Flush(bool saveBuffers) ++{ ++ Reset(); ++ return saveBuffers; ++}; ++ + void CRendererAML::RenderUpdate(int index, int index2, bool clear, unsigned int flags, unsigned int alpha) + { + ManageRenderArea(); +diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h +index 769f6319832b..eac38c09bb15 100644 +--- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h ++++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererAML.h +@@ -31,6 +31,7 @@ class CRendererAML : public CBaseRenderer + virtual void Update() override {}; + virtual void RenderUpdate(int index, int index2, bool clear, unsigned int flags, unsigned int alpha) override; + virtual bool SupportsMultiPassRendering()override { return false; }; ++ virtual bool Flush(bool saveBuffers) override; + + // Player functions + virtual bool IsGuiLayer() override { return false; }; From 94f29af68b6f293a8bc18e58bbffa090cf4345f7 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sat, 18 May 2019 20:52:31 +0100 Subject: [PATCH 33/47] [package] [mediacenter-osmc] Vero 4K: re-add amlcodec control fixes Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- .../vero3-158-amlcodec-control-fixes.patch | 258 ++++++++++++++++++ 2 files changed, 259 insertions(+), 1 deletion(-) create mode 100644 package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index 83d5e509162a..27a4c67bbc9f 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-11 +Version: 18.2.0-12 Section: video Essential: No Priority: required diff --git a/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch b/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch new file mode 100644 index 000000000000..daa0a40674e9 --- /dev/null +++ b/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch @@ -0,0 +1,258 @@ +From 4661ab78a60da1c3a809d7fd8b578947b45210e6 Mon Sep 17 00:00:00 2001 +From: afl1 +Date: Wed, 10 Apr 2019 10:22:49 +0200 +Subject: [PATCH] VideoPlayer: AMLCodec control fixies + +--- + .../VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 51 ++++++++++++++----- + .../VideoPlayer/DVDCodecs/Video/AMLCodec.h | 1 + + .../DVDCodecs/Video/DVDVideoCodecAmlogic.cpp | 1 + + xbmc/cores/VideoPlayer/DVDStreamInfo.h | 2 + + xbmc/cores/VideoPlayer/VideoPlayer.cpp | 6 +++ + xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp | 10 +++- + 6 files changed, 56 insertions(+), 15 deletions(-) + +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +index 8f0918e6ac2d..447ae231c7c0 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +@@ -249,7 +249,7 @@ static const int64_t INT64_0 = 0x8000000000000000ULL; + #define CODEC_TAG_jpeg (0x6765706a) + #define CODEC_TAG_mjpa (0x61706a6d) + +-#define RW_WAIT_TIME (20 * 1000) // 20ms ++#define RW_WAIT_TIME (5 * 1000) // 20ms + + #define P_PRE (0x02000000) + #define F_PRE (0x03000000) +@@ -671,7 +671,7 @@ int write_av_packet(am_private_t *para, am_packet_t *pkt) + pkt->data += len; + pkt->data_size -= len; + usleep(RW_WAIT_TIME); +- CLog::Log(LOGDEBUG, "usleep(RW_WAIT_TIME), len(%d)", len); ++ CLog::Log(LOGDEBUG, "Codec buffer full, try after %d ms, len(%d)", RW_WAIT_TIME / 1000, len); + return PLAYER_SUCCESS; + } + } else { +@@ -1524,6 +1524,7 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) + m_state = 0; + m_frameSizes.clear(); + m_frameSizeSum = 0; ++ m_hints.pClock = hints.pClock; + + if (!OpenAmlVideo(hints)) + { +@@ -1856,6 +1857,7 @@ void CAMLCodec::CloseAmlVideo() + { + m_amlVideoFile.reset(); + SetVfmMap("default", m_defaultVfmMap); ++ m_amlVideoFile = NULL; + } + + void CAMLCodec::Reset() +@@ -1912,6 +1914,12 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + if (!m_opened || !pData) + return false; + ++ struct buf_status bs; ++ m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); ++ if (iSize > (size_t)bs.free_len) { ++ CLog::Log(LOGERROR, "CAMLCodec::AddData: packet to big: %d, probably corrupted", iSize); ++ return false; ++ } + m_frameSizes.push_back(iSize); + m_frameSizeSum += iSize; + +@@ -1994,11 +2002,21 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + Reset(); + return false; + } ++ if (iSize > 50000) ++ usleep(2000); // wait 2ms to process larger packets + +- CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::AddData: sz: %u, dts_in: %0.4lf[%llX], pts_in: %0.4lf[%llX], overflow:%llx", ++ int64_t cur_pts = m_cur_pts + m_ptsOverflow; ++ if (static_cast(cur_pts) / PTS_FREQ - static_cast(m_hints.pClock->GetClock()) / DVD_TIME_BASE > 10000.0) ++ cur_pts -= 0x80000000; ++ m_ttd = static_cast(cur_pts) / PTS_FREQ - static_cast(m_hints.pClock->GetClock()) / DVD_TIME_BASE + am_private->video_rate / UNIT_FREQ; ++ m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); ++ if (iSize > 0) ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::AddData: dl:%d sum:%u sz:%u dts_in:%0.3lf pts_in:%0.3lf ptsOut:%0.3f ttd:%0.0fms overflow:%llx", bs.data_len, m_frameSizeSum, + static_cast(iSize), +- dts / DVD_TIME_BASE, am_private->am_pkt.avdts, +- pts / DVD_TIME_BASE, am_private->am_pkt.avpts, ++ dts / DVD_TIME_BASE, ++ pts / DVD_TIME_BASE, ++ static_cast(cur_pts) / PTS_FREQ, ++ m_ttd * 1000.0, + m_ptsOverflow + ); + return true; +@@ -2006,6 +2024,7 @@ bool CAMLCodec::AddData(uint8_t *pData, size_t iSize, double dts, double pts) + + std::atomic_flag CAMLCodec::m_pollSync = ATOMIC_FLAG_INIT; + int CAMLCodec::m_pollDevice; ++double CAMLCodec::m_ttd = 0; + + int CAMLCodec::PollFrame() + { +@@ -2014,16 +2033,16 @@ int CAMLCodec::PollFrame() + return 0; + + struct pollfd codec_poll_fd[1]; ++ std::chrono::time_point now(std::chrono::system_clock::now()); + + codec_poll_fd[0].fd = m_pollDevice; + codec_poll_fd[0].events = POLLOUT; + +- if (poll(codec_poll_fd, 1, 100) > 0) +- { +- g_aml_sync_event.Set(); +- return 1; +- } +- return 0; ++ poll(codec_poll_fd, 1, 50); ++ g_aml_sync_event.Set(); ++ int elapsed = std::chrono::duration_cast(std::chrono::system_clock::now() - now).count(); ++ CLog::Log(LOGDEBUG, LOGAVTIMING, "CAMLCodec::PollFrame elapsed:%0.3fms", elapsed / 1000.0); ++ return 1; + } + + void CAMLCodec::SetPollDevice(int dev) +@@ -2072,7 +2091,10 @@ int CAMLCodec::DequeueBuffer() + if (elapsed < std::chrono::milliseconds(waitTime)) + std::this_thread::sleep_for(std::chrono::milliseconds(waitTime) - elapsed); + +- if (m_drain && elapsed < std::chrono::milliseconds(100)) ++ int waited = std::chrono::duration_cast(std::chrono::system_clock::now() - now).count(); ++ CLog::Log(LOGDEBUG, LOGAVTIMING, "CAMLCodec::DequeueBuffer waited:%0.3fms", waited / 1000.0); ++ ++ if (m_drain && elapsed < std::chrono::milliseconds(300)) + { + waitTime += 10; + goto DRAIN; +@@ -2106,11 +2128,14 @@ float CAMLCodec::GetTimeSize() + struct buf_status bs; + m_dll->codec_get_vbuf_state(&am_private->vcodec, &bs); + +- //CLog::Log(LOGDEBUG, "CAMLCodec::Decode: buf status: s:%d dl:%d fl:%d rp:%u wp:%u",bs.size, bs.data_len, bs.free_len, bs.read_pointer, bs.write_pointer); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::GetTimeSize: len:%d dl:%d fs:%u front:%u", ++ m_frameSizes.size(), bs.data_len, m_frameSizeSum, m_frameSizes.front()); + while (m_frameSizeSum > (unsigned int)bs.data_len) + { + m_frameSizeSum -= m_frameSizes.front(); + m_frameSizes.pop_front(); ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CAMLCodec::GetTimeSize: len:%d dl:%d fs:%u front:%u", ++ m_frameSizes.size(), bs.data_len, m_frameSizeSum, m_frameSizes.front()); + } + if (bs.free_len < (bs.data_len >> 1)) + return 7.0; +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h +index 2f67ed72a6a6..652a31a7a761 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.h +@@ -104,5 +104,6 @@ class CAMLCodec + + static std::atomic_flag m_pollSync; + static int m_pollDevice; ++ static double m_ttd; + CProcessInfo &m_processInfo; + }; +diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp +index afbf11c659df..92ebc930ec3c 100644 +--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp ++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAmlogic.cpp +@@ -118,6 +118,7 @@ bool CDVDVideoCodecAmlogic::Open(CDVDStreamInfo &hints, CDVDCodecOptions &option + m_opened = false; + + m_hints = hints; ++ m_hints.pClock = hints.pClock; + + CLog::Log(LOGDEBUG, "CDVDVideoCodecAmlogic::Opening: codec %d profile:%d extra_size:%d", m_hints.codec, hints.profile, hints.extrasize); + +diff --git a/xbmc/cores/VideoPlayer/DVDStreamInfo.h b/xbmc/cores/VideoPlayer/DVDStreamInfo.h +index aed2b3078dc8..dca0ba4878c4 100644 +--- a/xbmc/cores/VideoPlayer/DVDStreamInfo.h ++++ b/xbmc/cores/VideoPlayer/DVDStreamInfo.h +@@ -13,6 +13,7 @@ + extern "C" { + #include + } ++#include "DVDClock.h" + + #define CODEC_FORCE_SOFTWARE 0x01 + #define CODEC_ALLOW_FALLBACK 0x02 +@@ -60,6 +61,7 @@ class CDVDStreamInfo + int orientation; // orientation of the video in degrees counter clockwise + int bitsperpixel; + std::string stereo_mode; // stereoscopic 3d mode ++ CDVDClock *pClock; + + // AUDIO + int channels; +diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +index 7c3a971943c2..aa204e619a91 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp +@@ -1752,6 +1752,12 @@ void CVideoPlayer::ProcessVideoData(CDemuxStream* pStream, DemuxPacket* pPacket) + if (CheckSceneSkip(m_CurrentVideo)) + drop = true; + ++ if ((m_CurrentVideo.lastdts == DVD_NOPTS_VALUE || pPacket->dts == DVD_NOPTS_VALUE) && (pPacket->pts != DVD_NOPTS_VALUE)) ++ m_clock.Discontinuity(pPacket->pts - DVD_TIME_BASE/2); ++ ++ m_CurrentVideo.lastdts = pPacket->dts; ++ CLog::Log(LOGDEBUG, "CVideoPlayer::ProcessVideoData size:%d dts:%0.3f pts:%0.3f dur:%0.3fms, clock:%0.3f level:%d", ++ pPacket->iSize, pPacket->dts/1000000, pPacket->pts/1000000, pPacket->duration/1000.0, m_clock.GetClock()/1000000.0, m_processInfo->GetLevelVQ()); + m_VideoPlayerVideo->SendMessage(new CDVDMsgDemuxerPacket(pPacket, drop)); + m_CurrentVideo.packets++; + } +diff --git a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +index 2721d7ee83c1..a0a737488f46 100644 +--- a/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp ++++ b/xbmc/cores/VideoPlayer/VideoPlayerVideo.cpp +@@ -23,6 +23,7 @@ + #include + #include + #include "utils/log.h" ++#include + + class CDVDMsgVideoCodecChange : public CDVDMsg + { +@@ -116,7 +117,8 @@ bool CVideoPlayerVideo::OpenStream(CDVDStreamInfo hint) + return false; + } + +- CLog::Log(LOGNOTICE, "Creating video codec with codec id: %i", hint.codec); ++ CLog::Log(LOGNOTICE, "CVideoPlayerVideo::%s - Creating codec: %i",__FUNCTION__, hint.codec); ++ hint.pClock = m_pClock; + + if (m_messageQueue.IsInited()) + { +@@ -214,7 +216,8 @@ void CVideoPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) + } + if (!codec) + { +- CLog::Log(LOGNOTICE, "Creating video codec with codec id: %i", hint.codec); ++ CLog::Log(LOGNOTICE, "CVideoPlayerVideo::%s - Creating Codec: %i",__FUNCTION__, hint.codec); ++ hint.pClock = m_pClock; + hint.codecOptions |= CODEC_ALLOW_FALLBACK; + codec = CDVDFactoryCodec::CreateVideoCodec(hint, m_processInfo); + if (!codec) +@@ -927,6 +930,7 @@ CVideoPlayerVideo::EOutputState CVideoPlayerVideo::OutputPicture(const VideoPict + } + + int timeToDisplay = DVD_TIME_TO_MSEC(pPicture->pts - iPlayingClock); ++ std::chrono::time_point now(std::chrono::system_clock::now()); + + // make sure waiting time is not negative + int maxWaitTime = std::min(std::max(timeToDisplay + 500, 50), 500); +@@ -934,6 +938,8 @@ CVideoPlayerVideo::EOutputState CVideoPlayerVideo::OutputPicture(const VideoPict + if (m_speed > DVD_PLAYSPEED_NORMAL) + maxWaitTime = std::max(timeToDisplay, 0); + int buffer = m_renderManager.WaitForBuffer(m_bAbortOutput, maxWaitTime); ++ CLog::Log(LOGDEBUG,"CVideoPlayerVideo::%s - ttd:%dms pts:%0.3lf Clock:%0.3f Level:%d elapsed:%0.3fms", ++ __FUNCTION__, timeToDisplay, pPicture->pts/1000000, iPlayingClock/1000000.0, buffer, std::chrono::duration_cast(std::chrono::system_clock::now() - now).count() / 1000.0); + if (buffer < 0) + { + return OUTPUT_AGAIN; From 9f695b15e7d2129df7141e9404c86e53666dc184 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sun, 19 May 2019 14:55:24 +0100 Subject: [PATCH 34/47] [package] [base-files-osmc] Bump to 2019.05-1 Signed-off-by: Sam Nazarko --- package/base-files-osmc/files/DEBIAN/control | 2 +- package/base-files-osmc/files/etc/os-release | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/base-files-osmc/files/DEBIAN/control b/package/base-files-osmc/files/DEBIAN/control index 959168cd4b44..40289bf2603a 100644 --- a/package/base-files-osmc/files/DEBIAN/control +++ b/package/base-files-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: base-files-osmc -Version: 2.7.6 +Version: 2.7.7 Section: admin Priority: required Architecture: all diff --git a/package/base-files-osmc/files/etc/os-release b/package/base-files-osmc/files/etc/os-release index 191fdda13768..d05195751ba5 100644 --- a/package/base-files-osmc/files/etc/os-release +++ b/package/base-files-osmc/files/etc/os-release @@ -1,7 +1,7 @@ PRETTY_NAME="Open Source Media Center" NAME="OSMC" -VERSION="April 2019" -VERSION_ID="2019.04-1" +VERSION="May 2019" +VERSION_ID="2019.05-1" ID=osmc ID_LIKE=debian From 028e56cdf5bd7fe55663812c9b0ef86e39a474e3 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Sun, 19 May 2019 14:57:02 +0100 Subject: [PATCH 35/47] [installer] [noobs] Bump to 2019.05-1 Signed-off-by: Sam Nazarko --- installer/noobs/os-pi1.json | 4 ++-- installer/noobs/os-pi2.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/installer/noobs/os-pi1.json b/installer/noobs/os-pi1.json index 4df2eb8a8d53..9ba11e44c37e 100644 --- a/installer/noobs/os-pi1.json +++ b/installer/noobs/os-pi1.json @@ -1,8 +1,8 @@ { "name": "OSMC_Pi1", "url": "https://osmc.tv", - "version": "2019.04-1", - "release_date": "2019-04-21", + "version": "2019.05-1", + "release_date": "2019-05-19", "kernel": "4.14.78", "description": "A fast and feature filled open source media center", "username": "osmc", diff --git a/installer/noobs/os-pi2.json b/installer/noobs/os-pi2.json index cec10048c783..17dd5448c039 100644 --- a/installer/noobs/os-pi2.json +++ b/installer/noobs/os-pi2.json @@ -1,8 +1,8 @@ { "name": "OSMC_Pi2", "url": "https://osmc.tv", - "version": "2019.04-1", - "release_date": "2019-04-21", + "version": "2019.05-1", + "release_date": "2019-05-19", "kernel": "4.14.78", "description": "A fast and feature filled open source media center", "username": "osmc", From dd4eff72a54cfb2c5541959e65d0cd54c275caad Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Mon, 20 May 2019 02:34:34 +0100 Subject: [PATCH 36/47] [package] [mediacenter-osmc] Fix VC-1 again Signed-off-by: Sam Nazarko --- package/mediacenter-osmc/files/DEBIAN/control | 2 +- ...066-fix-deinterlacing-of-progressive.patch | 26 +++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/package/mediacenter-osmc/files/DEBIAN/control b/package/mediacenter-osmc/files/DEBIAN/control index 27a4c67bbc9f..253cc05d9e53 100644 --- a/package/mediacenter-osmc/files/DEBIAN/control +++ b/package/mediacenter-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 18.2.0-12 +Version: 18.2.0-13 Section: video Essential: No Priority: required diff --git a/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch b/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch index 67db05a9ce14..49b8de8d7a6d 100644 --- a/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch +++ b/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch @@ -1,4 +1,4 @@ -From bf93c5b10b00e2efa5bf3194e9db431da68eadb0 Mon Sep 17 00:00:00 2001 +From 73fb07656d83d2e02a6658d93cc5b879bdb8bc4b Mon Sep 17 00:00:00 2001 From: kszaq Date: Mon, 20 Feb 2017 00:34:53 +0100 Subject: [PATCH] aml: work around forced deinterlacing of progressive videos @@ -10,25 +10,35 @@ for progressive videos. On the other hand, bypassing it for VC-1 makes playback 2x slower, do bypass it only for other formats. --- - xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 5 +++++ - 1 file changed, 5 insertions(+) + xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -index c77bc05..aa75060 100644 +index 10ef7d3..c21bb79 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -@@ -1544,6 +1544,11 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) +@@ -1641,10 +1641,19 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) am_private->gcodec.ratio64 = am_private->video_ratio64; am_private->gcodec.param = NULL; +- if (am_private->video_format == VFORMAT_VC1) ++ if (am_private->video_format == VFORMAT_VC1) { + SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 0); +- else ++ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 0); ++ } ++ else { + SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 1); ++ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 1); ++ } ++ + if (am_private->video_format == VFORMAT_VC1) + SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 0); + else + SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 1); -+ + switch(am_private->video_format) { - default: -- -1.8.3.1 +2.7.4 From 401217f61d1aa7bf780ae9ac9be2fcc8d2920317 Mon Sep 17 00:00:00 2001 From: Graham Horner Date: Tue, 21 May 2019 21:26:13 +0100 Subject: [PATCH 37/47] [package][mediacenter-osmc] fix VC-1 again again --- ...066-fix-deinterlacing-of-progressive.patch | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch b/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch index 49b8de8d7a6d..f2031d4a6332 100644 --- a/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch +++ b/package/mediacenter-osmc/patches/vero3-066-fix-deinterlacing-of-progressive.patch @@ -11,34 +11,31 @@ On the other hand, bypassing it for VC-1 makes playback 2x slower, do bypass it only for other formats. --- xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) + 1 file changed, 11 insertions(+), 0 deletions(-) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -index 10ef7d3..c21bb79 100644 +index 10e73cc74f..faa42d66cb 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/AMLCodec.cpp -@@ -1641,10 +1641,19 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) +@@ -1640,6 +1640,17 @@ bool CAMLCodec::OpenDecoder(CDVDStreamInfo &hints) am_private->gcodec.ratio64 = am_private->video_ratio64; am_private->gcodec.param = NULL; -- if (am_private->video_format == VFORMAT_VC1) -+ if (am_private->video_format == VFORMAT_VC1) { - SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 0); -- else ++ if (am_private->video_format == VFORMAT_VC1) ++ { ++ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 0); + SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 0); + } -+ else { - SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 1); ++ else ++ { ++ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_prog", 1); + SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 1); + } + -+ if (am_private->video_format == VFORMAT_VC1) -+ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 0); -+ else -+ SysfsUtils::SetInt("/sys/module/di/parameters/bypass_all", 1); - switch(am_private->video_format) { + default: + -- 2.7.4 From 53c83760c1143ca128857ee504309e49c5e5cd8a Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Tue, 28 May 2019 12:51:31 +0100 Subject: [PATCH 38/47] [package] [mediacenter-skin-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-skin-osmc/build.sh | 2 +- package/mediacenter-skin-osmc/files/DEBIAN/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mediacenter-skin-osmc/build.sh b/package/mediacenter-skin-osmc/build.sh index ff988bd9cfd0..0e1751332c76 100755 --- a/package/mediacenter-skin-osmc/build.sh +++ b/package/mediacenter-skin-osmc/build.sh @@ -7,7 +7,7 @@ make clean -REV="6122aeb0725e99b18df02c0726f1ba2256f996ef" +REV="d45e3443c8cec9af4d9a5b4b5b34f4790637fee8" echo -e "Building package mediacenter-skin-osmc" echo -e "Downloading skin" pull_source "https://github.com/osmc/skin.osmc/archive/${REV}.tar.gz" "$(pwd)/src" diff --git a/package/mediacenter-skin-osmc/files/DEBIAN/control b/package/mediacenter-skin-osmc/files/DEBIAN/control index 5cad2d17d665..e3845c6adeae 100644 --- a/package/mediacenter-skin-osmc/files/DEBIAN/control +++ b/package/mediacenter-skin-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: mediacenter-skin-osmc -Version: 18.0.0-7 +Version: 18.0.0-8 Section: video Essential: No Priority: optional From 0d17902d05b4b155b8dcbd6d6a1dc2484fcffc68 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Tue, 28 May 2019 23:48:36 +0100 Subject: [PATCH 39/47] [package] [base-files-osmc] Bump to 2019.05-2 Signed-off-by: Sam Nazarko --- package/base-files-osmc/files/DEBIAN/control | 2 +- package/base-files-osmc/files/etc/os-release | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/base-files-osmc/files/DEBIAN/control b/package/base-files-osmc/files/DEBIAN/control index 40289bf2603a..3e8d7b5daca2 100644 --- a/package/base-files-osmc/files/DEBIAN/control +++ b/package/base-files-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: base-files-osmc -Version: 2.7.7 +Version: 2.7.8 Section: admin Priority: required Architecture: all diff --git a/package/base-files-osmc/files/etc/os-release b/package/base-files-osmc/files/etc/os-release index d05195751ba5..8b90224fa223 100644 --- a/package/base-files-osmc/files/etc/os-release +++ b/package/base-files-osmc/files/etc/os-release @@ -1,7 +1,7 @@ PRETTY_NAME="Open Source Media Center" NAME="OSMC" VERSION="May 2019" -VERSION_ID="2019.05-1" +VERSION_ID="2019.05-2" ID=osmc ID_LIKE=debian From 21a82cfe508a63af22d7991f06e7d2b9590b487e Mon Sep 17 00:00:00 2001 From: Graham Horner Date: Tue, 28 May 2019 19:26:15 +0100 Subject: [PATCH 40/47] [package][mediacenter-osmc] Prefer higher res at correct frame rate --- ...l-121-prefer-higher-res-at-framerate.patch | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 package/mediacenter-osmc/patches/all-121-prefer-higher-res-at-framerate.patch diff --git a/package/mediacenter-osmc/patches/all-121-prefer-higher-res-at-framerate.patch b/package/mediacenter-osmc/patches/all-121-prefer-higher-res-at-framerate.patch new file mode 100644 index 000000000000..38499c26807f --- /dev/null +++ b/package/mediacenter-osmc/patches/all-121-prefer-higher-res-at-framerate.patch @@ -0,0 +1,155 @@ +From 41b2a8772045039962a1fee8dff114ada4844fd0 Mon Sep 17 00:00:00 2001 +From: Graham Horner +Date: Thu, 16 May 2019 17:05:12 +0100 +Subject: [PATCH] Sort whitelist lowres to highres and match exact framerate at + higher resolutions + +--- + xbmc/settings/DisplaySettings.cpp | 2 +- + xbmc/utils/Variant.cpp | 24 ++++++++++++++++++++++++ + xbmc/utils/Variant.h | 1 + + xbmc/windowing/Resolution.cpp | 37 ++++++++++++++++++++++++++++++++++--- + 4 files changed, 60 insertions(+), 4 deletions(-) + +diff --git a/xbmc/settings/DisplaySettings.cpp b/xbmc/settings/DisplaySettings.cpp +index 9d09dc2e14..ed530829d4 100644 +--- a/xbmc/settings/DisplaySettings.cpp ++++ b/xbmc/settings/DisplaySettings.cpp +@@ -682,7 +682,7 @@ RESOLUTION CDisplaySettings::GetResolutionForScreen() + + static inline bool ModeSort(StringSettingOption i,StringSettingOption j) + { +- return (i.value > j.value); ++ return (i.value < j.value); + } + + void CDisplaySettings::SettingOptionsModesFiller(std::shared_ptr setting, std::vector &list, std::string ¤t, void *data) +diff --git a/xbmc/utils/Variant.cpp b/xbmc/utils/Variant.cpp +index 66ab15ef7d..8b091e82a9 100644 +--- a/xbmc/utils/Variant.cpp ++++ b/xbmc/utils/Variant.cpp +@@ -682,6 +682,30 @@ bool CVariant::operator==(const CVariant &rhs) const + return false; + } + ++bool CVariant::operator<(const CVariant &rhs) const ++{ ++ if (m_type == rhs.m_type) ++ { ++ switch (m_type) ++ { ++ case VariantTypeInteger: ++ return m_data.integer < rhs.m_data.integer; ++ case VariantTypeUnsignedInteger: ++ return m_data.unsignedinteger < rhs.m_data.unsignedinteger; ++ case VariantTypeDouble: ++ return m_data.dvalue < rhs.m_data.dvalue; ++ case VariantTypeString: ++ return *m_data.string < *rhs.m_data.string; ++ case VariantTypeWideString: ++ return *m_data.wstring < *rhs.m_data.wstring; ++ default: ++ break; ++ } ++ } ++ ++ return false; ++} ++ + void CVariant::push_back(const CVariant &variant) + { + if (m_type == VariantTypeNull) +diff --git a/xbmc/utils/Variant.h b/xbmc/utils/Variant.h +index fc5e06fcfe..08f6d16b08 100644 +--- a/xbmc/utils/Variant.h ++++ b/xbmc/utils/Variant.h +@@ -101,6 +101,7 @@ public: + CVariant &operator=(CVariant &&rhs); + bool operator==(const CVariant &rhs) const; + bool operator!=(const CVariant &rhs) const { return !(*this == rhs); } ++ bool operator<(const CVariant &rhs) const; + + void push_back(const CVariant &variant); + void push_back(CVariant &&variant); +diff --git a/xbmc/windowing/Resolution.cpp b/xbmc/windowing/Resolution.cpp +index 19a2dde602..d538d3d5bd 100644 +--- a/xbmc/windowing/Resolution.cpp ++++ b/xbmc/windowing/Resolution.cpp +@@ -70,6 +70,11 @@ RESOLUTION CResolutionUtils::ChooseBestResolution(float fps, int width, int heig + return res; + } + ++static inline bool ModeSort(CVariant i, CVariant j) ++{ ++ return (i < j); ++} ++ + void CResolutionUtils::FindResolutionFromWhitelist(float fps, int width, int height, bool is3D, RESOLUTION &resolution) + { + RESOLUTION_INFO curr = CServiceBroker::GetWinSystem()->GetGfxContext().GetResInfo(resolution); +@@ -103,6 +108,8 @@ void CResolutionUtils::FindResolutionFromWhitelist(float fps, int width, int hei + } + } + ++ std::sort(indexList.begin(), indexList.end(), ModeSort); ++ + CLog::Log(LOGDEBUG, "Trying to find exact refresh rate"); + + for (const auto& mode : indexList) +@@ -163,7 +170,8 @@ void CResolutionUtils::FindResolutionFromWhitelist(float fps, int width, int hei + } + } + +- CLog::Log(LOGDEBUG, "No 3:2 pullback refresh rate whitelisted resolution matched, trying current resolution"); ++ CLog::Log(LOGDEBUG, "No 3:2 pullback whitelisted resolution matched, trying current resolution %s (%d)", ++ curr.strMode.c_str(), resolution); + + if (width <= curr.iScreenWidth + && height <= curr.iScreenHeight +@@ -174,10 +182,33 @@ void CResolutionUtils::FindResolutionFromWhitelist(float fps, int width, int hei + return; + } + +- CLog::Log(LOGDEBUG, "Current resolution doesn't match, trying default resolution"); ++ /* Prefer upscaling at the correct framerate if available and specifically whitelisted ++ * eg for displays with 2160p25/50 but no 1080p25/50 ++ */ ++ if (HasWhitelist()) ++ { ++ CLog::Log(LOGDEBUG, "Current resolution doesn't match, trying higher resolutions"); ++ for (const auto& mode : indexList) ++ { ++ auto i = CDisplaySettings::GetInstance().GetResFromString(mode.asString()); ++ const RESOLUTION_INFO info = CServiceBroker::GetWinSystem()->GetGfxContext().GetResInfo(i); ++ ++ // pick the lowest resolution that has a matching refresh rate ++ if ((info.iScreenHeight >= height || info.iScreenWidth >= width) && ++ (info.dwFlags & D3DPRESENTFLAG_MODEMASK) == (curr.dwFlags & D3DPRESENTFLAG_MODEMASK) && ++ MathUtils::FloatEquals(info.fRefreshRate, fps, 0.01f)) ++ { ++ resolution = i; ++ CLog::Log(LOGDEBUG, "Matched fuzzy whitelisted Resolution %s (%d)", info.strMode.c_str(), i); ++ return; ++ } ++ } ++ } + + const RESOLUTION_INFO desktop_info = CServiceBroker::GetWinSystem()->GetGfxContext().GetResInfo(CDisplaySettings::GetInstance().GetCurrentResolution()); + ++ CLog::Log(LOGDEBUG, "Current resolution doesn't match, trying default resolution %s", desktop_info.strMode.c_str()); ++ + for (const auto& mode : indexList) + { + auto i = CDisplaySettings::GetInstance().GetResFromString(mode.asString()); +@@ -194,7 +225,7 @@ void CResolutionUtils::FindResolutionFromWhitelist(float fps, int width, int hei + } + } + +- CLog::Log(LOGDEBUG, "Default resolution doesn't provide reqired refreshrate, trying default resolution with double refreshrate"); ++ CLog::Log(LOGDEBUG, "Default resolution doesn't provide required refreshrate, trying default resolution with double refreshrate"); + + for (const auto& mode : indexList) + { +-- +2.11.0 + From 313ae18e64bf463e6d640f90ab0f226005735f80 Mon Sep 17 00:00:00 2001 From: Graham Horner Date: Tue, 28 May 2019 18:50:15 +0100 Subject: [PATCH 41/47] [package][mediacenter-osmc] Reduce video logspam --- .../patches/vero3-158-amlcodec-control-fixes.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch b/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch index daa0a40674e9..d350a60020b4 100644 --- a/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch +++ b/package/mediacenter-osmc/patches/vero3-158-amlcodec-control-fixes.patch @@ -202,7 +202,7 @@ index 7c3a971943c2..aa204e619a91 100644 + m_clock.Discontinuity(pPacket->pts - DVD_TIME_BASE/2); + + m_CurrentVideo.lastdts = pPacket->dts; -+ CLog::Log(LOGDEBUG, "CVideoPlayer::ProcessVideoData size:%d dts:%0.3f pts:%0.3f dur:%0.3fms, clock:%0.3f level:%d", ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayer::ProcessVideoData size:%d dts:%0.3f pts:%0.3f dur:%0.3fms, clock:%0.3f level:%d", + pPacket->iSize, pPacket->dts/1000000, pPacket->pts/1000000, pPacket->duration/1000.0, m_clock.GetClock()/1000000.0, m_processInfo->GetLevelVQ()); m_VideoPlayerVideo->SendMessage(new CDVDMsgDemuxerPacket(pPacket, drop)); m_CurrentVideo.packets++; @@ -251,7 +251,7 @@ index 2721d7ee83c1..a0a737488f46 100644 if (m_speed > DVD_PLAYSPEED_NORMAL) maxWaitTime = std::max(timeToDisplay, 0); int buffer = m_renderManager.WaitForBuffer(m_bAbortOutput, maxWaitTime); -+ CLog::Log(LOGDEBUG,"CVideoPlayerVideo::%s - ttd:%dms pts:%0.3lf Clock:%0.3f Level:%d elapsed:%0.3fms", ++ CLog::Log(LOGDEBUG, LOGVIDEO, "CVideoPlayerVideo::%s - ttd:%dms pts:%0.3lf Clock:%0.3f Level:%d elapsed:%0.3fms", + __FUNCTION__, timeToDisplay, pPicture->pts/1000000, iPlayingClock/1000000.0, buffer, std::chrono::duration_cast(std::chrono::system_clock::now() - now).count() / 1000.0); if (buffer < 0) { From 0c5b932cc3cf82a56a93cae91446851dbed7f2ee Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Thu, 30 May 2019 15:32:25 +0100 Subject: [PATCH 42/47] [package] [mediacenter-skin-osmc] Bump to 42fbcc7ad02915226b849ca816302373103b3c0a Signed-off-by: Sam Nazarko --- package/mediacenter-skin-osmc/build.sh | 2 +- package/mediacenter-skin-osmc/files/DEBIAN/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/mediacenter-skin-osmc/build.sh b/package/mediacenter-skin-osmc/build.sh index 0e1751332c76..75ca47502033 100755 --- a/package/mediacenter-skin-osmc/build.sh +++ b/package/mediacenter-skin-osmc/build.sh @@ -7,7 +7,7 @@ make clean -REV="d45e3443c8cec9af4d9a5b4b5b34f4790637fee8" +REV="42fbcc7ad02915226b849ca816302373103b3c0a" echo -e "Building package mediacenter-skin-osmc" echo -e "Downloading skin" pull_source "https://github.com/osmc/skin.osmc/archive/${REV}.tar.gz" "$(pwd)/src" diff --git a/package/mediacenter-skin-osmc/files/DEBIAN/control b/package/mediacenter-skin-osmc/files/DEBIAN/control index e3845c6adeae..daef15f7cdbe 100644 --- a/package/mediacenter-skin-osmc/files/DEBIAN/control +++ b/package/mediacenter-skin-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: mediacenter-skin-osmc -Version: 18.0.0-8 +Version: 18.0.0-9 Section: video Essential: No Priority: optional From cd422262082fb64afc49e30ec27e52d1d7d5992a Mon Sep 17 00:00:00 2001 From: Brian Millham Date: Sun, 2 Jun 2019 23:31:06 -0400 Subject: [PATCH 43/47] Added showing default settings of gui items If a gui setting is changed from the default, the default setting will now be shown along with the current setting. --- .../resources/lib/readgui.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py index a219c281844a..b01c485a5b1c 100644 --- a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py +++ b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py @@ -32,6 +32,8 @@ ('videoplayer', 'useamcodecmpeg2'), ('videoplayer', 'useamcodecmpeg4'), ('videoplayer', 'useamcodech264'), + ("videoscreen", "force422"), + ("videoscreen", "screenmode"), ] class GuiParser(object): @@ -119,6 +121,9 @@ def parse_settings(self, *args, **kwargs): system_settings[_id]['options'] = {} for o in options: system_settings[_id]['options'][o.text] = o.attrib['label'] + default = setting.find('default') + if default is not None: + system_settings[_id]['default'] = default.text self.system_settings = system_settings @@ -170,7 +175,17 @@ def parse(self, *args, **kwargs): else: t = setting.text - self.parsed_values.append('{}: {}'.format(lb, t)) + setting_formatted = "{}: {}".format(lb, t) + if self.system_settings[sj]['default'] != setting.text: + try: + setting_formatted += " ===> Default: {}".format( + self.system_strings[ + section['options'][ + self.system_settings[sj]['default'] + ]]) + except Exception: + setting_formatted += "" # Unknown default value + self.parsed_values.append(setting_formatted) return self.parsed_values From 01da99f31927d9e84b2de03a95557bbe56bb4ed8 Mon Sep 17 00:00:00 2001 From: Brian Millham Date: Mon, 3 Jun 2019 01:18:10 -0400 Subject: [PATCH 44/47] [package][mediacenter-addon-osmc] Fix permissions on readgui.py Added executable for all on readgui.py --- .../script.module.osmcsetting.logging/resources/lib/readgui.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py diff --git a/package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py b/package/mediacenter-addon-osmc/src/script.module.osmcsetting.logging/resources/lib/readgui.py old mode 100644 new mode 100755 From e4f2c4c2bb8dde933acb3e77c1cafdb8099b42ab Mon Sep 17 00:00:00 2001 From: Brian Millham Date: Mon, 3 Jun 2019 01:48:32 -0400 Subject: [PATCH 45/47] [package][mediacenter-addon-osmc] Created symlink to readgui.py Created sym link from /usr/bin/readgui to readgui.py --- package/mediacenter-addon-osmc/files/usr/bin/readgui | 1 + 1 file changed, 1 insertion(+) create mode 120000 package/mediacenter-addon-osmc/files/usr/bin/readgui diff --git a/package/mediacenter-addon-osmc/files/usr/bin/readgui b/package/mediacenter-addon-osmc/files/usr/bin/readgui new file mode 120000 index 000000000000..05d5d9f910b9 --- /dev/null +++ b/package/mediacenter-addon-osmc/files/usr/bin/readgui @@ -0,0 +1 @@ +/usr/share/kodi/addons/script.module.osmcsetting.logging/resources/lib/readgui.py \ No newline at end of file From 78fb9fb4e0515358bea6387bc1647100db121bf8 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Tue, 4 Jun 2019 14:19:15 +0100 Subject: [PATCH 46/47] [package] [mediacenter-addon-osmc] Bump version Signed-off-by: Sam Nazarko --- package/mediacenter-addon-osmc/files/DEBIAN/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/mediacenter-addon-osmc/files/DEBIAN/control b/package/mediacenter-addon-osmc/files/DEBIAN/control index c72b835c89aa..78668baf27f6 100644 --- a/package/mediacenter-addon-osmc/files/DEBIAN/control +++ b/package/mediacenter-addon-osmc/files/DEBIAN/control @@ -1,6 +1,6 @@ Origin: OSMC Package: mediacenter-addon-osmc -Version: 3.0.672 +Version: 3.0.673 Section: utils Essential: No Priority: optional From 88dfdaf1170085de1891742512c8599440b6cc69 Mon Sep 17 00:00:00 2001 From: Sam Nazarko Date: Tue, 4 Jun 2019 14:39:59 +0100 Subject: [PATCH 47/47] [package] [kernel-osmc] Vero 4K: improve IPTables support Signed-off-by: Sam Nazarko --- package/kernel-osmc/build.sh | 2 +- package/kernel-osmc/files/DEBIAN/control | 2 +- .../vero364-000-add-kernel-config.patch | 136 +++++++++--------- 3 files changed, 74 insertions(+), 66 deletions(-) diff --git a/package/kernel-osmc/build.sh b/package/kernel-osmc/build.sh index bc2d30ebafa7..41a603d0dbcf 100755 --- a/package/kernel-osmc/build.sh +++ b/package/kernel-osmc/build.sh @@ -14,7 +14,7 @@ test $1 == rbp1 && VERSION="4.14.78" && REV="4" && FLAGS_INITRAMFS=$(($INITRAMFS test $1 == rbp2 && VERSION="4.14.78" && REV="4" && FLAGS_INITRAMFS=$(($INITRAMFS_BUILD + $INITRAMFS_EMBED)) && IMG_TYPE="zImage" test $1 == vero2 && VERSION="3.10.105" && REV="12" && FLAGS_INITRAMFS=$(($INITRAMFS_BUILD)) && IMG_TYPE="uImage" test $1 == pc && VERSION="4.2.3" && REV="16" && FLAGS_INITRAMFS=$(($INITRAMFS_BUILD + $INITRAMFS_EMBED)) && IMG_TYPE="zImage" -test $1 == vero364 && VERSION="3.14.29" && REV="143" && FLAGS_INITRAMFS=$(($INITRAMFS_BUILD)) && IMG_TYPE="zImage" +test $1 == vero364 && VERSION="3.14.29" && REV="144" && FLAGS_INITRAMFS=$(($INITRAMFS_BUILD)) && IMG_TYPE="zImage" if [ $1 == "rbp1" ] || [ $1 == "rbp2" ] || [ $1 == "pc" ] then if [ -z $VERSION ]; then echo "Don't have a defined kernel version for this target!" && exit 1; fi diff --git a/package/kernel-osmc/files/DEBIAN/control b/package/kernel-osmc/files/DEBIAN/control index fa77f8bab52a..8853590fa41e 100644 --- a/package/kernel-osmc/files/DEBIAN/control +++ b/package/kernel-osmc/files/DEBIAN/control @@ -1,5 +1,5 @@ Origin: OSMC -Version: 3.9.136 +Version: 3.9.137 Section: kernel Essential: No Priority: required diff --git a/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch b/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch index 39af4d28d098..aec52dc70b91 100644 --- a/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch +++ b/package/kernel-osmc/patches/vero364-000-add-kernel-config.patch @@ -1,6 +1,6 @@ ---- /dev/null 2019-01-01 21:52:11.567126521 +0000 -+++ b/.config 2019-01-03 07:25:44.977964524 +0000 -@@ -0,0 +1,3744 @@ +--- /dev/null 2019-03-25 09:36:08.447153074 +0000 ++++ b/.config 2019-06-04 14:39:20.656815873 +0100 +@@ -0,0 +1,3752 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm64 3.14.29 Kernel Configuration @@ -488,6 +488,7 @@ +CONFIG_IP_MULTIPLE_TABLES=y +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set ++CONFIG_IP_ROUTE_CLASSID=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y @@ -553,15 +554,16 @@ +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m -+# CONFIG_NETFILTER_NETLINK_ACCT is not set -+# CONFIG_NETFILTER_NETLINK_QUEUE is not set ++CONFIG_NETFILTER_NETLINK_ACCT=m ++CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m -+# CONFIG_NF_CONNTRACK_MARK is not set ++CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_PROCFS is not set +# CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set ++CONFIG_NF_CONNTRACK_LABELS=y +# CONFIG_NF_CT_PROTO_DCCP is not set +# CONFIG_NF_CT_PROTO_SCTP is not set +# CONFIG_NF_CT_PROTO_UDPLITE is not set @@ -578,6 +580,7 @@ +# CONFIG_NF_CONNTRACK_TFTP is not set +CONFIG_NF_CT_NETLINK=m +# CONFIG_NF_CT_NETLINK_TIMEOUT is not set ++# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +# CONFIG_NF_NAT_AMANDA is not set @@ -591,77 +594,78 @@ +# +# Xtables combined modules +# -+# CONFIG_NETFILTER_XT_MARK is not set -+# CONFIG_NETFILTER_XT_CONNMARK is not set ++CONFIG_NETFILTER_XT_MARK=m ++CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# -+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -+# CONFIG_NETFILTER_XT_TARGET_LED is not set -+# CONFIG_NETFILTER_XT_TARGET_LOG is not set -+# CONFIG_NETFILTER_XT_TARGET_MARK is not set -+# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set -+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -+# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set -+# CONFIG_NETFILTER_XT_TARGET_TEE is not set -+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set ++CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m ++CONFIG_NETFILTER_XT_TARGET_CONNMARK=m ++CONFIG_NETFILTER_XT_TARGET_HMARK=m ++CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m ++CONFIG_NETFILTER_XT_TARGET_LED=m ++CONFIG_NETFILTER_XT_TARGET_LOG=m ++CONFIG_NETFILTER_XT_TARGET_MARK=m ++CONFIG_NETFILTER_XT_TARGET_NETMAP=m ++CONFIG_NETFILTER_XT_TARGET_NFLOG=m ++CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m ++CONFIG_NETFILTER_XT_TARGET_RATEEST=m ++CONFIG_NETFILTER_XT_TARGET_REDIRECT=m ++CONFIG_NETFILTER_XT_TARGET_TEE=m ++CONFIG_NETFILTER_XT_TARGET_TCPMSS=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -+# CONFIG_NETFILTER_XT_MATCH_BPF is not set -+# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set ++CONFIG_NETFILTER_XT_MATCH_BPF=m ++CONFIG_NETFILTER_XT_MATCH_CGROUP=m ++CONFIG_NETFILTER_XT_MATCH_CLUSTER=m ++CONFIG_NETFILTER_XT_MATCH_COMMENT=m ++CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m ++CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m ++CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m ++CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -+# CONFIG_NETFILTER_XT_MATCH_CPU is not set -+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -+# CONFIG_NETFILTER_XT_MATCH_ECN is not set -+# CONFIG_NETFILTER_XT_MATCH_ESP is not set -+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -+# CONFIG_NETFILTER_XT_MATCH_HL is not set -+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set ++CONFIG_NETFILTER_XT_MATCH_CPU=m ++CONFIG_NETFILTER_XT_MATCH_DCCP=m ++CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m ++CONFIG_NETFILTER_XT_MATCH_DSCP=m ++CONFIG_NETFILTER_XT_MATCH_ECN=m ++CONFIG_NETFILTER_XT_MATCH_ESP=m ++CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m ++CONFIG_NETFILTER_XT_MATCH_HELPER=m ++CONFIG_NETFILTER_XT_MATCH_HL=m ++CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -+# CONFIG_NETFILTER_XT_MATCH_IPVS is not set -+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -+# CONFIG_NETFILTER_XT_MATCH_MAC is not set -+# CONFIG_NETFILTER_XT_MATCH_MARK is not set -+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set -+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -+# CONFIG_NETFILTER_XT_MATCH_OSF is not set ++CONFIG_NETFILTER_XT_MATCH_IPVS=m ++CONFIG_NETFILTER_XT_MATCH_L2TP=m ++CONFIG_NETFILTER_XT_MATCH_LENGTH=m ++CONFIG_NETFILTER_XT_MATCH_LIMIT=m ++CONFIG_NETFILTER_XT_MATCH_MAC=m ++CONFIG_NETFILTER_XT_MATCH_MARK=m ++CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m ++CONFIG_NETFILTER_XT_MATCH_NFACCT=m ++CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m -+# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -+# CONFIG_NETFILTER_XT_MATCH_QUOTA2 is not set -+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -+# CONFIG_NETFILTER_XT_MATCH_REALM is not set -+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set ++CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m ++CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m ++CONFIG_NETFILTER_XT_MATCH_QUOTA=m ++CONFIG_NETFILTER_XT_MATCH_QUOTA2=m ++CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y ++CONFIG_NETFILTER_XT_MATCH_RATEEST=m ++CONFIG_NETFILTER_XT_MATCH_REALM=m ++CONFIG_NETFILTER_XT_MATCH_RECENT=m ++CONFIG_NETFILTER_XT_MATCH_SCTP=m ++CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m -+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -+# CONFIG_NETFILTER_XT_MATCH_STRING is not set -+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -+# CONFIG_NETFILTER_XT_MATCH_TIME is not set -+# CONFIG_NETFILTER_XT_MATCH_U32 is not set ++CONFIG_NETFILTER_XT_MATCH_STATISTIC=m ++CONFIG_NETFILTER_XT_MATCH_STRING=m ++CONFIG_NETFILTER_XT_MATCH_TCPMSS=m ++CONFIG_NETFILTER_XT_MATCH_TIME=m ++CONFIG_NETFILTER_XT_MATCH_U32=m +# CONFIG_IP_SET is not set +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set @@ -807,7 +811,7 @@ +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +# CONFIG_CGROUP_NET_PRIO is not set -+# CONFIG_CGROUP_NET_CLASSID is not set ++CONFIG_CGROUP_NET_CLASSID=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y @@ -3729,6 +3733,10 @@ +CONFIG_REED_SOLOMON=y +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REED_SOLOMON_DEC8=y ++CONFIG_TEXTSEARCH=y ++CONFIG_TEXTSEARCH_KMP=m ++CONFIG_TEXTSEARCH_BM=m ++CONFIG_TEXTSEARCH_FSM=m +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_DMA=y