xbmc-pvr: add XVBA support patch

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-12-12 01:30:07 +01:00
parent f49ef71a93
commit 21ed1fbafb
8 changed files with 7118 additions and 101 deletions

View File

@ -124,6 +124,12 @@ else
XBMC_VAAPI="--disable-vaapi"
fi
if [ "$XVBA" = yes ]; then
XBMC_XVBA="--enable-xvba"
else
XBMC_XVBA="--disable-xvba"
fi
if [ "$CRYSTALHD" = yes ]; then
XBMC_CRYSTALHD="--enable-crystalhd"
else
@ -184,6 +190,7 @@ cd $PKG_BUILD
$XBMC_VDPAU \
$XBMC_VAAPI \
$XBMC_CRYSTALHD \
$XBMC_XVBA \
--disable-vdadecoder \
--disable-vtbdecoder \
--disable-openmax \

View File

@ -1,34 +0,0 @@
From 0c2185d62f858f7b41461b4141e731dc7ec01ca6 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 11 Aug 2011 18:35:18 +0200
Subject: [PATCH] LinuxRendererGL: increase buffers to 3
---
xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
index 18c6da4..79a9d90 100644
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
@@ -223,7 +223,7 @@ bool CLinuxRendererGL::ValidateRenderer()
void CLinuxRendererGL::ManageTextures()
{
- m_NumYV12Buffers = 2;
+ m_NumYV12Buffers = 3;
//m_iYV12RenderBuffer = 0;
return;
}
@@ -720,7 +720,7 @@ unsigned int CLinuxRendererGL::PreInit()
m_resolution = RES_PAL_4x3;
m_iYV12RenderBuffer = 0;
- m_NumYV12Buffers = 2;
+ m_NumYV12Buffers = 3;
// setup the background colour
m_clearColour = (float)(g_advancedSettings.m_videoBlackBarColour & 0xff) / 0xff;
--
1.7.5.4

View File

@ -1,40 +0,0 @@
diff -Naur xbmc-4c32cde/xbmc/windowing/X11/WinSystemX11GL.cpp xbmc-4c32cde.patch/xbmc/windowing/X11/WinSystemX11GL.cpp
--- xbmc-4c32cde/xbmc/windowing/X11/WinSystemX11GL.cpp 2011-10-29 14:43:48.634117918 +0200
+++ xbmc-4c32cde.patch/xbmc/windowing/X11/WinSystemX11GL.cpp 2011-10-29 14:45:56.207774711 +0200
@@ -45,7 +45,27 @@
{
CheckDisplayEvents();
- if(m_iVSyncMode == 3)
+ if(m_iVSyncMode == 2)
+ {
+ static unsigned int last = 0;
+ unsigned int now;
+ if(m_glXGetVideoSyncSGI(&now) != 0)
+ CLog::Log(LOGERROR, "%s - glXGetVideoSyncSGI - Failed to get current retrace count", __FUNCTION__);
+
+ if (now == last)
+ {
+ if (m_glXWaitVideoSyncSGI(2, (last + 1) % 2, &now) != 0)
+ CLog::Log(LOGERROR, "%s - glXWaitVideoSyncSGI - Returned error", __FUNCTION__);
+ if(m_glXGetVideoSyncSGI(&now) != 0)
+ CLog::Log(LOGERROR, "%s - glXGetVideoSyncSGI - Failed to get current retrace count", __FUNCTION__);
+ last = now + 1;
+ }
+ else
+ last = now;
+
+ glXSwapBuffers(m_dpy, m_glWindow);
+ }
+ else if(m_iVSyncMode == 3)
{
glFinish();
unsigned int before = 0, after = 0;
@@ -238,7 +258,6 @@
else
m_glXSwapIntervalMESA = NULL;
-
return true;
}

View File

@ -1,27 +0,0 @@
From dff7d824c82f957e19ad56247134912d70862188 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Sun, 14 Aug 2011 11:21:32 +0200
Subject: [PATCH] vaapi: increase number of video surface allocated
---
xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
index bcc3fe1..326c390 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
@@ -358,7 +358,9 @@ bool CDecoder::EnsureContext(AVCodecContext *avctx)
else
m_refs = 2;
}
- return EnsureSurfaces(avctx, m_refs + 3);
+ // number of reference + 3 renderbuffers + Holder
+ // an extra one should not harm
+ return EnsureSurfaces(avctx, m_refs + 5);
}
bool CDecoder::EnsureSurfaces(AVCodecContext *avctx, unsigned n_surfaces_count)
--
1.7.5.4

View File

@ -0,0 +1,11 @@
diff -Naur xbmc-f3b0020/xbmc/peripherals/Peripherals.cpp xbmc-f3b0020.patch/xbmc/peripherals/Peripherals.cpp
--- xbmc-f3b0020/xbmc/peripherals/Peripherals.cpp 2011-12-10 22:16:17.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/peripherals/Peripherals.cpp 2011-12-11 18:25:13.143643374 +0100
@@ -19,6 +19,7 @@
*
*/
+#include "system.h"
#include "Peripherals.h"
#include "bus/PeripheralBus.h"
#include "devices/PeripheralBluetooth.h"

View File

@ -0,0 +1,12 @@
diff -Naur xbmc-f3b0020/xbmc/network/AirTunesServer.cpp xbmc-f3b0020.patch/xbmc/network/AirTunesServer.cpp
--- xbmc-f3b0020/xbmc/network/AirTunesServer.cpp 2011-12-10 22:16:17.000000000 +0100
+++ xbmc-f3b0020.patch/xbmc/network/AirTunesServer.cpp 2011-12-11 18:22:56.423945075 +0100
@@ -279,7 +279,7 @@
}
}
-CAirTunesServer::CAirTunesServer(int port, bool nonlocal)
+CAirTunesServer::CAirTunesServer(int port, bool nonlocal) : CThread("CAirTunesServer")
{
m_port = port;
m_pLibShairport = new DllLibShairport();