Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kodi (RPi4): add patch to enable PiSink
Signed-off-by: Matthias Reichl <hias@horus.com>
- Loading branch information
Showing
1 changed file
with
206 additions
and
0 deletions.
There are no files selected for viewing
206 changes: 206 additions & 0 deletions
206
projects/RPi/devices/RPi4/patches/kodi/kodi-002-add-pisink.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
From 8f0d283542fa8c55f2a9cdd520271b0b471e3393 Mon Sep 17 00:00:00 2001 | ||
From: popcornmix <popcornmix@gmail.com> | ||
Date: Mon, 10 Jun 2019 22:07:55 +0100 | ||
Subject: [PATCH] RBP: add PiSink | ||
|
||
--- | ||
xbmc/cores/AudioEngine/CMakeLists.txt | 3 +++ | ||
xbmc/platform/linux/CMakeLists.txt | 10 +++++----- | ||
xbmc/platform/linux/RBP.cpp | 24 ++++++++++++------------ | ||
xbmc/platform/linux/RBP.h | 22 +++++++++++----------- | ||
xbmc/windowing/gbm/WinSystemGbm.cpp | 2 ++ | ||
5 files changed, 33 insertions(+), 28 deletions(-) | ||
|
||
diff --git a/xbmc/cores/AudioEngine/CMakeLists.txt b/xbmc/cores/AudioEngine/CMakeLists.txt | ||
index 060c6a960d..e5b80cf54a 100644 | ||
--- a/xbmc/cores/AudioEngine/CMakeLists.txt | ||
+++ b/xbmc/cores/AudioEngine/CMakeLists.txt | ||
@@ -101,6 +101,9 @@ if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) | ||
Sinks/AESinkPi.h) | ||
endif() | ||
|
||
+ list(APPEND SOURCES Sinks/AESinkPi.cpp) | ||
+ list(APPEND HEADERS Sinks/AESinkPi.h) | ||
+ | ||
if(CORE_SYSTEM_NAME STREQUAL osx) | ||
list(APPEND SOURCES Sinks/AESinkDARWINOSX.cpp | ||
Sinks/osx/AEDeviceEnumerationOSX.cpp | ||
diff --git a/xbmc/platform/linux/CMakeLists.txt b/xbmc/platform/linux/CMakeLists.txt | ||
index 88076c3d5a..16cdd478be 100644 | ||
--- a/xbmc/platform/linux/CMakeLists.txt | ||
+++ b/xbmc/platform/linux/CMakeLists.txt | ||
@@ -39,7 +39,7 @@ if(DBUS_FOUND) | ||
DBusUtil.h) | ||
endif() | ||
|
||
-if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) | ||
+#if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) | ||
list(APPEND SOURCES RBP.cpp | ||
OMXClock.cpp | ||
OMXCore.cpp) | ||
@@ -48,10 +48,10 @@ if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) | ||
DllOMX.h | ||
OMXClock.h | ||
OMXCore.h) | ||
-else() | ||
- list(APPEND SOURCES RBP.cpp) | ||
- list(APPEND HEADERS RBP.h) | ||
-endif() | ||
+#else() | ||
+# list(APPEND SOURCES RBP.cpp) | ||
+# list(APPEND HEADERS RBP.h) | ||
+#endif() | ||
|
||
if(HAVE_SSE4_1) | ||
add_subdirectory(sse4) | ||
diff --git a/xbmc/platform/linux/RBP.cpp b/xbmc/platform/linux/RBP.cpp | ||
index 6c045e9674..9ff4ed4e6f 100644 | ||
--- a/xbmc/platform/linux/RBP.cpp | ||
+++ b/xbmc/platform/linux/RBP.cpp | ||
@@ -68,13 +68,13 @@ typedef int vc_image_t_size_check[(sizeof(VC_IMAGE_T) == 64) * 2 - 1]; | ||
CRBP::CRBP() | ||
{ | ||
m_initialized = false; | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
m_omx_initialized = false; | ||
-#endif | ||
+//#endif | ||
m_DllBcmHost = new DllBcmHost(); | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
m_OMX = new COMXCore(); | ||
-#endif | ||
+//#endif | ||
m_display = DISPMANX_NO_HANDLE; | ||
m_mb = mbox_open(); | ||
vcsm_init(); | ||
@@ -103,11 +103,11 @@ bool CRBP::Initialize() | ||
|
||
m_DllBcmHost->bcm_host_init(); | ||
|
||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
m_omx_initialized = m_OMX->Initialize(); | ||
if(!m_omx_initialized) | ||
return false; | ||
-#endif | ||
+//#endif | ||
|
||
char response[80] = ""; | ||
m_arm_mem = 0; | ||
@@ -278,13 +278,13 @@ uint32_t CRBP::LastVsync() | ||
|
||
void CRBP::Deinitialize() | ||
{ | ||
-#ifdef TARGET_RASPBERRY_PI | ||
- if (m_omx_image_init) | ||
- g_OMXImage.Deinitialize(); | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
+// if (m_omx_image_init) | ||
+// g_OMXImage.Deinitialize(); | ||
|
||
if(m_omx_initialized) | ||
m_OMX->Deinitialize(); | ||
-#endif | ||
+//#endif | ||
|
||
m_DllBcmHost->bcm_host_deinit(); | ||
|
||
@@ -295,9 +295,9 @@ void CRBP::Deinitialize() | ||
m_omx_image_init = false; | ||
#endif | ||
m_initialized = false; | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
m_omx_initialized = false; | ||
-#endif | ||
+//#endif | ||
if (m_mb) | ||
mbox_close(m_mb); | ||
m_mb = 0; | ||
diff --git a/xbmc/platform/linux/RBP.h b/xbmc/platform/linux/RBP.h | ||
index 63e02a1826..d3f46d34a1 100644 | ||
--- a/xbmc/platform/linux/RBP.h | ||
+++ b/xbmc/platform/linux/RBP.h | ||
@@ -19,9 +19,9 @@ | ||
#endif | ||
|
||
#include "DllBCM.h" | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
#include "OMXCore.h" | ||
-#endif | ||
+//#endif | ||
#include "xbmc/utils/CPUInfo.h" | ||
#include "threads/CriticalSection.h" | ||
#include "threads/Event.h" | ||
@@ -97,9 +97,9 @@ public: | ||
int GetGUIResolutionLimit() { return m_gui_resolution_limit; } | ||
// stride can be null for packed output | ||
unsigned char *CaptureDisplay(int width, int height, int *stride, bool swap_red_blue, bool video_only = true); | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
DllOMX *GetDllOMX() { return m_OMX ? m_OMX->GetDll() : NULL; } | ||
-#endif | ||
+//#endif | ||
uint32_t LastVsync(int64_t &time); | ||
uint32_t LastVsync(); | ||
uint32_t WaitVsync(uint32_t target = ~0U); | ||
@@ -110,26 +110,26 @@ public: | ||
private: | ||
DllBcmHost *m_DllBcmHost; | ||
bool m_initialized; | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
bool m_omx_initialized; | ||
- bool m_omx_image_init; | ||
-#endif | ||
+ //bool m_omx_image_init; | ||
+//#endif | ||
int m_arm_mem; | ||
int m_gpu_mem; | ||
int m_gui_resolution_limit; | ||
bool m_codec_mpg2_enabled; | ||
bool m_codec_wvc1_enabled; | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
COMXCore *m_OMX; | ||
-#endif | ||
+//#endif | ||
DISPMANX_DISPLAY_HANDLE_T m_display; | ||
CCriticalSection m_vsync_lock; | ||
XbmcThreads::ConditionVariable m_vsync_cond; | ||
uint32_t m_vsync_count; | ||
int64_t m_vsync_time; | ||
-#ifdef TARGET_RASPBERRY_PI | ||
+//#ifdef TARGET_RASPBERRY_PI | ||
class DllLibOMXCore; | ||
-#endif | ||
+//#endif | ||
CCriticalSection m_critSection; | ||
|
||
int m_mb; | ||
diff --git a/xbmc/windowing/gbm/WinSystemGbm.cpp b/xbmc/windowing/gbm/WinSystemGbm.cpp | ||
index 9ad1f2daf1..418e0cf8b1 100644 | ||
--- a/xbmc/windowing/gbm/WinSystemGbm.cpp | ||
+++ b/xbmc/windowing/gbm/WinSystemGbm.cpp | ||
@@ -25,6 +25,7 @@ | ||
#include "DRMLegacy.h" | ||
#include "OffScreenModeSetting.h" | ||
#include "messaging/ApplicationMessenger.h" | ||
+#include "cores/AudioEngine/Sinks/AESinkPi.h" | ||
|
||
using namespace KODI::WINDOWING::GBM; | ||
|
||
@@ -33,6 +34,7 @@ CWinSystemGbm::CWinSystemGbm() : | ||
m_GBM(new CGBMUtils), | ||
m_libinput(new CLibInputHandler) | ||
{ | ||
+ CAESinkPi::Register(); | ||
OPTIONALS::ALSARegister(); | ||
OPTIONALS::PulseAudioRegister(); | ||
|
||
-- | ||
2.20.1 | ||
|