mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-02 15:37:49 +00:00
Merge branch 'master' of https://github.com/OpenELEC/OpenELEC.tv into openelec-settings
This commit is contained in:
commit
c116822736
@ -13,7 +13,6 @@
|
|||||||
<delay>175</delay>
|
<delay>175</delay>
|
||||||
</refresh>
|
</refresh>
|
||||||
</latency>
|
</latency>
|
||||||
<allowhi10pmultithreading>true</allowhi10pmultithreading>
|
|
||||||
</video>
|
</video>
|
||||||
<samba>
|
<samba>
|
||||||
<clienttimeout>30</clienttimeout>
|
<clienttimeout>30</clienttimeout>
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
From 29d0061ac7887ed8681847915d5d5bcd3af3fa9b Mon Sep 17 00:00:00 2001
|
From ca0ddf0673dea966af5bf0bc562f9ff69a551cd9 Mon Sep 17 00:00:00 2001
|
||||||
From: fritsch <peter.fruehberger@gmail.com>
|
From: fritsch <peter.fruehberger@gmail.com>
|
||||||
Date: Sat, 12 Jan 2013 13:03:50 +0100
|
Date: Sat, 12 Jan 2013 13:03:50 +0100
|
||||||
Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content
|
Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content by
|
||||||
|
default
|
||||||
|
|
||||||
This allows decoding of some hi10p material on e.g. AMD Fusion with
|
This allows decoding of some hi10p material on e.g. AMD Fusion with
|
||||||
both cores at the max. This introduces a new advancedsetting to get hi10p
|
both cores at the max. This introduces a new advancedsetting named
|
||||||
decoded multithreaded.
|
disablehi10pmultithreading to disable hi10p decoded multithreaded.
|
||||||
---
|
---
|
||||||
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 17 +++++++++++++++--
|
.../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++--
|
||||||
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 +
|
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 +
|
||||||
xbmc/settings/AdvancedSettings.cpp | 2 ++
|
xbmc/settings/AdvancedSettings.cpp | 2 ++
|
||||||
xbmc/settings/AdvancedSettings.h | 1 +
|
xbmc/settings/AdvancedSettings.h | 1 +
|
||||||
4 files changed, 19 insertions(+), 2 deletions(-)
|
4 files changed, 20 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||||
index 8f81637..8164457 100644
|
index 8f81637..77ac6b1 100644
|
||||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||||
@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
|
@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
|
||||||
@ -36,7 +37,7 @@ index 8f81637..8164457 100644
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -247,8 +251,17 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|
@@ -247,8 +251,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|
||||||
m_pCodecContext->codec_tag = hints.codec_tag;
|
m_pCodecContext->codec_tag = hints.codec_tag;
|
||||||
/* Only allow slice threading, since frame threading is more
|
/* Only allow slice threading, since frame threading is more
|
||||||
* sensitive to changes in frame sizes, and it causes crashes
|
* sensitive to changes in frame sizes, and it causes crashes
|
||||||
@ -44,12 +45,13 @@ index 8f81637..8164457 100644
|
|||||||
- m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
- m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
||||||
+ * during HW accell - so we unset it in this case.
|
+ * during HW accell - so we unset it in this case.
|
||||||
+ *
|
+ *
|
||||||
+ * When user forces it and codec is hi10p - we enable it again.
|
+ * When we detect Hi10p and user did not disable hi10pmultithreading
|
||||||
|
+ * via advancedsettings.xml we keep the ffmpeg default thread type.
|
||||||
+ * */
|
+ * */
|
||||||
+ if(m_isHi10p && g_advancedSettings.m_videoAllowHi10pMultithreading)
|
+ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading)
|
||||||
+ {
|
+ {
|
||||||
+ m_pCodecContext->thread_type = FF_THREAD_FRAME;
|
+ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d",
|
||||||
+ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Enabled Hi10p Multithreading");
|
+ m_pCodecContext->thread_type);
|
||||||
+ }
|
+ }
|
||||||
+ else
|
+ else
|
||||||
+ m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
+ m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
||||||
@ -69,14 +71,14 @@ index 61d0305..827b2d9 100644
|
|||||||
int m_iLastKeyframe;
|
int m_iLastKeyframe;
|
||||||
double m_dts;
|
double m_dts;
|
||||||
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
|
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
|
||||||
index 16800b7..50d6462 100644
|
index 16800b7..1e0f3e0 100644
|
||||||
--- a/xbmc/settings/AdvancedSettings.cpp
|
--- a/xbmc/settings/AdvancedSettings.cpp
|
||||||
+++ b/xbmc/settings/AdvancedSettings.cpp
|
+++ b/xbmc/settings/AdvancedSettings.cpp
|
||||||
@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize()
|
@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize()
|
||||||
m_DXVANoDeintProcForProgressive = false;
|
m_DXVANoDeintProcForProgressive = false;
|
||||||
m_videoFpsDetect = 1;
|
m_videoFpsDetect = 1;
|
||||||
m_videoDefaultLatency = 0.0;
|
m_videoDefaultLatency = 0.0;
|
||||||
+ m_videoAllowHi10pMultithreading = false;
|
+ m_videoDisableHi10pMultithreading = false;
|
||||||
|
|
||||||
m_musicUseTimeSeeking = true;
|
m_musicUseTimeSeeking = true;
|
||||||
m_musicTimeSeekForward = 10;
|
m_musicTimeSeekForward = 10;
|
||||||
@ -84,19 +86,19 @@ index 16800b7..50d6462 100644
|
|||||||
XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
|
XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
|
||||||
XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
|
XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
|
||||||
XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU);
|
XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU);
|
||||||
+ XMLUtils::GetBoolean(pElement,"allowhi10pmultithreading",m_videoAllowHi10pMultithreading);
|
+ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading);
|
||||||
XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI);
|
XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI);
|
||||||
XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
|
XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
|
||||||
XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
|
XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
|
||||||
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
|
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
|
||||||
index 27887d4..37723f7 100644
|
index 27887d4..fc05e41 100644
|
||||||
--- a/xbmc/settings/AdvancedSettings.h
|
--- a/xbmc/settings/AdvancedSettings.h
|
||||||
+++ b/xbmc/settings/AdvancedSettings.h
|
+++ b/xbmc/settings/AdvancedSettings.h
|
||||||
@@ -164,6 +164,7 @@ class CAdvancedSettings
|
@@ -164,6 +164,7 @@ class CAdvancedSettings
|
||||||
bool m_DXVAForceProcessorRenderer;
|
bool m_DXVAForceProcessorRenderer;
|
||||||
bool m_DXVANoDeintProcForProgressive;
|
bool m_DXVANoDeintProcForProgressive;
|
||||||
int m_videoFpsDetect;
|
int m_videoFpsDetect;
|
||||||
+ bool m_videoAllowHi10pMultithreading;
|
+ bool m_videoDisableHi10pMultithreading;
|
||||||
|
|
||||||
CStdString m_videoDefaultPlayer;
|
CStdString m_videoDefaultPlayer;
|
||||||
CStdString m_videoDefaultDVDPlayer;
|
CStdString m_videoDefaultDVDPlayer;
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="open-vm-tools"
|
PKG_NAME="open-vm-tools"
|
||||||
PKG_VERSION="9.2.0-799703"
|
PKG_VERSION="9.2.2-893683"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/inode.c open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/inode.c
|
|
||||||
--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/inode.c 2012-05-23 00:12:52.000000000 +0400
|
|
||||||
+++ open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/inode.c 2012-10-02 15:39:47.000000000 +0400
|
|
||||||
@@ -1801,7 +1802,7 @@
|
|
||||||
#else
|
|
||||||
if (mask & MAY_ACCESS) { /* For sys_access. */
|
|
||||||
#endif
|
|
||||||
- struct list_head *pos;
|
|
||||||
+ struct hlist_node *pos;
|
|
||||||
int dcount = 0;
|
|
||||||
struct dentry *dentry = NULL;
|
|
||||||
|
|
||||||
@@ -1817,7 +1818,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Find a dentry with valid d_count. Refer bug 587789. */
|
|
||||||
- list_for_each(pos, &inode->i_dentry) {
|
|
||||||
+ list_for_each(pos, inode->i_dentry.first) {
|
|
||||||
dentry = list_entry(pos, struct dentry, d_alias);
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 38)
|
|
||||||
dcount = atomic_read(&dentry->d_count);
|
|
||||||
diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/page.c open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/page.c
|
|
||||||
--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/page.c 2012-05-23 00:12:52.000000000 +0400
|
|
||||||
+++ open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/page.c 2012-10-02 15:41:38.000000000 +0400
|
|
||||||
@@ -893,7 +893,7 @@
|
|
||||||
*/
|
|
||||||
if ((offset >= currentFileSize) ||
|
|
||||||
((pageFrom == 0) && (offset + pageTo) >= currentFileSize)) {
|
|
||||||
- void *kaddr = kmap_atomic(page, KM_USER0);
|
|
||||||
+ void *kaddr = kmap_atomic(page);
|
|
||||||
|
|
||||||
if (pageFrom) {
|
|
||||||
memset(kaddr, 0, pageFrom);
|
|
||||||
@@ -901,7 +901,7 @@
|
|
||||||
if (pageTo < PAGE_CACHE_SIZE) {
|
|
||||||
memset(kaddr + pageTo, 0, PAGE_CACHE_SIZE - pageTo);
|
|
||||||
}
|
|
||||||
- kunmap_atomic(kaddr, KM_USER0);
|
|
||||||
+ kunmap_atomic(kaddr);
|
|
||||||
flush_dcache_page(page);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c open-vm-tools-2012.05.21-724730/modules/linux/vmsync/sync.c
|
|
||||||
--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c 2012-05-23 00:12:52.000000000 +0400
|
|
||||||
+++ open-vm-tools-2012.05.21-724730/modules/linux/vmsync/sync.c 2012-10-02 15:23:56.000000000 +0400
|
|
||||||
@@ -162,7 +162,7 @@
|
|
||||||
cancel_delayed_work(&state->thawTask);
|
|
||||||
list_for_each_safe(cur, tmp, &state->devices) {
|
|
||||||
dev = list_entry(cur, VmSyncBlockDevice, list);
|
|
||||||
- if (dev->sb != NULL && dev->sb->s_frozen != SB_UNFROZEN) {
|
|
||||||
+ if (dev->sb != NULL && dev->sb->s_writers.frozen != SB_UNFROZEN) {
|
|
||||||
thaw_bdev(dev->bdev, dev->sb);
|
|
||||||
atomic_dec(&gFreezeCount);
|
|
||||||
}
|
|
||||||
@@ -237,7 +237,7 @@
|
|
||||||
* the superblock is already frozen.
|
|
||||||
*/
|
|
||||||
if (inode->i_sb->s_bdev == NULL ||
|
|
||||||
- inode->i_sb->s_frozen != SB_UNFROZEN) {
|
|
||||||
+ inode->i_sb->s_writers.frozen != SB_UNFROZEN) {
|
|
||||||
result = (inode->i_sb->s_bdev == NULL) ? -EINVAL : -EALREADY;
|
|
||||||
compat_path_release(&nd);
|
|
||||||
goto exit;
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
|||||||
|
diff --git a/modules/linux/vmhgfs/inode.c b/modules/linux/vmhgfs/inode.c
|
||||||
|
index 8d6cfbb..3642171 100644
|
||||||
|
--- a/modules/linux/vmhgfs/inode.c
|
||||||
|
+++ b/modules/linux/vmhgfs/inode.c
|
||||||
|
@@ -1852,7 +1852,7 @@ HgfsPermission(struct inode *inode,
|
||||||
|
#else
|
||||||
|
if (mask & MAY_ACCESS) { /* For sys_access. */
|
||||||
|
#endif
|
||||||
|
- struct list_head *pos;
|
||||||
|
+ struct hlist_node *pos;
|
||||||
|
int dcount = 0;
|
||||||
|
struct dentry *dentry = NULL;
|
||||||
|
|
||||||
|
@@ -1872,7 +1872,7 @@ HgfsPermission(struct inode *inode,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Find a dentry with valid d_count. Refer bug 587879. */
|
||||||
|
- list_for_each(pos, &inode->i_dentry) {
|
||||||
|
+ list_for_each(pos, inode->i_dentry.first) {
|
||||||
|
dentry = list_entry(pos, struct dentry, d_alias);
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 38)
|
||||||
|
dcount = atomic_read(&dentry->d_count);
|
||||||
|
diff --git a/modules/linux/vmsync/sync.c b/modules/linux/vmsync/sync.c
|
||||||
|
index d05ccad..dff7fb5 100644
|
||||||
|
--- a/modules/linux/vmsync/sync.c
|
||||||
|
+++ b/modules/linux/vmsync/sync.c
|
||||||
|
@@ -162,7 +162,7 @@ VmSyncThawDevices(void *_state) // IN
|
||||||
|
cancel_delayed_work(&state->thawTask);
|
||||||
|
list_for_each_safe(cur, tmp, &state->devices) {
|
||||||
|
dev = list_entry(cur, VmSyncBlockDevice, list);
|
||||||
|
- if (dev->sb != NULL && dev->sb->s_frozen != SB_UNFROZEN) {
|
||||||
|
+ if (dev->sb != NULL && dev->sb->s_writers.frozen != SB_UNFROZEN) {
|
||||||
|
thaw_bdev(dev->bdev, dev->sb);
|
||||||
|
atomic_dec(&gFreezeCount);
|
||||||
|
}
|
||||||
|
@@ -237,7 +237,7 @@ VmSyncAddPath(const VmSyncState *state, // IN
|
||||||
|
* the superblock is already frozen.
|
||||||
|
*/
|
||||||
|
if (inode->i_sb->s_bdev == NULL ||
|
||||||
|
- inode->i_sb->s_frozen != SB_UNFROZEN) {
|
||||||
|
+ inode->i_sb->s_writers.frozen != SB_UNFROZEN) {
|
||||||
|
result = (inode->i_sb->s_bdev == NULL) ? -EINVAL : -EALREADY;
|
||||||
|
compat_path_release(&nd);
|
||||||
|
goto exit;
|
@ -19,7 +19,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="nasm"
|
PKG_NAME="nasm"
|
||||||
PKG_VERSION="2.10.06"
|
PKG_VERSION="2.10.07"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="pango"
|
PKG_NAME="pango"
|
||||||
PKG_VERSION="1.32.5"
|
PKG_VERSION="1.32.6"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -Naur pango-1.32.5/configure.ac pango-1.32.5.patch/configure.ac
|
|
||||||
--- pango-1.32.5/configure.ac 2012-12-07 03:43:25.000000000 +0100
|
|
||||||
+++ pango-1.32.5.patch/configure.ac 2013-01-12 18:24:57.601881568 +0100
|
|
||||||
@@ -54,7 +54,7 @@
|
|
||||||
dnl usage of GNU Make specific features.
|
|
||||||
AM_INIT_AUTOMAKE(1.9 gnits dist-xz no-dist-gzip -Wno-portability)
|
|
||||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
|
||||||
-AM_CONFIG_HEADER([config.h])
|
|
||||||
+AC_CONFIG_HEADERS([config.h])
|
|
||||||
|
|
||||||
|
|
||||||
PANGO_VERSION_MAJOR=pango_version_major()
|
|
@ -13,7 +13,6 @@
|
|||||||
<delay>175</delay>
|
<delay>175</delay>
|
||||||
</refresh>
|
</refresh>
|
||||||
</latency>
|
</latency>
|
||||||
<allowhi10pmultithreading>true</allowhi10pmultithreading>
|
|
||||||
</video>
|
</video>
|
||||||
<samba>
|
<samba>
|
||||||
<clienttimeout>30</clienttimeout>
|
<clienttimeout>30</clienttimeout>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user