Merge pull request #1246 from Gujs/openelec-xvba-vdpau

XVBA and VDPAU updates
This commit is contained in:
Stephan Raue 2012-09-18 10:16:39 -07:00
commit 4e96ac360c
4 changed files with 131 additions and 0 deletions

View File

@ -0,0 +1,26 @@
From 66a8245d4e7d02469f03c6a1b3e295dde346645f Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 15 Sep 2012 17:24:30 +0200
Subject: [PATCH] videoplayer: fix calcDropRequirement for forced
deinterlacing
---
xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
index db0fb1f..81e0012 100644
--- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp
@@ -1702,7 +1702,7 @@ int CDVDPlayerVideo::CalcDropRequirement(double pts)
bNewFrame = iDecoderPts != m_droppingStats.m_lastDecoderPts;
- if (interlaced)
+ if (interlaced || iSkippedDeint)
iInterval = 2/m_fFrameRate*(double)DVD_TIME_BASE;
else
iInterval = 1/m_fFrameRate*(double)DVD_TIME_BASE;
--
1.7.10

View File

@ -0,0 +1,32 @@
From f0bf2b7dff16ac6ee875770b390accf71660a662 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 16 Sep 2012 08:27:06 +0200
Subject: [PATCH] vdpau: fix AutoInterlaceMethod to prevent from double
de-interlacing
---
xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 7 -------
1 file changed, 7 deletions(-)
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
index f25252c..374d75d 100644
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
@@ -3743,14 +3743,7 @@ EINTERLACEMETHOD CLinuxRendererGL::AutoInterlaceMethod()
return VS_INTERLACEMETHOD_NONE;
if(m_renderMethod & RENDER_VDPAU)
- {
-#ifdef HAVE_LIBVDPAU
- VDPAU::CVdpauRenderPicture *vdpauPic = m_buffers[m_iYV12RenderBuffer].vdpau;
- if(vdpauPic && vdpauPic->vdpau)
- return vdpauPic->vdpau->AutoInterlaceMethod();
-#endif
return VS_INTERLACEMETHOD_NONE;
- }
if(Supports(VS_INTERLACEMETHOD_RENDER_BOB))
return VS_INTERLACEMETHOD_RENDER_BOB;
--
1.7.10

View File

@ -0,0 +1,25 @@
From a7d40418f3aaf35f5df1de8987ce14afd59fb04f Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 16 Sep 2012 12:19:27 +0200
Subject: [PATCH] xvba: oopsie :)
---
xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp
index d4cf6cf..bd7cc3d 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.cpp
@@ -768,6 +768,7 @@ void CDecoder::DestroySession()
XVBA_Destroy_Decode_Buffers_Input bufInput;
bufInput.size = sizeof(bufInput);
bufInput.num_of_buffers_in_list = 1;
+ bufInput.session = m_xvbaConfig.xvbaSession;
for (unsigned int i=0; i<m_xvbaBufferPool.data_control_buffers.size() ; ++i)
{
--
1.7.10

View File

@ -0,0 +1,48 @@
From c01c0fa9c84f50191e0fffd95527ae2b400e021c Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 16 Sep 2012 18:38:01 +0200
Subject: [PATCH] vdpau: fix upscaling setting
---
xbmc/settings/AdvancedSettings.cpp | 4 ++--
xbmc/settings/AdvancedSettings.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 61ccf85..3556b7d 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -98,7 +98,7 @@ void CAdvancedSettings::Initialize()
m_videoIgnoreSecondsAtStart = 3*60;
m_videoIgnorePercentAtEnd = 8.0f;
m_videoPlayCountMinimumPercent = 90.0f;
- m_videoVDPAUScaling = false;
+ m_videoVDPAUScaling = -1;
m_videoNonLinStretchRatio = 0.5f;
m_videoEnableHighQualityHwScalers = false;
m_videoAutoScaleMaxFps = 30.0f;
@@ -492,7 +492,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
XMLUtils::GetString(pElement,"cleandatetime", m_videoCleanDateTimeRegExp);
XMLUtils::GetString(pElement,"ppffmpegdeinterlacing",m_videoPPFFmpegDeint);
XMLUtils::GetString(pElement,"ppffmpegpostprocessing",m_videoPPFFmpegPostProc);
- XMLUtils::GetBoolean(pElement,"vdpauscaling",m_videoVDPAUScaling);
+ XMLUtils::GetInt(pElement,"vdpauscaling",m_videoVDPAUScaling);
XMLUtils::GetFloat(pElement, "nonlinearstretchratio", m_videoNonLinStretchRatio, 0.01f, 1.0f);
XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
index b3a54ff..f50151a 100644
--- a/xbmc/settings/AdvancedSettings.h
+++ b/xbmc/settings/AdvancedSettings.h
@@ -152,7 +152,7 @@ class CAdvancedSettings
CStdString m_audioHost;
bool m_audioApplyDrc;
- bool m_videoVDPAUScaling;
+ int m_videoVDPAUScaling;
float m_videoNonLinStretchRatio;
bool m_videoEnableHighQualityHwScalers;
float m_videoAutoScaleMaxFps;
--
1.7.10