xbmc: update to xbmc-13-692cfba

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2014-05-12 18:22:16 +02:00
parent 320ea5eb6f
commit ff4a7228c7
7 changed files with 2 additions and 301 deletions

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc-theme-Confluence"
PKG_VERSION="13-16232cc"
PKG_VERSION="13-692cfba"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="13-16232cc"
PKG_VERSION="13-692cfba"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -1,62 +0,0 @@
From 6a926768eba981c6498f852fe26dfa6644da82ac Mon Sep 17 00:00:00 2001
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
Date: Wed, 23 Apr 2014 16:33:19 +0200
Subject: [PATCH] FIX: [linux] fix & optimize input device checking
---
xbmc/input/linux/LinuxInputDevices.cpp | 12 +++++++++++-
xbmc/input/linux/LinuxInputDevices.h | 1 +
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index 4b642ae..f11ec01 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -936,6 +936,11 @@ char* CLinuxInputDevice::GetDeviceName()
return m_deviceName;
}
+std::string CLinuxInputDevice::GetFileName()
+{
+ return m_fileName;
+}
+
bool CLinuxInputDevice::IsUnplugged()
{
return m_bUnplugged;
@@ -945,6 +950,11 @@ bool CLinuxInputDevices::CheckDevice(const char *device)
{
int fd;
+ // Does the device exists?
+ struct stat buffer;
+ if (stat(device, &buffer) != 0)
+ return false;
+
/* Check if we are able to open the device */
fd = open(device, O_RDWR);
if (fd < 0)
@@ -1016,7 +1026,7 @@ void CLinuxInputDevices::CheckHotplugged()
for (size_t j = 0; j < m_devices.size(); j++)
{
- if (strcmp(m_devices[j]->GetDeviceName(),buf) == 0)
+ if (m_devices[j]->GetFileName().compare(buf) == 0)
{
ispresent = true;
break;
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index c385ed7..a406d9c 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -42,6 +42,7 @@ class CLinuxInputDevice
~CLinuxInputDevice();
XBMC_Event ReadEvent();
char* GetDeviceName();
+ std::string GetFileName();
bool IsUnplugged();
private:
--
1.9.1

View File

@ -1,97 +0,0 @@
From 55030587d56f54a56655fd9ad7e419e4077b7e57 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Fri, 2 May 2014 07:37:26 +0200
Subject: [PATCH] VDPAU: improve error handling, Gotham
---
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 20 ++++++++++++++++++--
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 2 ++
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
index b4d2d38..8c9437c 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
@@ -948,6 +948,7 @@ bool CDecoder::ConfigVDPAU(AVCodecContext* avctx, int ref_frames)
m_inMsgEvent.Reset();
m_vdpauConfigured = true;
+ m_ErrorCount = 0;
return true;
}
@@ -1078,7 +1079,11 @@ void CDecoder::FFDrawSlice(struct AVCodecContext *s,
(VdpPictureInfo const *)&(vdp->m_hwContext.info),
vdp->m_hwContext.bitstream_buffers_used,
vdp->m_hwContext.bitstream_buffers);
- vdp->CheckStatus(vdp_st, __LINE__);
+ if (vdp->CheckStatus(vdp_st, __LINE__))
+ vdp->m_DecoderError = true;
+ else
+ vdp->m_DecoderError = false;
+
uint64_t diff = CurrentHostCounter() - startTime;
if (diff*1000/CurrentHostFrequency() > 30)
CLog::Log(LOGDEBUG, "CVDPAU::DrawSlice - VdpDecoderRender long decoding: %d ms, dec: %d, proc: %d, rend: %d", (int)((diff*1000)/CurrentHostFrequency()), decoded, processed, rend);
@@ -1093,6 +1098,9 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame)
CSingleLock lock(m_DecoderSection);
+ if (m_DecoderError && pFrame)
+ return VC_ERROR;
+
if (!m_vdpauConfigured)
return VC_ERROR;
@@ -1264,6 +1272,8 @@ bool CDecoder::CheckStatus(VdpStatus vdp_st, int line)
{
CLog::Log(LOGERROR, " (VDPAU) Error: %s(%d) at %s:%d\n", m_vdpauConfig.context->GetProcs().vdp_get_error_string(vdp_st), vdp_st, __FILE__, line);
+ m_ErrorCount++;
+
if(m_DisplayState == VDPAU_OPEN)
{
if (vdp_st == VDP_STATUS_DISPLAY_PREEMPTED)
@@ -1271,12 +1281,13 @@ bool CDecoder::CheckStatus(VdpStatus vdp_st, int line)
m_DisplayEvent.Reset();
m_DisplayState = VDPAU_LOST;
}
- else
+ else if (m_ErrorCount > 2)
m_DisplayState = VDPAU_ERROR;
}
return true;
}
+ m_ErrorCount = 0;
return false;
}
@@ -2954,6 +2965,11 @@ bool COutput::Init()
bool COutput::Uninit()
{
m_mixer.Dispose();
+ glFlush();
+ while(ProcessSyncPicture())
+ {
+ Sleep(10);
+ }
GLUnmapSurfaces();
ReleaseBufferPool();
DestroyGlxContext();
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
index 9f58e76..28258f6 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
@@ -610,6 +610,8 @@ class CDecoder
} m_DisplayState;
CCriticalSection m_DecoderSection;
CEvent m_DisplayEvent;
+ int m_ErrorCount;
+ bool m_DecoderError;
DllAvUtil m_dllAvUtil;
ThreadIdentifier m_decoderThread;
--
1.9.1

View File

@ -1,65 +0,0 @@
From fb82cedf2ea631c0e47296f461fe8d48dfc6d7b3 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Sun, 4 May 2014 09:45:52 +0200
Subject: [PATCH] VDPAU: fix cropping for interlaced frames
---
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 +++++---
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 1 +
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
index 2468db3..575b2e3 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
@@ -39,6 +39,7 @@
using namespace VDPAU;
#define NUM_RENDER_PICS 7
+#define NUM_CROP_PIX 3
#define ARSIZE(x) (sizeof(x) / sizeof((x)[0]))
@@ -2382,6 +2383,7 @@ void CMixer::InitCycle()
}
m_mixerstep = 0;
+ m_processPicture.crop = false;
if (m_mixerInput[1].DVDPic.format == RENDER_FMT_VDPAU)
{
m_processPicture.outputSurface = m_outputSurfaces.front();
@@ -2390,8 +2392,8 @@ void CMixer::InitCycle()
if (m_SeenInterlaceFlag)
{
double ratio = (double)m_mixerInput[1].DVDPic.iDisplayHeight / m_mixerInput[1].DVDPic.iHeight;
- m_mixerInput[1].DVDPic.iHeight -= 6;
- m_mixerInput[1].DVDPic.iDisplayHeight = lrint(ratio*m_mixerInput[1].DVDPic.iHeight);
+ m_mixerInput[1].DVDPic.iDisplayHeight = lrint(ratio*(m_mixerInput[1].DVDPic.iHeight-NUM_CROP_PIX*2));
+ m_processPicture.crop = true;
}
}
else
@@ -3065,7 +3067,7 @@ CVdpauRenderPicture* COutput::ProcessMixerPicture()
retPic->texWidth = m_config.outWidth;
retPic->texHeight = m_config.outHeight;
retPic->crop.x1 = 0;
- retPic->crop.y1 = (m_config.outHeight - retPic->DVDPic.iHeight) / 2;
+ retPic->crop.y1 = procPic.crop ? NUM_CROP_PIX : 0;
retPic->crop.x2 = m_config.outWidth;
retPic->crop.y2 = m_config.outHeight - retPic->crop.y1;
}
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
index 4d046c1..8efadc1 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
@@ -202,6 +202,7 @@ struct CVdpauProcessedPicture
DVDVideoPicture DVDPic;
VdpVideoSurface videoSurface;
VdpOutputSurface outputSurface;
+ bool crop;
};
/**
--
1.9.1

View File

@ -1,24 +0,0 @@
From 790ed5ba43eac186291193accff14aef58766897 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Sun, 4 May 2014 16:54:58 +0200
Subject: [PATCH] VDPAU: fix segfault if vdpau fails to open context
---
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
index 2468db3..d0188bb 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
@@ -134,6 +134,7 @@ bool CVDPAUContext::EnsureContext(CVDPAUContext **ctx)
{
delete m_context;
m_context = 0;
+ *ctx = NULL;
return false;
}
}
--
1.9.1

View File

@ -1,51 +0,0 @@
From d740a5255f983085da6bc6f3747208e2da52c2a2 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Mon, 5 May 2014 15:17:19 +0200
Subject: [PATCH 1/2] dvdplayer input stream: fix incorrectly set of EOF
---
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp
index 122e922..1b0f7e8 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp
@@ -91,7 +91,7 @@ bool CDVDInputStreamFile::Open(const char* strFile, const std::string& content)
if (m_pFile->GetImplemenation() && (content.empty() || content == "application/octet-stream"))
m_content = m_pFile->GetImplemenation()->GetContent();
- m_eof = true;
+ m_eof = false;
return true;
}
--
1.9.1
From ae3325332355c2d015c8e268f07f0edd7f06bc20 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Mon, 5 May 2014 15:18:02 +0200
Subject: [PATCH 2/2] paplayer: fix playing some mp4 files
---
xbmc/cores/paplayer/DVDPlayerCodec.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/xbmc/cores/paplayer/DVDPlayerCodec.cpp b/xbmc/cores/paplayer/DVDPlayerCodec.cpp
index b960e3b..5a13093 100644
--- a/xbmc/cores/paplayer/DVDPlayerCodec.cpp
+++ b/xbmc/cores/paplayer/DVDPlayerCodec.cpp
@@ -197,8 +197,6 @@ bool DVDPlayerCodec::Init(const CStdString &strFile, unsigned int filecache)
m_bCanSeek = false;
if (m_pInputStream->Seek(0, SEEK_POSSIBLE))
{
- // reset eof flag of stream, with eof set seek returns always success
- m_pInputStream->Seek(0, SEEK_SET);
if (Seek(1) != DVD_NOPTS_VALUE)
{
// rewind stream to beginning
--
1.9.1