mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67d84187b0 | ||
|
|
7babb495e3 | ||
|
|
ea1ceaa46f | ||
|
|
68e9c5428f | ||
|
|
540169148a | ||
|
|
913cf458ed | ||
|
|
b6d13595ac | ||
|
|
29bfd8ad51 | ||
|
|
3ec0384725 | ||
|
|
d7612dee66 | ||
|
|
2c80d5d0ed | ||
|
|
f595b4be79 | ||
|
|
39ed3fc17c | ||
|
|
730bffa8c2 | ||
|
|
56f49f178e | ||
|
|
54b3b675c3 | ||
|
|
175f0ca2c9 | ||
|
|
3d49ebd4a3 | ||
|
|
ac3018fd13 | ||
|
|
8015822f52 | ||
|
|
f1314d5d8c | ||
|
|
cb4f8e233e | ||
|
|
5321a58a20 | ||
|
|
4d1a74cede | ||
|
|
1f32acedb8 | ||
|
|
357873e1e6 | ||
|
|
9496c2c80c | ||
|
|
535b0a8cb2 | ||
|
|
fd0b4bd192 | ||
|
|
297db961ba | ||
|
|
9971be4c18 | ||
|
|
087766fe21 | ||
|
|
28d38c295a | ||
|
|
c2f62cfaba | ||
|
|
6c8b869279 | ||
|
|
6fb9f7705c | ||
|
|
5f519dd7f7 | ||
|
|
372a148f60 | ||
|
|
23820c0447 | ||
|
|
ac766edd14 | ||
|
|
a749513c10 | ||
|
|
f00a7d3ba2 | ||
|
|
cdb586ad15 | ||
|
|
e9ff6f4d2d | ||
|
|
15a5ae6ce4 | ||
|
|
07a6125d1e | ||
|
|
3a0b0544d8 | ||
|
|
66c678419d | ||
|
|
670a175206 | ||
|
|
79623f2eb3 | ||
|
|
e43b9b6f75 | ||
|
|
31bc54ef13 | ||
|
|
3db640d681 | ||
|
|
b8d228e228 | ||
|
|
090aa9b441 | ||
|
|
5f5b177c59 | ||
|
|
4add89cab2 | ||
|
|
b1133fc9b8 | ||
|
|
4c9178d948 | ||
|
|
2aa9d968b6 | ||
|
|
4034e52c6d | ||
|
|
406400de43 | ||
|
|
f9fbfc8e62 | ||
|
|
3496da6625 | ||
|
|
31b8ef7afb | ||
|
|
a5d64f255a | ||
|
|
f2e593a8c0 |
@@ -193,3 +193,7 @@ BUILD_INDENT_SIZE=4
|
|||||||
|
|
||||||
# multilib? nah
|
# multilib? nah
|
||||||
unset CONFIG_SITE
|
unset CONFIG_SITE
|
||||||
|
|
||||||
|
# meh suse
|
||||||
|
unset PYTHONSTARTUP
|
||||||
|
unset PYTHONPATH
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# VERSION: set full version, use "devel" for development version
|
# VERSION: set full version, use "devel" for development version
|
||||||
OPENELEC_VERSION="devel"
|
OPENELEC_VERSION="3.95.2"
|
||||||
|
|
||||||
# OS_VERSION: OS Version
|
# OS_VERSION: OS Version
|
||||||
OS_VERSION="4.0"
|
OS_VERSION="4.0"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="vdr-plugin-dvbapi"
|
PKG_NAME="vdr-plugin-dvbapi"
|
||||||
PKG_VERSION="a3b4a5a"
|
PKG_VERSION="a9b738e"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
51
packages/3rdparty/multimedia/vdr-plugin-eepg/package.mk
vendored
Normal file
51
packages/3rdparty/multimedia/vdr-plugin-eepg/package.mk
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
PKG_NAME="vdr-plugin-eepg"
|
||||||
|
PKG_VERSION="69b47ba"
|
||||||
|
PKG_REV="1"
|
||||||
|
PKG_ARCH="any"
|
||||||
|
PKG_LICENSE="GPL"
|
||||||
|
PKG_SITE="http://projects.vdr-developer.org/projects/plg-eepg"
|
||||||
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain vdr"
|
||||||
|
PKG_PRIORITY="optional"
|
||||||
|
PKG_SECTION="multimedia"
|
||||||
|
PKG_SHORTDESC="vdr-plugin-eepg"
|
||||||
|
PKG_LONGDESC="This plugin parses the Extended (2 to 10 day) EPG data which is send by providers on their portal channels. This EEPG data is transmitted in a non-standard format on a non-standard PID."
|
||||||
|
|
||||||
|
PKG_IS_ADDON="no"
|
||||||
|
|
||||||
|
PKG_AUTORECONF="no"
|
||||||
|
|
||||||
|
pre_configure_target() {
|
||||||
|
export CFLAGS="$CFLAGS -fPIC"
|
||||||
|
export CXXFLAGS="$CXXFLAGS -fPIC"
|
||||||
|
export LDFLAGS="$LDFLAGS -fPIC"
|
||||||
|
}
|
||||||
|
|
||||||
|
make_target() {
|
||||||
|
VDR_DIR=$(get_build_dir vdr)
|
||||||
|
make VDRDIR=$VDR_DIR \
|
||||||
|
LIBDIR="." \
|
||||||
|
LOCALEDIR="./locale"
|
||||||
|
}
|
||||||
|
|
||||||
|
makeinstall_target() {
|
||||||
|
: # installation not needed, done by create-addon script
|
||||||
|
}
|
||||||
34
packages/3rdparty/multimedia/vdr-plugin-eepg/patches/vdr-plugin-eepg-01_makefile.patch
vendored
Normal file
34
packages/3rdparty/multimedia/vdr-plugin-eepg/patches/vdr-plugin-eepg-01_makefile.patch
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
--- vdr-plugin-eepg-master/Makefile 2014-03-11 15:44:36.675368020 +0000
|
||||||
|
+++ vdr-plugin-eepg-master/Makefile 2014-03-11 15:51:02.065495474 +0000
|
||||||
|
@@ -31,21 +31,16 @@
|
||||||
|
### The directory environment:
|
||||||
|
|
||||||
|
# Use package data if installed...otherwise assume we're under the VDR source directory:
|
||||||
|
-PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
|
||||||
|
-LIBDIR = $(call PKGCFG,libdir)
|
||||||
|
-LOCDIR = $(call PKGCFG,locdir)
|
||||||
|
-PLGCFG = $(call PKGCFG,plgcfg)
|
||||||
|
#
|
||||||
|
TMPDIR ?= /tmp
|
||||||
|
|
||||||
|
### The compiler options:
|
||||||
|
|
||||||
|
-export CFLAGS = $(call PKGCFG,cflags)
|
||||||
|
-export CXXFLAGS = $(call PKGCFG,cxxflags)
|
||||||
|
+include $(VDRDIR)/Make.global
|
||||||
|
|
||||||
|
### The version number of VDR's plugin API:
|
||||||
|
|
||||||
|
-APIVERSION = $(call PKGCFG,apiversion)
|
||||||
|
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
||||||
|
|
||||||
|
### Allow user defined options to overwrite defaults:
|
||||||
|
|
||||||
|
@@ -119,6 +114,7 @@
|
||||||
|
|
||||||
|
$(SOFILE): $(OBJS)
|
||||||
|
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
|
||||||
|
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
|
||||||
|
|
||||||
|
install-lib: $(SOFILE)
|
||||||
|
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="vdr-plugin-xvdr"
|
PKG_NAME="vdr-plugin-xvdr"
|
||||||
PKG_VERSION="7d6ebb7"
|
PKG_VERSION="4a9d95e"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
4.1.5
|
||||||
|
dont touch /storage/.profile
|
||||||
4.1.4
|
4.1.4
|
||||||
enable hw pid filter by default
|
enable hw pid filter by default
|
||||||
4.1.3
|
4.1.3
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
PKG_NAME="sundtek-mediatv"
|
PKG_NAME="sundtek-mediatv"
|
||||||
PKG_VERSION="4.1"
|
PKG_VERSION="4.1"
|
||||||
PKG_REV="4"
|
PKG_REV="5"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="nonfree"
|
PKG_LICENSE="nonfree"
|
||||||
PKG_SITE="http://support.sundtek.com/"
|
PKG_SITE="http://support.sundtek.com/"
|
||||||
@@ -49,6 +49,8 @@ make_target() {
|
|||||||
esac
|
esac
|
||||||
wget -O installer.tar.gz $INSTALLER_URL
|
wget -O installer.tar.gz $INSTALLER_URL
|
||||||
tar -xzf installer.tar.gz
|
tar -xzf installer.tar.gz
|
||||||
|
# we run this via wrapper
|
||||||
|
mv opt/bin/mediaclient opt/bin/mediaclient.bin
|
||||||
chmod 755 opt/bin/*
|
chmod 755 opt/bin/*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
packages/addons/driver/sundtek-mediatv/source/bin/mediaclient
Executable file
2
packages/addons/driver/sundtek-mediatv/source/bin/mediaclient
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so exec mediaclient.bin "$@"
|
||||||
@@ -73,17 +73,6 @@ mkdir -p /var/config
|
|||||||
cat "$SUNDTEK_ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf
|
cat "$SUNDTEK_ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf
|
||||||
. /var/config/sundtek-addon.conf
|
. /var/config/sundtek-addon.conf
|
||||||
|
|
||||||
# add alias for /opt/bin/mediaclient
|
|
||||||
alias_set="$(grep libmediaclient.so /storage/.profile 2>/dev/null)"
|
|
||||||
if [ -z "$alias_set" ]; then
|
|
||||||
echo "" >>/storage/.profile
|
|
||||||
echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/lib/libmediaclient.so" >>/storage/.profile
|
|
||||||
echo "" >>/storage/.profile
|
|
||||||
else
|
|
||||||
# fix name
|
|
||||||
sed -i 's|/driver.dvb.sundtek/|/driver.dvb.sundtek-mediatv/|g' /storage/.profile
|
|
||||||
fi
|
|
||||||
|
|
||||||
export LD_PRELOAD=$SUNDTEK_ADDON_DIR/lib/libmediaclient.so
|
export LD_PRELOAD=$SUNDTEK_ADDON_DIR/lib/libmediaclient.so
|
||||||
|
|
||||||
if [ -z "$(pidof mediasrv)" ]; then
|
if [ -z "$(pidof mediasrv)" ]; then
|
||||||
@@ -240,7 +229,7 @@ if [ -z "$(pidof mediasrv)" ]; then
|
|||||||
# save adapter serial number in background
|
# save adapter serial number in background
|
||||||
sleep 5
|
sleep 5
|
||||||
serial_number_old=$(cat $SUNDTEK_ADDON_HOME/adapters.txt 2>/dev/null)
|
serial_number_old=$(cat $SUNDTEK_ADDON_HOME/adapters.txt 2>/dev/null)
|
||||||
serial_number_new=$(mediaclient -e | awk '/device / {print $0} /ID:/ {print $2}')
|
serial_number_new=$(mediaclient.bin -e | awk '/device / {print $0} /ID:/ {print $2}')
|
||||||
if [ "$serial_number_old" != "$serial_number_new" ]; then
|
if [ "$serial_number_old" != "$serial_number_new" ]; then
|
||||||
echo "$serial_number_new" >$SUNDTEK_ADDON_HOME/adapters.txt
|
echo "$serial_number_new" >$SUNDTEK_ADDON_HOME/adapters.txt
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ __cwd__ = __settings__.getAddonInfo('path')
|
|||||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||||
|
|
||||||
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient'))
|
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient.bin'))
|
||||||
__ld_preload__ = xbmc.translatePath(os.path.join(__cwd__, 'lib', 'libmediaclient.so'))
|
__ld_preload__ = xbmc.translatePath(os.path.join(__cwd__, 'lib', 'libmediaclient.so'))
|
||||||
__mediaclient_e__ = 'LD_PRELOAD=' + __ld_preload__ + ' ' + __mediaclient__ + ' -e'
|
__mediaclient_e__ = 'LD_PRELOAD=' + __ld_preload__ + ' ' + __mediaclient__ + ' -e'
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
4.1.2
|
||||||
|
- fix issues with "wait for frontend init". thanks @sraue
|
||||||
|
|
||||||
4.1.1
|
4.1.1
|
||||||
- rebuild to fix curl/gnutls/ssl
|
- rebuild to fix curl/gnutls/ssl
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
PKG_NAME="tvheadend"
|
PKG_NAME="tvheadend"
|
||||||
PKG_VERSION="3.4.27"
|
PKG_VERSION="3.4.27"
|
||||||
PKG_REV="1"
|
PKG_REV="2"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
||||||
|
|||||||
@@ -73,10 +73,13 @@ for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver
|
|||||||
done
|
done
|
||||||
|
|
||||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||||
|
# xbmc allows "numeric" type field to be empty. lets handle thaat
|
||||||
|
[ "$NUM_ADAPTERS" = "" ] && NUM_ADAPTERS=1
|
||||||
|
# 0 does not make sense. should be 1 or more
|
||||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||||
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||||
while [ true ] ; do
|
while [ true ] ; do
|
||||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
4.1.5
|
||||||
|
- fix issues with "wait for frontend init". thanks @sraue
|
||||||
|
|
||||||
|
4.1.4
|
||||||
|
- add plugin 'vdr-plugin-eepg'
|
||||||
|
- update to vdr-plugin-xvdr-4a9d95e
|
||||||
|
- update to vdr-plugin-dvbapi-a9b738e
|
||||||
|
|
||||||
4.1.3
|
4.1.3
|
||||||
- update to vdr-2.1.5
|
- update to vdr-2.1.5
|
||||||
- update to vdr-iptv-2.1.0
|
- update to vdr-iptv-2.1.0
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
|
|
||||||
PKG_NAME="vdr-addon"
|
PKG_NAME="vdr-addon"
|
||||||
PKG_VERSION="4.1"
|
PKG_VERSION="4.1"
|
||||||
PKG_REV="3"
|
PKG_REV="5"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.openelec.tv"
|
PKG_SITE="http://www.openelec.tv"
|
||||||
PKG_URL=""
|
PKG_URL=""
|
||||||
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-sc vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr"
|
PKG_DEPENDS_TARGET="toolchain attr libcap vdr vdr-plugin-xvdr vdr-plugin-vnsiserver vdr-iptv vdr-wirbelscan vdr-wirbelscancontrol vdr-sc vdr-plugin-dvbapi vdr-plugin-streamdev vdr-live vdr-control vdr-epgsearch vdr-plugin-xmltv2vdr vdr-plugin-eepg"
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
PKG_SECTION="service.multimedia"
|
PKG_SECTION="service.multimedia"
|
||||||
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
PKG_SHORTDESC="vdr: A powerful DVB TV application"
|
||||||
@@ -76,6 +76,7 @@ addon() {
|
|||||||
cp -PR $(get_build_dir vdr-wirbelscan)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $(get_build_dir vdr-wirbelscan)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
cp -PR $(get_build_dir vdr-wirbelscancontrol)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $(get_build_dir vdr-wirbelscancontrol)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
cp -PR $(get_build_dir vdr-plugin-dvbapi)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $(get_build_dir vdr-plugin-dvbapi)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
|
cp -PR $(get_build_dir vdr-plugin-eepg)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
cp -PR $VDR_SC_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $VDR_SC_DIR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
cp -PR $VDR_SC_DIR/systems/*/libsc*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $VDR_SC_DIR/systems/*/libsc*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/server/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $VDR_PLUGIN_STREAMVEV_DIR/server/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
@@ -85,6 +86,8 @@ addon() {
|
|||||||
cp -PR $(get_build_dir vdr-epgsearch)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $(get_build_dir vdr-epgsearch)/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
cp -PR $VDR_PLUGIN_XMLTV2VDR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
cp -PR $VDR_PLUGIN_XMLTV2VDR/libvdr*.so.* $ADDON_BUILD/$PKG_ADDON_ID/plugin
|
||||||
|
|
||||||
|
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/eepg
|
||||||
|
|
||||||
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
||||||
cp -PR $VDR_PLUGIN_XVDR_DIR/xvdr/allowed_hosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
cp -PR $VDR_PLUGIN_XVDR_DIR/xvdr/allowed_hosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
||||||
cp -PR $VDR_PLUGIN_XVDR_DIR/xvdr/xvdr.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
cp -PR $VDR_PLUGIN_XVDR_DIR/xvdr/xvdr.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/xvdr
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ fi
|
|||||||
if [ "$ENABLE_CONTROL" == "true" ] ; then
|
if [ "$ENABLE_CONTROL" == "true" ] ; then
|
||||||
VDR_ARG="$VDR_ARG -P 'control -p $CONTROL_PORT'"
|
VDR_ARG="$VDR_ARG -P 'control -p $CONTROL_PORT'"
|
||||||
fi
|
fi
|
||||||
|
if [ "$ENABLE_EEPG" == "true" ] ; then
|
||||||
|
VDR_ARG="$VDR_ARG -P eepg"
|
||||||
|
fi
|
||||||
if [ "$ENABLE_EPGSEARCH" == "true" ] ; then
|
if [ "$ENABLE_EPGSEARCH" == "true" ] ; then
|
||||||
VDR_ARG="$VDR_ARG -P epgsearch"
|
VDR_ARG="$VDR_ARG -P epgsearch"
|
||||||
fi
|
fi
|
||||||
@@ -140,10 +143,13 @@ for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver
|
|||||||
done
|
done
|
||||||
|
|
||||||
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
# (wait for) at least 1 adapter (xbmc allows to set 0)
|
||||||
|
# xbmc allows "numeric" type field to be empty. lets handle thaat
|
||||||
|
[ "$NUM_ADAPTERS" = "" ] && NUM_ADAPTERS=1
|
||||||
|
# 0 does not make sense. should be 1 or more
|
||||||
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
[ $NUM_ADAPTERS -lt 1 ] && NUM_ADAPTERS=1
|
||||||
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
if [ "$WAIT_FOR_FEINIT" == "true" ] ; then
|
||||||
while [ true ] ; do
|
while [ true ] ; do
|
||||||
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend* ] ; then
|
if [ -e /dev/dvb/adapter$((NUM_ADAPTERS-1))/frontend0 ] ; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
<string id="1043">control: listen on port</string>
|
<string id="1043">control: listen on port</string>
|
||||||
<string id="1044">Enable plugin: epgsearch</string>
|
<string id="1044">Enable plugin: epgsearch</string>
|
||||||
<string id="1045">Enable plugin: xmltv2vdr</string>
|
<string id="1045">Enable plugin: xmltv2vdr</string>
|
||||||
|
<string id="1046">Enable plugin: extended EPG</string>
|
||||||
<string id="1051">VDR Configuration</string>
|
<string id="1051">VDR Configuration</string>
|
||||||
<string id="1052">VDR Video Dir</string>
|
<string id="1052">VDR Video Dir</string>
|
||||||
<string id="1053">PVR plugin</string>
|
<string id="1053">PVR plugin</string>
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
<setting id="LIVE_PORT" type="number" label="1040" values="" enable="!eq(-2,false)" default="8008"/>
|
<setting id="LIVE_PORT" type="number" label="1040" values="" enable="!eq(-2,false)" default="8008"/>
|
||||||
<setting id="ENABLE_CONTROL" type="bool" label="1042" default="false" />
|
<setting id="ENABLE_CONTROL" type="bool" label="1042" default="false" />
|
||||||
<setting id="CONTROL_PORT" type="number" label="1043" values="" enable="!eq(-1,false)" default="2002"/>
|
<setting id="CONTROL_PORT" type="number" label="1043" values="" enable="!eq(-1,false)" default="2002"/>
|
||||||
|
<setting id="ENABLE_EEPG" type="bool" label="1046" default="false" />
|
||||||
<setting id="ENABLE_EPGSEARCH" type="bool" label="1044" default="false" />
|
<setting id="ENABLE_EPGSEARCH" type="bool" label="1044" default="false" />
|
||||||
<setting id="ENABLE_XMLTV2VDR" type="bool" label="1045" default="false" />
|
<setting id="ENABLE_XMLTV2VDR" type="bool" label="1045" default="false" />
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
<setting id="LIVE_PORT" value="8008" />
|
<setting id="LIVE_PORT" value="8008" />
|
||||||
<setting id="ENABLE_CONTROL" value="false" />
|
<setting id="ENABLE_CONTROL" value="false" />
|
||||||
<setting id="CONTROL_PORT" value="2002" />
|
<setting id="CONTROL_PORT" value="2002" />
|
||||||
|
<setting id="ENABLE_EEPG" value="false" />
|
||||||
<setting id="ENABLE_EPGSEARCH" value="false" />
|
<setting id="ENABLE_EPGSEARCH" value="false" />
|
||||||
<setting id="ENABLE_XMLTV2VDR" value="false" />
|
<setting id="ENABLE_XMLTV2VDR" value="false" />
|
||||||
<setting id="SOFTCAM_PLUGIN" value="sc" />
|
<setting id="SOFTCAM_PLUGIN" value="sc" />
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ post_makeinstall_target() {
|
|||||||
rm -rf $INSTALL/lib $INSTALL/var
|
rm -rf $INSTALL/lib $INSTALL/var
|
||||||
rm -rf $INSTALL/usr/share/alsa/speaker-test
|
rm -rf $INSTALL/usr/share/alsa/speaker-test
|
||||||
rm -rf $INSTALL/usr/share/sounds
|
rm -rf $INSTALL/usr/share/sounds
|
||||||
|
rm -rf $INSTALL/usr/lib/systemd/system
|
||||||
|
|
||||||
for i in aconnect alsaucm amidi aplaymidi arecord arecordmidi aseqdump aseqnet iecset; do
|
for i in aconnect alsaucm amidi aplaymidi arecord arecordmidi aseqdump aseqnet iecset; do
|
||||||
rm -rf $INSTALL/usr/bin/$i
|
rm -rf $INSTALL/usr/bin/$i
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="pulseaudio"
|
PKG_NAME="pulseaudio"
|
||||||
PKG_VERSION="4.99.3"
|
PKG_VERSION="5.0"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://pulseaudio.org/"
|
PKG_SITE="http://pulseaudio.org/"
|
||||||
PKG_URL="http://cgit.freedesktop.org/pulseaudio/pulseaudio/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz"
|
PKG_URL="http://www.freedesktop.org/software/pulseaudio/releases/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
PKG_DEPENDS_TARGET="toolchain libtool json-c alsa-lib libsndfile libsamplerate speex dbus systemd openssl libcap"
|
PKG_DEPENDS_TARGET="toolchain libtool json-c alsa-lib libsndfile libsamplerate speex dbus systemd openssl libcap"
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
PKG_SECTION="audio"
|
PKG_SECTION="audio"
|
||||||
@@ -41,8 +41,6 @@ else
|
|||||||
PULSEAUDIO_BLUETOOTH="--disable-bluez5"
|
PULSEAUDIO_BLUETOOTH="--disable-bluez5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export GIT_DESCRIBE_FOR_BUILD="4.0"
|
|
||||||
|
|
||||||
# package specific configure options
|
# package specific configure options
|
||||||
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
|
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
|
||||||
--disable-nls \
|
--disable-nls \
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ PKG_IS_ADDON="no"
|
|||||||
PKG_AUTORECONF="no"
|
PKG_AUTORECONF="no"
|
||||||
|
|
||||||
configure_host() {
|
configure_host() {
|
||||||
../configure --no-qt-gui
|
../configure --no-qt-gui -- -DBUILD_CursesDialog=0
|
||||||
}
|
}
|
||||||
|
|
||||||
makeinstall_host() {
|
makeinstall_host() {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="bcm2835-driver"
|
PKG_NAME="bcm2835-driver"
|
||||||
PKG_VERSION="bec4bd0"
|
PKG_VERSION="11886b8"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="nonfree"
|
PKG_LICENSE="nonfree"
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ configure_target() {
|
|||||||
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` && \
|
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` && \
|
||||||
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-intel/enable-intel/'`
|
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-intel/enable-intel/'`
|
||||||
|
|
||||||
[ "$drv" = "r200" -o "$drv" = "r300" -o "$drv" = "r600" -o "$drv" = "radeon" ] && \
|
[ "$drv" = "r200" -o "$drv" = "r300" -o "$drv" = "r600" -o "$drv" = "radeonsi" ] && \
|
||||||
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` && \
|
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-libkms/enable-libkms/'` && \
|
||||||
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-radeon/enable-radeon/'`
|
DRM_CONFIG=`echo $DRM_CONFIG | sed -e 's/disable-radeon/enable-radeon/'`
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="dvb-firmware"
|
PKG_NAME="dvb-firmware"
|
||||||
PKG_VERSION="0.0.37"
|
PKG_VERSION="0.0.38"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="Free-to-use"
|
PKG_LICENSE="Free-to-use"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="misc-firmware"
|
PKG_NAME="misc-firmware"
|
||||||
PKG_VERSION="0.0.6"
|
PKG_VERSION="0.0.9"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="Free-to-use"
|
PKG_LICENSE="Free-to-use"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="wlan-firmware"
|
PKG_NAME="wlan-firmware"
|
||||||
PKG_VERSION="0.0.16"
|
PKG_VERSION="0.0.17"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="Free-to-use"
|
PKG_LICENSE="Free-to-use"
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ case "$LINUX" in
|
|||||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
PKG_VERSION="3.13.5"
|
PKG_VERSION="3.13.6"
|
||||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
23
packages/linux/udev.d/30-disable-wakeup.rules
Normal file
23
packages/linux/udev.d/30-disable-wakeup.rules
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
ACTION!="add|change", GOTO="end"
|
||||||
|
|
||||||
|
DRIVER=="ehci-pci|xhci_hcd", RUN+="/bin/sh -c 'echo disabled > /sys/$devpath/power/wakeup'"
|
||||||
|
|
||||||
|
LABEL="end"
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="service.openelec.settings"
|
PKG_NAME="service.openelec.settings"
|
||||||
PKG_VERSION="0.3.11"
|
PKG_VERSION="0.3.12"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="prop."
|
PKG_LICENSE="prop."
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="xbmc-addon-xvdr"
|
PKG_NAME="xbmc-addon-xvdr"
|
||||||
PKG_VERSION="df75826"
|
PKG_VERSION="77a27f8"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="xbmc-theme-Confluence"
|
PKG_NAME="xbmc-theme-Confluence"
|
||||||
PKG_VERSION="13-128426f"
|
PKG_VERSION="13-a1cab7a"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
@@ -17,13 +17,13 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="xbmc"
|
PKG_NAME="xbmc"
|
||||||
PKG_VERSION="13-128426f"
|
PKG_VERSION="13-a1cab7a"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.xbmc.org"
|
PKG_SITE="http://www.xbmc.org"
|
||||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
PKG_DEPENDS_TARGET="toolchain boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass enca curl libssh rtmpdump fontconfig fribidi tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis"
|
PKG_DEPENDS_TARGET="toolchain boost Python zlib bzip2 systemd pciutils lzo pcre swig:host libass enca curl rtmpdump fontconfig fribidi gnutls tinyxml libjpeg-turbo libpng tiff freetype jasper libmad libsamplerate libogg libcdio libmodplug faad2 flac libmpeg2 taglib libxml2 libxslt yajl sqlite libvorbis"
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
PKG_SECTION="mediacenter"
|
PKG_SECTION="mediacenter"
|
||||||
PKG_SHORTDESC="xbmc: XBMC Mediacenter"
|
PKG_SHORTDESC="xbmc: XBMC Mediacenter"
|
||||||
@@ -248,6 +248,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$SSHLIB_SUPPORT" = yes ]; then
|
if [ "$SSHLIB_SUPPORT" = yes ]; then
|
||||||
|
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libssh"
|
||||||
XBMC_SSH="--enable-ssh"
|
XBMC_SSH="--enable-ssh"
|
||||||
else
|
else
|
||||||
XBMC_SSH="--disable-ssh"
|
XBMC_SSH="--disable-ssh"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 6d995e2ac52920ac6ff033a59b97fb720638f549 Mon Sep 17 00:00:00 2001
|
From 320046ba60eca428368d9fe229670a61ea31ff80 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 28 May 2012 10:34:39 +0200
|
Date: Mon, 28 May 2012 10:34:39 +0200
|
||||||
Subject: [PATCH 01/93] videoplayer: adapt lateness detection and dropping to
|
Subject: [PATCH 01/93] videoplayer: adapt lateness detection and dropping to
|
||||||
@@ -584,7 +584,7 @@ index f8ad541..186e271 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 63a09309c976039ac24b94d6d083da4e88c13291 Mon Sep 17 00:00:00 2001
|
From cbecaef2fb4c319c179c2283e82cead122f3bab5 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 2 Sep 2012 16:05:21 +0200
|
Date: Sun, 2 Sep 2012 16:05:21 +0200
|
||||||
Subject: [PATCH 02/93] video player: present correct pts to user for a/v sync
|
Subject: [PATCH 02/93] video player: present correct pts to user for a/v sync
|
||||||
@@ -655,7 +655,7 @@ index 186e271..59c7f09 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From bbce2138fe94e96958aaf77af22f7f17b58089ad Mon Sep 17 00:00:00 2001
|
From 893b7955a20aeaf74b06b7de1c28e08ef05625dd Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sat, 16 Feb 2013 18:25:53 +0100
|
Date: Sat, 16 Feb 2013 18:25:53 +0100
|
||||||
Subject: [PATCH 03/93] videoplayer: some rework and documentation
|
Subject: [PATCH 03/93] videoplayer: some rework and documentation
|
||||||
@@ -768,7 +768,7 @@ index 1d29b6f..ee07f30 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 3a09b4d089e8bf71f601dde9606e1f15dfb92a1a Mon Sep 17 00:00:00 2001
|
From af8d9a25047777c7dd11797b07168a7e7f6fe1ce Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sat, 1 Jun 2013 11:21:19 +0200
|
Date: Sat, 1 Jun 2013 11:21:19 +0200
|
||||||
Subject: [PATCH 04/93] renderer: bump buffers to 5
|
Subject: [PATCH 04/93] renderer: bump buffers to 5
|
||||||
@@ -794,7 +794,7 @@ index dc2712a..9edfbd4 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 260842a6cee74dc6f2b6561a9228d6f5631fb98c Mon Sep 17 00:00:00 2001
|
From 2c520fc1ace027ecbecd06eb60aebe607e04c538 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 28 May 2012 10:41:31 +0200
|
Date: Mon, 28 May 2012 10:41:31 +0200
|
||||||
Subject: [PATCH 05/93] videoplayer: update frametime, it might change due to
|
Subject: [PATCH 05/93] videoplayer: update frametime, it might change due to
|
||||||
@@ -821,7 +821,7 @@ index ee07f30..b3175cd 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 839923110254df4db9d4d767455c80a6762d3b27 Mon Sep 17 00:00:00 2001
|
From e4e8f007146ed6d84a10f56a8ec1c8f70643b050 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 28 May 2012 10:43:06 +0200
|
Date: Mon, 28 May 2012 10:43:06 +0200
|
||||||
Subject: [PATCH 06/93] videoplayer: give streams with invalid fps a chance for
|
Subject: [PATCH 06/93] videoplayer: give streams with invalid fps a chance for
|
||||||
@@ -848,7 +848,7 @@ index b3175cd..9c36bdb 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 4a594b29c3ee7153ca848940fec14e49f52f78be Mon Sep 17 00:00:00 2001
|
From f565af531ea544c02207993205a2c1f79e003a77 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 28 May 2012 10:49:05 +0200
|
Date: Mon, 28 May 2012 10:49:05 +0200
|
||||||
Subject: [PATCH 07/93] dvdplayer: allow rewinding at end of stream, do a seek
|
Subject: [PATCH 07/93] dvdplayer: allow rewinding at end of stream, do a seek
|
||||||
@@ -888,7 +888,7 @@ index b056c8b..0d2b4ae 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 02e0f1052593811983b5376300cdcd676d990891 Mon Sep 17 00:00:00 2001
|
From c686480a53d7cdcf63a3000bf408ef4153e359a1 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 15:22:05 +0200
|
Date: Thu, 5 Jul 2012 15:22:05 +0200
|
||||||
Subject: [PATCH 08/93] X11: ditch SDL for video and window events
|
Subject: [PATCH 08/93] X11: ditch SDL for video and window events
|
||||||
@@ -2428,7 +2428,7 @@ index b1464d0..34b912f 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e4685435e33a7b98b26d7c1cf59fb46b766ac9c3 Mon Sep 17 00:00:00 2001
|
From 78d8cdb9dd83a7dfdbe77fa1bb137944200bed06 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 15:24:22 +0200
|
Date: Thu, 5 Jul 2012 15:24:22 +0200
|
||||||
Subject: [PATCH 09/93] X11: Add xbmc icon
|
Subject: [PATCH 09/93] X11: Add xbmc icon
|
||||||
@@ -2621,7 +2621,7 @@ index 34b912f..352e90e 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 061c454eb3d8dea611c41de3d1d993731488844c Mon Sep 17 00:00:00 2001
|
From a5da9aa02e7fa7ee91d0c98ef20c57b3737670e0 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 20 May 2012 14:11:26 +0200
|
Date: Sun, 20 May 2012 14:11:26 +0200
|
||||||
Subject: [PATCH 10/93] X11: add SDL joystick until we have a better solution
|
Subject: [PATCH 10/93] X11: add SDL joystick until we have a better solution
|
||||||
@@ -2678,7 +2678,7 @@ index ad58aad..6f57a87 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 69d4934a7b5d81372783947565484c86b322ab8f Mon Sep 17 00:00:00 2001
|
From 97fa84c30a5c726690f886ac596bfd80870d8d77 Mon Sep 17 00:00:00 2001
|
||||||
From: Joakim Plate <elupus@xbmc.org>
|
From: Joakim Plate <elupus@xbmc.org>
|
||||||
Date: Thu, 5 Jul 2012 12:35:55 +0200
|
Date: Thu, 5 Jul 2012 12:35:55 +0200
|
||||||
Subject: [PATCH 11/93] X11: factor out code handling device reset notification
|
Subject: [PATCH 11/93] X11: factor out code handling device reset notification
|
||||||
@@ -2744,7 +2744,7 @@ index 352e90e..3f91b9b 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From bcbe81546fe3722a45901253c2266daa90eef526 Mon Sep 17 00:00:00 2001
|
From 1d0601d1ec7d1ffcd14fd233d4f4769e862680bc Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 15:02:00 +0200
|
Date: Thu, 5 Jul 2012 15:02:00 +0200
|
||||||
Subject: [PATCH 12/93] X11: move xrandr events to WinEventsX11
|
Subject: [PATCH 12/93] X11: move xrandr events to WinEventsX11
|
||||||
@@ -2891,7 +2891,7 @@ index 304dac8..16b13aa 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 666229e1c04fca7c780dfcfa28c86b13da05cec8 Mon Sep 17 00:00:00 2001
|
From 3181b919ca96f6837dde69a178ebb43112dff734 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 12 Apr 2012 15:43:56 +0200
|
Date: Thu, 12 Apr 2012 15:43:56 +0200
|
||||||
Subject: [PATCH 13/93] xrandr: remove method RestoreState
|
Subject: [PATCH 13/93] xrandr: remove method RestoreState
|
||||||
@@ -2973,7 +2973,7 @@ index 0aec487..00b49dc 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From fc6f8d406eda6a82002ebf474027087719e05a61 Mon Sep 17 00:00:00 2001
|
From 65e877e82067a917e683c5930b2dc3840693f3ea Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 20 May 2012 13:17:10 +0200
|
Date: Sun, 20 May 2012 13:17:10 +0200
|
||||||
Subject: [PATCH 14/93] xrandr: observe orientation
|
Subject: [PATCH 14/93] xrandr: observe orientation
|
||||||
@@ -3191,7 +3191,7 @@ index 00b49dc..508604d 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From b13aaeb00759685f1dcd64b20818ecb8e97e3e2f Mon Sep 17 00:00:00 2001
|
From 6c652b01707baa034c3dacd7e2a6c1a38385f514 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 11:54:15 +0200
|
Date: Thu, 5 Jul 2012 11:54:15 +0200
|
||||||
Subject: [PATCH 15/93] xrandr: allow getting info for multiple screen's
|
Subject: [PATCH 15/93] xrandr: allow getting info for multiple screen's
|
||||||
@@ -3369,7 +3369,7 @@ index 508604d..d37838a 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 014a369b992517921bc18a0b12d2f529ce98cb18 Mon Sep 17 00:00:00 2001
|
From fec4134865c2071f80276d020f900307f45d8057 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 11:44:00 +0200
|
Date: Thu, 5 Jul 2012 11:44:00 +0200
|
||||||
Subject: [PATCH 16/93] X11: fix multi-head setups
|
Subject: [PATCH 16/93] X11: fix multi-head setups
|
||||||
@@ -3387,10 +3387,10 @@ Subject: [PATCH 16/93] X11: fix multi-head setups
|
|||||||
9 files changed, 227 insertions(+), 113 deletions(-)
|
9 files changed, 227 insertions(+), 113 deletions(-)
|
||||||
|
|
||||||
diff --git a/language/English/strings.po b/language/English/strings.po
|
diff --git a/language/English/strings.po b/language/English/strings.po
|
||||||
index a6f728d..1128097 100755
|
index 6b1070d..d9b34e1 100755
|
||||||
--- a/language/English/strings.po
|
--- a/language/English/strings.po
|
||||||
+++ b/language/English/strings.po
|
+++ b/language/English/strings.po
|
||||||
@@ -1019,7 +1019,9 @@ msgctxt "#245"
|
@@ -1021,7 +1021,9 @@ msgctxt "#245"
|
||||||
msgid "Sizing: (%i,%i)->(%i,%i) (Zoom x%2.2f) AR:%2.2f:1 (Pixels: %2.2f:1) (VShift: %2.2f)"
|
msgid "Sizing: (%i,%i)->(%i,%i) (Zoom x%2.2f) AR:%2.2f:1 (Pixels: %2.2f:1) (VShift: %2.2f)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3402,7 +3402,7 @@ index a6f728d..1128097 100755
|
|||||||
msgctxt "#247"
|
msgctxt "#247"
|
||||||
msgid "Scripts"
|
msgid "Scripts"
|
||||||
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
||||||
index ca2ac56..266d04d 100644
|
index c6b03b9..4882978 100644
|
||||||
--- a/system/settings/settings.xml
|
--- a/system/settings/settings.xml
|
||||||
+++ b/system/settings/settings.xml
|
+++ b/system/settings/settings.xml
|
||||||
@@ -2250,6 +2250,15 @@
|
@@ -2250,6 +2250,15 @@
|
||||||
@@ -4131,7 +4131,7 @@ index 4175aab..94584ab 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 4fa6d100e96a115d7b012e09da7fbbba3df194ce Mon Sep 17 00:00:00 2001
|
From bf5648cf0df4279b2135f65d39542258de32a307 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 11:36:32 +0200
|
Date: Thu, 5 Jul 2012 11:36:32 +0200
|
||||||
Subject: [PATCH 17/93] X11: remove all DefaultScreen and RootWindow macros
|
Subject: [PATCH 17/93] X11: remove all DefaultScreen and RootWindow macros
|
||||||
@@ -4202,7 +4202,7 @@ index 6383754..21e7dc5 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 4f64f4ad422d85844663ae7c69ea54ed68a993c2 Mon Sep 17 00:00:00 2001
|
From 140a3ba6605aaba862ee004e78ff96aa84e0b8d9 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 11:45:22 +0200
|
Date: Thu, 5 Jul 2012 11:45:22 +0200
|
||||||
Subject: [PATCH 18/93] X11: remove all DefaultScreen and RootWindow macros
|
Subject: [PATCH 18/93] X11: remove all DefaultScreen and RootWindow macros
|
||||||
@@ -4277,7 +4277,7 @@ index 0b3950a..ca43b5a 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From b2036fc72c741d2b989918a1b9b16f2a0469875e Mon Sep 17 00:00:00 2001
|
From bccf49bf686d33cf16db5f99e013a71e2c3a2373 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Wed, 20 Jun 2012 17:37:11 +0200
|
Date: Wed, 20 Jun 2012 17:37:11 +0200
|
||||||
Subject: [PATCH 19/93] X11: recreate gl context after output has changed
|
Subject: [PATCH 19/93] X11: recreate gl context after output has changed
|
||||||
@@ -4431,7 +4431,7 @@ index 21e7dc5..8e68d5d 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From ef49b49e2350afff171e005235a1e747a63ad24e Mon Sep 17 00:00:00 2001
|
From 639f0284a947daac02be7bf2e727226f3f2c1526 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 12:06:25 +0200
|
Date: Thu, 5 Jul 2012 12:06:25 +0200
|
||||||
Subject: [PATCH 20/93] X11: hook video reference clock in windowing
|
Subject: [PATCH 20/93] X11: hook video reference clock in windowing
|
||||||
@@ -4639,7 +4639,7 @@ index dd65a1b..afd71fc 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 52ee3a13d512cbdcb6d2f5cfb6e55dd64bde0f73 Mon Sep 17 00:00:00 2001
|
From f6ca378b58cabe46334742050fe263a98ac64f94 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 21 Jun 2012 17:26:51 +0200
|
Date: Thu, 21 Jun 2012 17:26:51 +0200
|
||||||
Subject: [PATCH 21/93] X11: fix video calibrations
|
Subject: [PATCH 21/93] X11: fix video calibrations
|
||||||
@@ -4734,7 +4734,7 @@ index 9666cc3..5b52d6c 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 47feaa464ce70fa0676484a3296a47d00f8318b2 Mon Sep 17 00:00:00 2001
|
From c329e543adfd4989b6e53f936200f552ab90a369 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 12:00:26 +0200
|
Date: Thu, 5 Jul 2012 12:00:26 +0200
|
||||||
Subject: [PATCH 22/93] X11: deactivate screen saver on startup
|
Subject: [PATCH 22/93] X11: deactivate screen saver on startup
|
||||||
@@ -4807,7 +4807,7 @@ index 5b52d6c..b2bd5a0 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 980487ffefff62b98e831514ad8766a182df306d Mon Sep 17 00:00:00 2001
|
From d157d02acb752b074e9691f5b75bd55363dc5528 Mon Sep 17 00:00:00 2001
|
||||||
From: FernetMenta <fernetmenta@online.de>
|
From: FernetMenta <fernetmenta@online.de>
|
||||||
Date: Thu, 5 Jul 2012 12:10:09 +0200
|
Date: Thu, 5 Jul 2012 12:10:09 +0200
|
||||||
Subject: [PATCH 23/93] X11: change method of going full-screen
|
Subject: [PATCH 23/93] X11: change method of going full-screen
|
||||||
@@ -4854,7 +4854,7 @@ index b76b229..869baa8 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 0a3e66dd35dff6170952e682ac72c4cd937ed17f Mon Sep 17 00:00:00 2001
|
From 237a8d20a027e2fd3dfeb145aca32bff0525903a Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 28 Jun 2012 19:12:39 +0200
|
Date: Thu, 28 Jun 2012 19:12:39 +0200
|
||||||
Subject: [PATCH 24/93] X11: reset key repeat and key modifier on focus lost
|
Subject: [PATCH 24/93] X11: reset key repeat and key modifier on focus lost
|
||||||
@@ -4889,7 +4889,7 @@ index d98f12f..743aca9 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 029d7ccfec57ce79cfd5dc8ec2fb50b77a813573 Mon Sep 17 00:00:00 2001
|
From d86f85ddac13b7d104add8cac02c362f7a4fab28 Mon Sep 17 00:00:00 2001
|
||||||
From: Joakim Plate <elupus@xbmc.org>
|
From: Joakim Plate <elupus@xbmc.org>
|
||||||
Date: Thu, 5 Jul 2012 14:18:46 +0200
|
Date: Thu, 5 Jul 2012 14:18:46 +0200
|
||||||
Subject: [PATCH 25/93] X11: replace custom utf8 to unicode with charset
|
Subject: [PATCH 25/93] X11: replace custom utf8 to unicode with charset
|
||||||
@@ -5109,7 +5109,7 @@ index a412f32..9a8a912 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 9bae770b4a3a4293bed3235eee0947ecd3c614e1 Mon Sep 17 00:00:00 2001
|
From 196db63b99d44b058a6b1fdd80798afbaab4435f Mon Sep 17 00:00:00 2001
|
||||||
From: Joakim Plate <elupus@xbmc.org>
|
From: Joakim Plate <elupus@xbmc.org>
|
||||||
Date: Thu, 5 Jul 2012 14:23:54 +0200
|
Date: Thu, 5 Jul 2012 14:23:54 +0200
|
||||||
Subject: [PATCH 26/93] X11: fixed invalid usage of sizeof() (squash into x11
|
Subject: [PATCH 26/93] X11: fixed invalid usage of sizeof() (squash into x11
|
||||||
@@ -5176,7 +5176,7 @@ index 9a8a912..c69169c 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From a48fce49dc5bd7108a0c704a0008a9eea5818f94 Mon Sep 17 00:00:00 2001
|
From 3ccc149a56b520df7a8933b889273296ba875090 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sat, 9 Jun 2012 18:23:53 +0200
|
Date: Sat, 9 Jun 2012 18:23:53 +0200
|
||||||
Subject: [PATCH 27/93] add missing keys to xbmc keytable
|
Subject: [PATCH 27/93] add missing keys to xbmc keytable
|
||||||
@@ -5202,7 +5202,7 @@ index d57f4d3..b807897 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 52c6703bbd3dc358fe113699559183fe51d65980 Mon Sep 17 00:00:00 2001
|
From 2b820efe0e7850414b31495b9569e6dac6e90a28 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Fri, 16 Mar 2012 15:57:51 +0100
|
Date: Fri, 16 Mar 2012 15:57:51 +0100
|
||||||
Subject: [PATCH 28/93] videorefclock: temp deactivate of nv settings
|
Subject: [PATCH 28/93] videorefclock: temp deactivate of nv settings
|
||||||
@@ -5228,7 +5228,7 @@ index 0ddf102..3ae7107 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 45a51e95d4600b9e3ed2d15ed0de4f1aa984617c Mon Sep 17 00:00:00 2001
|
From cd2f165acc58eaa519b48cdb53a6b5a4a8120be0 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 20 Aug 2012 09:09:09 +0200
|
Date: Mon, 20 Aug 2012 09:09:09 +0200
|
||||||
Subject: [PATCH 29/93] videorefclock: ask graphics context for refresh rate
|
Subject: [PATCH 29/93] videorefclock: ask graphics context for refresh rate
|
||||||
@@ -5262,7 +5262,7 @@ index 3ae7107..27bebde 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From a6595467231318cdceaf0aebc08304cdb7f2bf99 Mon Sep 17 00:00:00 2001
|
From 603317efd971a1f90d15ebb5c8bc381912b710e2 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 9 Jul 2012 14:00:18 +0200
|
Date: Mon, 9 Jul 2012 14:00:18 +0200
|
||||||
Subject: [PATCH 30/93] X11: fix icon texture after
|
Subject: [PATCH 30/93] X11: fix icon texture after
|
||||||
@@ -5373,7 +5373,7 @@ index 869baa8..bfe3797 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 83250d9286f439244dd15b1028b1a71fcfda725c Mon Sep 17 00:00:00 2001
|
From 14680a3fd13af0a41b43899fdf3a2da65abad5f4 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Tue, 10 Jul 2012 11:14:12 +0200
|
Date: Tue, 10 Jul 2012 11:14:12 +0200
|
||||||
Subject: [PATCH 31/93] X11: check for window manager
|
Subject: [PATCH 31/93] X11: check for window manager
|
||||||
@@ -5497,7 +5497,7 @@ index b2bd5a0..3e62cd8 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 7d061e27372dcecdaf1299d49d75d2a508f18ef7 Mon Sep 17 00:00:00 2001
|
From 0665385b9d92a49c75403273444d898589ec4185 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 12 Jul 2012 11:11:47 +0200
|
Date: Thu, 12 Jul 2012 11:11:47 +0200
|
||||||
Subject: [PATCH 32/93] X11: dont set window on xrandr if no mode available
|
Subject: [PATCH 32/93] X11: dont set window on xrandr if no mode available
|
||||||
@@ -5537,7 +5537,7 @@ index af82061..4f33c68 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 5a5f6b8f687b0674c4df960a77a20f627712cd5d Mon Sep 17 00:00:00 2001
|
From 2d78ed515c437b4dd082d585f2d06778bcb5cb03 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 26 Jul 2012 09:34:28 +0200
|
Date: Thu, 26 Jul 2012 09:34:28 +0200
|
||||||
Subject: [PATCH 33/93] X11: fix crash after a resolution change on startup
|
Subject: [PATCH 33/93] X11: fix crash after a resolution change on startup
|
||||||
@@ -5564,7 +5564,7 @@ index 4f33c68..bc4e963 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From a84806823b9b4d6bf953f98a0ee7e8f3bfb8235b Mon Sep 17 00:00:00 2001
|
From 8e45aca353568d3b1119aaae29d63ce10f76ca70 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sat, 15 Sep 2012 18:27:29 +0200
|
Date: Sat, 15 Sep 2012 18:27:29 +0200
|
||||||
Subject: [PATCH 34/93] X11: lock graphics context in NotifyXRREvent
|
Subject: [PATCH 34/93] X11: lock graphics context in NotifyXRREvent
|
||||||
@@ -5590,7 +5590,7 @@ index bc4e963..57a8d20 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 71591eb3ddbb0a257e1a84c579e40eca67c46752 Mon Sep 17 00:00:00 2001
|
From 7cecb116072ee9dd7893f3eef06a11c2c4811294 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 20 Aug 2012 16:06:39 +0200
|
Date: Mon, 20 Aug 2012 16:06:39 +0200
|
||||||
Subject: [PATCH 35/93] dvdplayer: observe pts counter overflow
|
Subject: [PATCH 35/93] dvdplayer: observe pts counter overflow
|
||||||
@@ -5876,7 +5876,7 @@ index aef5ab1..35abbdf 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 34d117c6bbdf47b7fd5f84bc1be9f07fe1adf573 Mon Sep 17 00:00:00 2001
|
From a2b098917cab5f9db00c69177792c373547f2bb8 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Tue, 2 Oct 2012 13:02:10 +0200
|
Date: Tue, 2 Oct 2012 13:02:10 +0200
|
||||||
Subject: [PATCH 36/93] dvdplayer: avoid short screen flicker caused by
|
Subject: [PATCH 36/93] dvdplayer: avoid short screen flicker caused by
|
||||||
@@ -5912,7 +5912,7 @@ index 9c36bdb..322a581 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 59b4035ad0e5d2892c715478ac1920d1f757354d Mon Sep 17 00:00:00 2001
|
From a67d385916ef70447e5167ca352f9f53de7e2778 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 11 Oct 2012 12:05:50 +0200
|
Date: Thu, 11 Oct 2012 12:05:50 +0200
|
||||||
Subject: [PATCH 37/93] vdpau: advanced settings for auto deinterlacing
|
Subject: [PATCH 37/93] vdpau: advanced settings for auto deinterlacing
|
||||||
@@ -5981,7 +5981,7 @@ index 3995f35..c43351d 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 9e42a707cbc6aaadec575f6664c3c3b279a3828b Mon Sep 17 00:00:00 2001
|
From 56a0e9d6cb08dcecbfdea964b99996c59ebd0c91 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Fri, 2 Nov 2012 13:20:03 +0100
|
Date: Fri, 2 Nov 2012 13:20:03 +0100
|
||||||
Subject: [PATCH 38/93] player: fix rewind
|
Subject: [PATCH 38/93] player: fix rewind
|
||||||
@@ -6199,7 +6199,7 @@ index 59c7f09..65dea76 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From f8f6b614c3a886de6328dbdec8543b490c42f0f4 Mon Sep 17 00:00:00 2001
|
From b209430c56ad955fb164c88cf4696a5ab1f162db Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Fri, 23 Nov 2012 17:41:12 +0100
|
Date: Fri, 23 Nov 2012 17:41:12 +0100
|
||||||
Subject: [PATCH 39/93] xrandr: fix query for multiple screens
|
Subject: [PATCH 39/93] xrandr: fix query for multiple screens
|
||||||
@@ -6243,7 +6243,7 @@ index 4685413..e610150 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From dd8a0081a0d6f7dda3ff0bc0e60fa73944233f9e Mon Sep 17 00:00:00 2001
|
From 8d42739f0833403d688d7da9676d098ad3be45c6 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 2 Dec 2012 15:46:55 +0100
|
Date: Sun, 2 Dec 2012 15:46:55 +0100
|
||||||
Subject: [PATCH 40/93] X11: add debug log to print out refresh after xrr event
|
Subject: [PATCH 40/93] X11: add debug log to print out refresh after xrr event
|
||||||
@@ -6273,7 +6273,7 @@ index 57a8d20..a237dc0 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From c93f9c8b9bd991554a0b960fd80defa2041f26d8 Mon Sep 17 00:00:00 2001
|
From ef3118362dcf019e927700e59f0cc4e7a0d506b1 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Tue, 11 Dec 2012 11:08:13 +0100
|
Date: Tue, 11 Dec 2012 11:08:13 +0100
|
||||||
Subject: [PATCH 41/93] X11: dont call XCloseDisplay on shutdown, it crashes
|
Subject: [PATCH 41/93] X11: dont call XCloseDisplay on shutdown, it crashes
|
||||||
@@ -6301,7 +6301,7 @@ index a237dc0..ab660b1 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 42b4a5b8e94111bb05bb1ab60335fd605e8d7fbd Mon Sep 17 00:00:00 2001
|
From da4c24ede3be3b5c074c44123e83e9059c25688d Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= <gregory.coutant@gmail.com>
|
From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= <gregory.coutant@gmail.com>
|
||||||
Date: Wed, 12 Dec 2012 19:49:47 +0100
|
Date: Wed, 12 Dec 2012 19:49:47 +0100
|
||||||
Subject: [PATCH 42/93] x11: support for multiple x screens
|
Subject: [PATCH 42/93] x11: support for multiple x screens
|
||||||
@@ -6327,7 +6327,7 @@ index e610150..5c53574 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From dc8f15aae442cee00abc56fff0080b3d9a881943 Mon Sep 17 00:00:00 2001
|
From c7215a8c352ad44a928a9d18f89ebf52c8dcf9fc Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 24 Dec 2012 16:02:42 +0100
|
Date: Mon, 24 Dec 2012 16:02:42 +0100
|
||||||
Subject: [PATCH 43/93] pvr: increase changes counter of stream on stream
|
Subject: [PATCH 43/93] pvr: increase changes counter of stream on stream
|
||||||
@@ -6364,7 +6364,7 @@ index e5f8234..96c9e89 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 965a856af891ac978087da0d0389a007628bd212 Mon Sep 17 00:00:00 2001
|
From 26da0298234aeea96c4df4d3317589abb822cf1b Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 17 Jan 2013 16:03:22 +0100
|
Date: Thu, 17 Jan 2013 16:03:22 +0100
|
||||||
Subject: [PATCH 44/93] X11: add keymapping for XF86XK_Sleep
|
Subject: [PATCH 44/93] X11: add keymapping for XF86XK_Sleep
|
||||||
@@ -6389,7 +6389,7 @@ index a62521f..263cb5a 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 05f583684acabf689937a641be576a907814565b Mon Sep 17 00:00:00 2001
|
From b0d730552ceac8e144436e96e9a88fe28e565ef6 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Mon, 21 Jan 2013 09:00:19 +0100
|
Date: Mon, 21 Jan 2013 09:00:19 +0100
|
||||||
Subject: [PATCH 45/93] X11: remove toggle full screen after resume
|
Subject: [PATCH 45/93] X11: remove toggle full screen after resume
|
||||||
@@ -6418,7 +6418,7 @@ index 590a887..35b5a21 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 42834ae0edcd11fd7039880e62b56ef2a1b4bb14 Mon Sep 17 00:00:00 2001
|
From 876139f6eb64b5e72689d5fe6a9bf65f60070b2e Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Wed, 23 Jan 2013 17:03:02 +0100
|
Date: Wed, 23 Jan 2013 17:03:02 +0100
|
||||||
Subject: [PATCH 46/93] xrandr: set screen on mode change command
|
Subject: [PATCH 46/93] xrandr: set screen on mode change command
|
||||||
@@ -6444,7 +6444,7 @@ index 5c53574..4355ef7 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From b3f922afbc17cd683d33091b26383f3e1c189f47 Mon Sep 17 00:00:00 2001
|
From 4262d964615f251d99d6d773d5fa9a96f5230053 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Wed, 23 Jan 2013 17:03:39 +0100
|
Date: Wed, 23 Jan 2013 17:03:39 +0100
|
||||||
Subject: [PATCH 47/93] X11: recreate glx context when output changes
|
Subject: [PATCH 47/93] X11: recreate glx context when output changes
|
||||||
@@ -6498,7 +6498,7 @@ index 3e62cd8..2a1fb41 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 3783c2f4cea0e6a1455b2bd636f8cace67e9b966 Mon Sep 17 00:00:00 2001
|
From 76bab5ec893f9534f50f38474b22a56300307631 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Fri, 14 Dec 2012 14:19:15 +0100
|
Date: Fri, 14 Dec 2012 14:19:15 +0100
|
||||||
Subject: [PATCH 48/93] pvr: do not show selection dialog for a single menu
|
Subject: [PATCH 48/93] pvr: do not show selection dialog for a single menu
|
||||||
@@ -6539,7 +6539,7 @@ index 14c9cde..57b18a5 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e012a40e09185b0b5d4a8c1092a48efeba847c64 Mon Sep 17 00:00:00 2001
|
From 2069a5213f76e57a558189b52f098af75d9c21cf Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 3 Feb 2013 08:17:16 +0100
|
Date: Sun, 3 Feb 2013 08:17:16 +0100
|
||||||
Subject: [PATCH 49/93] X11: use default screen parameters if no output
|
Subject: [PATCH 49/93] X11: use default screen parameters if no output
|
||||||
@@ -6646,7 +6646,7 @@ index 4329a22..2adf8a0 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From f467318e5b733985251b1293d21322de193ef70e Mon Sep 17 00:00:00 2001
|
From aebb14e8a7d079871c69f31df00a0b894e9d5ef9 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sat, 23 Mar 2013 15:13:32 +0100
|
Date: Sat, 23 Mar 2013 15:13:32 +0100
|
||||||
Subject: [PATCH 50/93] X11: create parent window
|
Subject: [PATCH 50/93] X11: create parent window
|
||||||
@@ -6915,7 +6915,7 @@ index 2a1fb41..e8993f1 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e29d6510a9e339217d8337bca3c8bdef1393b78e Mon Sep 17 00:00:00 2001
|
From ecc4546cbeef4193a0cf2bcad35357f3fcf6fcc8 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 24 Mar 2013 12:30:12 +0100
|
Date: Sun, 24 Mar 2013 12:30:12 +0100
|
||||||
Subject: [PATCH 51/93] X11: use system key repeat rate instead of hardcoded
|
Subject: [PATCH 51/93] X11: use system key repeat rate instead of hardcoded
|
||||||
@@ -7120,7 +7120,7 @@ index c69169c..6429291 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 9300916d68d9c2f18bd2d9e6d4f4e47662359349 Mon Sep 17 00:00:00 2001
|
From 4e3bbd52ba8c190b152d0ef21a8da4d3d512f056 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 24 Mar 2013 16:04:48 +0100
|
Date: Sun, 24 Mar 2013 16:04:48 +0100
|
||||||
Subject: [PATCH 52/93] linux: use CLOCK_MONOTONIC_RAW as this is not subject
|
Subject: [PATCH 52/93] linux: use CLOCK_MONOTONIC_RAW as this is not subject
|
||||||
@@ -7161,7 +7161,7 @@ index c06b8c5..4390d2e 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 75ee5287846f375a218358d5f8fc65b0bc53dcc3 Mon Sep 17 00:00:00 2001
|
From 6f70066f6cc093386d9cc087c3d089012b810f05 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 28 Mar 2013 15:18:53 +0100
|
Date: Thu, 28 Mar 2013 15:18:53 +0100
|
||||||
Subject: [PATCH 53/93] OMXPlayer: some caching fixes for pvr
|
Subject: [PATCH 53/93] OMXPlayer: some caching fixes for pvr
|
||||||
@@ -7188,7 +7188,7 @@ index a3d3928..7b81178 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From d0c386be52469fc4f2e2a43b46c664eab48cd46b Mon Sep 17 00:00:00 2001
|
From 73977466eae71113f367f88b3a6a39e2d2077089 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Thu, 28 Mar 2013 20:50:59 +0100
|
Date: Thu, 28 Mar 2013 20:50:59 +0100
|
||||||
Subject: [PATCH 54/93] fix incorrect display of fps when dr kicks in
|
Subject: [PATCH 54/93] fix incorrect display of fps when dr kicks in
|
||||||
@@ -7218,7 +7218,7 @@ index 43c4517..4131707 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 15a1340b58e57e90f481224244dd2fefdf456f6f Mon Sep 17 00:00:00 2001
|
From c0b389a1a384684536183067a0b514bbc9c24477 Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sat, 13 Apr 2013 08:32:06 +0200
|
Date: Sat, 13 Apr 2013 08:32:06 +0200
|
||||||
Subject: [PATCH 55/93] X11: fix mouse coverage
|
Subject: [PATCH 55/93] X11: fix mouse coverage
|
||||||
@@ -7287,7 +7287,7 @@ index e8993f1..5cccfb7 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 54f348dfd44e945a02b11464dd84dfa9126f6c30 Mon Sep 17 00:00:00 2001
|
From 884c573f53a288c206bd13348ce3e60dae0cb564 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Wed, 8 May 2013 13:14:58 +0200
|
Date: Wed, 8 May 2013 13:14:58 +0200
|
||||||
Subject: [PATCH 56/93] X11: fix incorrectly used screen num in desktop
|
Subject: [PATCH 56/93] X11: fix incorrectly used screen num in desktop
|
||||||
@@ -7325,7 +7325,7 @@ index 2acb36d..101ba98 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 66bbbabb167c0dd28f09b205693ec9e5f89c7b1e Mon Sep 17 00:00:00 2001
|
From 836500221bf270ed628d35468a28873c96d41764 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 9 May 2013 12:07:09 +0200
|
Date: Thu, 9 May 2013 12:07:09 +0200
|
||||||
Subject: [PATCH 57/93] X11: do not overwrite user selected monitor with
|
Subject: [PATCH 57/93] X11: do not overwrite user selected monitor with
|
||||||
@@ -7453,7 +7453,7 @@ index 5cccfb7..1b658e2 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 23ad4fdc950d4fb25476e7dc48cb2f63c101c0ea Mon Sep 17 00:00:00 2001
|
From 01061c02fe55c312e6e7e4b56f9cc29760ce547d Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sun, 12 May 2013 10:50:30 +0200
|
Date: Sun, 12 May 2013 10:50:30 +0200
|
||||||
Subject: [PATCH 58/93] xrandr: add turn on/off to wrapper
|
Subject: [PATCH 58/93] xrandr: add turn on/off to wrapper
|
||||||
@@ -7622,7 +7622,7 @@ index d37838a..059062f 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 493d5d0b83a9d1dc26b4346d6ceb38036398e8c5 Mon Sep 17 00:00:00 2001
|
From fa66d3ddccf1c807feea602bd334b9adbc12ffe8 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sun, 19 May 2013 12:55:35 +0200
|
Date: Sun, 19 May 2013 12:55:35 +0200
|
||||||
Subject: [PATCH 59/93] xrandr: add GetPreferredMode to wrapper
|
Subject: [PATCH 59/93] xrandr: add GetPreferredMode to wrapper
|
||||||
@@ -7682,7 +7682,7 @@ index 059062f..ab7cc63 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e6fcc6e6055a015c7d05014ddac5b0d72ea5d33b Mon Sep 17 00:00:00 2001
|
From 7c1b95f1c1354fbc2a32224592ba778b91b538d4 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sat, 11 May 2013 17:12:12 +0200
|
Date: Sat, 11 May 2013 17:12:12 +0200
|
||||||
Subject: [PATCH 60/93] X11: multi-head improvement - poll for desired output
|
Subject: [PATCH 60/93] X11: multi-head improvement - poll for desired output
|
||||||
@@ -7700,10 +7700,10 @@ Subject: [PATCH 60/93] X11: multi-head improvement - poll for desired output
|
|||||||
8 files changed, 106 insertions(+), 13 deletions(-)
|
8 files changed, 106 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
diff --git a/language/English/strings.po b/language/English/strings.po
|
diff --git a/language/English/strings.po b/language/English/strings.po
|
||||||
index 1128097..d59a911 100755
|
index d9b34e1..516c5c1 100755
|
||||||
--- a/language/English/strings.po
|
--- a/language/English/strings.po
|
||||||
+++ b/language/English/strings.po
|
+++ b/language/English/strings.po
|
||||||
@@ -6556,7 +6556,7 @@ msgctxt "#14071"
|
@@ -6558,7 +6558,7 @@ msgctxt "#14071"
|
||||||
msgid "Allow file renaming and deletion"
|
msgid "Allow file renaming and deletion"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -7712,7 +7712,7 @@ index 1128097..d59a911 100755
|
|||||||
|
|
||||||
msgctxt "#14074"
|
msgctxt "#14074"
|
||||||
msgid "Set timezone"
|
msgid "Set timezone"
|
||||||
@@ -6694,7 +6694,12 @@ msgctxt "#14101"
|
@@ -6696,7 +6696,12 @@ msgctxt "#14101"
|
||||||
msgid "Acceleration"
|
msgid "Acceleration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -7727,7 +7727,7 @@ index 1128097..d59a911 100755
|
|||||||
#: xbmc/video/VideoDatabase.cpp
|
#: xbmc/video/VideoDatabase.cpp
|
||||||
msgctxt "#15012"
|
msgctxt "#15012"
|
||||||
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
||||||
index 266d04d..9c92f06 100644
|
index 4882978..fafabf4 100644
|
||||||
--- a/system/settings/settings.xml
|
--- a/system/settings/settings.xml
|
||||||
+++ b/system/settings/settings.xml
|
+++ b/system/settings/settings.xml
|
||||||
@@ -2251,7 +2251,7 @@
|
@@ -2251,7 +2251,7 @@
|
||||||
@@ -7975,7 +7975,7 @@ index 62003f5..8525ede 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 067e1b1b721ca74a291a06994f81bc7862bd9530 Mon Sep 17 00:00:00 2001
|
From 08ec19f07d729af80bc81487a445ffd6794d82ed Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Wed, 15 May 2013 09:14:34 +0200
|
Date: Wed, 15 May 2013 09:14:34 +0200
|
||||||
Subject: [PATCH 61/93] X11: ignore mouse move event form other windows
|
Subject: [PATCH 61/93] X11: ignore mouse move event form other windows
|
||||||
@@ -8010,7 +8010,7 @@ index 908c8b6..938ad26 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From c9549a9541027758de0a1dd0d2c517be08949014 Mon Sep 17 00:00:00 2001
|
From 1f153f70a4adc06e1b23c09bfee4daa6f59ff1db Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 11 Jun 2013 16:20:29 +0200
|
Date: Tue, 11 Jun 2013 16:20:29 +0200
|
||||||
Subject: [PATCH 62/93] renderer: allow some lateness within vblank interval
|
Subject: [PATCH 62/93] renderer: allow some lateness within vblank interval
|
||||||
@@ -8073,7 +8073,7 @@ index 949c652..d84ff6c 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 265e2a849d38e43bc09e999efcaf131c4fc6f20c Mon Sep 17 00:00:00 2001
|
From 0505eab3a4d5a351fb5700e919e190674472675d Mon Sep 17 00:00:00 2001
|
||||||
From: xbmc <fernetmenta@online.de>
|
From: xbmc <fernetmenta@online.de>
|
||||||
Date: Sun, 16 Jun 2013 13:22:58 +0200
|
Date: Sun, 16 Jun 2013 13:22:58 +0200
|
||||||
Subject: [PATCH 63/93] X11: another fix for mouse coverage
|
Subject: [PATCH 63/93] X11: another fix for mouse coverage
|
||||||
@@ -8109,7 +8109,7 @@ index 938ad26..e4ca56d 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From ddc72a682a75d4ad792c4992b2957a6fe6fe80b0 Mon Sep 17 00:00:00 2001
|
From 3479849f9941a74852f8057de0352f52775168fc Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Fri, 5 Jul 2013 12:14:00 +0200
|
Date: Fri, 5 Jul 2013 12:14:00 +0200
|
||||||
Subject: [PATCH 64/93] X11: set windows class name
|
Subject: [PATCH 64/93] X11: set windows class name
|
||||||
@@ -8154,7 +8154,7 @@ index b3fe510..df5fe9b 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 7d1b27fca2785e524b6aa4425b793f9f969011f5 Mon Sep 17 00:00:00 2001
|
From 25a211eaa8d5125fc99353198b2a2caff23bf13c Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 25 Jul 2013 17:18:13 +0200
|
Date: Thu, 25 Jul 2013 17:18:13 +0200
|
||||||
Subject: [PATCH 65/93] ActiveAE: slightly reduce buffer size
|
Subject: [PATCH 65/93] ActiveAE: slightly reduce buffer size
|
||||||
@@ -8164,7 +8164,7 @@ Subject: [PATCH 65/93] ActiveAE: slightly reduce buffer size
|
|||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||||
index 786a489..95ef5ed 100644
|
index 6709993..6ca2cf4 100644
|
||||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||||
@@ -30,8 +30,8 @@ using namespace ActiveAE;
|
@@ -30,8 +30,8 @@ using namespace ActiveAE;
|
||||||
@@ -8175,14 +8175,14 @@ index 786a489..95ef5ed 100644
|
|||||||
-#define MAX_WATER_LEVEL 0.25 // buffered time after stream stages in seconds
|
-#define MAX_WATER_LEVEL 0.25 // buffered time after stream stages in seconds
|
||||||
+#define MAX_CACHE_LEVEL 0.4 // total cache time of stream in seconds
|
+#define MAX_CACHE_LEVEL 0.4 // total cache time of stream in seconds
|
||||||
+#define MAX_WATER_LEVEL 0.2 // buffered time after stream stages in seconds
|
+#define MAX_WATER_LEVEL 0.2 // buffered time after stream stages in seconds
|
||||||
|
#define MAX_BUFFER_TIME 0.1 // max time of a buffer in seconds
|
||||||
|
|
||||||
void CEngineStats::Reset(unsigned int sampleRate)
|
void CEngineStats::Reset(unsigned int sampleRate)
|
||||||
{
|
|
||||||
--
|
--
|
||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From a06ea02e30e9764e3e262530f9b0f59315d53381 Mon Sep 17 00:00:00 2001
|
From 0153f224e0288a2fd3d2ea6066b53fa142435580 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sun, 4 Aug 2013 10:11:16 +0200
|
Date: Sun, 4 Aug 2013 10:11:16 +0200
|
||||||
Subject: [PATCH 66/93] Revert "vdpau: comment some features that will be added
|
Subject: [PATCH 66/93] Revert "vdpau: comment some features that will be added
|
||||||
@@ -8241,7 +8241,7 @@ index cd72cc6..351586a 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From c8a728ed4dcfc7f2dd2ee79517a924cf39044eab Mon Sep 17 00:00:00 2001
|
From 59ce2ef98300a41255d4d860c62d3dde6f9b3272 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Fri, 9 Aug 2013 18:01:40 +0200
|
Date: Fri, 9 Aug 2013 18:01:40 +0200
|
||||||
Subject: [PATCH 67/93] X11: fix keysyms
|
Subject: [PATCH 67/93] X11: fix keysyms
|
||||||
@@ -8267,7 +8267,7 @@ index e4ca56d..b20130c 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 4f2c99511eb6939bf37a376c5e192a03b99095ec Mon Sep 17 00:00:00 2001
|
From 9cec1f9aa579e00c1e22d67ff0fbb7a9466035b2 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Fri, 9 Aug 2013 18:42:36 +0200
|
Date: Fri, 9 Aug 2013 18:42:36 +0200
|
||||||
Subject: [PATCH 68/93] X11: fix keysym for non-IM
|
Subject: [PATCH 68/93] X11: fix keysym for non-IM
|
||||||
@@ -8293,7 +8293,7 @@ index b20130c..a38890c 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 1955acf3348b31b8c03661d8010f1af89eaef40f Mon Sep 17 00:00:00 2001
|
From 7c9b3dd5116848f8b4140450cc7e635870c91c35 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sat, 10 Aug 2013 11:18:16 +0200
|
Date: Sat, 10 Aug 2013 11:18:16 +0200
|
||||||
Subject: [PATCH 69/93] add some missing multi media keys
|
Subject: [PATCH 69/93] add some missing multi media keys
|
||||||
@@ -8351,7 +8351,7 @@ index ee6bb69..364b45a 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From aa6083b7570ef1328dd1e15d98939c37550f90cb Mon Sep 17 00:00:00 2001
|
From de2b2ba8265aba77dee620d279a61da8d3b87a61 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sat, 10 Aug 2013 15:53:45 +0200
|
Date: Sat, 10 Aug 2013 15:53:45 +0200
|
||||||
Subject: [PATCH 70/93] X11: squash multi
|
Subject: [PATCH 70/93] X11: squash multi
|
||||||
@@ -8377,7 +8377,7 @@ index df5fe9b..d8e04d6 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 968e5eda232187ec4ba1ffdbbb903d49d1ae8367 Mon Sep 17 00:00:00 2001
|
From cf58d7d9830ee42813d1f7e7103fed4106d34d74 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 3 Sep 2013 20:46:17 +0200
|
Date: Tue, 3 Sep 2013 20:46:17 +0200
|
||||||
Subject: [PATCH 71/93] X11: do not poll default monitor
|
Subject: [PATCH 71/93] X11: do not poll default monitor
|
||||||
@@ -8403,7 +8403,7 @@ index d8e04d6..01f5272 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From ab1810912f5153a08b007af95f89ab9a7ffcc2f6 Mon Sep 17 00:00:00 2001
|
From 21110ddf412223af1991542b1c5573da683f99a7 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 29 Oct 2013 20:57:28 +0100
|
Date: Tue, 29 Oct 2013 20:57:28 +0100
|
||||||
Subject: [PATCH 72/93] X11: fix broken monitor switching
|
Subject: [PATCH 72/93] X11: fix broken monitor switching
|
||||||
@@ -8414,7 +8414,7 @@ Subject: [PATCH 72/93] X11: fix broken monitor switching
|
|||||||
2 files changed, 27 insertions(+), 14 deletions(-)
|
2 files changed, 27 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
||||||
index 9c92f06..d9b235b 100644
|
index fafabf4..b13829b 100644
|
||||||
--- a/system/settings/settings.xml
|
--- a/system/settings/settings.xml
|
||||||
+++ b/system/settings/settings.xml
|
+++ b/system/settings/settings.xml
|
||||||
@@ -2303,7 +2303,6 @@
|
@@ -2303,7 +2303,6 @@
|
||||||
@@ -8509,7 +8509,7 @@ index 40bc3b3..1663836 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From ef9f84f7559d181c417a9101484e2ae03b776697 Mon Sep 17 00:00:00 2001
|
From e95d85f22fecbc71b04569a4ceafe4971a0e5ba0 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 29 Oct 2013 20:57:59 +0100
|
Date: Tue, 29 Oct 2013 20:57:59 +0100
|
||||||
Subject: [PATCH 73/93] X11: remove polling for connected outputs, use xrr
|
Subject: [PATCH 73/93] X11: remove polling for connected outputs, use xrr
|
||||||
@@ -8813,7 +8813,7 @@ index 7ec5be4..14622cb 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 897c0678b10e3c59b2fe72b162e8b5b91ace3d3a Mon Sep 17 00:00:00 2001
|
From 953a0ecd6ee55b1ef2842bb92d35e4e874f6b859 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 31 Oct 2013 09:37:13 +0100
|
Date: Thu, 31 Oct 2013 09:37:13 +0100
|
||||||
Subject: [PATCH 74/93] X11: remove grabbing of keyboard and mouse
|
Subject: [PATCH 74/93] X11: remove grabbing of keyboard and mouse
|
||||||
@@ -8934,7 +8934,7 @@ index 14622cb..d1c8729 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e98a11078c852556b5d36b97859d93cce2a41289 Mon Sep 17 00:00:00 2001
|
From 039e80014380b831d46199301999e27b1d40df96 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 31 Oct 2013 10:46:40 +0100
|
Date: Thu, 31 Oct 2013 10:46:40 +0100
|
||||||
Subject: [PATCH 75/93] X11: set ExposureMask on gl window, fixes not updated
|
Subject: [PATCH 75/93] X11: set ExposureMask on gl window, fixes not updated
|
||||||
@@ -8963,7 +8963,7 @@ index 695b352..e55583c 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 6a122ef45e7caf3b8bbac706e4e16c052cbbf3ef Mon Sep 17 00:00:00 2001
|
From 4469a824b82534d92692717e6f510a84c816eb46 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 31 Oct 2013 11:25:19 +0100
|
Date: Thu, 31 Oct 2013 11:25:19 +0100
|
||||||
Subject: [PATCH 76/93] X11: drop shortcuts, have WM do this
|
Subject: [PATCH 76/93] X11: drop shortcuts, have WM do this
|
||||||
@@ -9028,7 +9028,7 @@ index 6429291..4334d21 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 2dbf65e8aef999048997adb5a8ee8600f4407aa8 Mon Sep 17 00:00:00 2001
|
From 386745d4d1e4ea4b5bde6cfad26b719e45168beb Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 7 Nov 2013 15:02:00 +0100
|
Date: Thu, 7 Nov 2013 15:02:00 +0100
|
||||||
Subject: [PATCH 77/93] X11: adapt to new settings
|
Subject: [PATCH 77/93] X11: adapt to new settings
|
||||||
@@ -9038,7 +9038,7 @@ Subject: [PATCH 77/93] X11: adapt to new settings
|
|||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
||||||
index d9b235b..20b2379 100644
|
index b13829b..b756fca 100644
|
||||||
--- a/system/settings/settings.xml
|
--- a/system/settings/settings.xml
|
||||||
+++ b/system/settings/settings.xml
|
+++ b/system/settings/settings.xml
|
||||||
@@ -2263,6 +2263,7 @@
|
@@ -2263,6 +2263,7 @@
|
||||||
@@ -9053,7 +9053,7 @@ index d9b235b..20b2379 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 322d43ce8109a7ea380931d4cf7128eaa3fea48c Mon Sep 17 00:00:00 2001
|
From c4292a4b8577828802204b56c4fc448dd9bd76f5 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 14 Nov 2013 09:28:24 +0100
|
Date: Thu, 14 Nov 2013 09:28:24 +0100
|
||||||
Subject: [PATCH 78/93] X11: adapt to changes in cstdstring
|
Subject: [PATCH 78/93] X11: adapt to changes in cstdstring
|
||||||
@@ -9104,7 +9104,7 @@ index 8525ede..c94f2e3 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From edcfba7d8d45c931434ae83c32b06da55bded3f6 Mon Sep 17 00:00:00 2001
|
From 029c809c1c28b7163ab02406668f176f49282626 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Mon, 18 Nov 2013 17:44:31 +0100
|
Date: Mon, 18 Nov 2013 17:44:31 +0100
|
||||||
Subject: [PATCH 79/93] ActiveAE: correct time of buffered samples by resample
|
Subject: [PATCH 79/93] ActiveAE: correct time of buffered samples by resample
|
||||||
@@ -9116,10 +9116,10 @@ Subject: [PATCH 79/93] ActiveAE: correct time of buffered samples by resample
|
|||||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||||
index 95ef5ed..f41f6c7 100644
|
index 6ca2cf4..e2a4b6f 100644
|
||||||
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||||
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
|
||||||
@@ -101,7 +101,7 @@ float CEngineStats::GetDelay(CActiveAEStream *stream)
|
@@ -102,7 +102,7 @@ float CEngineStats::GetDelay(CActiveAEStream *stream)
|
||||||
if (delay < 0)
|
if (delay < 0)
|
||||||
delay = 0.0;
|
delay = 0.0;
|
||||||
|
|
||||||
@@ -9144,7 +9144,7 @@ index 99989b3..0287e73 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 7394cef69e883f4c878d71b4e993a2626d2be137 Mon Sep 17 00:00:00 2001
|
From f599ea4e785a09cae43ac3e80f9cb5eb576b9eff Mon Sep 17 00:00:00 2001
|
||||||
From: Marcel Groothuis <margro.xbmc@gmail.com>
|
From: Marcel Groothuis <margro.xbmc@gmail.com>
|
||||||
Date: Thu, 5 Dec 2013 22:02:50 +0100
|
Date: Thu, 5 Dec 2013 22:02:50 +0100
|
||||||
Subject: [PATCH 80/93] ffmpeg demuxer: faster channel change for PVR addons
|
Subject: [PATCH 80/93] ffmpeg demuxer: faster channel change for PVR addons
|
||||||
@@ -9461,7 +9461,7 @@ index ca689d0..f383563 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 67fb08b42c3b7c3c9a3a5ba15abc848d496e8192 Mon Sep 17 00:00:00 2001
|
From 51bc8b6305c3774d0967737d87abd35e6a4634a9 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 14 Nov 2013 20:35:04 +0100
|
Date: Thu, 14 Nov 2013 20:35:04 +0100
|
||||||
Subject: [PATCH 81/93] ffmpeg demuxer: make sure we start mpegts video with an
|
Subject: [PATCH 81/93] ffmpeg demuxer: make sure we start mpegts video with an
|
||||||
@@ -9548,7 +9548,7 @@ index acde9a8..9ec0877 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e286851d30dc4f07a5f2635f53a24d5b9cc7530e Mon Sep 17 00:00:00 2001
|
From 24a3fa6f5b58a3c2c9bf4b53a778ca503143c6c6 Mon Sep 17 00:00:00 2001
|
||||||
From: Wolfgang Haupt <w.haupt@at-visions.com>
|
From: Wolfgang Haupt <w.haupt@at-visions.com>
|
||||||
Date: Thu, 5 Dec 2013 22:11:57 +0100
|
Date: Thu, 5 Dec 2013 22:11:57 +0100
|
||||||
Subject: [PATCH 82/93] DVDFactoryDemuxer: skip streaminfo for udp tcp and
|
Subject: [PATCH 82/93] DVDFactoryDemuxer: skip streaminfo for udp tcp and
|
||||||
@@ -9600,7 +9600,7 @@ index f383563..d6580fd 100644
|
|||||||
if(demuxer->Open(pInputStream, streaminfo))
|
if(demuxer->Open(pInputStream, streaminfo))
|
||||||
return demuxer.release();
|
return demuxer.release();
|
||||||
diff --git a/xbmc/utils/URIUtils.cpp b/xbmc/utils/URIUtils.cpp
|
diff --git a/xbmc/utils/URIUtils.cpp b/xbmc/utils/URIUtils.cpp
|
||||||
index ea4ff97..9d4da51 100644
|
index 12dadba..bca61a1 100644
|
||||||
--- a/xbmc/utils/URIUtils.cpp
|
--- a/xbmc/utils/URIUtils.cpp
|
||||||
+++ b/xbmc/utils/URIUtils.cpp
|
+++ b/xbmc/utils/URIUtils.cpp
|
||||||
@@ -788,6 +788,36 @@ bool URIUtils::IsFTP(const CStdString& strFile)
|
@@ -788,6 +788,36 @@ bool URIUtils::IsFTP(const CStdString& strFile)
|
||||||
@@ -9640,7 +9640,7 @@ index ea4ff97..9d4da51 100644
|
|||||||
bool URIUtils::IsDAV(const CStdString& strFile)
|
bool URIUtils::IsDAV(const CStdString& strFile)
|
||||||
{
|
{
|
||||||
CStdString strFile2(strFile);
|
CStdString strFile2(strFile);
|
||||||
@@ -1283,3 +1313,8 @@ bool URIUtils::UpdateUrlEncoding(std::string &strFilename)
|
@@ -1285,3 +1315,8 @@ bool URIUtils::UpdateUrlEncoding(std::string &strFilename)
|
||||||
strFilename = newFilename;
|
strFilename = newFilename;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -9675,7 +9675,7 @@ index b94e94c..b45630f 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 346f3d3ee940cd2a539e4b33b1b3eec244aa0bd4 Mon Sep 17 00:00:00 2001
|
From 93d15cd098d70bdc0629d6e550f27877ab0dd63e Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 28 Jan 2014 08:43:29 +0100
|
Date: Tue, 28 Jan 2014 08:43:29 +0100
|
||||||
Subject: [PATCH 83/93] squash fast switch
|
Subject: [PATCH 83/93] squash fast switch
|
||||||
@@ -9701,11 +9701,13 @@ index 782fb3d..b57b391 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 380584322fa6e8729b2757f44ecbcd8d9a66ac41 Mon Sep 17 00:00:00 2001
|
From 1228259650fdf7fd118787abf1f6c934c46097d6 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Sun, 22 Dec 2013 14:52:29 +0100
|
Date: Sun, 9 Mar 2014 00:15:35 +0200
|
||||||
Subject: [PATCH 84/93] linux: add shared lib for sse4 operations
|
Subject: [PATCH 84/93] linux: add shared lib for sse4 operations
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
configure.in
|
||||||
---
|
---
|
||||||
Makefile.in | 8 ++-
|
Makefile.in | 8 ++-
|
||||||
configure.in | 18 +++++++
|
configure.in | 18 +++++++
|
||||||
@@ -9745,7 +9747,7 @@ index 8eda3c4..b0b5c24 100644
|
|||||||
externals: codecs libs visualizations screensavers libaddon pvraddons
|
externals: codecs libs visualizations screensavers libaddon pvraddons
|
||||||
|
|
||||||
diff --git a/configure.in b/configure.in
|
diff --git a/configure.in b/configure.in
|
||||||
index 7390167..800546c 100644
|
index 1cd6b2e..8756b20 100644
|
||||||
--- a/configure.in
|
--- a/configure.in
|
||||||
+++ b/configure.in
|
+++ b/configure.in
|
||||||
@@ -883,6 +883,19 @@ if test "$use_static_ffmpeg" = "yes"; then
|
@@ -883,6 +883,19 @@ if test "$use_static_ffmpeg" = "yes"; then
|
||||||
@@ -9999,11 +10001,14 @@ index 0000000..45aa826
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From a656008f7f3596cd3208bf568211db4bb34b5a5e Mon Sep 17 00:00:00 2001
|
From 05f30fe9aa91c0b69d0e71490d73bdc34e0bf0af Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Thu, 19 Dec 2013 15:36:11 +0100
|
Date: Sun, 9 Mar 2014 00:16:57 +0200
|
||||||
Subject: [PATCH 85/93] vaapi: option to enable sw filters
|
Subject: [PATCH 85/93] vaapi: option to enable sw filters
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp
|
||||||
|
xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h
|
||||||
---
|
---
|
||||||
language/English/strings.po | 17 ++-
|
language/English/strings.po | 17 ++-
|
||||||
system/settings/settings.xml | 15 ++
|
system/settings/settings.xml | 15 ++
|
||||||
@@ -10017,10 +10022,10 @@ Subject: [PATCH 85/93] vaapi: option to enable sw filters
|
|||||||
9 files changed, 296 insertions(+), 42 deletions(-)
|
9 files changed, 296 insertions(+), 42 deletions(-)
|
||||||
|
|
||||||
diff --git a/language/English/strings.po b/language/English/strings.po
|
diff --git a/language/English/strings.po b/language/English/strings.po
|
||||||
index d59a911..1778942 100755
|
index 516c5c1..47ac883 100755
|
||||||
--- a/language/English/strings.po
|
--- a/language/English/strings.po
|
||||||
+++ b/language/English/strings.po
|
+++ b/language/English/strings.po
|
||||||
@@ -6090,7 +6090,13 @@ msgctxt "#13456"
|
@@ -6092,7 +6092,13 @@ msgctxt "#13456"
|
||||||
msgid "Hardware accelerated"
|
msgid "Hardware accelerated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -10035,7 +10040,7 @@ index d59a911..1778942 100755
|
|||||||
|
|
||||||
#: system/settings/settings.xml
|
#: system/settings/settings.xml
|
||||||
msgctxt "#13500"
|
msgctxt "#13500"
|
||||||
@@ -15183,7 +15189,14 @@ msgctxt "#36431"
|
@@ -15177,7 +15183,14 @@ msgctxt "#36431"
|
||||||
msgid "Defines whether video decoding should be performed in software (requires more CPU) or with hardware acceleration where possible."
|
msgid "Defines whether video decoding should be performed in software (requires more CPU) or with hardware acceleration where possible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -10052,7 +10057,7 @@ index d59a911..1778942 100755
|
|||||||
|
|
||||||
#: system/settings/settings.xml
|
#: system/settings/settings.xml
|
||||||
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
|
||||||
index 20b2379..ea02362 100644
|
index b756fca..3a9325e 100644
|
||||||
--- a/system/settings/settings.xml
|
--- a/system/settings/settings.xml
|
||||||
+++ b/system/settings/settings.xml
|
+++ b/system/settings/settings.xml
|
||||||
@@ -715,6 +715,21 @@
|
@@ -715,6 +715,21 @@
|
||||||
@@ -10659,7 +10664,7 @@ index 9c5469b..b30e450 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 0360cabf32ede44335f6581c51de71ce114a6b5a Mon Sep 17 00:00:00 2001
|
From eb235f0541bef993a9db30642ed451b723b7953e Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Fri, 3 Jan 2014 20:50:46 +0100
|
Date: Fri, 3 Jan 2014 20:50:46 +0100
|
||||||
Subject: [PATCH 86/93] X11: check for user output on resize window
|
Subject: [PATCH 86/93] X11: check for user output on resize window
|
||||||
@@ -10707,7 +10712,7 @@ index 9962f08..c95f4ec 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 186898e5779e01d9b28c4c4411f6314dd709bf92 Mon Sep 17 00:00:00 2001
|
From cf354441917e2066e406fad51200f20d762f09d2 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Fri, 24 Jan 2014 18:29:33 +0100
|
Date: Fri, 24 Jan 2014 18:29:33 +0100
|
||||||
Subject: [PATCH 87/93] dvdplayer: flush ffmpeg after hw decoder returned an
|
Subject: [PATCH 87/93] dvdplayer: flush ffmpeg after hw decoder returned an
|
||||||
@@ -10750,7 +10755,7 @@ index 2df9de9..f4c9929 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From 531dbaf476873cb2a3d98d048a38eaad76d1f6b9 Mon Sep 17 00:00:00 2001
|
From 8184d80ea878672e0ad27ef24bc0daab05bf6397 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 28 Jan 2014 10:05:26 +0100
|
Date: Tue, 28 Jan 2014 10:05:26 +0100
|
||||||
Subject: [PATCH 88/93] xbmc pr 3080
|
Subject: [PATCH 88/93] xbmc pr 3080
|
||||||
@@ -10795,7 +10800,7 @@ index f4c9929..283af9e 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From b544ec8d52e5cdfd6e8eaaa1b92f0e1cb0ca8988 Mon Sep 17 00:00:00 2001
|
From dbfcb8af2d7aa02dd5de3227e226493e80e7be4d Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 28 Jan 2014 17:24:58 +0100
|
Date: Tue, 28 Jan 2014 17:24:58 +0100
|
||||||
Subject: [PATCH 89/93] set preatpicture if pts is equal to last frame
|
Subject: [PATCH 89/93] set preatpicture if pts is equal to last frame
|
||||||
@@ -10828,7 +10833,7 @@ index 283af9e..ff18b73 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From a32db50377ac6876b75d6793a2c0276ee2b3b833 Mon Sep 17 00:00:00 2001
|
From 4ae7d07c09a3d2e3fe0dc7042f37a11c89622357 Mon Sep 17 00:00:00 2001
|
||||||
From: fritsch <Peter.Fruehberger@gmail.com>
|
From: fritsch <Peter.Fruehberger@gmail.com>
|
||||||
Date: Mon, 27 Jan 2014 19:49:03 +0100
|
Date: Mon, 27 Jan 2014 19:49:03 +0100
|
||||||
Subject: [PATCH 90/93] Introduce SWCodec - these are codecs that don't have
|
Subject: [PATCH 90/93] Introduce SWCodec - these are codecs that don't have
|
||||||
@@ -10946,7 +10951,7 @@ index c43351d..7075f05 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From d0b4ea079bbf4e5026c100621f66071c937fcc8d Mon Sep 17 00:00:00 2001
|
From 0f809b66ecb03c219083ea821f4dbba543e818f5 Mon Sep 17 00:00:00 2001
|
||||||
From: Rainer Hochecker <fernetmenta@online.de>
|
From: Rainer Hochecker <fernetmenta@online.de>
|
||||||
Date: Tue, 11 Feb 2014 18:15:06 +0100
|
Date: Tue, 11 Feb 2014 18:15:06 +0100
|
||||||
Subject: [PATCH 91/93] ActiveAE: add some debug logging
|
Subject: [PATCH 91/93] ActiveAE: add some debug logging
|
||||||
@@ -10977,7 +10982,7 @@ index 0287e73..6904cb9 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From f6f256b6714462ed129be0634f2cc055698f61b7 Mon Sep 17 00:00:00 2001
|
From 513134b092630d3d59ee738a2761b93c08e3312f Mon Sep 17 00:00:00 2001
|
||||||
From: Stefan Saraev <stefan@saraev.ca>
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
Date: Mon, 24 Feb 2014 20:49:47 +0200
|
Date: Mon, 24 Feb 2014 20:49:47 +0200
|
||||||
Subject: [PATCH 92/93] vaapi: fix build
|
Subject: [PATCH 92/93] vaapi: fix build
|
||||||
@@ -11058,7 +11063,7 @@ index 3541c9c..49d3117 100644
|
|||||||
1.9.0
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
From e2f116b98b2d64e38b6908cdeb27ccd7efc37d9c Mon Sep 17 00:00:00 2001
|
From f0b8551028faafa5bb3c5880263759a6239e836a Mon Sep 17 00:00:00 2001
|
||||||
From: Stefan Saraev <stefan@saraev.ca>
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
Date: Mon, 24 Feb 2014 20:58:52 +0200
|
Date: Mon, 24 Feb 2014 20:58:52 +0200
|
||||||
Subject: [PATCH 93/93] no hevc in ffmpeg 1.2
|
Subject: [PATCH 93/93] no hevc in ffmpeg 1.2
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
From 3141728598291186cc4c9d243a1e258ce6e914ae Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Mon, 10 Mar 2014 22:00:40 +0200
|
||||||
|
Subject: [PATCH 1/2] handle SIGTERM
|
||||||
|
|
||||||
|
---
|
||||||
|
xbmc/main/main.cpp | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/xbmc/main/main.cpp b/xbmc/main/main.cpp
|
||||||
|
index ec86426..aa4a925 100644
|
||||||
|
--- a/xbmc/main/main.cpp
|
||||||
|
+++ b/xbmc/main/main.cpp
|
||||||
|
@@ -40,9 +40,22 @@
|
||||||
|
#include "input/linux/LIRC.h"
|
||||||
|
#endif
|
||||||
|
#include "XbmcContext.h"
|
||||||
|
+#include "Application.h"
|
||||||
|
+
|
||||||
|
+void xbmc_term_handler(int signum)
|
||||||
|
+{
|
||||||
|
+ CLog::Log(LOGINFO, "Received SIGTERM...");
|
||||||
|
+ g_application.Stop(0);
|
||||||
|
+}
|
||||||
|
|
||||||
|
int main(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
+ // SIGTERM handler
|
||||||
|
+ struct sigaction action;
|
||||||
|
+ memset(&action, 0, sizeof(struct sigaction));
|
||||||
|
+ action.sa_handler = xbmc_term_handler;
|
||||||
|
+ sigaction(SIGTERM, &action, NULL);
|
||||||
|
+
|
||||||
|
// set up some xbmc specific relationships
|
||||||
|
XBMC::Context context;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.0
|
||||||
|
|
||||||
|
|
||||||
|
From 4945dbdeff5da8b162fdf0700f4026e9d71ffe04 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Mon, 10 Mar 2014 22:02:02 +0200
|
||||||
|
Subject: [PATCH 2/2] dont Stop() on shutdown/reboot
|
||||||
|
|
||||||
|
SIGTERM should be handled instead. systemd will take care
|
||||||
|
---
|
||||||
|
xbmc/ApplicationMessenger.cpp | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp
|
||||||
|
index 3524e89..c5521f7 100644
|
||||||
|
--- a/xbmc/ApplicationMessenger.cpp
|
||||||
|
+++ b/xbmc/ApplicationMessenger.cpp
|
||||||
|
@@ -259,7 +259,6 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
|
||||||
|
|
||||||
|
case TMSG_POWERDOWN:
|
||||||
|
{
|
||||||
|
- g_application.Stop(EXITCODE_POWERDOWN);
|
||||||
|
g_powerManager.Powerdown();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
@@ -287,7 +286,6 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
|
||||||
|
case TMSG_RESTART:
|
||||||
|
case TMSG_RESET:
|
||||||
|
{
|
||||||
|
- g_application.Stop(EXITCODE_REBOOT);
|
||||||
|
g_powerManager.Reboot();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
--
|
||||||
|
1.9.0
|
||||||
|
|
||||||
@@ -1,501 +0,0 @@
|
|||||||
From 365460067109551fff00cd5947ffefbd5447c92e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ben Avison <bavison@riscosopen.org>
|
|
||||||
Date: Thu, 14 Nov 2013 19:48:41 +0000
|
|
||||||
Subject: [PATCH] More efficient infobool expression evaluator
|
|
||||||
|
|
||||||
Expession infobools are evaluated at runtime from one or more single infobools
|
|
||||||
and a combination of boolean NOT, AND and OR operators. Previously, parsing
|
|
||||||
produced a vector of operands (leaf nodes) and operators in postfix
|
|
||||||
(reverse-Polish) form, and evaluated all leaf nodes every time the expression
|
|
||||||
was evaluated. But this ignores the fact that in many cases, once one operand
|
|
||||||
of an AND or OR operation has been evaluated, there is no need to evaluate the
|
|
||||||
other operand because its value can have no effect on the ultimate result. It
|
|
||||||
is also worth noting that AND and OR operations are associative, meaning they
|
|
||||||
can be rearranged at runtime to better suit the selected skin.
|
|
||||||
|
|
||||||
This patch rewrites the expression parsing and evaluation code. Now the
|
|
||||||
internal repreentation is in the form of a tree where leaf nodes represent a
|
|
||||||
single infobool, and branch nodes represent either an AND or an OR operation
|
|
||||||
on two or more child nodes.
|
|
||||||
|
|
||||||
Expressions are rewritten at parse time into a form which favours the
|
|
||||||
formation of groups of associative nodes. These groups are then reordered at
|
|
||||||
evaluation time such that nodes whose value renders the evaluation of the
|
|
||||||
remainder of the group unnecessary tend to be evaluated first (these are
|
|
||||||
true nodes for OR subexpressions, or false nodes for AND subexpressions).
|
|
||||||
The end effect is to minimise the number of leaf nodes that need to be
|
|
||||||
evaluated in order to determine the value of the expression. The runtime
|
|
||||||
adaptability has the advantage of not being customised for any particular skin.
|
|
||||||
|
|
||||||
The modifications to the expression at parse time fall into two groups:
|
|
||||||
1) Moving logical NOTs so that they are only applied to leaf nodes.
|
|
||||||
For example, rewriting ![A+B]|C as !A|!B|C allows reordering such that
|
|
||||||
any of the three leaves can be evaluated first.
|
|
||||||
2) Combining adjacent AND or OR operations such that each path from the root
|
|
||||||
to a leaf encounters a strictly alternating pattern of AND and OR
|
|
||||||
operations. So [A|B]|[C|D+[[E|F]|G] becomes A|B|C|[D+[E|F|G]].
|
|
||||||
|
|
||||||
I measured the effect while the Videos window of the default skin was open
|
|
||||||
(but idle) on a Raspberry Pi, and this reduced the CPU usage by 2.8% from
|
|
||||||
41.9% to 39.1%:
|
|
||||||
|
|
||||||
Before After
|
|
||||||
Mean StdDev Mean StdDev Confidence Change
|
|
||||||
IdleCPU% 41.9 0.5 39.1 0.9 100.0% +7.0%
|
|
||||||
---
|
|
||||||
xbmc/interfaces/info/InfoExpression.cpp | 313 +++++++++++++++++++++-----------
|
|
||||||
xbmc/interfaces/info/InfoExpression.h | 63 ++++++-
|
|
||||||
2 files changed, 269 insertions(+), 107 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/xbmc/interfaces/info/InfoExpression.cpp b/xbmc/interfaces/info/InfoExpression.cpp
|
|
||||||
index d84f0c6..db461dd 100644
|
|
||||||
--- a/xbmc/interfaces/info/InfoExpression.cpp
|
|
||||||
+++ b/xbmc/interfaces/info/InfoExpression.cpp
|
|
||||||
@@ -22,6 +22,9 @@
|
|
||||||
#include <stack>
|
|
||||||
#include "utils/log.h"
|
|
||||||
#include "GUIInfoManager.h"
|
|
||||||
+#include <list>
|
|
||||||
+#include <boost/shared_ptr.hpp>
|
|
||||||
+#include <boost/make_shared.hpp>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
using namespace INFO;
|
|
||||||
@@ -40,21 +43,89 @@ void InfoSingle::Update(const CGUIListItem *item)
|
|
||||||
InfoExpression::InfoExpression(const std::string &expression, int context)
|
|
||||||
: InfoBool(expression, context)
|
|
||||||
{
|
|
||||||
- Parse(expression);
|
|
||||||
+ if (!Parse(expression))
|
|
||||||
+ CLog::Log(LOGERROR, "Error parsing boolean expression %s", expression.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void InfoExpression::Update(const CGUIListItem *item)
|
|
||||||
{
|
|
||||||
- Evaluate(item, m_value);
|
|
||||||
+ m_value = m_expression_tree->Evaluate(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#define OPERATOR_LB 5
|
|
||||||
-#define OPERATOR_RB 4
|
|
||||||
-#define OPERATOR_NOT 3
|
|
||||||
-#define OPERATOR_AND 2
|
|
||||||
-#define OPERATOR_OR 1
|
|
||||||
+/* Expressions are rewritten at parse time into a form which favours the
|
|
||||||
+ * formation of groups of associative nodes. These groups are then reordered at
|
|
||||||
+ * evaluation time such that nodes whose value renders the evaluation of the
|
|
||||||
+ * remainder of the group unnecessary tend to be evaluated first (these are
|
|
||||||
+ * true nodes for OR subexpressions, or false nodes for AND subexpressions).
|
|
||||||
+ * The end effect is to minimise the number of leaf nodes that need to be
|
|
||||||
+ * evaluated in order to determine the value of the expression. The runtime
|
|
||||||
+ * adaptability has the advantage of not being customised for any particular skin.
|
|
||||||
+ *
|
|
||||||
+ * The modifications to the expression at parse time fall into two groups:
|
|
||||||
+ * 1) Moving logical NOTs so that they are only applied to leaf nodes.
|
|
||||||
+ * For example, rewriting ![A+B]|C as !A|!B|C allows reordering such that
|
|
||||||
+ * any of the three leaves can be evaluated first.
|
|
||||||
+ * 2) Combining adjacent AND or OR operations such that each path from the root
|
|
||||||
+ * to a leaf encounters a strictly alternating pattern of AND and OR
|
|
||||||
+ * operations. So [A|B]|[C|D+[[E|F]|G] becomes A|B|C|[D+[E|F|G]].
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+bool InfoExpression::InfoLeaf::Evaluate(const CGUIListItem *item)
|
|
||||||
+{
|
|
||||||
+ return m_invert ^ m_info->Get(item);
|
|
||||||
+}
|
|
||||||
|
|
||||||
-short InfoExpression::GetOperator(const char ch) const
|
|
||||||
+InfoExpression::InfoAssociativeGroup::InfoAssociativeGroup(
|
|
||||||
+ bool and_not_or,
|
|
||||||
+ const InfoSubexpressionPtr &left,
|
|
||||||
+ const InfoSubexpressionPtr &right)
|
|
||||||
+ : m_and_not_or(and_not_or)
|
|
||||||
+{
|
|
||||||
+ AddChild(right);
|
|
||||||
+ AddChild(left);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void InfoExpression::InfoAssociativeGroup::AddChild(const InfoSubexpressionPtr &child)
|
|
||||||
+{
|
|
||||||
+ m_children.push_front(child); // largely undoes the effect of parsing right-associative
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void InfoExpression::InfoAssociativeGroup::Merge(InfoAssociativeGroup *other)
|
|
||||||
+{
|
|
||||||
+ m_children.splice(m_children.end(), other->m_children);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+bool InfoExpression::InfoAssociativeGroup::Evaluate(const CGUIListItem *item)
|
|
||||||
+{
|
|
||||||
+ /* Handle either AND or OR by using the relation
|
|
||||||
+ * A AND B == !(!A OR !B)
|
|
||||||
+ * to convert ANDs into ORs
|
|
||||||
+ */
|
|
||||||
+ std::list<InfoSubexpressionPtr>::iterator last = m_children.end();
|
|
||||||
+ std::list<InfoSubexpressionPtr>::iterator it = m_children.begin();
|
|
||||||
+ bool result = m_and_not_or ^ (*it)->Evaluate(item);
|
|
||||||
+ while (!result && ++it != last)
|
|
||||||
+ {
|
|
||||||
+ result = m_and_not_or ^ (*it)->Evaluate(item);
|
|
||||||
+ if (result)
|
|
||||||
+ {
|
|
||||||
+ /* Move this child to the head of the list so we evaluate faster next time */
|
|
||||||
+ InfoSubexpressionPtr p = *it;
|
|
||||||
+ m_children.erase(it);
|
|
||||||
+ m_children.push_front(p);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return m_and_not_or ^ result;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Expressions are parsed using the shunting-yard algorithm. Binary operators
|
|
||||||
+ * (AND/OR) are treated as right-associative so that we don't need to make a
|
|
||||||
+ * special case for the unary NOT operator. This has no effect upon the answers
|
|
||||||
+ * generated, though the initial sequence of evaluation of leaves may be
|
|
||||||
+ * different from what you might expect.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+InfoExpression::operator_t InfoExpression::GetOperator(char ch)
|
|
||||||
{
|
|
||||||
if (ch == '[')
|
|
||||||
return OPERATOR_LB;
|
|
||||||
@@ -67,122 +138,160 @@ short InfoExpression::GetOperator(const char ch) const
|
|
||||||
else if (ch == '|')
|
|
||||||
return OPERATOR_OR;
|
|
||||||
else
|
|
||||||
- return 0;
|
|
||||||
+ return OPERATOR_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
-void InfoExpression::Parse(const std::string &expression)
|
|
||||||
+void InfoExpression::OperatorPop(std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes)
|
|
||||||
{
|
|
||||||
- stack<char> operators;
|
|
||||||
- std::string operand;
|
|
||||||
- for (unsigned int i = 0; i < expression.size(); i++)
|
|
||||||
+ operator_t op2 = operator_stack.top();
|
|
||||||
+ operator_stack.pop();
|
|
||||||
+ if (op2 == OPERATOR_NOT)
|
|
||||||
{
|
|
||||||
- if (GetOperator(expression[i]))
|
|
||||||
+ invert = !invert;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ // At this point, it can only be OPERATOR_AND or OPERATOR_OR
|
|
||||||
+ if (invert)
|
|
||||||
+ op2 = (operator_t) (OPERATOR_AND ^ OPERATOR_OR ^ op2);
|
|
||||||
+ node_type_t new_type = op2 == OPERATOR_AND ? NODE_AND : NODE_OR;
|
|
||||||
+
|
|
||||||
+ InfoSubexpressionPtr right = nodes.top();
|
|
||||||
+ nodes.pop();
|
|
||||||
+ InfoSubexpressionPtr left = nodes.top();
|
|
||||||
+
|
|
||||||
+ node_type_t right_type = node_types.top();
|
|
||||||
+ node_types.pop();
|
|
||||||
+ node_type_t left_type = node_types.top();
|
|
||||||
+
|
|
||||||
+ // Combine associative operations into the same node where possible
|
|
||||||
+ if (left_type == new_type && right_type == new_type)
|
|
||||||
+ (static_cast<InfoAssociativeGroup *>(left.get()))->Merge(static_cast<InfoAssociativeGroup *>(right.get()));
|
|
||||||
+ else if (left_type == new_type)
|
|
||||||
+ (static_cast<InfoAssociativeGroup *>(left.get()))->AddChild(right);
|
|
||||||
+ else
|
|
||||||
{
|
|
||||||
- // cleanup any operand, translate and put into our expression list
|
|
||||||
- if (!operand.empty())
|
|
||||||
+ nodes.pop();
|
|
||||||
+ node_types.pop();
|
|
||||||
+ if (right_type == new_type)
|
|
||||||
{
|
|
||||||
- InfoPtr info = g_infoManager.Register(operand, m_context);
|
|
||||||
- if (info)
|
|
||||||
- {
|
|
||||||
- m_listItemDependent |= info->ListItemDependent();
|
|
||||||
- m_postfix.push_back(m_operands.size());
|
|
||||||
- m_operands.push_back(info);
|
|
||||||
- }
|
|
||||||
- operand.clear();
|
|
||||||
+ (static_cast<InfoAssociativeGroup *>(right.get()))->AddChild(left);
|
|
||||||
+ nodes.push(right);
|
|
||||||
}
|
|
||||||
- // handle closing parenthesis
|
|
||||||
- if (expression[i] == ']')
|
|
||||||
- {
|
|
||||||
- while (!operators.empty())
|
|
||||||
- {
|
|
||||||
- char oper = operators.top();
|
|
||||||
- operators.pop();
|
|
||||||
+ else
|
|
||||||
+ nodes.push(boost::make_shared<InfoAssociativeGroup>(new_type == NODE_AND, left, right));
|
|
||||||
+ node_types.push(new_type);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void InfoExpression::ProcessOperator(operator_t op, std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes)
|
|
||||||
+{
|
|
||||||
+ // Handle any higher-priority stacked operators, except when the new operator is left-bracket.
|
|
||||||
+ // For a right-bracket, this will stop with the matching left-bracket at the top of the operator stack.
|
|
||||||
+ if (op != OPERATOR_LB)
|
|
||||||
+ {
|
|
||||||
+ while (operator_stack.size() > 0 && operator_stack.top() > op)
|
|
||||||
+ OperatorPop(operator_stack, invert, node_types, nodes);
|
|
||||||
+ }
|
|
||||||
+ if (op == OPERATOR_RB)
|
|
||||||
+ operator_stack.pop(); // remove the matching left-bracket
|
|
||||||
+ else
|
|
||||||
+ operator_stack.push(op);
|
|
||||||
+ if (op == OPERATOR_NOT)
|
|
||||||
+ invert = !invert;
|
|
||||||
+}
|
|
||||||
|
|
||||||
- if (oper == '[')
|
|
||||||
- break;
|
|
||||||
+bool InfoExpression::ProcessOperand(std::string &operand, bool invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes)
|
|
||||||
+{
|
|
||||||
+ InfoPtr info = g_infoManager.Register(operand, m_context);
|
|
||||||
+ if (!info)
|
|
||||||
+ return false;
|
|
||||||
+ m_listItemDependent |= info->ListItemDependent();
|
|
||||||
+ nodes.push(boost::make_shared<InfoLeaf>(info, invert));
|
|
||||||
+ node_types.push(NODE_LEAF);
|
|
||||||
+ operand.clear();
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
|
|
||||||
- m_postfix.push_back(-GetOperator(oper)); // negative denotes operator
|
|
||||||
- }
|
|
||||||
+bool InfoExpression::Parse(const std::string &expression)
|
|
||||||
+{
|
|
||||||
+ const char *s = expression.c_str();
|
|
||||||
+ std::string operand;
|
|
||||||
+ std::stack<operator_t> operator_stack;
|
|
||||||
+ bool invert = false;
|
|
||||||
+ std::stack<node_type_t> node_types;
|
|
||||||
+ std::stack<InfoSubexpressionPtr> nodes;
|
|
||||||
+ // The next two are for syntax-checking purposes
|
|
||||||
+ bool after_binaryoperator = true;
|
|
||||||
+ int bracket_count = 0;
|
|
||||||
+
|
|
||||||
+ char c;
|
|
||||||
+ // Skip leading whitespace - don't want it to count as an operand if that's all there is
|
|
||||||
+ do
|
|
||||||
+ {
|
|
||||||
+ c = *s++;
|
|
||||||
+ } while (c == ' ' || c == '\t' || c == '\r' || c == '\n');
|
|
||||||
+ s--;
|
|
||||||
+ while ((c = *s++) != '\0')
|
|
||||||
+ {
|
|
||||||
+ operator_t op;
|
|
||||||
+ if ((op = GetOperator(c)) != OPERATOR_NONE)
|
|
||||||
+ {
|
|
||||||
+ // Character is an operator
|
|
||||||
+ if ((!after_binaryoperator && (c == '!' || c == '[')) ||
|
|
||||||
+ (after_binaryoperator && (c == ']' || c == '+' || c == '|')))
|
|
||||||
+ {
|
|
||||||
+ CLog::Log(LOGERROR, "Misplaced %c", c);
|
|
||||||
+ return false;
|
|
||||||
}
|
|
||||||
- else
|
|
||||||
+ if (c == '[')
|
|
||||||
+ bracket_count++;
|
|
||||||
+ else if (c == ']' && bracket_count-- == 0)
|
|
||||||
+ {
|
|
||||||
+ CLog::Log(LOGERROR, "Unmatched ]");
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+ if (operand.size() > 0 && !ProcessOperand(operand, invert, node_types, nodes))
|
|
||||||
{
|
|
||||||
- // all other operators we pop off the stack any operator
|
|
||||||
- // that has a higher priority than the one we have.
|
|
||||||
- while (!operators.empty() && GetOperator(operators.top()) > GetOperator(expression[i]))
|
|
||||||
- {
|
|
||||||
- // only handle parenthesis once they're closed.
|
|
||||||
- if (operators.top() == '[' && expression[i] != ']')
|
|
||||||
- break;
|
|
||||||
-
|
|
||||||
- m_postfix.push_back(-GetOperator(operators.top())); // negative denotes operator
|
|
||||||
- operators.pop();
|
|
||||||
- }
|
|
||||||
- operators.push(expression[i]);
|
|
||||||
+ CLog::Log(LOGERROR, "Bad operand '%s'", operand.c_str());
|
|
||||||
+ return false;
|
|
||||||
}
|
|
||||||
+ ProcessOperator(op, operator_stack, invert, node_types, nodes);
|
|
||||||
+ if (c == '+' || c == '|')
|
|
||||||
+ after_binaryoperator = true;
|
|
||||||
+ // Skip trailing whitespace - don't want it to count as an operand if that's all there is
|
|
||||||
+ do
|
|
||||||
+ {
|
|
||||||
+ c = *s++;
|
|
||||||
+ } while (c == ' ' || c == '\t' || c == '\r' || c == '\n');
|
|
||||||
+ s--;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- operand += expression[i];
|
|
||||||
+ // Character is part of operand
|
|
||||||
+ operand += c;
|
|
||||||
+ after_binaryoperator = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- if (!operand.empty())
|
|
||||||
+ if (bracket_count > 0)
|
|
||||||
{
|
|
||||||
- InfoPtr info = g_infoManager.Register(operand, m_context);
|
|
||||||
- if (info)
|
|
||||||
- {
|
|
||||||
- m_listItemDependent |= info->ListItemDependent();
|
|
||||||
- m_postfix.push_back(m_operands.size());
|
|
||||||
- m_operands.push_back(info);
|
|
||||||
- }
|
|
||||||
+ CLog::Log(LOGERROR, "Unmatched [");
|
|
||||||
+ return false;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- // finish up by adding any operators
|
|
||||||
- while (!operators.empty())
|
|
||||||
+ if (after_binaryoperator)
|
|
||||||
{
|
|
||||||
- m_postfix.push_back(-GetOperator(operators.top())); // negative denotes operator
|
|
||||||
- operators.pop();
|
|
||||||
+ CLog::Log(LOGERROR, "Missing operand");
|
|
||||||
+ return false;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- // test evaluate
|
|
||||||
- bool test;
|
|
||||||
- if (!Evaluate(NULL, test))
|
|
||||||
- CLog::Log(LOGERROR, "Error evaluating boolean expression %s", expression.c_str());
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-bool InfoExpression::Evaluate(const CGUIListItem *item, bool &result)
|
|
||||||
-{
|
|
||||||
- stack<bool> save;
|
|
||||||
- for (vector<short>::const_iterator it = m_postfix.begin(); it != m_postfix.end(); ++it)
|
|
||||||
+ if (operand.size() > 0 && !ProcessOperand(operand, invert, node_types, nodes))
|
|
||||||
{
|
|
||||||
- short expr = *it;
|
|
||||||
- if (expr == -OPERATOR_NOT)
|
|
||||||
- { // NOT the top item on the stack
|
|
||||||
- if (save.empty()) return false;
|
|
||||||
- bool expr = save.top();
|
|
||||||
- save.pop();
|
|
||||||
- save.push(!expr);
|
|
||||||
- }
|
|
||||||
- else if (expr == -OPERATOR_AND)
|
|
||||||
- { // AND the top two items on the stack
|
|
||||||
- if (save.size() < 2) return false;
|
|
||||||
- bool right = save.top(); save.pop();
|
|
||||||
- bool left = save.top(); save.pop();
|
|
||||||
- save.push(left && right);
|
|
||||||
- }
|
|
||||||
- else if (expr == -OPERATOR_OR)
|
|
||||||
- { // OR the top two items on the stack
|
|
||||||
- if (save.size() < 2) return false;
|
|
||||||
- bool right = save.top(); save.pop();
|
|
||||||
- bool left = save.top(); save.pop();
|
|
||||||
- save.push(left || right);
|
|
||||||
- }
|
|
||||||
- else // operand
|
|
||||||
- save.push(m_operands[expr]->Get(item));
|
|
||||||
- }
|
|
||||||
- if (save.size() != 1)
|
|
||||||
+ CLog::Log(LOGERROR, "Bad operand '%s'", operand.c_str());
|
|
||||||
return false;
|
|
||||||
- result = save.top();
|
|
||||||
+ }
|
|
||||||
+ while (operator_stack.size() > 0)
|
|
||||||
+ OperatorPop(operator_stack, invert, node_types, nodes);
|
|
||||||
+
|
|
||||||
+ m_expression_tree = nodes.top();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
diff --git a/xbmc/interfaces/info/InfoExpression.h b/xbmc/interfaces/info/InfoExpression.h
|
|
||||||
index 4e0faee..0a91399 100644
|
|
||||||
--- a/xbmc/interfaces/info/InfoExpression.h
|
|
||||||
+++ b/xbmc/interfaces/info/InfoExpression.h
|
|
||||||
@@ -21,6 +21,8 @@
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
+#include <list>
|
|
||||||
+#include <stack>
|
|
||||||
#include "InfoBool.h"
|
|
||||||
|
|
||||||
class CGUIListItem;
|
|
||||||
@@ -50,12 +52,63 @@ class InfoExpression : public InfoBool
|
|
||||||
|
|
||||||
virtual void Update(const CGUIListItem *item);
|
|
||||||
private:
|
|
||||||
- void Parse(const std::string &expression);
|
|
||||||
- bool Evaluate(const CGUIListItem *item, bool &result);
|
|
||||||
- short GetOperator(const char ch) const;
|
|
||||||
+ typedef enum
|
|
||||||
+ {
|
|
||||||
+ OPERATOR_NONE = 0,
|
|
||||||
+ OPERATOR_LB, // 1
|
|
||||||
+ OPERATOR_RB, // 2
|
|
||||||
+ OPERATOR_OR, // 3
|
|
||||||
+ OPERATOR_AND, // 4
|
|
||||||
+ OPERATOR_NOT, // 5
|
|
||||||
+ } operator_t;
|
|
||||||
|
|
||||||
- std::vector<short> m_postfix; ///< the postfix form of the expression (operators and operand indicies)
|
|
||||||
- std::vector<InfoPtr> m_operands; ///< the operands in the expression
|
|
||||||
+ typedef enum
|
|
||||||
+ {
|
|
||||||
+ NODE_LEAF,
|
|
||||||
+ NODE_AND,
|
|
||||||
+ NODE_OR,
|
|
||||||
+ } node_type_t;
|
|
||||||
+
|
|
||||||
+ // An abstract base class for nodes in the expression tree
|
|
||||||
+ class InfoSubexpression
|
|
||||||
+ {
|
|
||||||
+ public:
|
|
||||||
+ virtual ~InfoSubexpression(void) {}; // so we can destruct derived classes using a pointer to their base class
|
|
||||||
+ virtual bool Evaluate(const CGUIListItem *item) = 0;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ typedef boost::shared_ptr<InfoSubexpression> InfoSubexpressionPtr;
|
|
||||||
+
|
|
||||||
+ // A leaf node in the expression tree
|
|
||||||
+ class InfoLeaf : public InfoSubexpression
|
|
||||||
+ {
|
|
||||||
+ public:
|
|
||||||
+ InfoLeaf(InfoPtr info, bool invert) : m_info(info), m_invert(invert) {};
|
|
||||||
+ virtual bool Evaluate(const CGUIListItem *item);
|
|
||||||
+ private:
|
|
||||||
+ InfoPtr m_info;
|
|
||||||
+ bool m_invert;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ // A branch node in the expression tree
|
|
||||||
+ class InfoAssociativeGroup : public InfoSubexpression
|
|
||||||
+ {
|
|
||||||
+ public:
|
|
||||||
+ InfoAssociativeGroup(bool and_not_or, const InfoSubexpressionPtr &left, const InfoSubexpressionPtr &right);
|
|
||||||
+ void AddChild(const InfoSubexpressionPtr &child);
|
|
||||||
+ void Merge(InfoAssociativeGroup *other);
|
|
||||||
+ virtual bool Evaluate(const CGUIListItem *item);
|
|
||||||
+ private:
|
|
||||||
+ bool m_and_not_or;
|
|
||||||
+ std::list<InfoSubexpressionPtr> m_children;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ static operator_t GetOperator(char ch);
|
|
||||||
+ static void OperatorPop(std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes);
|
|
||||||
+ static void ProcessOperator(operator_t op, std::stack<operator_t> &operator_stack, bool &invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes);
|
|
||||||
+ bool ProcessOperand(std::string &operand, bool invert, std::stack<node_type_t> &node_types, std::stack<InfoSubexpressionPtr> &nodes);
|
|
||||||
+ bool Parse(const std::string &expression);
|
|
||||||
+ InfoSubexpressionPtr m_expression_tree;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
--
|
|
||||||
1.8.5.1
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
From f164b7c43efa55d8132eaeaba6ea2cfecd47a4de Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Burr <dburr@topcon.com>
|
|
||||||
Date: Fri, 28 Feb 2014 04:36:16 +0100
|
|
||||||
Subject: [PATCH] Fix memory leakage in python bindings
|
|
||||||
|
|
||||||
The python bindings generated by the groovy code generator contain a reference counting bug which results in a memory leak whenever a std::vector is converted to a python list. The following member functions are affected:
|
|
||||||
|
|
||||||
* xbmcvfs.listdir
|
|
||||||
* xbmc.Player.getAvailableSubtitleStreams
|
|
||||||
* xbmc.Player.getAvailableAudioStreams
|
|
||||||
* xbmcgui.Control.getPosition
|
|
||||||
* xbmcgui.Dialog.browse
|
|
||||||
* xbmcgui.Dialog.browseMultiple
|
|
||||||
|
|
||||||
The reference counting bug occurs because PyList_Append() increments the reference count of the item, so the caller needs to call Py_DECREF() because it no longer owns the object.
|
|
||||||
|
|
||||||
This bug is especially problematic when running the Watchdog Service Addon since it may result in frequent calls to xbmcvfs.listdir, and each call can leak many kilobytes of data when listing directories containing many files.
|
|
||||||
---
|
|
||||||
xbmc/interfaces/python/typemaps/python.vector.outtm | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/xbmc/interfaces/python/typemaps/python.vector.outtm b/xbmc/interfaces/python/typemaps/python.vector.outtm
|
|
||||||
index a841283..69dffe8 100644
|
|
||||||
--- a/xbmc/interfaces/python/typemaps/python.vector.outtm
|
|
||||||
+++ b/xbmc/interfaces/python/typemaps/python.vector.outtm
|
|
||||||
@@ -41,6 +41,7 @@
|
|
||||||
PyObject* pyentry${seq};
|
|
||||||
${helper.getOutConversion(vectype,'result',method,[ 'result' : 'pyentry' + seq, 'api' : 'entry' + seq, 'sequence' : sequence ])}
|
|
||||||
PyList_Append(${result}, pyentry${seq});
|
|
||||||
+ Py_DECREF(pyentry${seq});
|
|
||||||
}
|
|
||||||
<%
|
|
||||||
if (ispointer)
|
|
||||||
--
|
|
||||||
1.8.5.5
|
|
||||||
|
|
||||||
390
packages/mediacenter/xbmc/patches/xbmc-999.80.010-PR4414.patch
Normal file
390
packages/mediacenter/xbmc/patches/xbmc-999.80.010-PR4414.patch
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
From 794ebc00947bc208e6b377e5d69be6cfa85cf382 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Memphiz <memphis@machzwo.de>
|
||||||
|
Date: Tue, 11 Mar 2014 20:30:19 +0100
|
||||||
|
Subject: [PATCH 1/3] [airplay] - ensure to announce airtunes before airplay
|
||||||
|
via zeroconf (makes it more likely that ios7 clients detect us correctly at
|
||||||
|
the first shot)
|
||||||
|
|
||||||
|
---
|
||||||
|
xbmc/network/NetworkServices.cpp | 14 +++++++-------
|
||||||
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xbmc/network/NetworkServices.cpp b/xbmc/network/NetworkServices.cpp
|
||||||
|
index f1b82d7..66316b4 100644
|
||||||
|
--- a/xbmc/network/NetworkServices.cpp
|
||||||
|
+++ b/xbmc/network/NetworkServices.cpp
|
||||||
|
@@ -210,12 +210,6 @@ bool CNetworkServices::OnSettingChanging(const CSetting *setting)
|
||||||
|
}
|
||||||
|
#endif //HAS_ZEROCONF
|
||||||
|
|
||||||
|
- if (!StartAirPlayServer())
|
||||||
|
- {
|
||||||
|
- CGUIDialogOK::ShowAndGetInput(g_localizeStrings.Get(1273), "", g_localizeStrings.Get(33100), "");
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
#ifdef HAS_AIRTUNES
|
||||||
|
if (!StartAirTunesServer())
|
||||||
|
{
|
||||||
|
@@ -223,6 +217,12 @@ bool CNetworkServices::OnSettingChanging(const CSetting *setting)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif //HAS_AIRTUNES
|
||||||
|
+
|
||||||
|
+ if (!StartAirPlayServer())
|
||||||
|
+ {
|
||||||
|
+ CGUIDialogOK::ShowAndGetInput(g_localizeStrings.Get(1273), "", g_localizeStrings.Get(33100), "");
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@@ -402,8 +402,8 @@ void CNetworkServices::Start()
|
||||||
|
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Warning, g_localizeStrings.Get(33102), g_localizeStrings.Get(33100));
|
||||||
|
if (CSettings::Get().GetBool("services.esenabled") && !StartJSONRPCServer())
|
||||||
|
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Warning, g_localizeStrings.Get(33103), g_localizeStrings.Get(33100));
|
||||||
|
- StartAirPlayServer();
|
||||||
|
StartAirTunesServer();
|
||||||
|
+ StartAirPlayServer();
|
||||||
|
StartRss();
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.5.5
|
||||||
|
|
||||||
|
|
||||||
|
From 9cfabede54d59aafff8aece7e4270f32422d03b3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Memphiz <memphis@machzwo.de>
|
||||||
|
Date: Tue, 11 Mar 2014 20:31:58 +0100
|
||||||
|
Subject: [PATCH 2/3] [zeroconf] - add method to reannounce already published
|
||||||
|
services
|
||||||
|
|
||||||
|
---
|
||||||
|
xbmc/network/Zeroconf.cpp | 11 +++++++++++
|
||||||
|
xbmc/network/Zeroconf.h | 15 ++++++++++++++-
|
||||||
|
xbmc/network/linux/ZeroconfAvahi.cpp | 20 ++++++++++++++++++++
|
||||||
|
xbmc/network/linux/ZeroconfAvahi.h | 1 +
|
||||||
|
xbmc/network/mdns/ZeroconfMDNS.cpp | 36 +++++++++++++++++++++++++++++++-----
|
||||||
|
xbmc/network/mdns/ZeroconfMDNS.h | 9 ++++++++-
|
||||||
|
xbmc/network/osx/ZeroconfOSX.cpp | 26 ++++++++++++++++++++++++++
|
||||||
|
xbmc/network/osx/ZeroconfOSX.h | 2 ++
|
||||||
|
8 files changed, 113 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xbmc/network/Zeroconf.cpp b/xbmc/network/Zeroconf.cpp
|
||||||
|
index ac13ac4..1569ec4 100644
|
||||||
|
--- a/xbmc/network/Zeroconf.cpp
|
||||||
|
+++ b/xbmc/network/Zeroconf.cpp
|
||||||
|
@@ -45,6 +45,8 @@ class CZeroconfDummy : public CZeroconf
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ virtual bool doForceReAnnounceService(const std::string&){return false;}
|
||||||
|
virtual bool doRemoveService(const std::string& fcr_ident){return false;}
|
||||||
|
virtual void doStop(){}
|
||||||
|
};
|
||||||
|
@@ -93,6 +95,15 @@ bool CZeroconf::RemoveService(const std::string& fcr_identifier)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool CZeroconf::ForceReAnnounceService(const std::string& fcr_identifier)
|
||||||
|
+{
|
||||||
|
+ if (HasService(fcr_identifier) && m_started)
|
||||||
|
+ {
|
||||||
|
+ return doForceReAnnounceService(fcr_identifier);
|
||||||
|
+ }
|
||||||
|
+ return false;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
bool CZeroconf::HasService(const std::string& fcr_identifier) const
|
||||||
|
{
|
||||||
|
return (m_service_map.find(fcr_identifier) != m_service_map.end());
|
||||||
|
diff --git a/xbmc/network/Zeroconf.h b/xbmc/network/Zeroconf.h
|
||||||
|
index 441c0c1..d87e34c 100644
|
||||||
|
--- a/xbmc/network/Zeroconf.h
|
||||||
|
+++ b/xbmc/network/Zeroconf.h
|
||||||
|
@@ -40,7 +40,7 @@ class CZeroconf
|
||||||
|
public:
|
||||||
|
|
||||||
|
//tries to publish this service via zeroconf
|
||||||
|
- //fcr_identifier can be used to stop this service later
|
||||||
|
+ //fcr_identifier can be used to stop or reannounce this service later
|
||||||
|
//fcr_type is the zeroconf service type to publish (e.g. _http._tcp for webserver)
|
||||||
|
//fcr_name is the name of the service to publish. The hostname is currently automatically appended
|
||||||
|
// and used for name collisions. e.g. XBMC would get published as fcr_name@Martn or, after collision fcr_name@Martn-2
|
||||||
|
@@ -51,6 +51,14 @@ class CZeroconf
|
||||||
|
const std::string& fcr_name,
|
||||||
|
unsigned int f_port,
|
||||||
|
std::vector<std::pair<std::string, std::string> > txt /*= std::vector<std::pair<std::string, std::string> >()*/);
|
||||||
|
+
|
||||||
|
+ //tries to rebroadcast that service on the network without removing/readding
|
||||||
|
+ //this can be achieved by changing a fake txt record. Implementations should
|
||||||
|
+ //implement it by doing so.
|
||||||
|
+ //
|
||||||
|
+ //fcr_identifier - the identifier of the already published service which should be reannounced
|
||||||
|
+ // returns true on successfull reannonuce - false if this service isn't published yet
|
||||||
|
+ bool ForceReAnnounceService(const std::string& fcr_identifier);
|
||||||
|
|
||||||
|
///removes the specified service
|
||||||
|
///returns false if fcr_identifier does not exist
|
||||||
|
@@ -90,6 +98,11 @@ class CZeroconf
|
||||||
|
const std::string& fcr_name,
|
||||||
|
unsigned int f_port,
|
||||||
|
const std::vector<std::pair<std::string, std::string> >& txt) = 0;
|
||||||
|
+
|
||||||
|
+ //methods to implement for concrete implementations
|
||||||
|
+ //update this service
|
||||||
|
+ virtual bool doForceReAnnounceService(const std::string& fcr_identifier) = 0;
|
||||||
|
+
|
||||||
|
//removes the service if published
|
||||||
|
virtual bool doRemoveService(const std::string& fcr_ident) = 0;
|
||||||
|
|
||||||
|
diff --git a/xbmc/network/linux/ZeroconfAvahi.cpp b/xbmc/network/linux/ZeroconfAvahi.cpp
|
||||||
|
index 355b7ce..e9199b9 100644
|
||||||
|
--- a/xbmc/network/linux/ZeroconfAvahi.cpp
|
||||||
|
+++ b/xbmc/network/linux/ZeroconfAvahi.cpp
|
||||||
|
@@ -167,6 +167,26 @@ bool CZeroconfAvahi::doPublishService(const std::string& fcr_identifier,
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool CZeroconfAvahi::doForceReAnnounceService(const std::string& fcr_identifier)
|
||||||
|
+{
|
||||||
|
+ bool ret = false;
|
||||||
|
+ ScopedEventLoopBlock l_block(mp_poll);
|
||||||
|
+ tServiceMap::iterator it = m_services.find(fcr_identifier);
|
||||||
|
+ if (it != m_services.end())
|
||||||
|
+ {
|
||||||
|
+ // to force a reannounce on avahi its enough to reverse the txtrecord list
|
||||||
|
+ it->second->mp_txt = avahi_string_list_reverse(it->second->mp_txt);
|
||||||
|
+
|
||||||
|
+ // this will trigger the reannouncement
|
||||||
|
+ if ((avahi_entry_group_update_service_txt_strlst(it->second->mp_group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, AvahiPublishFlags(0),
|
||||||
|
+ it->second->m_name.c_str(),
|
||||||
|
+ it->second->m_type.c_str(), NULL, it->second->mp_txt)) >= 0)
|
||||||
|
+ ret = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
bool CZeroconfAvahi::doRemoveService(const std::string& fcr_ident)
|
||||||
|
{
|
||||||
|
CLog::Log(LOGDEBUG, "CZeroconfAvahi::doRemoveService named: %s", fcr_ident.c_str());
|
||||||
|
diff --git a/xbmc/network/linux/ZeroconfAvahi.h b/xbmc/network/linux/ZeroconfAvahi.h
|
||||||
|
index 281dc21..e0b46b5 100644
|
||||||
|
--- a/xbmc/network/linux/ZeroconfAvahi.h
|
||||||
|
+++ b/xbmc/network/linux/ZeroconfAvahi.h
|
||||||
|
@@ -50,6 +50,7 @@ class CZeroconfAvahi : public CZeroconf
|
||||||
|
unsigned int f_port,
|
||||||
|
const std::vector<std::pair<std::string, std::string> >& txt);
|
||||||
|
|
||||||
|
+ virtual bool doForceReAnnounceService(const std::string& fcr_identifier);
|
||||||
|
virtual bool doRemoveService(const std::string& fcr_ident);
|
||||||
|
|
||||||
|
virtual void doStop();
|
||||||
|
diff --git a/xbmc/network/mdns/ZeroconfMDNS.cpp b/xbmc/network/mdns/ZeroconfMDNS.cpp
|
||||||
|
index b81ea11..00d02c5 100644
|
||||||
|
--- a/xbmc/network/mdns/ZeroconfMDNS.cpp
|
||||||
|
+++ b/xbmc/network/mdns/ZeroconfMDNS.cpp
|
||||||
|
@@ -144,21 +144,46 @@ bool CZeroconfMDNS::doPublishService(const std::string& fcr_identifier,
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CSingleLock lock(m_data_guard);
|
||||||
|
- m_services.insert(make_pair(fcr_identifier, netService));
|
||||||
|
+ struct tServiceRef newService;
|
||||||
|
+ newService.serviceRef = netService;
|
||||||
|
+ newService.txtRecordRef = txtRecord;
|
||||||
|
+ newService.updateNumber = 0;
|
||||||
|
+ m_services.insert(make_pair(fcr_identifier, newService));
|
||||||
|
}
|
||||||
|
|
||||||
|
- TXTRecordDeallocate(&txtRecord);
|
||||||
|
-
|
||||||
|
return err == kDNSServiceErr_NoError;
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool CZeroconfMDNS::doForceReAnnounceService(const std::string& fcr_identifier)
|
||||||
|
+{
|
||||||
|
+ bool ret = false;
|
||||||
|
+ CSingleLock lock(m_data_guard);
|
||||||
|
+ tServiceMap::iterator it = m_services.find(fcr_identifier);
|
||||||
|
+ if(it != m_services.end())
|
||||||
|
+ {
|
||||||
|
+ // for force announcing a service with mdns we need
|
||||||
|
+ // to change a txt record - so we diddle between
|
||||||
|
+ // even and odd dummy records here
|
||||||
|
+ if ( (it->second.updateNumber % 2) == 0)
|
||||||
|
+ TXTRecordSetValue(&it->second.txtRecordRef, "xbmcdummy", strlen("evendummy"), "evendummy");
|
||||||
|
+ else
|
||||||
|
+ TXTRecordSetValue(&it->second.txtRecordRef, "xbmcdummy", strlen("odddummy"), "odddummy");
|
||||||
|
+ it->second.updateNumber++;
|
||||||
|
+
|
||||||
|
+ if (DNSServiceUpdateRecord(it->second.serviceRef, NULL, 0, TXTRecordGetLength(&it->second.txtRecordRef), TXTRecordGetBytesPtr(&it->second.txtRecordRef), 0) == kDNSServiceErr_NoError)
|
||||||
|
+ ret = true;
|
||||||
|
+ }
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
bool CZeroconfMDNS::doRemoveService(const std::string& fcr_ident)
|
||||||
|
{
|
||||||
|
CSingleLock lock(m_data_guard);
|
||||||
|
tServiceMap::iterator it = m_services.find(fcr_ident);
|
||||||
|
if(it != m_services.end())
|
||||||
|
{
|
||||||
|
- DNSServiceRefDeallocate(it->second);
|
||||||
|
+ DNSServiceRefDeallocate(it->second.serviceRef);
|
||||||
|
+ TXTRecordDeallocate(&it->second.txtRecordRef);
|
||||||
|
m_services.erase(it);
|
||||||
|
CLog::Log(LOGDEBUG, "ZeroconfMDNS: Removed service %s", fcr_ident.c_str());
|
||||||
|
return true;
|
||||||
|
@@ -174,7 +199,8 @@ void CZeroconfMDNS::doStop()
|
||||||
|
CLog::Log(LOGDEBUG, "ZeroconfMDNS: Shutdown services");
|
||||||
|
for(tServiceMap::iterator it = m_services.begin(); it != m_services.end(); ++it)
|
||||||
|
{
|
||||||
|
- DNSServiceRefDeallocate(it->second);
|
||||||
|
+ DNSServiceRefDeallocate(it->second.serviceRef);
|
||||||
|
+ TXTRecordDeallocate(&it->second.txtRecordRef);
|
||||||
|
CLog::Log(LOGDEBUG, "ZeroconfMDNS: Removed service %s", it->first.c_str());
|
||||||
|
}
|
||||||
|
m_services.clear();
|
||||||
|
diff --git a/xbmc/network/mdns/ZeroconfMDNS.h b/xbmc/network/mdns/ZeroconfMDNS.h
|
||||||
|
index 075c22e..0156691 100644
|
||||||
|
--- a/xbmc/network/mdns/ZeroconfMDNS.h
|
||||||
|
+++ b/xbmc/network/mdns/ZeroconfMDNS.h
|
||||||
|
@@ -44,6 +44,7 @@ class CZeroconfMDNS : public CZeroconf,public CThread
|
||||||
|
unsigned int f_port,
|
||||||
|
const std::vector<std::pair<std::string, std::string> >& txt);
|
||||||
|
|
||||||
|
+ bool doForceReAnnounceService(const std::string& fcr_identifier);
|
||||||
|
bool doRemoveService(const std::string& fcr_ident);
|
||||||
|
|
||||||
|
virtual void doStop();
|
||||||
|
@@ -65,7 +66,13 @@ class CZeroconfMDNS : public CZeroconf,public CThread
|
||||||
|
|
||||||
|
//lock + data (accessed from runloop(main thread) + the rest)
|
||||||
|
CCriticalSection m_data_guard;
|
||||||
|
- typedef std::map<std::string, DNSServiceRef> tServiceMap;
|
||||||
|
+ struct tServiceRef
|
||||||
|
+ {
|
||||||
|
+ DNSServiceRef serviceRef;
|
||||||
|
+ TXTRecordRef txtRecordRef;
|
||||||
|
+ int updateNumber;
|
||||||
|
+ };
|
||||||
|
+ typedef std::map<std::string, struct tServiceRef> tServiceMap;
|
||||||
|
tServiceMap m_services;
|
||||||
|
DNSServiceRef m_service;
|
||||||
|
};
|
||||||
|
diff --git a/xbmc/network/osx/ZeroconfOSX.cpp b/xbmc/network/osx/ZeroconfOSX.cpp
|
||||||
|
index 298dea4..24ad68c 100644
|
||||||
|
--- a/xbmc/network/osx/ZeroconfOSX.cpp
|
||||||
|
+++ b/xbmc/network/osx/ZeroconfOSX.cpp
|
||||||
|
@@ -125,6 +125,32 @@ bool CZeroconfOSX::doPublishService(const std::string& fcr_identifier,
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool CZeroconfOSX::doForceReAnnounceService(const std::string& fcr_identifier)
|
||||||
|
+{
|
||||||
|
+ bool ret = false;
|
||||||
|
+ CSingleLock lock(m_data_guard);
|
||||||
|
+ tServiceMap::iterator it = m_services.find(fcr_identifier);
|
||||||
|
+ if(it != m_services.end())
|
||||||
|
+ {
|
||||||
|
+ CFNetServiceRef service = it->second;
|
||||||
|
+
|
||||||
|
+ CFDataRef txtData = CFNetServiceGetTXTData(service);
|
||||||
|
+ // convert the txtdata back and forth is enough to trigger a reannounce later
|
||||||
|
+ CFDictionaryRef txtDict = CFNetServiceCreateDictionaryWithTXTData(NULL, txtData);
|
||||||
|
+ CFMutableDictionaryRef txtDictMutable =CFDictionaryCreateMutableCopy(NULL, 0, txtDict);
|
||||||
|
+ txtData = CFNetServiceCreateTXTDataWithDictionary(NULL, txtDictMutable);
|
||||||
|
+
|
||||||
|
+ // this triggers the reannounce
|
||||||
|
+ ret = CFNetServiceSetTXTData(service, txtData);
|
||||||
|
+
|
||||||
|
+ CFRelease(txtDictMutable);
|
||||||
|
+ CFRelease(txtDict);
|
||||||
|
+ CFRelease(txtData);
|
||||||
|
+ }
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
bool CZeroconfOSX::doRemoveService(const std::string& fcr_ident)
|
||||||
|
{
|
||||||
|
CSingleLock lock(m_data_guard);
|
||||||
|
diff --git a/xbmc/network/osx/ZeroconfOSX.h b/xbmc/network/osx/ZeroconfOSX.h
|
||||||
|
index 368c2d4..8952a96 100644
|
||||||
|
--- a/xbmc/network/osx/ZeroconfOSX.h
|
||||||
|
+++ b/xbmc/network/osx/ZeroconfOSX.h
|
||||||
|
@@ -45,6 +45,8 @@ class CZeroconfOSX : public CZeroconf
|
||||||
|
unsigned int f_port,
|
||||||
|
const std::vector<std::pair<std::string, std::string> >& txt);
|
||||||
|
|
||||||
|
+ bool doForceReAnnounceService(const std::string& fcr_identifier);
|
||||||
|
+
|
||||||
|
bool doRemoveService(const std::string& fcr_ident);
|
||||||
|
|
||||||
|
virtual void doStop();
|
||||||
|
--
|
||||||
|
1.8.5.5
|
||||||
|
|
||||||
|
|
||||||
|
From 16d31f8914520d89de53ae19ce7b4d5eb8f4fa29 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Memphiz <memphis@machzwo.de>
|
||||||
|
Date: Tue, 11 Mar 2014 20:32:22 +0100
|
||||||
|
Subject: [PATCH 3/3] [airplay] - reannounce airplay service every 10 secs
|
||||||
|
(fixes ios7 clients not detecting us when their wlan was asleep or they saw
|
||||||
|
the airplay announcement before the airtunes annoncement)
|
||||||
|
|
||||||
|
---
|
||||||
|
xbmc/network/AirPlayServer.cpp | 21 +++++++++++++++++++++
|
||||||
|
1 file changed, 21 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/xbmc/network/AirPlayServer.cpp b/xbmc/network/AirPlayServer.cpp
|
||||||
|
index 7db6754..4c93368 100644
|
||||||
|
--- a/xbmc/network/AirPlayServer.cpp
|
||||||
|
+++ b/xbmc/network/AirPlayServer.cpp
|
||||||
|
@@ -43,6 +43,9 @@
|
||||||
|
#include "URL.h"
|
||||||
|
#include "cores/IPlayer.h"
|
||||||
|
#include "interfaces/AnnouncementManager.h"
|
||||||
|
+#ifdef HAS_ZEROCONF
|
||||||
|
+#include "network/Zeroconf.h"
|
||||||
|
+#endif // HAS_ZEROCONF
|
||||||
|
|
||||||
|
using namespace ANNOUNCEMENT;
|
||||||
|
|
||||||
|
@@ -277,6 +280,18 @@ void CAirPlayServer::AnnounceToClients(int state)
|
||||||
|
CAnnouncementManager::RemoveAnnouncer(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void handleZeroconfAnnouncement()
|
||||||
|
+{
|
||||||
|
+#if defined(HAS_ZEROCONF)
|
||||||
|
+ static XbmcThreads::EndTime timeout(10000);
|
||||||
|
+ if(timeout.IsTimePast())
|
||||||
|
+ {
|
||||||
|
+ CZeroconf::GetInstance()->ForceReAnnounceService("servers.airplay");
|
||||||
|
+ timeout.Set(10000);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void CAirPlayServer::Process()
|
||||||
|
{
|
||||||
|
m_bStop = false;
|
||||||
|
@@ -357,6 +372,12 @@ void CAirPlayServer::Process()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ // by reannouncing the zeroconf service
|
||||||
|
+ // we fix issues where xbmc is detected
|
||||||
|
+ // as audio-only target on devices with
|
||||||
|
+ // ios7 and later
|
||||||
|
+ handleZeroconfAnnouncement();
|
||||||
|
}
|
||||||
|
|
||||||
|
Deinitialize();
|
||||||
|
--
|
||||||
|
1.8.5.5
|
||||||
|
|
||||||
@@ -1,402 +0,0 @@
|
|||||||
From 74b06eccc06a0b4bd00114b20c929dfa1b73c783 Mon Sep 17 00:00:00 2001
|
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
|
||||||
Date: Sat, 1 Mar 2014 14:24:08 +0000
|
|
||||||
Subject: [PATCH] [omxplayer] Allow small audio packets to be concatenated to
|
|
||||||
make better use of audio fifo
|
|
||||||
|
|
||||||
Some audio codecs produce small packets which causes a high overhead when submitting to GPU, and doesn't make full use of GPU side buffering.
|
|
||||||
TrueHD in particular can produce packets with 40 samples (so 1200 packets per second) which causes very high overhead.
|
|
||||||
|
|
||||||
What this aims to do is to concatenate audio packets until they approach the ideal audio packet size,
|
|
||||||
and then deal with the awkardness of concatenated planar formats.
|
|
||||||
---
|
|
||||||
xbmc/cores/omxplayer/OMXAudio.cpp | 67 ++++++++++++++++++++++---------
|
|
||||||
xbmc/cores/omxplayer/OMXAudio.h | 3 +-
|
|
||||||
xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 62 ++++++++++++++++++----------
|
|
||||||
xbmc/cores/omxplayer/OMXAudioCodecOMX.h | 8 +++-
|
|
||||||
xbmc/cores/omxplayer/OMXPlayerAudio.cpp | 9 +++--
|
|
||||||
5 files changed, 100 insertions(+), 49 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp
|
|
||||||
index 3f91e89..70177db 100644
|
|
||||||
--- a/xbmc/cores/omxplayer/OMXAudio.cpp
|
|
||||||
+++ b/xbmc/cores/omxplayer/OMXAudio.cpp
|
|
||||||
@@ -43,6 +43,10 @@
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
+// the size of the audio_render output port buffers
|
|
||||||
+#define AUDIO_DECODE_OUTPUT_BUFFER (32*1024)
|
|
||||||
+static const char rounded_up_channels_shift[] = {0,0,1,2,2,3,3,3,3};
|
|
||||||
+
|
|
||||||
static const uint16_t AC3Bitrates[] = {32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512, 576, 640};
|
|
||||||
static const uint16_t AC3FSCod [] = {48000, 44100, 32000, 0};
|
|
||||||
|
|
||||||
@@ -61,6 +65,7 @@
|
|
||||||
m_Passthrough (false ),
|
|
||||||
m_HWDecode (false ),
|
|
||||||
m_BytesPerSec (0 ),
|
|
||||||
+ m_InputBytesPerSec(0 ),
|
|
||||||
m_BufferLen (0 ),
|
|
||||||
m_ChunkLen (0 ),
|
|
||||||
m_InputChannels (0 ),
|
|
||||||
@@ -491,11 +496,15 @@ bool COMXAudio::Initialize(AEAudioFormat format, OMXClock *clock, CDVDStreamInfo
|
|
||||||
|
|
||||||
m_SampleRate = m_format.m_sampleRate;
|
|
||||||
m_BitsPerSample = CAEUtil::DataFormatToBits(m_format.m_dataFormat);
|
|
||||||
- m_BufferLen = m_BytesPerSec = m_format.m_sampleRate * (16 >> 3) * m_InputChannels;
|
|
||||||
- m_BufferLen *= AUDIO_BUFFER_SECONDS;
|
|
||||||
+ m_BytesPerSec = m_SampleRate * 2 << rounded_up_channels_shift[m_InputChannels];
|
|
||||||
+ m_BufferLen = m_BytesPerSec * AUDIO_BUFFER_SECONDS;
|
|
||||||
+ m_InputBytesPerSec = m_SampleRate * m_BitsPerSample * m_InputChannels >> 3;
|
|
||||||
+
|
|
||||||
+ // should be big enough that common formats (e.g. 6 channel DTS) fit in a single packet.
|
|
||||||
+ // we don't mind less common formats being split (e.g. ape/wma output large frames)
|
|
||||||
// the audio_decode output buffer size is 32K, and typically we convert from
|
|
||||||
- // 6 channel 32bpp float to 8 channel 16bpp in, so a full 48K input buffer will fit the outbut buffer
|
|
||||||
- m_ChunkLen = 48*1024;
|
|
||||||
+ // 6 channel 32bpp float to 8 channel 16bpp in, so a full 48K input buffer will fit the output buffer
|
|
||||||
+ m_ChunkLen = AUDIO_DECODE_OUTPUT_BUFFER * (m_InputChannels * m_BitsPerSample) >> (rounded_up_channels_shift[m_InputChannels] + 4);
|
|
||||||
|
|
||||||
m_wave_header.Samples.wSamplesPerBlock = 0;
|
|
||||||
m_wave_header.Format.nChannels = m_InputChannels;
|
|
||||||
@@ -683,7 +692,7 @@ bool COMXAudio::Initialize(AEAudioFormat format, OMXClock *clock, CDVDStreamInfo
|
|
||||||
m_maxLevel = 0.0f;
|
|
||||||
|
|
||||||
CLog::Log(LOGDEBUG, "COMXAudio::Initialize Input bps %d samplerate %d channels %d buffer size %d bytes per second %d",
|
|
||||||
- (int)m_pcm_input.nBitPerSample, (int)m_pcm_input.nSamplingRate, (int)m_pcm_input.nChannels, m_BufferLen, m_BytesPerSec);
|
|
||||||
+ (int)m_pcm_input.nBitPerSample, (int)m_pcm_input.nSamplingRate, (int)m_pcm_input.nChannels, m_BufferLen, m_InputBytesPerSec);
|
|
||||||
PrintPCM(&m_pcm_input, std::string("input"));
|
|
||||||
CLog::Log(LOGDEBUG, "COMXAudio::Initialize device passthrough %d hwdecode %d",
|
|
||||||
m_Passthrough, m_HWDecode);
|
|
||||||
@@ -866,11 +875,11 @@ bool COMXAudio::ApplyVolume(void)
|
|
||||||
//***********************************************************************************************
|
|
||||||
unsigned int COMXAudio::AddPackets(const void* data, unsigned int len)
|
|
||||||
{
|
|
||||||
- return AddPackets(data, len, 0, 0);
|
|
||||||
+ return AddPackets(data, len, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//***********************************************************************************************
|
|
||||||
-unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dts, double pts)
|
|
||||||
+unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dts, double pts, unsigned int frame_size)
|
|
||||||
{
|
|
||||||
CSingleLock lock (m_critSection);
|
|
||||||
|
|
||||||
@@ -917,24 +926,40 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt
|
|
||||||
omx_buffer->nOffset = 0;
|
|
||||||
omx_buffer->nFlags = 0;
|
|
||||||
|
|
||||||
+ // we want audio_decode output buffer size to be no more than AUDIO_DECODE_OUTPUT_BUFFER.
|
|
||||||
+ // it will be 16-bit and rounded up to next power of 2 in channels
|
|
||||||
+ unsigned int max_buffer = AUDIO_DECODE_OUTPUT_BUFFER * (m_InputChannels * m_BitsPerSample) >> (rounded_up_channels_shift[m_InputChannels] + 4);
|
|
||||||
+
|
|
||||||
unsigned int remaining = demuxer_samples-demuxer_samples_sent;
|
|
||||||
- unsigned int samples_space = omx_buffer->nAllocLen/pitch;
|
|
||||||
+ unsigned int samples_space = std::min(max_buffer, omx_buffer->nAllocLen)/pitch;
|
|
||||||
unsigned int samples = std::min(remaining, samples_space);
|
|
||||||
|
|
||||||
omx_buffer->nFilledLen = samples * pitch;
|
|
||||||
|
|
||||||
- if (samples < demuxer_samples && m_BitsPerSample==32 && !(m_Passthrough || m_HWDecode))
|
|
||||||
+ unsigned int frames = frame_size ? len/frame_size:0;
|
|
||||||
+ if ((samples < demuxer_samples || frames > 1) && m_BitsPerSample==32 && !(m_Passthrough || m_HWDecode))
|
|
||||||
{
|
|
||||||
- uint8_t *dst = omx_buffer->pBuffer;
|
|
||||||
- uint8_t *src = demuxer_content + demuxer_samples_sent * (m_BitsPerSample >> 3);
|
|
||||||
- // we need to extract samples from planar audio, so the copying needs to be done per plane
|
|
||||||
- for (int i=0; i<(int)m_InputChannels; i++)
|
|
||||||
- {
|
|
||||||
- memcpy(dst, src, omx_buffer->nFilledLen / m_InputChannels);
|
|
||||||
- dst += omx_buffer->nFilledLen / m_InputChannels;
|
|
||||||
- src += demuxer_samples * (m_BitsPerSample >> 3);
|
|
||||||
- }
|
|
||||||
- assert(dst <= omx_buffer->pBuffer + m_ChunkLen);
|
|
||||||
+ const unsigned int sample_pitch = m_BitsPerSample >> 3;
|
|
||||||
+ const unsigned int frame_samples = frame_size / pitch;
|
|
||||||
+ const unsigned int plane_size = frame_samples * sample_pitch;
|
|
||||||
+ const unsigned int out_plane_size = samples * sample_pitch;
|
|
||||||
+ //CLog::Log(LOGDEBUG, "%s::%s samples:%d/%d ps:%d ops:%d fs:%d pitch:%d filled:%d frames=%d", CLASSNAME, __func__, samples, demuxer_samples, plane_size, out_plane_size, frame_size, pitch, omx_buffer->nFilledLen, frames);
|
|
||||||
+ for (unsigned int sample = 0; sample < samples; )
|
|
||||||
+ {
|
|
||||||
+ unsigned int frame = (demuxer_samples_sent + sample) / frame_samples;
|
|
||||||
+ unsigned int sample_in_frame = (demuxer_samples_sent + sample) - frame * frame_samples;
|
|
||||||
+ int out_remaining = std::min(std::min(frame_samples - sample_in_frame, samples), samples-sample);
|
|
||||||
+ uint8_t *src = demuxer_content + frame*frame_size + sample_in_frame * sample_pitch;
|
|
||||||
+ uint8_t *dst = (uint8_t *)omx_buffer->pBuffer + sample * sample_pitch;
|
|
||||||
+ for (unsigned int channel = 0; channel < m_InputChannels; channel++)
|
|
||||||
+ {
|
|
||||||
+ //CLog::Log(LOGDEBUG, "%s::%s copy(%d,%d,%d) (s:%d f:%d sin:%d c:%d)", CLASSNAME, __func__, dst-(uint8_t *)omx_buffer->pBuffer, src-demuxer_content, out_remaining, sample, frame, sample_in_frame, channel);
|
|
||||||
+ memcpy(dst, src, out_remaining * sample_pitch);
|
|
||||||
+ src += plane_size;
|
|
||||||
+ dst += out_plane_size;
|
|
||||||
+ }
|
|
||||||
+ sample += out_remaining;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
@@ -1103,7 +1128,9 @@ float COMXAudio::GetCacheTime()
|
|
||||||
|
|
||||||
float COMXAudio::GetCacheTotal()
|
|
||||||
{
|
|
||||||
- return m_BytesPerSec ? (float)m_BufferLen / (float)m_BytesPerSec : 0.0f;
|
|
||||||
+ float audioplus_buffer = m_SampleRate ? 0.0f : 32.0f * 512.0f / m_SampleRate;
|
|
||||||
+ float input_buffer = (float)m_omx_decoder.GetInputBufferSize() / (float)m_InputBytesPerSec;
|
|
||||||
+ return AUDIO_BUFFER_SECONDS + input_buffer + audioplus_buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
//***********************************************************************************************
|
|
||||||
diff --git a/xbmc/cores/omxplayer/OMXAudio.h b/xbmc/cores/omxplayer/OMXAudio.h
|
|
||||||
index f6bc023..7eba151 100644
|
|
||||||
--- a/xbmc/cores/omxplayer/OMXAudio.h
|
|
||||||
+++ b/xbmc/cores/omxplayer/OMXAudio.h
|
|
||||||
@@ -66,7 +66,7 @@ class COMXAudio
|
|
||||||
~COMXAudio();
|
|
||||||
|
|
||||||
unsigned int AddPackets(const void* data, unsigned int len);
|
|
||||||
- unsigned int AddPackets(const void* data, unsigned int len, double dts, double pts);
|
|
||||||
+ unsigned int AddPackets(const void* data, unsigned int len, double dts, double pts, unsigned int frame_size);
|
|
||||||
unsigned int GetSpace();
|
|
||||||
bool Deinitialize();
|
|
||||||
|
|
||||||
@@ -114,6 +114,7 @@ class COMXAudio
|
|
||||||
bool m_Passthrough;
|
|
||||||
bool m_HWDecode;
|
|
||||||
unsigned int m_BytesPerSec;
|
|
||||||
+ unsigned int m_InputBytesPerSec;
|
|
||||||
unsigned int m_BufferLen;
|
|
||||||
unsigned int m_ChunkLen;
|
|
||||||
unsigned int m_InputChannels;
|
|
||||||
diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp
|
|
||||||
index 5503a0e..cc6558a 100644
|
|
||||||
--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp
|
|
||||||
+++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp
|
|
||||||
@@ -26,10 +26,15 @@
|
|
||||||
|
|
||||||
#include "cores/AudioEngine/Utils/AEUtil.h"
|
|
||||||
|
|
||||||
+// the size of the audio_render output port buffers
|
|
||||||
+#define AUDIO_DECODE_OUTPUT_BUFFER (32*1024)
|
|
||||||
+static const char rounded_up_channels_shift[] = {0,0,1,2,2,3,3,3,3};
|
|
||||||
+
|
|
||||||
COMXAudioCodecOMX::COMXAudioCodecOMX()
|
|
||||||
{
|
|
||||||
m_pBufferOutput = NULL;
|
|
||||||
m_iBufferOutputAlloced = 0;
|
|
||||||
+ m_iBufferOutputUsed = 0;
|
|
||||||
|
|
||||||
m_pCodecContext = NULL;
|
|
||||||
m_pConvert = NULL;
|
|
||||||
@@ -37,6 +42,7 @@
|
|
||||||
|
|
||||||
m_channels = 0;
|
|
||||||
m_pFrame1 = NULL;
|
|
||||||
+ m_frameSize = 0;
|
|
||||||
m_bGotFrame = false;
|
|
||||||
m_iSampleFormat = AV_SAMPLE_FMT_NONE;
|
|
||||||
m_desiredSampleFormat = AV_SAMPLE_FMT_NONE;
|
|
||||||
@@ -47,6 +53,7 @@
|
|
||||||
m_dllAvUtil.av_free(m_pBufferOutput);
|
|
||||||
m_pBufferOutput = NULL;
|
|
||||||
m_iBufferOutputAlloced = 0;
|
|
||||||
+ m_iBufferOutputUsed = 0;
|
|
||||||
Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -132,7 +139,7 @@ void COMXAudioCodecOMX::Dispose()
|
|
||||||
m_bGotFrame = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
-int COMXAudioCodecOMX::Decode(BYTE* pData, int iSize)
|
|
||||||
+int COMXAudioCodecOMX::Decode(BYTE* pData, int iSize, double dts, double pts)
|
|
||||||
{
|
|
||||||
int iBytesUsed, got_frame;
|
|
||||||
if (!m_pCodecContext) return -1;
|
|
||||||
@@ -167,10 +174,15 @@ int COMXAudioCodecOMX::Decode(BYTE* pData, int iSize)
|
|
||||||
}
|
|
||||||
|
|
||||||
m_bGotFrame = true;
|
|
||||||
+ if (!m_iBufferOutputUsed)
|
|
||||||
+ {
|
|
||||||
+ m_dts = dts;
|
|
||||||
+ m_pts = pts;
|
|
||||||
+ }
|
|
||||||
return iBytesUsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
-int COMXAudioCodecOMX::GetData(BYTE** dst)
|
|
||||||
+int COMXAudioCodecOMX::GetData(BYTE** dst, double &dts, double &pts)
|
|
||||||
{
|
|
||||||
if (!m_bGotFrame)
|
|
||||||
return 0;
|
|
||||||
@@ -179,13 +191,12 @@ int COMXAudioCodecOMX::GetData(BYTE** dst)
|
|
||||||
int inputSize = m_dllAvUtil.av_samples_get_buffer_size(&inLineSize, m_pCodecContext->channels, m_pFrame1->nb_samples, m_pCodecContext->sample_fmt, 0);
|
|
||||||
/* output audio will be packed */
|
|
||||||
int outputSize = m_dllAvUtil.av_samples_get_buffer_size(&outLineSize, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1);
|
|
||||||
- bool cont = !m_pFrame1->data[1] || (m_pFrame1->data[1] == m_pFrame1->data[0] + inLineSize && inLineSize == outLineSize && inLineSize * m_pCodecContext->channels == inputSize);
|
|
||||||
|
|
||||||
- if (m_iBufferOutputAlloced < outputSize)
|
|
||||||
+ if (m_iBufferOutputAlloced < m_iBufferOutputUsed + outputSize)
|
|
||||||
{
|
|
||||||
m_dllAvUtil.av_free(m_pBufferOutput);
|
|
||||||
- m_pBufferOutput = (BYTE*)m_dllAvUtil.av_malloc(outputSize + FF_INPUT_BUFFER_PADDING_SIZE);
|
|
||||||
- m_iBufferOutputAlloced = outputSize;
|
|
||||||
+ m_pBufferOutput = (BYTE*)m_dllAvUtil.av_malloc(m_iBufferOutputUsed + outputSize + FF_INPUT_BUFFER_PADDING_SIZE);
|
|
||||||
+ m_iBufferOutputAlloced = m_iBufferOutputUsed + outputSize;
|
|
||||||
}
|
|
||||||
*dst = m_pBufferOutput;
|
|
||||||
|
|
||||||
@@ -217,7 +228,7 @@ int COMXAudioCodecOMX::GetData(BYTE** dst)
|
|
||||||
|
|
||||||
/* use unaligned flag to keep output packed */
|
|
||||||
uint8_t *out_planes[m_pCodecContext->channels];
|
|
||||||
- if(m_dllAvUtil.av_samples_fill_arrays(out_planes, NULL, m_pBufferOutput, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1) < 0 ||
|
|
||||||
+ if(m_dllAvUtil.av_samples_fill_arrays(out_planes, NULL, m_pBufferOutput + m_iBufferOutputUsed, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1) < 0 ||
|
|
||||||
m_dllSwResample.swr_convert(m_pConvert, out_planes, m_pFrame1->nb_samples, (const uint8_t **)m_pFrame1->data, m_pFrame1->nb_samples) < 0)
|
|
||||||
{
|
|
||||||
CLog::Log(LOGERROR, "COMXAudioCodecOMX::Decode - Unable to convert format %d to %d", (int)m_pCodecContext->sample_fmt, m_desiredSampleFormat);
|
|
||||||
@@ -226,35 +237,42 @@ int COMXAudioCodecOMX::GetData(BYTE** dst)
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
- /* if it is already contiguous, just return decoded frame */
|
|
||||||
- if (cont)
|
|
||||||
- {
|
|
||||||
- *dst = m_pFrame1->data[0];
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
+ /* copy to a contiguous buffer */
|
|
||||||
+ uint8_t *out_planes[m_pCodecContext->channels];
|
|
||||||
+ if (m_dllAvUtil.av_samples_fill_arrays(out_planes, NULL, m_pBufferOutput + m_iBufferOutputUsed, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1) < 0 ||
|
|
||||||
+ m_dllAvUtil.av_samples_copy(out_planes, m_pFrame1->data, 0, 0, m_pFrame1->nb_samples, m_pCodecContext->channels, m_desiredSampleFormat) < 0 )
|
|
||||||
{
|
|
||||||
- /* copy to a contiguous buffer */
|
|
||||||
- uint8_t *out_planes[m_pCodecContext->channels];
|
|
||||||
- if (m_dllAvUtil.av_samples_fill_arrays(out_planes, NULL, m_pBufferOutput, m_pCodecContext->channels, m_pFrame1->nb_samples, m_desiredSampleFormat, 1) < 0 ||
|
|
||||||
- m_dllAvUtil.av_samples_copy(out_planes, m_pFrame1->data, 0, 0, m_pFrame1->nb_samples, m_pCodecContext->channels, m_desiredSampleFormat) < 0 )
|
|
||||||
- {
|
|
||||||
- outputSize = 0;
|
|
||||||
- }
|
|
||||||
+ outputSize = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ int desired_size = AUDIO_DECODE_OUTPUT_BUFFER * (m_pCodecContext->channels * GetBitsPerSample()) >> (rounded_up_channels_shift[m_pCodecContext->channels] + 4);
|
|
||||||
|
|
||||||
if (m_bFirstFrame)
|
|
||||||
{
|
|
||||||
- CLog::Log(LOGDEBUG, "COMXAudioCodecOMX::GetData size=%d/%d line=%d/%d cont=%d buf=%p", inputSize, outputSize, inLineSize, outLineSize, cont, *dst);
|
|
||||||
+ CLog::Log(LOGDEBUG, "COMXAudioCodecOMX::GetData size=%d/%d line=%d/%d buf=%p, desired=%d", inputSize, outputSize, inLineSize, outLineSize, *dst, desired_size);
|
|
||||||
m_bFirstFrame = false;
|
|
||||||
}
|
|
||||||
- return outputSize;
|
|
||||||
+ m_iBufferOutputUsed += outputSize;
|
|
||||||
+
|
|
||||||
+ // if next buffer submitted won't fit then flush it out
|
|
||||||
+ if (m_iBufferOutputUsed + outputSize > desired_size || (m_frameSize && (int)m_frameSize != outputSize))
|
|
||||||
+ {
|
|
||||||
+ int ret = m_iBufferOutputUsed;
|
|
||||||
+ m_bGotFrame = false;
|
|
||||||
+ m_iBufferOutputUsed = 0;
|
|
||||||
+ m_frameSize = outputSize;
|
|
||||||
+ dts = m_dts;
|
|
||||||
+ pts = m_pts;
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void COMXAudioCodecOMX::Reset()
|
|
||||||
{
|
|
||||||
if (m_pCodecContext) m_dllAvCodec.avcodec_flush_buffers(m_pCodecContext);
|
|
||||||
m_bGotFrame = false;
|
|
||||||
+ m_iBufferOutputUsed = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int COMXAudioCodecOMX::GetChannels()
|
|
||||||
diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.h b/xbmc/cores/omxplayer/OMXAudioCodecOMX.h
|
|
||||||
index 343465c..4dc2371 100644
|
|
||||||
--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.h
|
|
||||||
+++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.h
|
|
||||||
@@ -36,8 +36,8 @@ class COMXAudioCodecOMX
|
|
||||||
virtual ~COMXAudioCodecOMX();
|
|
||||||
bool Open(CDVDStreamInfo &hints);
|
|
||||||
void Dispose();
|
|
||||||
- int Decode(BYTE* pData, int iSize);
|
|
||||||
- int GetData(BYTE** dst);
|
|
||||||
+ int Decode(BYTE* pData, int iSize, double dts, double pts);
|
|
||||||
+ int GetData(BYTE** dst, double &dts, double &pts);
|
|
||||||
void Reset();
|
|
||||||
int GetChannels();
|
|
||||||
uint64_t GetChannelMap();
|
|
||||||
@@ -45,6 +45,7 @@ class COMXAudioCodecOMX
|
|
||||||
int GetBitsPerSample();
|
|
||||||
static const char* GetName() { return "FFmpeg"; }
|
|
||||||
int GetBitRate();
|
|
||||||
+ unsigned int GetFrameSize() { return m_frameSize; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
AVCodecContext* m_pCodecContext;
|
|
||||||
@@ -55,6 +56,7 @@ class COMXAudioCodecOMX
|
|
||||||
AVFrame* m_pFrame1;
|
|
||||||
|
|
||||||
BYTE *m_pBufferOutput;
|
|
||||||
+ int m_iBufferOutputUsed;
|
|
||||||
int m_iBufferOutputAlloced;
|
|
||||||
|
|
||||||
bool m_bOpenedCodec;
|
|
||||||
@@ -63,6 +65,8 @@ class COMXAudioCodecOMX
|
|
||||||
|
|
||||||
bool m_bFirstFrame;
|
|
||||||
bool m_bGotFrame;
|
|
||||||
+ unsigned int m_frameSize;
|
|
||||||
+ double m_dts, m_pts;
|
|
||||||
DllAvCodec m_dllAvCodec;
|
|
||||||
DllAvUtil m_dllAvUtil;
|
|
||||||
DllSwResample m_dllSwResample;
|
|
||||||
diff --git a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
|
|
||||||
index 7d9081c..53336cb 100644
|
|
||||||
--- a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
|
|
||||||
+++ b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
|
|
||||||
@@ -228,9 +228,10 @@ bool OMXPlayerAudio::Decode(DemuxPacket *pkt, bool bDropPacket)
|
|
||||||
|
|
||||||
if(!OMX_IS_RAW(m_format.m_dataFormat) && !bDropPacket)
|
|
||||||
{
|
|
||||||
+ double dts = pkt->dts, pts=pkt->pts;
|
|
||||||
while(!m_bStop && data_len > 0)
|
|
||||||
{
|
|
||||||
- int len = m_pAudioCodec->Decode((BYTE *)data_dec, data_len);
|
|
||||||
+ int len = m_pAudioCodec->Decode((BYTE *)data_dec, data_len, dts, pts);
|
|
||||||
if( (len < 0) || (len > data_len) )
|
|
||||||
{
|
|
||||||
m_pAudioCodec->Reset();
|
|
||||||
@@ -241,7 +242,7 @@ bool OMXPlayerAudio::Decode(DemuxPacket *pkt, bool bDropPacket)
|
|
||||||
data_len -= len;
|
|
||||||
|
|
||||||
uint8_t *decoded;
|
|
||||||
- int decoded_size = m_pAudioCodec->GetData(&decoded);
|
|
||||||
+ int decoded_size = m_pAudioCodec->GetData(&decoded, dts, pts);
|
|
||||||
|
|
||||||
if(decoded_size <=0)
|
|
||||||
continue;
|
|
||||||
@@ -275,7 +276,7 @@ bool OMXPlayerAudio::Decode(DemuxPacket *pkt, bool bDropPacket)
|
|
||||||
if(m_silence)
|
|
||||||
memset(decoded, 0x0, decoded_size);
|
|
||||||
|
|
||||||
- ret = m_omxAudio.AddPackets(decoded, decoded_size, m_audioClock, m_audioClock);
|
|
||||||
+ ret = m_omxAudio.AddPackets(decoded, decoded_size, dts, pts, m_pAudioCodec->GetFrameSize());
|
|
||||||
|
|
||||||
if(ret != decoded_size)
|
|
||||||
{
|
|
||||||
@@ -313,7 +314,7 @@ bool OMXPlayerAudio::Decode(DemuxPacket *pkt, bool bDropPacket)
|
|
||||||
if(m_silence)
|
|
||||||
memset(pkt->pData, 0x0, pkt->iSize);
|
|
||||||
|
|
||||||
- m_omxAudio.AddPackets(pkt->pData, pkt->iSize, m_audioClock, m_audioClock);
|
|
||||||
+ m_omxAudio.AddPackets(pkt->pData, pkt->iSize, m_audioClock, m_audioClock, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_audioStats.AddSampleBytes(pkt->iSize);
|
|
||||||
--
|
|
||||||
1.8.5.5
|
|
||||||
|
|
||||||
@@ -17,10 +17,10 @@
|
|||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
if [ -e /var/run/lirc/lircd.irtrans ]; then
|
if [ -e /run/lirc/lircd.irtrans ]; then
|
||||||
XBMC_ARGS="--lircdev /var/run/lirc/lircd.irtrans"
|
XBMC_ARGS="--lircdev /run/lirc/lircd.irtrans"
|
||||||
else
|
else
|
||||||
XBMC_ARGS="--lircdev /var/run/lirc/lircd"
|
XBMC_ARGS="--lircdev /run/lirc/lircd"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "XBMC_ARGS=\"$XBMC_ARGS\"" > /run/openelec/xbmc.conf
|
echo "XBMC_ARGS=\"$XBMC_ARGS\"" > /run/openelec/xbmc.conf
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ EnvironmentFile=-/run/openelec/debug/xbmc.conf
|
|||||||
ExecStart=/bin/sh -c ". /etc/profile; exec /usr/lib/xbmc/xbmc.bin --standalone -fs $XBMC_ARGS $XBMC_DEBUG"
|
ExecStart=/bin/sh -c ". /etc/profile; exec /usr/lib/xbmc/xbmc.bin --standalone -fs $XBMC_ARGS $XBMC_DEBUG"
|
||||||
# keep KillMode=process unless there is no good reason to switch to cgroup
|
# keep KillMode=process unless there is no good reason to switch to cgroup
|
||||||
KillMode=process
|
KillMode=process
|
||||||
TimeoutStopSec=10
|
TimeoutStopSec=5
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=2
|
RestartSec=2
|
||||||
StartLimitInterval=0
|
StartLimitInterval=0
|
||||||
|
|||||||
10
packages/multimedia/SDL/patches/SDL-1.2.15-keyRepeat.patch
Normal file
10
packages/multimedia/SDL/patches/SDL-1.2.15-keyRepeat.patch
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
--- a/src/events/SDL_keyboard.c 2013-11-09 11:30:21.828161683 +0100
|
||||||
|
+++ b/src/events/SDL_keyboard.c 2013-11-09 11:30:54.284183206 +0100
|
||||||
|
@@ -417,6 +417,7 @@
|
||||||
|
keysym->mod = (SDLMod)modstate;
|
||||||
|
switch (keysym->sym) {
|
||||||
|
case SDLK_UNKNOWN:
|
||||||
|
+ repeatable = 1;
|
||||||
|
break;
|
||||||
|
case SDLK_NUMLOCK:
|
||||||
|
modstate ^= KMOD_NUM;
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="libhdhomerun"
|
PKG_NAME="libhdhomerun"
|
||||||
PKG_VERSION="20130328"
|
PKG_VERSION="20140121"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="LGPL"
|
PKG_LICENSE="LGPL"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="bluez"
|
PKG_NAME="bluez"
|
||||||
PKG_VERSION="5.15"
|
PKG_VERSION="5.16"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
@@ -1,20 +1,10 @@
|
|||||||
From ef19c237a2578bd78cd75b4be636207c06e34c11 Mon Sep 17 00:00:00 2001
|
diff -Naur bluez-5.16/src/bluetooth.conf bluez-5.16.patch/src/bluetooth.conf
|
||||||
From: Stefan Saraev <stefan@saraev.ca>
|
--- bluez-5.16/src/bluetooth.conf 2014-03-11 12:20:34.000000000 +0100
|
||||||
Date: Tue, 6 Aug 2013 12:35:27 +0300
|
+++ bluez-5.16.patch/src/bluetooth.conf 2014-03-11 23:52:02.765733038 +0100
|
||||||
Subject: [PATCH] add obexd policy
|
@@ -19,20 +19,36 @@
|
||||||
|
|
||||||
---
|
|
||||||
src/bluetooth.conf | 16 ++++++++++++++++
|
|
||||||
1 files changed, 16 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/bluetooth.conf b/src/bluetooth.conf
|
|
||||||
index 0495200..38020d7 100644
|
|
||||||
--- a/src/bluetooth.conf
|
|
||||||
+++ b/src/bluetooth.conf
|
|
||||||
@@ -18,20 +18,36 @@
|
|
||||||
<allow send_interface="org.bluez.Profile1"/>
|
|
||||||
<allow send_interface="org.bluez.HeartRateWatcher1"/>
|
<allow send_interface="org.bluez.HeartRateWatcher1"/>
|
||||||
<allow send_interface="org.bluez.CyclingSpeedWatcher1"/>
|
<allow send_interface="org.bluez.CyclingSpeedWatcher1"/>
|
||||||
|
<allow send_interface="org.freedesktop.DBus.ObjectManager"/>
|
||||||
+
|
+
|
||||||
+ <allow own="org.bluez.obex"/>
|
+ <allow own="org.bluez.obex"/>
|
||||||
+ <allow send_destination="org.bluez.obex"/>
|
+ <allow send_destination="org.bluez.obex"/>
|
||||||
@@ -48,6 +38,3 @@ index 0495200..38020d7 100644
|
|||||||
</policy>
|
</policy>
|
||||||
|
|
||||||
</busconfig>
|
</busconfig>
|
||||||
--
|
|
||||||
1.7.2.5
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
SAMBA_AUTOSHARE="true"
|
||||||
SAMBA_USERNAME="openelec"
|
SAMBA_USERNAME="openelec"
|
||||||
SAMBA_PASSWORD="openelec"
|
SAMBA_PASSWORD="openelec"
|
||||||
SAMBA_SECURE="false"
|
SAMBA_SECURE="false"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="samba"
|
PKG_NAME="samba"
|
||||||
PKG_VERSION="3.6.22"
|
PKG_VERSION="3.6.23"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
@@ -1,22 +1,7 @@
|
|||||||
--- a/source3/rpc_server/rpc_handles.c
|
diff -Naur samba-3.6.23/source3/librpc/rpc/rpc_common.c samba-3.6.23.patch/source3/librpc/rpc/rpc_common.c
|
||||||
+++ b/source3/rpc_server/rpc_handles.c
|
--- samba-3.6.23/source3/librpc/rpc/rpc_common.c 2014-03-12 16:10:57.120989895 +0100
|
||||||
@@ -59,8 +59,11 @@ struct handle_list {
|
+++ samba-3.6.23.patch/source3/librpc/rpc/rpc_common.c 2014-03-12 16:11:48.361046356 +0100
|
||||||
|
@@ -100,9 +100,11 @@
|
||||||
static bool is_samr_lsa_pipe(const struct ndr_syntax_id *syntax)
|
|
||||||
{
|
|
||||||
- return (ndr_syntax_id_equal(syntax, &ndr_table_samr.syntax_id)
|
|
||||||
- || ndr_syntax_id_equal(syntax, &ndr_table_lsarpc.syntax_id));
|
|
||||||
+ return
|
|
||||||
+#ifdef SAMR_SUPPORT
|
|
||||||
+ ndr_syntax_id_equal(syntax, &ndr_table_samr.syntax_id) ||
|
|
||||||
+#endif
|
|
||||||
+ ndr_syntax_id_equal(syntax, &ndr_table_lsarpc.syntax_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t num_pipe_handles(struct pipes_struct *p)
|
|
||||||
--- a/source3/librpc/rpc/rpc_common.c
|
|
||||||
+++ b/source3/librpc/rpc/rpc_common.c
|
|
||||||
@@ -100,9 +100,11 @@ static bool initialize_interfaces(void)
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -28,9 +13,23 @@
|
|||||||
#ifdef NETLOGON_SUPPORT
|
#ifdef NETLOGON_SUPPORT
|
||||||
if (!smb_register_ndr_interface(&ndr_table_netlogon)) {
|
if (!smb_register_ndr_interface(&ndr_table_netlogon)) {
|
||||||
return false;
|
return false;
|
||||||
--- a/source3/rpc_server/rpc_ep_setup.c
|
diff -Naur samba-3.6.23/source3/rpcclient/rpcclient.c samba-3.6.23.patch/source3/rpcclient/rpcclient.c
|
||||||
+++ b/source3/rpc_server/rpc_ep_setup.c
|
--- samba-3.6.23/source3/rpcclient/rpcclient.c 2014-03-12 16:10:57.121989948 +0100
|
||||||
@@ -557,6 +557,7 @@ static bool lsarpc_init_cb(void *ptr)
|
+++ samba-3.6.23.patch/source3/rpcclient/rpcclient.c 2014-03-12 16:11:48.362046792 +0100
|
||||||
|
@@ -623,7 +623,9 @@
|
||||||
|
rpcclient_commands,
|
||||||
|
lsarpc_commands,
|
||||||
|
ds_commands,
|
||||||
|
+#ifdef SAMR_SUPPORT
|
||||||
|
samr_commands,
|
||||||
|
+#endif
|
||||||
|
#ifdef PRINTER_SUPPORT
|
||||||
|
spoolss_commands,
|
||||||
|
#endif
|
||||||
|
diff -Naur samba-3.6.23/source3/rpc_server/rpc_ep_setup.c samba-3.6.23.patch/source3/rpc_server/rpc_ep_setup.c
|
||||||
|
--- samba-3.6.23/source3/rpc_server/rpc_ep_setup.c 2014-03-12 16:10:57.120989895 +0100
|
||||||
|
+++ samba-3.6.23.patch/source3/rpc_server/rpc_ep_setup.c 2014-03-12 16:11:48.361046356 +0100
|
||||||
|
@@ -557,6 +557,7 @@
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@
|
|||||||
static bool samr_init_cb(void *ptr)
|
static bool samr_init_cb(void *ptr)
|
||||||
{
|
{
|
||||||
struct dcesrv_ep_context *ep_ctx =
|
struct dcesrv_ep_context *ep_ctx =
|
||||||
@@ -605,6 +606,7 @@ static bool samr_init_cb(void *ptr)
|
@@ -605,6 +606,7 @@
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -46,7 +45,7 @@
|
|||||||
|
|
||||||
#ifdef NETLOGON_SUPPORT
|
#ifdef NETLOGON_SUPPORT
|
||||||
static bool netlogon_init_cb(void *ptr)
|
static bool netlogon_init_cb(void *ptr)
|
||||||
@@ -1111,12 +1113,14 @@ bool dcesrv_ep_setup(struct tevent_conte
|
@@ -1111,12 +1113,14 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,33 +60,27 @@
|
|||||||
|
|
||||||
#ifdef NETLOGON_SUPPORT
|
#ifdef NETLOGON_SUPPORT
|
||||||
netlogon_cb.init = netlogon_init_cb;
|
netlogon_cb.init = netlogon_init_cb;
|
||||||
--- a/source3/smbd/server_exit.c
|
diff -Naur samba-3.6.23/source3/rpc_server/rpc_handles.c samba-3.6.23.patch/source3/rpc_server/rpc_handles.c
|
||||||
+++ b/source3/smbd/server_exit.c
|
--- samba-3.6.23/source3/rpc_server/rpc_handles.c 2014-03-11 11:17:34.000000000 +0100
|
||||||
@@ -160,7 +160,9 @@ static void exit_server_common(enum serv
|
+++ samba-3.6.23.patch/source3/rpc_server/rpc_handles.c 2014-03-12 16:11:48.361046356 +0100
|
||||||
#ifdef NETLOGON_SUPPORT
|
@@ -59,8 +59,11 @@
|
||||||
rpc_netlogon_shutdown();
|
|
||||||
#endif
|
|
||||||
+#ifdef SAMR_SUPPORT
|
|
||||||
rpc_samr_shutdown();
|
|
||||||
+#endif
|
|
||||||
rpc_lsarpc_shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/source3/rpcclient/rpcclient.c
|
static bool is_samr_lsa_pipe(const struct ndr_syntax_id *syntax)
|
||||||
+++ b/source3/rpcclient/rpcclient.c
|
{
|
||||||
@@ -623,7 +623,9 @@ static struct cmd_set *rpcclient_command
|
- return (ndr_syntax_id_equal(syntax, &ndr_table_samr.syntax_id)
|
||||||
rpcclient_commands,
|
- || ndr_syntax_id_equal(syntax, &ndr_table_lsarpc.syntax_id));
|
||||||
lsarpc_commands,
|
+ return
|
||||||
ds_commands,
|
|
||||||
+#ifdef SAMR_SUPPORT
|
+#ifdef SAMR_SUPPORT
|
||||||
samr_commands,
|
+ ndr_syntax_id_equal(syntax, &ndr_table_samr.syntax_id) ||
|
||||||
+#endif
|
+#endif
|
||||||
#ifdef PRINTER_SUPPORT
|
+ ndr_syntax_id_equal(syntax, &ndr_table_lsarpc.syntax_id);
|
||||||
spoolss_commands,
|
}
|
||||||
#endif
|
|
||||||
--- a/source3/smbd/lanman.c
|
size_t num_pipe_handles(struct pipes_struct *p)
|
||||||
+++ b/source3/smbd/lanman.c
|
diff -Naur samba-3.6.23/source3/smbd/lanman.c samba-3.6.23.patch/source3/smbd/lanman.c
|
||||||
@@ -2353,6 +2353,10 @@ static bool api_RNetGroupEnum(struct smb
|
--- samba-3.6.23/source3/smbd/lanman.c 2014-03-12 16:10:30.535984713 +0100
|
||||||
|
+++ samba-3.6.23.patch/source3/smbd/lanman.c 2014-03-12 16:11:48.362046792 +0100
|
||||||
|
@@ -2353,6 +2353,10 @@
|
||||||
NTSTATUS status, result;
|
NTSTATUS status, result;
|
||||||
struct dcerpc_binding_handle *b;
|
struct dcerpc_binding_handle *b;
|
||||||
|
|
||||||
@@ -98,7 +91,7 @@
|
|||||||
if (!str1 || !str2 || !p) {
|
if (!str1 || !str2 || !p) {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
@@ -2541,6 +2545,10 @@ static bool api_NetUserGetGroups(struct
|
@@ -2541,6 +2545,10 @@
|
||||||
NTSTATUS status, result;
|
NTSTATUS status, result;
|
||||||
struct dcerpc_binding_handle *b;
|
struct dcerpc_binding_handle *b;
|
||||||
|
|
||||||
@@ -109,7 +102,7 @@
|
|||||||
if (!str1 || !str2 || !UserName || !p) {
|
if (!str1 || !str2 || !UserName || !p) {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
@@ -2733,6 +2741,10 @@ static bool api_RNetUserEnum(struct smbd
|
@@ -2741,6 +2749,10 @@
|
||||||
|
|
||||||
struct dcerpc_binding_handle *b;
|
struct dcerpc_binding_handle *b;
|
||||||
|
|
||||||
@@ -120,18 +113,7 @@
|
|||||||
if (!str1 || !str2 || !p) {
|
if (!str1 || !str2 || !p) {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
@@ -2979,6 +2991,10 @@ static bool api_SetUserPassword(struct s
|
@@ -2979,6 +2991,10 @@
|
||||||
int min_pwd_length;
|
|
||||||
struct dcerpc_binding_handle *b = NULL;
|
|
||||||
|
|
||||||
+#ifndef SAMR_SUPPORT
|
|
||||||
+ return False;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/* Skip 2 strings. */
|
|
||||||
p = skip_string(param,tpscnt,np);
|
|
||||||
p = skip_string(param,tpscnt,p);
|
|
||||||
@@ -3224,6 +3240,10 @@ static bool api_SamOEMChangePassword(str
|
|
||||||
int bufsize;
|
int bufsize;
|
||||||
struct dcerpc_binding_handle *b;
|
struct dcerpc_binding_handle *b;
|
||||||
|
|
||||||
@@ -142,7 +124,7 @@
|
|||||||
*rparam_len = 4;
|
*rparam_len = 4;
|
||||||
*rparam = smb_realloc_limit(*rparam,*rparam_len);
|
*rparam = smb_realloc_limit(*rparam,*rparam_len);
|
||||||
if (!*rparam) {
|
if (!*rparam) {
|
||||||
@@ -4265,6 +4285,10 @@ static bool api_RNetUserGetInfo(struct s
|
@@ -4020,6 +4036,10 @@
|
||||||
union samr_UserInfo *info;
|
union samr_UserInfo *info;
|
||||||
struct dcerpc_binding_handle *b = NULL;
|
struct dcerpc_binding_handle *b = NULL;
|
||||||
|
|
||||||
@@ -153,3 +135,16 @@
|
|||||||
if (!str1 || !str2 || !UserName || !p) {
|
if (!str1 || !str2 || !UserName || !p) {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
diff -Naur samba-3.6.23/source3/smbd/server_exit.c samba-3.6.23.patch/source3/smbd/server_exit.c
|
||||||
|
--- samba-3.6.23/source3/smbd/server_exit.c 2014-03-12 16:10:57.120989895 +0100
|
||||||
|
+++ samba-3.6.23.patch/source3/smbd/server_exit.c 2014-03-12 16:11:48.361046356 +0100
|
||||||
|
@@ -159,7 +159,9 @@
|
||||||
|
#ifdef NETLOGON_SUPPORT
|
||||||
|
rpc_netlogon_shutdown();
|
||||||
|
#endif
|
||||||
|
+#ifdef SAMR_SUPPORT
|
||||||
|
rpc_samr_shutdown();
|
||||||
|
+#endif
|
||||||
|
rpc_lsarpc_shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ post_makeinstall_target() {
|
|||||||
# install our own evmap files and udev rules
|
# install our own evmap files and udev rules
|
||||||
rm -rf $INSTALL/etc/eventlircd.d
|
rm -rf $INSTALL/etc/eventlircd.d
|
||||||
rm -rf $INSTALL/usr/lib/udev/rules.d
|
rm -rf $INSTALL/usr/lib/udev/rules.d
|
||||||
|
rm -rf $INSTALL/usr/lib/udev/lircd_helper
|
||||||
|
|
||||||
mkdir -p $INSTALL/etc/eventlircd.d
|
mkdir -p $INSTALL/etc/eventlircd.d
|
||||||
cp $PKG_DIR/evmap/*.evmap $INSTALL/etc/eventlircd.d
|
cp $PKG_DIR/evmap/*.evmap $INSTALL/etc/eventlircd.d
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
diff --git a/udev/lircd_helper.in b/udev/lircd_helper.in
|
|
||||||
index f580cc6..d4d7f3f 100644
|
|
||||||
--- a/udev/lircd_helper.in
|
|
||||||
+++ b/udev/lircd_helper.in
|
|
||||||
@@ -41,7 +41,13 @@
|
|
||||||
daemon="${daemon} --uinput"
|
|
||||||
daemon="${daemon} --output=@localstatedir@/run/lirc/lircd-${devname_instance}"
|
|
||||||
daemon="${daemon} --pidfile=@localstatedir@/run/lirc/lircd-${devname_instance}.pid"
|
|
||||||
- daemon="${daemon} ${lircd_conf}"
|
|
||||||
+ if test -e "/storage/.config/lircd.conf" ; then
|
|
||||||
+ daemon="${daemon} /storage/.config/lircd.conf"
|
|
||||||
+ elif test -e "${lircd_conf}" ; then
|
|
||||||
+ daemon="${daemon} ${lircd_conf}"
|
|
||||||
+ else
|
|
||||||
+ exit 1
|
|
||||||
+ fi
|
|
||||||
${daemon}
|
|
||||||
for devlink in ${DEVLINKS} ; do
|
|
||||||
devlink_instance=`echo ${devlink} | /bin/sed -e 's/\/\+/~/g' -e 's/^~dev~//'`
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
Description=Eventlirc server daemon
|
Description=Eventlirc server daemon
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/sbin/eventlircd -f --evmap=/etc/eventlircd.d --socket=/var/run/lirc/lircd --release=_UP
|
ExecStart=/usr/sbin/eventlircd -f --evmap=/etc/eventlircd.d --socket=/run/lirc/lircd --release=_UP
|
||||||
KillMode=process
|
KillMode=process
|
||||||
TimeoutStopSec=1s
|
TimeoutStopSec=1s
|
||||||
|
|
||||||
|
|||||||
@@ -16,4 +16,4 @@
|
|||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
d /var/run/lirc 0755 root root - -
|
d /run/lirc 0755 root root - -
|
||||||
|
|||||||
@@ -57,4 +57,10 @@ post_makeinstall_target() {
|
|||||||
mkdir -p $INSTALL/etc/lirc
|
mkdir -p $INSTALL/etc/lirc
|
||||||
cp $PKG_DIR/config/lircd.conf.xbox $INSTALL/etc/lirc
|
cp $PKG_DIR/config/lircd.conf.xbox $INSTALL/etc/lirc
|
||||||
cp $PKG_DIR/config/lircd.conf.rpi $INSTALL/etc/lirc
|
cp $PKG_DIR/config/lircd.conf.rpi $INSTALL/etc/lirc
|
||||||
|
|
||||||
|
mkdir -p $INSTALL/usr/lib/openelec
|
||||||
|
cp $PKG_DIR/scripts/lircd_helper $INSTALL/usr/lib/openelec
|
||||||
|
|
||||||
|
mkdir -p $INSTALL/usr/lib/udev
|
||||||
|
cp $PKG_DIR/scripts/lircd_wakeup_enable $INSTALL/usr/lib/udev
|
||||||
}
|
}
|
||||||
|
|||||||
66
packages/sysutils/remote/lirc/scripts/lircd_helper
Executable file
66
packages/sysutils/remote/lirc/scripts/lircd_helper
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
ACTION=$(echo "$1")
|
||||||
|
DEVICE=$(echo "$2" | cut -f1 -d:)
|
||||||
|
DRIVER=$(echo "$2" | cut -f2 -d:)
|
||||||
|
CONFIG=$(echo "$2" | cut -f3 -d:)
|
||||||
|
|
||||||
|
case "$ACTION" in
|
||||||
|
add)
|
||||||
|
if [ "x$DRIVER" = "x" ]; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
if [ "x$CONFIG" = "x" ]; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p '/run/lirc'
|
||||||
|
|
||||||
|
if [ ! -e "/run/lirc/lircd-$DEVICE.pid" ]; then
|
||||||
|
|
||||||
|
LIRCD="/usr/sbin/lircd"
|
||||||
|
LIRCD_CONFIG="--uinput --driver=$DRIVER --device=/dev/$DEVICE"
|
||||||
|
LIRCD_CONFIG="$LIRCD_CONFIG --output=/run/lirc/lircd-$DEVICE"
|
||||||
|
LIRCD_CONFIG="$LIRCD_CONFIG --pidfile=/run/lirc/lircd-$DEVICE.pid"
|
||||||
|
|
||||||
|
if [ -e "/storage/.config/$CONFIG" ]; then
|
||||||
|
LIRCD_CONFIG="$LIRCD_CONFIG /storage/.config/$CONFIG"
|
||||||
|
elif [ -e "/storage/.config/lircd.conf" ]; then
|
||||||
|
LIRCD_CONFIG="$LIRCD_CONFIG /storage/.config/lircd.conf"
|
||||||
|
elif [ -e "/etc/lirc/$CONFIG" ]; then
|
||||||
|
LIRCD_CONFIG="$LIRCD_CONFIG /etc/lirc/$CONFIG"
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec $LIRCD $LIRCD_CONFIG
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
if [ -e "/run/lirc/lircd-$DEVICE.pid" ]; then
|
||||||
|
PID=`cat /run/lirc/lircd-$DEVICE.pid`
|
||||||
|
if [ ! "x$PID" = "x" ]; then
|
||||||
|
kill $PID
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
17
packages/sysutils/remote/lirc/scripts/lircd_wakeup_enable
Executable file
17
packages/sysutils/remote/lirc/scripts/lircd_wakeup_enable
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
################################################################################
|
||||||
|
# wakeup_enable
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
devpath=`readlink -f "/sys/${DEVPATH}"`
|
||||||
|
while echo "${devpath}" | grep -q '^/sys/devices/' > /dev/null 2>&1 ; do
|
||||||
|
if test -e "${devpath}/power/wakeup" ; then
|
||||||
|
state=`cat "${devpath}/power/wakeup"`
|
||||||
|
if test "x${state}" = "xdisabled" ; then
|
||||||
|
echo "enabled" > "${devpath}/power/wakeup"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
devpath=`dirname "${devpath}"`
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
12
packages/sysutils/remote/lirc/system.d/lircd@.service
Normal file
12
packages/sysutils/remote/lirc/system.d/lircd@.service
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Lirc with %I
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/lib/openelec/lircd_helper add %I
|
||||||
|
ExecStop=/usr/lib/openelec/lircd_helper remove %I
|
||||||
|
TimeoutStopSec=1
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -16,4 +16,4 @@
|
|||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
d /var/run/lirc 0755 root root - -
|
d /run/lirc 0755 root root - -
|
||||||
|
|||||||
@@ -17,19 +17,20 @@ LABEL="begin"
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# Ask lircd_helper to lirc devices.
|
# Ask lircd_helper to lirc devices.
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
SUBSYSTEM=="lirc", \
|
|
||||||
ENV{lircd_driver}="default", \
|
#SUBSYSTEM=="lirc", \
|
||||||
ENV{lircd_conf}="/etc/lirc/lircd.conf"
|
# ENV{lircd_driver}="default", \
|
||||||
|
# ENV{lircd_conf}="lircd.conf"
|
||||||
|
|
||||||
### Microsoft Xbox DVD dongle
|
### Microsoft Xbox DVD dongle
|
||||||
SUBSYSTEM=="lirc", DRIVERS=="lirc_xbox", \
|
SUBSYSTEM=="lirc", DRIVERS=="lirc_xbox", \
|
||||||
ENV{lircd_driver}="default", \
|
ENV{lircd_driver}="default", \
|
||||||
ENV{lircd_conf}="/etc/lirc/lircd.conf.xbox"
|
ENV{lircd_conf}="lircd.conf.xbox"
|
||||||
|
|
||||||
### RPi GPIO IR Receiver
|
### RPi GPIO IR Receiver
|
||||||
SUBSYSTEM=="lirc", DRIVERS=="lirc_rpi", \
|
SUBSYSTEM=="lirc", DRIVERS=="lirc_rpi", \
|
||||||
ENV{lircd_driver}="default", \
|
ENV{lircd_driver}="default", \
|
||||||
ENV{lircd_conf}="/etc/lirc/lircd.conf.rpi"
|
ENV{lircd_conf}="lircd.conf.rpi"
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# Ask lircd_helper to handle USB devices that do not show up as lirc devices
|
# Ask lircd_helper to handle USB devices that do not show up as lirc devices
|
||||||
@@ -38,23 +39,26 @@ SUBSYSTEM=="lirc", DRIVERS=="lirc_rpi", \
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
SUBSYSTEMS=="usb", GOTO="begin-usb"
|
SUBSYSTEMS=="usb", GOTO="begin-usb"
|
||||||
GOTO="end-usb"
|
GOTO="end-usb"
|
||||||
|
|
||||||
LABEL="begin-usb"
|
LABEL="begin-usb"
|
||||||
|
|
||||||
ENV{ID_USB_INTERFACES}=="", IMPORT{builtin}="usb_id"
|
ENV{ID_USB_INTERFACES}=="", IMPORT{builtin}="usb_id"
|
||||||
|
|
||||||
ENV{ID_VENDOR_ID}=="04d8", ENV{ID_MODEL_ID}=="fd08", \
|
ENV{ID_VENDOR_ID}=="04d8", ENV{ID_MODEL_ID}=="fd08", \
|
||||||
ENV{lircd_driver}="usb_irtoy", \
|
ENV{lircd_driver}="usb_irtoy", \
|
||||||
ENV{lircd_conf}="/storage/.config/lircd.conf"
|
ENV{lircd_conf}="lircd.conf"
|
||||||
|
|
||||||
ENV{ID_VENDOR_ID}=="0fe9", ENV{ID_MODEL_ID}=="9010", \
|
ENV{ID_VENDOR_ID}=="0fe9", ENV{ID_MODEL_ID}=="9010", \
|
||||||
ENV{lircd_driver}="dvico", \
|
ENV{lircd_driver}="dvico", \
|
||||||
ENV{lircd_conf}="/etc/lirc/lircd.conf"
|
ENV{lircd_conf}="lircd.conf"
|
||||||
|
|
||||||
# Enable wake-on-usb for the USB remotes.
|
|
||||||
ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="wakeup_enable"
|
|
||||||
|
|
||||||
LABEL="end-usb"
|
LABEL="end-usb"
|
||||||
|
|
||||||
ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="lircd_helper"
|
ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", ACTION=="add", \
|
||||||
|
TAG+="systemd", ENV{SYSTEMD_WANTS}+="lircd@$name:$env{lircd_driver}:$env{lircd_conf}.service", \
|
||||||
|
RUN+="lircd_wakeup_enable"
|
||||||
|
|
||||||
|
ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", ACTION=="remove", \
|
||||||
|
RUN+="/usr/bin/systemctl stop lircd@$name:$env{lircd_driver}:$env{lircd_conf}.service"
|
||||||
|
|
||||||
LABEL="end"
|
LABEL="end"
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="systemd"
|
PKG_NAME="systemd"
|
||||||
PKG_VERSION="210"
|
PKG_VERSION="211"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
|
|||||||
@@ -0,0 +1,79 @@
|
|||||||
|
From e5ecdd5f5a72d9ca84d0e080456887f38ad4e3d4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Wed, 12 Mar 2014 12:42:06 +0200
|
||||||
|
Subject: [PATCH] nah. no ln --relative
|
||||||
|
|
||||||
|
It is unclear that systemd now requires very recent coreutils
|
||||||
|
in order to compile.
|
||||||
|
|
||||||
|
I will not upgrade my debian wheezy machines to jessie,
|
||||||
|
nor I will switch to fedora for no good reason. We are not going
|
||||||
|
to tell our users to do so just to be able to build OpenELEC.
|
||||||
|
---
|
||||||
|
Makefile.am | 21 ++++++---------------
|
||||||
|
1 files changed, 6 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index bcf20df..1baf2bc 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -207,8 +207,8 @@ define move-to-rootlibdir
|
||||||
|
if test "$(libdir)" != "$(rootlibdir)"; then \
|
||||||
|
$(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
|
||||||
|
so_img_name=$$(readlink $(DESTDIR)$(libdir)/$$libname) && \
|
||||||
|
- rm -f $(DESTDIR)$(libdir)/$$libname && \
|
||||||
|
- $(LN_S) --relative -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
|
||||||
|
+ so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
|
||||||
|
+ $(LN_S) -f $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
|
||||||
|
mv $(DESTDIR)$(libdir)/$$libname.* $(DESTDIR)$(rootlibdir); \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
@@ -267,9 +267,9 @@ install-aliases-hook:
|
||||||
|
set -- $(SYSTEM_UNIT_ALIASES) && \
|
||||||
|
dir=$(systemunitdir) && $(install-aliases)
|
||||||
|
set -- $(USER_UNIT_ALIASES) && \
|
||||||
|
- dir=$(userunitdir) && $(install-relative-aliases)
|
||||||
|
+ dir=$(userunitdir) && $(install-aliases)
|
||||||
|
set -- $(GENERAL_ALIASES) && \
|
||||||
|
- dir= && $(install-relative-aliases)
|
||||||
|
+ dir= && $(install-aliases)
|
||||||
|
|
||||||
|
define install-aliases
|
||||||
|
while [ -n "$$1" ]; do \
|
||||||
|
@@ -280,15 +280,6 @@ define install-aliases
|
||||||
|
done
|
||||||
|
endef
|
||||||
|
|
||||||
|
-define install-relative-aliases
|
||||||
|
- while [ -n "$$1" ]; do \
|
||||||
|
- $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \
|
||||||
|
- rm -f $(DESTDIR)$$dir/$$2 && \
|
||||||
|
- $(LN_S) --relative $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
|
||||||
|
- shift 2 || exit $$?; \
|
||||||
|
- done
|
||||||
|
-endef
|
||||||
|
-
|
||||||
|
INSTALL_EXEC_HOOKS += \
|
||||||
|
install-target-wants-hook \
|
||||||
|
install-directories-hook \
|
||||||
|
@@ -1869,7 +1860,7 @@ systemd_dbus1_generator_LDADD = \
|
||||||
|
dbus1-generator-install-hook:
|
||||||
|
$(AM_V_at)$(MKDIR_P) $(DESTDIR)$(usergeneratordir)
|
||||||
|
$(AM_V_RM)rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
|
||||||
|
- $(AM_V_LN)$(LN_S) --relative -f $(DESTDIR)$(systemgeneratordir)/systemd-dbus1-generator $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
|
||||||
|
+ $(AM_V_LN)$(LN_S) -f $(systemgeneratordir)/systemd-dbus1-generator $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
|
||||||
|
|
||||||
|
dbus1-generator-uninstall-hook:
|
||||||
|
rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
|
||||||
|
@@ -2002,7 +1993,7 @@ systemd_bus_proxyd_LDADD = \
|
||||||
|
bus-proxyd-install-hook:
|
||||||
|
$(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
|
||||||
|
$(AM_V_RM)rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge
|
||||||
|
- $(AM_V_LN)$(LN_S) --relative -f $(DESTDIR)$(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge
|
||||||
|
+ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge
|
||||||
|
|
||||||
|
bus-proxyd-uninstall-hook:
|
||||||
|
rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge
|
||||||
|
--
|
||||||
|
1.7.2.5
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="bcm2835-bootloader"
|
PKG_NAME="bcm2835-bootloader"
|
||||||
PKG_VERSION="bec4bd0"
|
PKG_VERSION="11886b8"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="arm"
|
PKG_ARCH="arm"
|
||||||
PKG_LICENSE="nonfree"
|
PKG_LICENSE="nonfree"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="xf86-video-nvidia-legacy"
|
PKG_NAME="xf86-video-nvidia-legacy"
|
||||||
PKG_VERSION="304.117"
|
PKG_VERSION="304.121"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="i386 x86_64"
|
PKG_ARCH="i386 x86_64"
|
||||||
PKG_LICENSE="nonfree"
|
PKG_LICENSE="nonfree"
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
diff --git a/kernel/nv-acpi.c b/kernel/nv-acpi.c
|
|
||||||
index b0138cd..756f330 100644
|
|
||||||
--- a/kernel/nv-acpi.c
|
|
||||||
+++ b/kernel/nv-acpi.c
|
|
||||||
@@ -303,8 +303,11 @@ static int nv_acpi_remove(struct acpi_device *device, int type)
|
|
||||||
|
|
||||||
if (pNvAcpiObject->notify_handler_installed)
|
|
||||||
{
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
|
|
||||||
+/* beginning with 3.13, acpi_remove_notify_handler() waits for events to finish */
|
|
||||||
NV_ACPI_OS_WAIT_EVENTS_COMPLETE();
|
|
||||||
|
|
||||||
+#endif
|
|
||||||
// remove event notifier
|
|
||||||
status = acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, nv_acpi_event);
|
|
||||||
}
|
|
||||||
@@ -5,3 +5,7 @@ session.keyFile: /storage/.fluxbox/keys
|
|||||||
session.configVersion: 13
|
session.configVersion: 13
|
||||||
session.screen0.defaultDeco: NONE
|
session.screen0.defaultDeco: NONE
|
||||||
session.screen0.rootCommand: fbsetroot -solid black
|
session.screen0.rootCommand: fbsetroot -solid black
|
||||||
|
session.screen0.autoRaise: True
|
||||||
|
session.screen0.fullMaximization: True
|
||||||
|
session.screen0.workspaces: 0
|
||||||
|
session.screen0.focusModel: StrictMouseFocus
|
||||||
|
|||||||
@@ -2,3 +2,7 @@
|
|||||||
# alt-tab
|
# alt-tab
|
||||||
Mod1 Tab :NextWindow {groups} (workspace=[current])
|
Mod1 Tab :NextWindow {groups} (workspace=[current])
|
||||||
Mod1 Shift Tab :PrevWindow {groups} (workspace=[current])
|
Mod1 Shift Tab :PrevWindow {groups} (workspace=[current])
|
||||||
|
|
||||||
|
# current window commands
|
||||||
|
Mod1 F10 :Maximize
|
||||||
|
Mod1 F11 :Fullscreen
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_realloc_0_nonnull=yes \
|
|||||||
--disable-regexp \
|
--disable-regexp \
|
||||||
--disable-debug \
|
--disable-debug \
|
||||||
--disable-test \
|
--disable-test \
|
||||||
--disable-nls"
|
--disable-nls \
|
||||||
|
--disable-imlib2"
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
rm -rf $INSTALL/usr/bin/fbrun
|
rm -rf $INSTALL/usr/bin/fbrun
|
||||||
|
|||||||
@@ -251,7 +251,7 @@
|
|||||||
|
|
||||||
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau,vmware)
|
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau,vmware)
|
||||||
# Space separated list is supported,
|
# Space separated list is supported,
|
||||||
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
|
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
|
||||||
GRAPHIC_DRIVERS="nvidia-legacy"
|
GRAPHIC_DRIVERS="nvidia-legacy"
|
||||||
|
|
||||||
# XBMC Player implementation to use (default / bcm2835-driver)
|
# XBMC Player implementation to use (default / bcm2835-driver)
|
||||||
|
|||||||
@@ -253,7 +253,7 @@
|
|||||||
|
|
||||||
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau,vmware)
|
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau,vmware)
|
||||||
# Space separated list is supported,
|
# Space separated list is supported,
|
||||||
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
|
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
|
||||||
GRAPHIC_DRIVERS=""
|
GRAPHIC_DRIVERS=""
|
||||||
|
|
||||||
# XBMC Player implementation to use (default / bcm2835-driver)
|
# XBMC Player implementation to use (default / bcm2835-driver)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# /etc/modules: force some kernel modules to be loaded at boot time.
|
# /etc/modules-load.d: force some kernel modules to be loaded at boot time.
|
||||||
#
|
#
|
||||||
# This file contains the names of kernel modules that should be loaded
|
# This file contains the names of kernel modules that should be loaded
|
||||||
# at boot time, one per line. Lines beginning with "#" are ignored.
|
# at boot time, one per line. Lines beginning with "#" are ignored.
|
||||||
@@ -409,7 +409,7 @@ CONFIG_ATAGS=y
|
|||||||
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
|
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
|
||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
CONFIG_CMDLINE="dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0x3 dwc_otg.lpm_enable=0 root=/dev/ram0 rdinit=/init BOOT_IMAGE=/kernel.img"
|
CONFIG_CMDLINE="dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0x3 root=/dev/ram0 rdinit=/init BOOT_IMAGE=/kernel.img"
|
||||||
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
|
||||||
CONFIG_CMDLINE_EXTEND=y
|
CONFIG_CMDLINE_EXTEND=y
|
||||||
# CONFIG_CMDLINE_FORCE is not set
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
|
|||||||
@@ -252,7 +252,7 @@
|
|||||||
|
|
||||||
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau,vmware)
|
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau,vmware)
|
||||||
# Space separated list is supported,
|
# Space separated list is supported,
|
||||||
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia nouveau"
|
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
|
||||||
GRAPHIC_DRIVERS=""
|
GRAPHIC_DRIVERS=""
|
||||||
|
|
||||||
# XBMC Player implementation to use (default / bcm2835-driver)
|
# XBMC Player implementation to use (default / bcm2835-driver)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user