aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Karlman <jonas@kwiboo.se>2019-04-22 20:03:23 +0000
committerJonas Karlman <jonas@kwiboo.se>2019-06-13 22:16:10 +0000
commit0bb1f321e0b0e50c49960195a490dc715889bd13 (patch)
treed1249bc9aaef21b59f5e198e0678170c0134853c
parentf29acc8d608536bceb65b348c95a3afdcabae628 (diff)
GBM: override ProcessInfo and use Deinterlace Half by default on arm
-rw-r--r--cmake/treedata/optional/common/gbm.txt1
-rw-r--r--xbmc/cores/VideoPlayer/Process/gbm/CMakeLists.txt5
-rw-r--r--xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.cpp34
-rw-r--r--xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.h26
-rw-r--r--xbmc/windowing/gbm/WinSystemGbmGLESContext.cpp2
5 files changed, 68 insertions, 0 deletions
diff --git a/cmake/treedata/optional/common/gbm.txt b/cmake/treedata/optional/common/gbm.txt
index 196b32357f..d6e6e9ebdc 100644
--- a/cmake/treedata/optional/common/gbm.txt
+++ b/cmake/treedata/optional/common/gbm.txt
@@ -1,2 +1,3 @@
xbmc/cores/RetroPlayer/process/gbm cores/RetroPlayer/process/gbm # GBM
+xbmc/cores/VideoPlayer/Process/gbm cores/VideoPlayer/Process/gbm # GBM
xbmc/windowing/gbm windowing/gbm # GBM \ No newline at end of file
diff --git a/xbmc/cores/VideoPlayer/Process/gbm/CMakeLists.txt b/xbmc/cores/VideoPlayer/Process/gbm/CMakeLists.txt
new file mode 100644
index 0000000000..18b4b94c25
--- /dev/null
+++ b/xbmc/cores/VideoPlayer/Process/gbm/CMakeLists.txt
@@ -0,0 +1,5 @@
+set(SOURCES ProcessInfoGBM.cpp)
+
+set(HEADERS ProcessInfoGBM.h)
+
+core_add_library(processGBM)
diff --git a/xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.cpp b/xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.cpp
new file mode 100644
index 0000000000..0228319397
--- /dev/null
+++ b/xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.cpp
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2019 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "ProcessInfoGBM.h"
+
+using namespace VIDEOPLAYER;
+
+CProcessInfo* CProcessInfoGBM::Create()
+{
+ return new CProcessInfoGBM();
+}
+
+void CProcessInfoGBM::Register()
+{
+ CProcessInfo::RegisterProcessControl("gbm", CProcessInfoGBM::Create);
+}
+
+CProcessInfoGBM::CProcessInfoGBM()
+{
+}
+
+EINTERLACEMETHOD CProcessInfoGBM::GetFallbackDeintMethod()
+{
+#if defined(__arm__)
+ return EINTERLACEMETHOD::VS_INTERLACEMETHOD_DEINTERLACE_HALF;
+#else
+ return CProcessInfo::GetFallbackDeintMethod();
+#endif
+}
diff --git a/xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.h b/xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.h
new file mode 100644
index 0000000000..479e4fde4c
--- /dev/null
+++ b/xbmc/cores/VideoPlayer/Process/gbm/ProcessInfoGBM.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2019 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#pragma once
+
+#include "cores/IPlayer.h"
+#include "cores/VideoPlayer/Process/ProcessInfo.h"
+
+namespace VIDEOPLAYER
+{
+
+class CProcessInfoGBM : public CProcessInfo
+{
+public:
+ CProcessInfoGBM();
+ static CProcessInfo* Create();
+ static void Register();
+ EINTERLACEMETHOD GetFallbackDeintMethod() override;
+};
+
+} // namespace VIDEOPLAYER
diff --git a/xbmc/windowing/gbm/WinSystemGbmGLESContext.cpp b/xbmc/windowing/gbm/WinSystemGbmGLESContext.cpp
index c24cb919ae..f763577117 100644
--- a/xbmc/windowing/gbm/WinSystemGbmGLESContext.cpp
+++ b/xbmc/windowing/gbm/WinSystemGbmGLESContext.cpp
@@ -14,6 +14,7 @@
#include "cores/RetroPlayer/rendering/VideoRenderers/RPRendererGBM.h"
#include "cores/RetroPlayer/rendering/VideoRenderers/RPRendererOpenGLES.h"
#include "cores/VideoPlayer/DVDCodecs/DVDFactoryCodec.h"
+#include "cores/VideoPlayer/Process/gbm/ProcessInfoGBM.h"
#include "cores/VideoPlayer/VideoRenderers/LinuxRendererGLES.h"
#include "cores/VideoPlayer/VideoRenderers/RenderFactory.h"
@@ -65,6 +66,7 @@ bool CWinSystemGbmGLESContext::InitWindowSystem()
CRendererDRMPRIMEGLES::Register();
CRendererDRMPRIME::Register();
CDVDVideoCodecDRMPRIME::Register();
+ VIDEOPLAYER::CProcessInfoGBM::Register();
return true;
}