mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
xbmc: update to xbmc-13-692cfba
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
320ea5eb6f
commit
ff4a7228c7
@ -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"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc"
|
||||
PKG_VERSION="13-16232cc"
|
||||
PKG_VERSION="13-692cfba"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user