Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0

This commit is contained in:
Stephan Raue 2013-03-10 14:04:20 +01:00
commit 77f8e89bfe
134 changed files with 7599 additions and 2262 deletions

View File

@ -34,7 +34,7 @@ fi
get_graphicdrivers() {
if [ "$GRAPHIC_DRIVERS" = "all" ]; then
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx nvidia vmware virtualbox"
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 fglrx fglrx-legacy nvidia vmware virtualbox"
fi
for drv in $GRAPHIC_DRIVERS; do

View File

@ -26,7 +26,7 @@ PKG_LICENSE="OSS"
PKG_SITE="http://sabnzbd.org/"
PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/sabnzbdplus/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}-src.tar.gz"
PKG_DEPENDS="Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline"
PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline configobj"
PKG_PRIORITY="optional"
PKG_SECTION="service/downloadmanager"
PKG_SHORTDESC="SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can."

View File

@ -19,12 +19,12 @@
################################################################################
PKG_NAME="ccid"
PKG_VERSION="1.4.8"
PKG_VERSION="1.4.9"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://pcsclite.alioth.debian.org/ccid.html"
PKG_URL="https://alioth.debian.org/frs/download.php/3768/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_URL="https://alioth.debian.org/frs/download.php/3866/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain pcsc-lite"
PKG_PRIORITY="optional"

View File

@ -20,12 +20,12 @@
################################################################################
PKG_NAME="pcsc-lite"
PKG_VERSION="1.8.7"
PKG_VERSION="1.8.8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://pcsclite.alioth.debian.org/pcsclite.html"
PKG_URL="https://alioth.debian.org/frs/download.php/3842/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_URL="https://alioth.debian.org/frs/download.php/3862/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain libusb"
PKG_PRIORITY="optional"

View File

@ -1,3 +1,6 @@
3.0.4
- update to makemkv-1.8.0
3.0.3
- update to makemkv-1.7.10

View File

@ -19,8 +19,8 @@
################################################################################
PKG_NAME="makemkv"
PKG_VERSION="1.7.10"
PKG_REV="3"
PKG_VERSION="1.8.0"
PKG_REV="4"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.makemkv.com/forum2/viewforum.php?f=3"

View File

@ -1,14 +1,13 @@
diff -Naur makemkv-1.6.10/lib/makefile.linux makemkv-1.6.10.patch/lib/makefile.linux
--- makemkv-1.6.10/lib/makefile.linux 2011-05-29 23:17:48.000000000 +0200
+++ makemkv-1.6.10.patch/lib/makefile.linux 2011-05-30 15:29:15.510417904 +0200
@@ -1,11 +1,11 @@
diff --git a/lib/makefile.linux b/lib/makefile.linux
index b3b5afa..07322ad 100644
--- a/lib/makefile.linux
+++ b/lib/makefile.linux
@@ -1,10 +1,10 @@
include makefile.common
-GCC=gcc
-RCC=rcc
+GCC:=gcc
+RCC:=rcc
MOC=$(strip $(shell which moc-qt4))
ifeq ($(MOC),)
-MOC=moc
@ -16,8 +15,8 @@ diff -Naur makemkv-1.6.10/lib/makefile.linux makemkv-1.6.10.patch/lib/makefile.l
endif
CXXOPTS=-Os -D_GNU_SOURCE -D_linux_
@@ -14,7 +14,7 @@
BUILDINFO_BUILD_DATE=$(shell date)
@@ -16,7 +16,7 @@ PREFIX=/usr
LIBDIR=${PREFIX}/lib
-all: out/libdriveio.so.0 out/libmakemkv.so.1 out/makemkv

View File

@ -1,12 +0,0 @@
3.0.1
- bump addon version
2.1.3
- updated to tcpdump-4.3.0
- updated to libpcap-1.3.0
2.1.2
- rebuild
2.1.1
- initial addon based on tcpdump-4.1.1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

View File

@ -34,6 +34,7 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib
cp -R $BUILD/Cheetah*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
cp -R $BUILD/pyOpenSSL*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
cp -R $BUILD/yenc*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
cp -R $BUILD/configobj*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/SABnzbd
cp -PR $BUILD/SABnzbd-*/* $ADDON_BUILD/$PKG_ADDON_ID/SABnzbd

View File

@ -1,3 +1,9 @@
3.0.6
- fix configobj error n startup
3.0.5
- rebuild. configobj included
3.0.4
- update to SickBeard-4e57625
- update to CouchPotatoServer-a49a00a

View File

@ -20,7 +20,7 @@
PKG_NAME="SABnzbd-Suite"
PKG_VERSION="3.0"
PKG_REV="4"
PKG_REV="6"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.openelec.tv"

View File

@ -27,7 +27,7 @@ import signal
import subprocess
import urllib2
import hashlib
from configobj import ConfigObj
import sys
from xml.dom.minidom import parseString
import logging
import traceback
@ -195,6 +195,9 @@ except:
signal.signal(signal.SIGCHLD, signal.SIG_DFL)
os.environ['PYTHONPATH'] = str(os.environ.get('PYTHONPATH')) + ':' + pPylib
sys.path.append(pPylib)
from configobj import ConfigObj
# SABnzbd start
try:

View File

@ -28,7 +28,6 @@ import urllib2
import socket
import time
import datetime
from configobj import ConfigObj
__scriptname__ = "SABnzbd Suite"
__author__ = "OpenELEC"
@ -51,6 +50,9 @@ subprocess.call(['python',__start__])
# check for launching sabnzbd
sabNzbdLaunch = (__settings__.getSetting('SABNZBD_LAUNCH').lower() == 'true')
sys.path.append(os.path.join(__cwd__, 'pylib'))
from configobj import ConfigObj
if sabNzbdLaunch:
# SABnzbd addresses and api key
sabNzbdAddress = '127.0.0.1:8081'

View File

@ -36,6 +36,7 @@ cd $PKG_BUILD
--cc=$TARGET_CC \
--enable-timeshift \
--disable-libav \
--disable-avahi \
--enable-bundle
make

View File

@ -1,3 +1,7 @@
3.0.6
- update to TVHeadend 3.3.491
- disable avahi support
3.0.5
- update to TVHeadend 3.3.485

View File

@ -19,15 +19,15 @@
################################################################################
PKG_NAME="tvheadend"
PKG_VERSION="3.3.485"
PKG_REV="5"
PKG_VERSION="3.3.491"
PKG_REV="6"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
#PKG_URL="https://github.com/downloads/tvheadend/tvheadend/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS="$ICONV avahi openssl curl"
PKG_BUILD_DEPENDS="toolchain $ICONV avahi openssl curl"
PKG_DEPENDS="$ICONV openssl curl"
PKG_BUILD_DEPENDS="toolchain $ICONV openssl curl"
PKG_PRIORITY="optional"
PKG_SECTION="service/multimedia"
PKG_SHORTDESC="tvheadend (Version: $PKG_VERSION): a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources."

View File

@ -1,3 +1,7 @@
3.0.8
- update to oscam-8469
- update to pcsc-lite-1.8.8
3.0.7
- update to oscam-8357

View File

@ -20,8 +20,8 @@
################################################################################
PKG_NAME="oscam"
PKG_VERSION="8357"
PKG_REV="7"
PKG_VERSION="8469"
PKG_REV="8"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.streamboard.tv/oscam/wiki"

View File

@ -1,3 +1,7 @@
3.0.4
- update to pcsc-lite-1.8.8
- update to libccid-1.4.9
3.0.3
- update to pcsc-lite-1.8.7

View File

@ -21,7 +21,7 @@
PKG_NAME="pcscd-addon"
PKG_VERSION="3.0"
PKG_REV="3"
PKG_REV="4"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.openelec.tv"

35
packages/debug/iftop/build Executable file
View File

@ -0,0 +1,35 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
#strip_lto
export LIBS="-lpthread -ltinfo"
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
make

26
packages/debug/iftop/install Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/bin/
cp $PKG_BUILD/iftop $INSTALL/usr/bin/

37
packages/debug/iftop/meta Normal file
View File

@ -0,0 +1,37 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="iftop"
PKG_VERSION="1.0pre2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://htop.sourceforge.net/"
PKG_URL="http://www.ex-parrot.com/pdw/iftop/download/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="ncurses"
PKG_BUILD_DEPENDS="toolchain ncurses libpcap"
PKG_PRIORITY="optional"
PKG_SECTION="debug/tools"
PKG_SHORTDESC="iftop: display bandwidth usage on an interface"
PKG_LONGDESC="iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts. Handy for answering the question 'why is our ADSL link so slow?'."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -0,0 +1,12 @@
diff -Naur iftop-1.0pre2/configure.in iftop-1.0pre2.patch/configure.in
--- iftop-1.0pre2/configure.in 2011-10-03 23:55:33.000000000 +0200
+++ iftop-1.0pre2.patch/configure.in 2013-03-05 11:17:10.423257608 +0100
@@ -28,7 +28,7 @@
AC_CANONICAL_SYSTEM
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE(iftop, "1.0pre2")
AC_DEFINE_UNQUOTED(IFTOP_VERSION, "$VERSION", [The iftop version number])

View File

@ -25,7 +25,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.openelec.tv"
PKG_URL=""
PKG_DEPENDS="acpica cpuid dmidecode dstat evtest gdb hddtemp htop i2c-tools pmtools powertop strace"
PKG_DEPENDS="acpica cpuid dmidecode dstat evtest gdb hddtemp htop i2c-tools iftop pmtools powertop smem strace wireless_tools tcpdump"
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="debug"

View File

@ -1,6 +1,8 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -18,6 +20,7 @@
# http://www.gnu.org/copyleft/gpl.html
################################################################################
import os
import sys
import xbmcaddon
. config/options $1
mkdir -p $INSTALL/usr/bin/
cp $PKG_BUILD/smem $INSTALL/usr/bin/

View File

@ -1,6 +1,6 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -18,19 +18,19 @@
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="pastebinit"
PKG_VERSION="1.3.1"
PKG_NAME="smem"
PKG_VERSION="1.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://launchpad.net/pastebinit"
PKG_URL="http://launchpad.net/pastebinit/trunk/$PKG_VERSION/+download/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="Python simplejson configobj"
PKG_BUILD_DEPENDS="toolchain"
PKG_SITE="http://www.selenic.com/smem/"
PKG_URL="http://www.selenic.com/smem/download/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="Python"
PKG_BUILD_DEPENDS="toolchain Python"
PKG_PRIORITY="optional"
PKG_SECTION="tools"
PKG_SHORTDESC="pastebinit: Upload Directly to Pastebin from the Linux Shell"
PKG_LONGDESC="pastebinit is a tool for Uploading Directly to Pastebin from the Linux Shell"
PKG_SECTION="system"
PKG_SHORTDESC="smem: memory reporting tool"
PKG_LONGDESC="smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size (PSS), which is a more meaningful representation of the amount of memory used by libraries and applications in a virtual memory system."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -0,0 +1,31 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
make PREFIX=/usr \
CC="$TARGET_CC" \
AR="$TARGET_AR" \
CFLAGS="$TARGET_CFLAGS" \
CPPFLAGS="$TARGET_CPPFLAGS" \

View File

@ -0,0 +1,35 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/bin/
cp $PKG_BUILD/iwconfig $INSTALL/usr/bin/
cp $PKG_BUILD/iwgetid $INSTALL/usr/bin/
cp $PKG_BUILD/iwevent $INSTALL/usr/bin/
cp $PKG_BUILD/iwlist $INSTALL/usr/bin/
cp $PKG_BUILD/iwspy $INSTALL/usr/bin/
cp $PKG_BUILD/iwpriv $INSTALL/usr/bin/
cp $PKG_BUILD/ifrename $INSTALL/usr/bin/
mkdir -p $INSTALL/usr/lib/
cp $PKG_BUILD/libiw.so.29 $INSTALL/usr/lib/

View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="wireless_tools"
PKG_VERSION="29"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html"
PKG_URL="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/$PKG_NAME.$PKG_VERSION.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="system"
PKG_SHORTDESC="wireless-tools: tools allowing to manipulate the Wireless Extensions"
PKG_LONGDESC="The Wireless Tools (WT) is a set of tools allowing to manipulate the Wireless Extensions. They use a textual interface and are rather crude, but aim to support the full Wireless Extension. There are many other tools you can use with Wireless Extensions, however Wireless Tools is the reference implementation."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

38
packages/devel/elfutils/build Executable file
View File

@ -0,0 +1,38 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
strip_lto
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--disable-werror \
--disable-progs \
--with-zlib \
--without-bzlib \
--without-lzma \
make V=1
$MAKEINSTALL

28
packages/devel/elfutils/install Executable file
View File

@ -0,0 +1,28 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#      Copyright (C) 2010-2011 Roman Weber (roman@openelec.tv)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/lib
cp -P $PKG_BUILD/libdw/*.so* $INSTALL/usr/lib
cp -P $PKG_BUILD/libelf/*.so* $INSTALL/usr/lib

View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="elfutils"
PKG_VERSION="0.155"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://fedorahosted.org/elfutils/"
PKG_URL="https://fedorahosted.org/releases/e/l/elfutils/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS="zlib"
PKG_BUILD_DEPENDS="toolchain zlib"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="elfutils: collection of utilities to handle ELF objects"
PKG_LONGDESC="Elfutils is a collection of utilities, including eu-ld (a linker), eu-nm (for listing symbols from object files), eu-size (for listing the section sizes of an object or archive file), eu-strip (for discarding symbols), eu-readelf (to see the raw ELF file structures), and eu-elflint (to check for well-formed ELF files)."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -0,0 +1,92 @@
Allow the usage of an external implementation of the argp functions
uClibc lack the argp family of functions that glibc has. Therefore, we
add a check in the configure script to see if argp_parse is available
in the C library. If not, we look if it is available in the additional
'argp' library. If so, we link against that library. If not, we error
out.
This allows to build elfutils against uClibc with an external argp
library.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -269,6 +269,13 @@
enable_progs=yes)
AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes)
+AC_CHECK_FUNC([argp_parse])
+if test "$ac_cv_func_argp_parse" != yes; then
+ AC_CHECK_LIB([argp],[argp_parse],ARGP_LIBS=-largp,
+ AC_MSG_ERROR([No argp_parse function available.]))
+fi
+AC_SUBST(ARGP_LIBS)
+
dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am
dnl conditional and config.h USE_ZLIB/USE_BZLIB #define.
save_LIBS="$LIBS"
Index: b/src/Makefile.am
===================================================================
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -98,26 +98,29 @@
# Buggy old compilers.
readelf_no_Werror = yes
-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
+ $(ARGP_LIBS)
nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
- $(demanglelib)
-size_LDADD = $(libelf) $(libeu) $(libmudflap)
-strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
-ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
+ $(demanglelib) $(ARGP_LIBS)
+size_LDADD = $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
+strip_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
+ld_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
if NATIVE_LD
# -ldl is always needed for libebl.
ld_LDADD += libld_elf.a
endif
ld_LDFLAGS = -rdynamic
-elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
-findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap)
-addr2line_LDADD = $(libdw) $(libelf) $(libmudflap)
-elfcmp_LDADD = $(libebl) $(libelf) $(libmudflap) -ldl
-objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
-ranlib_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
-strings_LDADD = $(libelf) $(libeu) $(libmudflap)
-ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap)
-unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl
+elflint_LDADD = $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl $(ARGP_LIBS)
+findtextrel_LDADD = $(libdw) $(libelf) $(libmudflap) $(ARGP_LIBS)
+addr2line_LDADD = $(libdw) $(libelf) $(libmudflap) $(ARGP_LIBS)
+elfcmp_LDADD = $(libebl) $(libelf) $(libmudflap) -ldl $(ARGP_LIBS)
+objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl \
+ $(ARGP_LIBS)
+ranlib_LDADD = libar.a $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
+strings_LDADD = $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
+ar_LDADD = libar.a $(libelf) $(libeu) $(libmudflap) $(ARGP_LIBS)
+unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(libmudflap) -ldl \
+ $(ARGP_LIBS)
ldlex.o: ldscript.c
ldlex_no_Werror = yes
Index: b/libdw/Makefile.am
===================================================================
--- a/libdw/Makefile.am
+++ b/libdw/Makefile.am
@@ -111,7 +111,7 @@
-Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
-Wl,--version-script,$<,--no-undefined \
-Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
- -ldl $(zip_LIBS)
+ -ldl $(zip_LIBS) $(ARGP_LIBS)
if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
ln -fs $@ $@.$(VERSION)

View File

@ -0,0 +1,24 @@
Provide a compatibility alias __memcpy
For some reason, libelf uses the internal glibc alias __memcpy, which
doesn't exist in uClibc. Add a manual alias so that the build can
proceed with uClibc.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/libelf/libelf.h
===================================================================
--- a/libelf/libelf.h
+++ b/libelf/libelf.h
@@ -34,6 +34,11 @@
/* Get the ELF types. */
#include <elf.h>
+#ifndef _LIBC
+#ifndef __mempcpy
+#define __mempcpy mempcpy
+#endif
+#endif
/* Known translation types. */
typedef enum

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,77 @@
diff -Naur elfutils-0.155/libasm/Makefile.am elfutils-0.155.patch/libasm/Makefile.am
--- elfutils-0.155/libasm/Makefile.am 2012-08-27 20:27:31.000000000 +0200
+++ elfutils-0.155.patch/libasm/Makefile.am 2013-03-05 18:11:43.841545009 +0100
@@ -69,7 +69,6 @@
-Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
-Wl,--soname,$@.$(VERSION) \
../libebl/libebl.a ../libelf/libelf.so $(libasm_so_LDLIBS)
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
ln -fs $@ $@.$(VERSION)
install: install-am libasm.so
diff -Naur elfutils-0.155/libasm/Makefile.in elfutils-0.155.patch/libasm/Makefile.in
--- elfutils-0.155/libasm/Makefile.in 2012-08-27 20:29:45.000000000 +0200
+++ elfutils-0.155.patch/libasm/Makefile.in 2013-03-05 18:12:05.604432305 +0100
@@ -654,7 +654,6 @@
@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libasm.map,--no-undefined \
@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION) \
@MUDFLAP_FALSE@ ../libebl/libebl.a ../libelf/libelf.so $(libasm_so_LDLIBS)
-@MUDFLAP_FALSE@ if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
@MUDFLAP_FALSE@install: install-am libasm.so
diff -Naur elfutils-0.155/libdw/Makefile.am elfutils-0.155.patch/libdw/Makefile.am
--- elfutils-0.155/libdw/Makefile.am 2012-08-27 20:27:31.000000000 +0200
+++ elfutils-0.155.patch/libdw/Makefile.am 2013-03-05 18:12:26.753322780 +0100
@@ -112,7 +112,6 @@
-Wl,--version-script,$<,--no-undefined \
-Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
-ldl $(zip_LIBS)
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
ln -fs $@ $@.$(VERSION)
install: install-am libdw.so
diff -Naur elfutils-0.155/libdw/Makefile.in elfutils-0.155.patch/libdw/Makefile.in
--- elfutils-0.155/libdw/Makefile.in 2012-08-27 20:29:45.000000000 +0200
+++ elfutils-0.155.patch/libdw/Makefile.in 2013-03-05 18:12:41.272246520 +0100
@@ -844,7 +844,6 @@
@MUDFLAP_FALSE@ -Wl,--version-script,$<,--no-undefined \
@MUDFLAP_FALSE@ -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
@MUDFLAP_FALSE@ -ldl $(zip_LIBS)
-@MUDFLAP_FALSE@ if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
@MUDFLAP_FALSE@install: install-am libdw.so
diff -Naur elfutils-0.155/libelf/Makefile.am elfutils-0.155.patch/libelf/Makefile.am
--- elfutils-0.155/libelf/Makefile.am 2012-08-27 20:27:31.000000000 +0200
+++ elfutils-0.155.patch/libelf/Makefile.am 2013-03-05 18:13:23.328024851 +0100
@@ -106,7 +106,6 @@
$(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
-Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
-Wl,--soname,$@.$(VERSION),-z,defs,-z,relro $(libelf_so_LDLIBS)
- if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
ln -fs $@ $@.$(VERSION)
install: install-am libelf.so
diff -Naur elfutils-0.155/libelf/Makefile.in elfutils-0.155.patch/libelf/Makefile.in
--- elfutils-0.155/libelf/Makefile.in 2012-08-27 20:29:45.000000000 +0200
+++ elfutils-0.155.patch/libelf/Makefile.in 2013-03-05 18:13:37.270951393 +0100
@@ -830,7 +830,6 @@
@MUDFLAP_FALSE@ $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
@MUDFLAP_FALSE@ -Wl,--version-script,$(srcdir)/libelf.map,--no-undefined \
@MUDFLAP_FALSE@ -Wl,--soname,$@.$(VERSION),-z,defs,-z,relro $(libelf_so_LDLIBS)
-@MUDFLAP_FALSE@ if readelf -d $@ | fgrep -q TEXTREL; then exit 1; fi
@MUDFLAP_FALSE@ ln -fs $@ $@.$(VERSION)
@MUDFLAP_FALSE@install: install-am libelf.so
diff -Naur elfutils-0.155/src/Makefile.in elfutils-0.155.patch/src/Makefile.in
--- elfutils-0.155/src/Makefile.in 2012-08-27 20:29:46.000000000 +0200
+++ elfutils-0.155.patch/src/Makefile.in 2013-03-05 18:14:22.361713943 +0100
@@ -867,7 +867,6 @@
@NATIVE_LD_FALSE@ $(LINK) -shared -o $@ -Wl,--whole-archive,$<,--no-whole-archive \
@NATIVE_LD_FALSE@ $(libelf) $(libeu) \
@NATIVE_LD_FALSE@ -Wl,--version-script,$(srcdir)/libld_elf_i386.map
-@NATIVE_LD_FALSE@ $(textrel_check)
# Special rule to make it possible to define libld_elf_a_SOURCES as we do.
# Otherwise make would complain.

View File

@ -0,0 +1,26 @@
diff -Naur elfutils-0.155/Makefile.am elfutils-0.155.patch/Makefile.am
--- elfutils-0.155/Makefile.am 2012-08-27 20:27:31.000000000 +0200
+++ elfutils-0.155.patch/Makefile.am 2013-03-05 18:38:47.565095550 +0100
@@ -23,8 +23,7 @@
pkginclude_HEADERS = version.h
# Add doc back when we have some real content.
-SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
- src po tests
+SUBDIRS = config m4 lib libelf libebl libdwfl libdw
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
COPYING COPYING-GPLV2 COPYING-LGPLV3
diff -Naur elfutils-0.155/Makefile.in elfutils-0.155.patch/Makefile.in
--- elfutils-0.155/Makefile.in 2012-08-27 20:29:45.000000000 +0200
+++ elfutils-0.155.patch/Makefile.in 2013-03-05 18:39:11.176974119 +0100
@@ -256,8 +256,7 @@
pkginclude_HEADERS = version.h
# Add doc back when we have some real content.
-SUBDIRS = config m4 lib libelf libebl libdwfl libdw libcpu libasm backends \
- src po tests
+SUBDIRS = config m4 lib libelf libebl libdwfl libdw
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
COPYING COPYING-GPLV2 COPYING-LGPLV3

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="libcec"
PKG_VERSION="2.1.0"
PKG_VERSION="2.1.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -29,10 +29,15 @@ cd $BUILD/$1*
sed -i -e 's/ac_cv_linux_vers=unknown/ac_cv_linux_vers=2/' configure
LIBS="-lpthread" \
ac_cv_header_libusb_1_0_libusb_h=no \
./configure \
--host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--with-pcap=linux
--disable-shared \
--with-pcap=linux \
--disable-bluetooth \
--disable-can \
--disable-canusb \
$MAKEINSTALL

View File

@ -36,6 +36,10 @@
TERMINFO=$INSTALL/usr/share/terminfo $ROOT/$TOOLCHAIN/bin/tic -xe linux \
$PKG_BUILD/misc/terminfo.src
mkdir -p $INSTALL/usr/share/terminfo/s
TERMINFO=$INSTALL/usr/share/terminfo $ROOT/$TOOLCHAIN/bin/tic -xe screen \
$PKG_BUILD/misc/terminfo.src
mkdir -p $INSTALL/usr/share/terminfo/v
TERMINFO=$INSTALL/usr/share/terminfo $ROOT/$TOOLCHAIN/bin/tic -xe vt100 \
$PKG_BUILD/misc/terminfo.src
@ -45,5 +49,3 @@
$PKG_BUILD/misc/terminfo.src
TERMINFO=$INSTALL/usr/share/terminfo $ROOT/$TOOLCHAIN/bin/tic -xe xterm-color \
$PKG_BUILD/misc/terminfo.src
TERMINFO=$INSTALL/usr/share/terminfo $ROOT/$TOOLCHAIN/bin/tic -xe vt100 \
$PKG_BUILD/misc/terminfo.src

36
packages/devel/newt/build Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--datadir=/usr/share \
--without-python \
--without-tcl
make
$MAKEINSTALL

26
packages/devel/newt/install Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/lib/
cp -PR $PKG_BUILD/libnewt.so* $INSTALL/usr/lib/

36
packages/devel/newt/meta Normal file
View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="newt"
PKG_VERSION="0.52.14"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="https://fedorahosted.org/newt/"
PKG_URL="https://fedorahosted.org/releases/n/e/newt/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS="popt slang"
PKG_BUILD_DEPENDS="toolchain popt slang"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="newt: library for color text mode, widget based user interfaces"
PKG_LONGDESC="Newt is a programming library for color text mode, widget based user interfaces. Newt can be used to add stacked windows, entry widgets, checkboxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. Newt is based on the S-Lang library."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

36
packages/devel/popt/build Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--datadir=/usr/share \
--enable-shared \
--disable-static \
make
$MAKEINSTALL

26
packages/devel/popt/install Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/lib/
cp -PR $PKG_BUILD/.libs/libpopt.so* $INSTALL/usr/lib/

36
packages/devel/popt/meta Normal file
View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2023 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="popt"
PKG_VERSION="1.16"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://www.rpm5.org/"
PKG_URL="http://rpm5.org/files/popt/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="popt: library for parsing command line parameters"
PKG_LONGDESC="Popt is a C library for parsing command line parameters. Popt was heavily influenced by the getopt() and getopt_long() functions, but it improves on them by allowing more powerful argument expansion. Popt can parse arbitrary argv[] style arrays and automatically set variables based on command line arguments. Popt allows command line arguments to be aliased via configuration files and includes utility functions for parsing arbitrary strings into argv[] arrays using shell-like rules."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -0,0 +1,11 @@
diff -Naur popt-1.16/configure.ac popt-1.16.patch/configure.ac
--- popt-1.16/configure.ac 2010-05-04 22:55:54.000000000 +0200
+++ popt-1.16.patch/configure.ac 2013-03-05 13:20:28.769315267 +0100
@@ -46,7 +46,6 @@
AC_SYS_LARGEFILE
AC_ISC_POSIX
-AM_C_PROTOTYPES
AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h)

View File

@ -0,0 +1,15 @@
diff -Naur popt-1.16/Makefile.am popt-1.16.patch/Makefile.am
--- popt-1.16/Makefile.am 2010-05-04 22:55:54.000000000 +0200
+++ popt-1.16.patch/Makefile.am 2013-03-05 13:27:22.179156704 +0100
@@ -34,11 +34,6 @@
noinst_SCRIPTS = testit.sh
-TESTS_ENVIRONMENT = \
-test1="$(top_builddir)/test1"
-
-TESTS = $(top_srcdir)/testit.sh
-
include_HEADERS = popt.h
usrlibdir = $(libdir)

42
packages/devel/slang/build Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
MAKEFLAGS=-j1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--datadir=/usr/share \
--without-iconv \
--without-onig \
--without-pcre \
--without-png \
--without-z \
--without-x \
make
$MAKEINSTALL

26
packages/devel/slang/install Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/lib/
cp -PR $PKG_BUILD/src/*/libslang.so* $INSTALL/usr/lib/

36
packages/devel/slang/meta Normal file
View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program 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, or (at your option)
# any later version.
#
# This Program 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.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="slang"
PKG_VERSION="2.2.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://www.jedsoft.org/slang/"
PKG_URL="ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v2.2/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="slang: library for the S-Lang extension language"
PKG_LONGDESC="S-Lang is an interpreted language and a programming library. The S-Lang language was designed so that it can be easily embedded into a program to provide the program with a powerful extension language. The S-Lang library, provided in this package, provides the S-Lang extension language. S-Lang's syntax resembles C, which makes it easy to recode S-Lang procedures in C if you need to."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="fea69f6"
PKG_VERSION="98e5704"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@ -209,7 +209,7 @@ CONFIG_CP=y
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
# CONFIG_FEATURE_DD_IBS_OBS is not set
# CONFIG_DF is not set
CONFIG_DF=y
# CONFIG_FEATURE_DF_FANCY is not set
# CONFIG_DIRNAME is not set
# CONFIG_DOS2UNIX is not set
@ -273,7 +273,7 @@ CONFIG_SLEEP=y
# CONFIG_FEATURE_SORT_BIG is not set
# CONFIG_SPLIT is not set
# CONFIG_FEATURE_SPLIT_FANCY is not set
# CONFIG_STAT is not set
CONFIG_STAT=y
# CONFIG_FEATURE_STAT_FORMAT is not set
# CONFIG_STTY is not set
# CONFIG_SUM is not set
@ -997,7 +997,7 @@ CONFIG_FEATURE_BASH_IS_ASH=y
# CONFIG_FEATURE_BASH_IS_HUSH is not set
# CONFIG_FEATURE_BASH_IS_NONE is not set
CONFIG_SH_MATH_SUPPORT=y
# CONFIG_SH_MATH_SUPPORT_64 is not set
CONFIG_SH_MATH_SUPPORT_64=y
CONFIG_FEATURE_SH_EXTRA_QUIET=y
CONFIG_FEATURE_SH_STANDALONE=y
# CONFIG_FEATURE_SH_NOFORK is not set

View File

@ -39,8 +39,10 @@
REBOOT="0"
MD5_FAILED="0"
MD5_NOCHECK="0"
SIZE_FAILED="0"
NBD_DEVS="0"
FLASH_FREE_MIN="5"
INSTALLED_MEMORY=`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'`
SYSTEM_TORAM_LIMIT=1024000
@ -444,21 +446,53 @@
MD5_FAILED="1"
fi
# update if md5 check is ok or .nocheck exists
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
update "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
update "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
update_bootloader
REBOOT="1"
# get sizes
FLASH_FREE=$(/bin/busybox df /flash/ | awk '/[0-9]%/{print $4}')
FLASH_FREE=$(( $FLASH_FREE * 1024 ))
OLD_KERNEL=$(/bin/busybox stat -t "/flash/$IMAGE_KERNEL" | awk '{print $2}')
OLD_SYSTEM=$(/bin/busybox stat -t "/flash/$IMAGE_SYSTEM" | awk '{print $2}')
NEW_KERNEL=$(/bin/busybox stat -t "$UPDATE_DIR/$UPDATE_KERNEL" | awk '{print $2}')
NEW_SYSTEM=$(/bin/busybox stat -t "$UPDATE_DIR/$UPDATE_SYSTEM" | awk '{print $2}')
# old KERNEL+SYSTEM+free space - new KERNEL+SYSTEM must be higher then 5MB
# at least 5MB free after update
TMP_SIZE=$(($OLD_KERNEL+$OLD_SYSTEM+$FLASH_FREE-$NEW_KERNEL-$NEW_SYSTEM))
FLASH_FREE_MIN=$(($FLASH_FREE_MIN*1024*1024))
if [ $TMP_SIZE -ge $FLASH_FREE_MIN ]; then
echo "Checking size: OK"
else
echo "Checking size: FAILED"
SIZE_FAILED="1"
fi
# update if size check is ok
if [ "$SIZE_FAILED" -eq "0" ] ; then
# update if md5 check is ok or .nocheck exists
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
update "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
update "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
update_bootloader
REBOOT="1"
else
/bin/busybox rm "$UPDATE_DIR/$UPDATE_KERNEL"
/bin/busybox rm "$UPDATE_DIR/$UPDATE_SYSTEM"
echo "md5 check failed. normal startup in 30s..."
/bin/busybox sync
/bin/busybox usleep 30000000
fi
/bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
/bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
else
/bin/busybox rm "$UPDATE_DIR/$UPDATE_KERNEL"
/bin/busybox rm "$UPDATE_DIR/$UPDATE_SYSTEM"
echo "md5 check failed. normal startup in 30s..."
/bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
/bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
echo "size check failed. normal startup in 30s..."
/bin/busybox sync
/bin/busybox usleep 30000000
fi
/bin/busybox rm "$UPDATE_DIR/${UPDATE_KERNEL}.md5" &>/dev/null
/bin/busybox rm "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" &>/dev/null
fi
if test "$REBOOT" -eq "1"; then

View File

@ -19,12 +19,13 @@
################################################################################
PKG_NAME="dvbhdhomerun"
PKG_VERSION="20130121"
PKG_VERSION="0.0.15"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://sourceforge.net/projects/dvbhdhomerun/"
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
# PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_URL="$SOURCEFORGE_SRC/project/dvbhdhomerun/${PKG_NAME}_${PKG_VERSION}.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain linux libhdhomerun"
PKG_PRIORITY="optional"

View File

@ -1,7 +1,7 @@
diff -uNr dvbhdhomerun-0.0.9-orig/userhdhomerun/conf_inifile.cpp dvbhdhomerun-0.0.9/userhdhomerun/conf_inifile.cpp
--- dvbhdhomerun-0.0.9-orig/userhdhomerun/conf_inifile.cpp 2011-03-06 21:00:01.000000000 +0100
+++ dvbhdhomerun-0.0.9/userhdhomerun/conf_inifile.cpp 2011-12-20 23:21:46.000000000 +0100
@@ -8,6 +8,37 @@
diff -uNr dvbhdhomerun-0.0.15-orig/userhdhomerun/conf_inifile.cpp dvbhdhomerun-0.0.15/userhdhomerun/conf_inifile.cpp
--- dvbhdhomerun-0.0.15-orig/userhdhomerun/conf_inifile.cpp 2013-02-17 22:37:34.000000000 +0100
+++ dvbhdhomerun-0.0.15/userhdhomerun/conf_inifile.cpp 2013-03-02 10:23:46.000000000 +0100
@@ -8,6 +8,38 @@
using namespace std;
@ -35,17 +35,18 @@ diff -uNr dvbhdhomerun-0.0.9-orig/userhdhomerun/conf_inifile.cpp dvbhdhomerun-0.
+ }
+ }
+}
+
+
bool ConfIniFile::OpenIniFile(const string& _filename)
{
ifstream conffile;
@@ -15,7 +46,8 @@
if(conffile.is_open()) {
string line;
string section;
- while(getline(conffile, line)) {
+ //while(getline(conffile, line)) {
+ while(safeGetline(conffile, line)) {
if(line.empty()) {
//LOG() << " ignore, empty";
}
m_sectionKeyValue.clear();
@@ -17,7 +49,8 @@
if(conffile.is_open()) {
string line;
string section;
- while(getline(conffile, line)) {
+ //while(getline(conffile, line)) {
+ while(safeGetline(conffile, line)) {
if(line.empty()) {
//LOG() << " ignore, empty";
}

View File

@ -1,6 +1,6 @@
diff -uNr dvbhdhomerun-0.0.10-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun-0.0.10/userhdhomerun/hdhomerun_tuner.cpp
--- dvbhdhomerun-0.0.10-orig/userhdhomerun/hdhomerun_tuner.cpp 2012-04-28 18:05:40.000000000 +0200
+++ dvbhdhomerun-0.0.10/userhdhomerun/hdhomerun_tuner.cpp 2012-06-05 13:21:16.000000000 +0200
diff -uNr dvbhdhomerun-0.0.15-orig/userhdhomerun/hdhomerun_tuner.cpp dvbhdhomerun-0.0.15/userhdhomerun/hdhomerun_tuner.cpp
--- dvbhdhomerun-0.0.15-orig/userhdhomerun/hdhomerun_tuner.cpp 2013-02-17 22:37:34.000000000 +0100
+++ dvbhdhomerun-0.0.15/userhdhomerun/hdhomerun_tuner.cpp 2013-03-02 10:25:15.000000000 +0100
@@ -97,12 +97,28 @@
string type(tmp);
LOG() << "Type of device: " << type << endl;

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="vboxguest"
PKG_VERSION="4.2.6"
PKG_VERSION="4.2.8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -65,3 +65,28 @@ LDFLAGS="" make $KERNEL_IMAGE
DEBUG=false \
NLS=false \
)
if [ "$DEVTOOLS" = yes ]; then
( cd tools/perf
# dont use some optimizations because of build problems
LDFLAGS=`echo $LDFLAGS | sed -e "s|-Wl,--as-needed||"`
export FLAGSGLIBC="$CFLAGS -I$SYSROOT_PREFIX/usr/include"
export CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include"
export LDFLAGS="$LDFLAGS -L$SYSROOT_PREFIX/lib -L$SYSROOT_PREFIX/usr/lib"
make CROSS_COMPILE="$TARGET_PREFIX" \
ARCH="$TARGET_ARCH" \
V=1 \
DEBUG=false \
NLS=false \
NO_GTK2=true \
NO_LIBELF=false \
NO_LIBPERL=true \
NO_LIBPYTHON=false \
PYTHON=$SYSROOT_PREFIX/usr/bin/python \
WERROR=0 \
)
fi

View File

@ -46,3 +46,12 @@ mkdir -p $INSTALL/usr/lib
mkdir -p $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/power/cpupower/cpupower $INSTALL/usr/bin
if [ "$DEVTOOLS" = "yes" ]; then
mkdir -p $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/perf/perf $INSTALL/usr/bin/
mkdir -p $INSTALL/usr/libexec/perf-core/scripts/python/
cp -P $PKG_BUILD/tools/perf/perf-archive $INSTALL/usr/libexec/perf-core/
cp -rP $PKG_BUILD/tools/perf/scripts/python/* $INSTALL/usr/libexec/perf-core/scripts/python/
fi

View File

@ -26,7 +26,7 @@ PKG_LICENSE="GPL"
PKG_SITE="http://www.kernel.org"
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS="busybox linux-drivers linux-firmware pciutils $BOOTLOADER"
PKG_BUILD_DEPENDS="toolchain module-init-tools xz cpio pciutils"
PKG_BUILD_DEPENDS="toolchain cpio module-init-tools pciutils xz"
PKG_PRIORITY="optional"
PKG_SECTION="linux"
PKG_SHORTDESC="linux26: The Linux kernel 2.6 precompiled kernel binary image and modules"
@ -44,3 +44,8 @@ if [ "$LINUX" = "ti-omap4" ]; then
PKG_VERSION="2.6.38-ti-omap4"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
fi
if [ "$DEVTOOLS" = "yes" ]; then
PKG_DEPENDS="$PKG_DEPENDS newt elfutils Python"
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS newt elfutils Python"
fi

View File

@ -0,0 +1,12 @@
diff -Naur linux-3.6.11/tools/perf/Makefile linux-3.6.11.patch/tools/perf/Makefile
--- linux-3.6.11/tools/perf/Makefile 2012-12-17 18:27:45.000000000 +0100
+++ linux-3.6.11.patch/tools/perf/Makefile 2013-03-06 16:30:43.107805512 +0100
@@ -496,8 +496,6 @@
msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
BASIC_CFLAGS += -DNO_NEWT_SUPPORT
else
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
- BASIC_CFLAGS += -I/usr/include/slang
EXTLIBS += -lnewt -lslang
LIB_OBJS += $(OUTPUT)ui/setup.o
LIB_OBJS += $(OUTPUT)ui/browser.o

View File

@ -0,0 +1,12 @@
diff -Naur linux-3.7.10/tools/perf/Makefile linux-3.7.10.patch/tools/perf/Makefile
--- linux-3.7.10/tools/perf/Makefile 2013-02-27 18:22:04.000000000 +0100
+++ linux-3.7.10.patch/tools/perf/Makefile 2013-03-06 16:36:15.633521884 +0100
@@ -591,8 +591,6 @@
ifneq ($(call try-cc,$(SOURCE_NEWT),$(FLAGS_NEWT)),y)
msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
else
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
- BASIC_CFLAGS += -I/usr/include/slang
BASIC_CFLAGS += -DNEWT_SUPPORT
EXTLIBS += -lnewt -lslang
LIB_OBJS += $(OUTPUT)ui/setup.o

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc-pvr-addons"
PKG_VERSION="96774c4"
PKG_VERSION="590f862"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc-theme-Confluence"
PKG_VERSION="12.0.3"
PKG_VERSION="12.0.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -237,7 +237,7 @@ fi
LDFLAGS=`echo $LDFLAGS | sed -e "s|-Wl,--as-needed||"`
# dont build parallel
MAKEFLAGS=-j1
# MAKEFLAGS=-j1
export PYTHON_VERSION="2.7"
export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION"

View File

@ -55,6 +55,9 @@ fi
# wait for network
wait_for_inet_addr
# wait for udevadm settle to finish
wait_for_udevadm_settle
# set cpu's to 'ondemand'
( usleep 15000000
progress "set cpu's to 'ondemand'"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="12.0.3"
PKG_VERSION="12.0.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@ -184,6 +184,12 @@ if [ "$CRYSTALHD" = yes ]; then
PKG_DEPENDS="$PKG_DEPENDS crystalhd"
fi
if [ "$XVBA" = yes ]; then
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS xf86-video-fglrx"
fi
get_graphicdrivers
for drv in $GRAPHIC_DRIVERS; do
if [ "$drv" = "fglrx" -a "$XVBA" = yes ]; then
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS xf86-video-fglrx"
elif [ "$drv" = "fglrx-legacy" -a "$XVBA" = yes ]; then
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS xf86-video-fglrx-legacy"
fi
done

View File

@ -1,4 +1,4 @@
From bfd49543c49747236d401df4351767d584f756ac Mon Sep 17 00:00:00 2001
From c111752701bb2447a833ef1768e912c87d9bbf65 Mon Sep 17 00:00:00 2001
From: wsnipex <wsnipex@a1.net>
Date: Sun, 4 Nov 2012 14:05:52 +0100
Subject: [PATCH 01/73] configure: add --enable-pvraddons-with-dependencies
@ -48,7 +48,7 @@ index 4769315..350d960 100644
1.7.10
From dc83e2351e8bf8e904102782ea489d2c8caa2802 Mon Sep 17 00:00:00 2001
From 86fb17f786cf9efacaa84f64188975312ef4ec6a Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 10:03:31 +0200
Subject: [PATCH 02/73] VideoRenerers: add buffering
@ -71,10 +71,10 @@ Subject: [PATCH 02/73] VideoRenerers: add buffering
14 files changed, 380 insertions(+), 93 deletions(-)
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index c6f0a14..18e6310 100644
index 15f1233..7ed09ee 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -2367,7 +2367,10 @@ void CApplication::Render()
@@ -2371,7 +2371,10 @@ void CApplication::Render()
m_lastFrameTime = XbmcThreads::SystemClockMillis();
if (flip)
@ -905,7 +905,7 @@ index 7fe6bb2..34ff8d0 100644
OVERLAY::CRenderer m_overlays;
diff --git a/xbmc/cores/VideoRenderers/WinRenderer.cpp b/xbmc/cores/VideoRenderers/WinRenderer.cpp
index 7842089..6e4433c 100644
index f1d0768..f0f5b2d 100644
--- a/xbmc/cores/VideoRenderers/WinRenderer.cpp
+++ b/xbmc/cores/VideoRenderers/WinRenderer.cpp
@@ -253,12 +253,12 @@ int CWinRenderer::NextYV12Texture()
@ -1034,7 +1034,7 @@ index 3008c25..a4bb1ba 100644
1.7.10
From dacc0167c993efa6ac884fd3c439fc5f0c823934 Mon Sep 17 00:00:00 2001
From efb0e5d9a372d2c4a6c7fcb9bd74369a8a910cd0 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Tue, 2 Oct 2012 10:49:09 +0200
Subject: [PATCH 03/73] linuxrenderer: delete all textures on reconfigure
@ -1060,7 +1060,7 @@ index b32a7ea..a2dc2be 100644
1.7.10
From 226539d21ba940ea8add89417df7102302c7ba79 Mon Sep 17 00:00:00 2001
From 140768ac0a1b909ed0c0821a1dfdf6df8717a64b Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 10:17:33 +0200
Subject: [PATCH 04/73] drop frame counter in application, ask render manager
@ -1074,10 +1074,10 @@ Subject: [PATCH 04/73] drop frame counter in application, ask render manager
4 files changed, 23 insertions(+), 45 deletions(-)
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 18e6310..9a7b900 100644
index 7ed09ee..b623250 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -415,8 +415,6 @@
@@ -419,8 +419,6 @@
#endif
m_currentStack = new CFileItemList;
@ -1086,7 +1086,7 @@ index 18e6310..9a7b900 100644
m_bPresentFrame = false;
m_bPlatformDirectories = true;
@@ -2227,28 +2225,18 @@ float CApplication::GetDimScreenSaverLevel() const
@@ -2231,28 +2229,18 @@ float CApplication::GetDimScreenSaverLevel() const
bool CApplication::WaitFrame(unsigned int timeout)
{
@ -1120,7 +1120,7 @@ index 18e6310..9a7b900 100644
}
void CApplication::Render()
@@ -2268,7 +2256,6 @@ void CApplication::Render()
@@ -2272,7 +2260,6 @@ void CApplication::Render()
int vsync_mode = g_guiSettings.GetInt("videoscreen.vsync");
@ -1128,7 +1128,7 @@ index 18e6310..9a7b900 100644
bool hasRendered = false;
bool limitFrames = false;
unsigned int singleFrameTime = 10; // default limit 100 fps
@@ -2282,13 +2269,10 @@ void CApplication::Render()
@@ -2286,13 +2273,10 @@ void CApplication::Render()
m_bPresentFrame = false;
if (!extPlayerActive && g_graphicsContext.IsFullScreenVideo() && !IsPaused())
{
@ -1146,7 +1146,7 @@ index 18e6310..9a7b900 100644
hasRendered = true;
}
else
@@ -2312,8 +2296,6 @@ void CApplication::Render()
@@ -2316,8 +2300,6 @@ void CApplication::Render()
else if (lowfps)
singleFrameTime = 200; // 5 fps, <=200 ms latency to wake up
}
@ -1155,7 +1155,7 @@ index 18e6310..9a7b900 100644
}
}
@@ -2377,13 +2359,6 @@ void CApplication::Render()
@@ -2381,13 +2363,6 @@ void CApplication::Render()
g_renderManager.UpdateResolution();
g_renderManager.ManageCaptures();
@ -1169,7 +1169,7 @@ index 18e6310..9a7b900 100644
}
void CApplication::SetStandAlone(bool value)
@@ -5638,12 +5613,6 @@ bool CApplication::SwitchToFullScreen()
@@ -5646,12 +5621,6 @@ bool CApplication::SwitchToFullScreen()
// See if we're playing a video, and are in GUI mode
if ( IsPlayingVideo() && g_windowManager.GetActiveWindow() != WINDOW_FULLSCREEN_VIDEO)
{
@ -1182,7 +1182,7 @@ index 18e6310..9a7b900 100644
// then switch to fullscreen mode
g_windowManager.ActivateWindow(WINDOW_FULLSCREEN_VIDEO);
return true;
@@ -5876,7 +5845,6 @@ bool CApplication::IsCurrentThread() const
@@ -5884,7 +5853,6 @@ bool CApplication::IsCurrentThread() const
bool CApplication::IsPresentFrame()
{
@ -1242,7 +1242,7 @@ index 34ff8d0..288175e 100644
1.7.10
From 0f81843cb7279f3b99607551967354ff30e15e4d Mon Sep 17 00:00:00 2001
From ba3a2cb07d319dc1e2fbb56c272744d0a7cbc772 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 10:34:39 +0200
Subject: [PATCH 05/73] videoplayer: adopt lateness detection and dropping to
@ -1784,7 +1784,7 @@ index fe7e12c..4913712 100644
1.7.10
From 4bc6ff77b121468020578f9d393e8aaae1a419f6 Mon Sep 17 00:00:00 2001
From 18bb11c657eca56a2454b15ec558b6e6b126a52b Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 10:41:31 +0200
Subject: [PATCH 06/73] videoplayer: update frametime, it might change due to
@ -1811,7 +1811,7 @@ index 93908a7..4675556 100644
1.7.10
From 723a731d68b9360f9804e8711255afa62c4ce34d Mon Sep 17 00:00:00 2001
From 0f3e41aa9f5f61baad9558606ff9ccacf3ef5192 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 10:43:06 +0200
Subject: [PATCH 07/73] videoplayer: give streams with invalid fps a chance
@ -1838,7 +1838,7 @@ index 4675556..2ef6358 100644
1.7.10
From 60c955c30cdfcf361396e47fc92a1e1883b085fe Mon Sep 17 00:00:00 2001
From 5ea05eef35600708fa58ba121e32245d09cd491e Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 10:49:05 +0200
Subject: [PATCH 08/73] dvdplayer: allow rewinding at end of stream, do a seek
@ -1878,7 +1878,7 @@ index 315d64a..6fcb6b3 100644
1.7.10
From 8d237cf023501560fc394679819463034a209413 Mon Sep 17 00:00:00 2001
From d42b9a3ed15f855f9e4aecaae176f8aeeb4b8da2 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 2 Sep 2012 16:05:21 +0200
Subject: [PATCH 09/73] video player: present correct pts to user for a/v sync
@ -1972,7 +1972,7 @@ index 4913712..509d5f7 100644
1.7.10
From 04a6a8b4ca29c17da6bbb9591685922b2f6f1442 Mon Sep 17 00:00:00 2001
From fba7871aacd8c0b7cac5eafdc4d3da5d3724cf79 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 28 May 2012 11:02:29 +0200
Subject: [PATCH 10/73] vaapi: adopt to buffering in renderer
@ -2033,7 +2033,7 @@ index 863edc4..417cbc0 100644
1.7.10
From 4d237410264bbff9c4ac373de498f80ecb15f7a3 Mon Sep 17 00:00:00 2001
From b8f4a9b323ceea4950624525c88339fb2a23ebe7 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 7 Apr 2012 09:19:00 +0200
Subject: [PATCH 11/73] vdpau: redesign
@ -8196,7 +8196,7 @@ index e7af3cb..2dd8a9f 100644
1.7.10
From c088467d9d0955051a510dadbddb270ddc3e3c20 Mon Sep 17 00:00:00 2001
From ee1ed2c835620021278e38a6e7be94cfde073a78 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Tue, 25 Sep 2012 12:14:15 +0200
Subject: [PATCH 12/73] linuxrenderer: drop method RenderMultiPass
@ -8249,7 +8249,7 @@ index 3218cd5..afc78c2 100644
1.7.10
From 0de3939247a63509e6bfab2e77c298eaa28aa29c Mon Sep 17 00:00:00 2001
From 267f61079ae6a4f77fb5c068eecb0d1aeddd0337 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Tue, 25 Sep 2012 13:20:47 +0200
Subject: [PATCH 13/73] linuxrenderer: implement progressive weave for vdpau
@ -8380,7 +8380,7 @@ index afc78c2..2fc34ae 100644
1.7.10
From c12380f4b9c9c2671bfd1ebd3e29ba7cd83ac95e Mon Sep 17 00:00:00 2001
From 4c76478000f03a2460c407a66a779b2232c186c5 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 15:22:05 +0200
Subject: [PATCH 14/73] X11: ditch SDL for video and window events
@ -8399,10 +8399,10 @@ Subject: [PATCH 14/73] X11: ditch SDL for video and window events
create mode 100644 xbmc/windowing/WinEventsX11.h
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 9a7b900..fc8e721 100644
index b623250..3a1d6a1 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -790,7 +790,7 @@ bool CApplication::CreateGUI()
@@ -794,7 +794,7 @@ bool CApplication::CreateGUI()
uint32_t sdlFlags = 0;
@ -9867,7 +9867,7 @@ index 2dd8a9f..9616d17 100644
1.7.10
From 58fa894afaffbc990ee1ab87ff55db30e36ab2c2 Mon Sep 17 00:00:00 2001
From 9fc77631a47445e67b587d3c2d967c8415ef1601 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 15:24:22 +0200
Subject: [PATCH 15/73] X11: Add xbmc icon
@ -10059,7 +10059,7 @@ index 9616d17..debf714 100644
1.7.10
From cad2ac7f357906f10f100a038ff28e83a69c68e8 Mon Sep 17 00:00:00 2001
From 86a25b3b4355259720f5f54f6fe5650710873911 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 20 May 2012 14:11:26 +0200
Subject: [PATCH 16/73] X11: add SDL joystick until we have a better solution
@ -10116,7 +10116,7 @@ index 24477ae..2ec86a8 100644
1.7.10
From fdefd4cf296518f31ad1165268fccd651e08dd3c Mon Sep 17 00:00:00 2001
From 992db82a2cc2d9e8af6388f67e8a2890c7742726 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@xbmc.org>
Date: Thu, 5 Jul 2012 12:35:55 +0200
Subject: [PATCH 17/73] X11: factor out code handling device reset
@ -10183,7 +10183,7 @@ index debf714..8c28e3f 100644
1.7.10
From 9a409794d1eb8ee0c4b0b1124dea7dd30af32c06 Mon Sep 17 00:00:00 2001
From d6f428a5369ef66336e3f7f07e2dedfc0d1d8f7f Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 15:02:00 +0200
Subject: [PATCH 18/73] X11: move xrandr events to WinEventsX11
@ -10330,7 +10330,7 @@ index 70557d0..1cce843 100644
1.7.10
From 1dc579a2d5c608cfd4f799971759d18cbd2957e5 Mon Sep 17 00:00:00 2001
From daf0f02f96f6a640c06b50a0823e1f1858027c85 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 12 Apr 2012 15:43:56 +0200
Subject: [PATCH 19/73] xrandr: remove method RestoreState
@ -10412,7 +10412,7 @@ index 2a269d0..5b64633 100644
1.7.10
From 4a6f0e986fc27b356041a4b1bb989e0e594c8aa7 Mon Sep 17 00:00:00 2001
From e8b72dbf152bb1a2ff380d604e0fd9bbd7451994 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 20 May 2012 13:17:10 +0200
Subject: [PATCH 20/73] xrandr: observe orientation
@ -10584,7 +10584,7 @@ index 5b64633..618bd68 100644
1.7.10
From 97e5811e05a4ecde7249b2f76283729ff300fda9 Mon Sep 17 00:00:00 2001
From a89e12b3ac29d108c32a554e93cb94f1cb2afc75 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 11:54:15 +0200
Subject: [PATCH 21/73] xrandr: allow getting info for multiple screen's
@ -10762,7 +10762,7 @@ index 618bd68..0824af5 100644
1.7.10
From 2b379b9ce21b6d61b44b647b79ef3587dbbcf0ec Mon Sep 17 00:00:00 2001
From 748512b3692f1f4cec63082dd9dc4d996277d44a Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 11:44:00 +0200
Subject: [PATCH 22/73] X11: fix multi-head setups
@ -11497,7 +11497,7 @@ index 93cf5db..71034fc 100644
1.7.10
From 2a747f13a0a50dea0883d0d3c701ef290235a99b Mon Sep 17 00:00:00 2001
From fcc6a223fdca36b95327dab99758255e7be0e69e Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 11:36:32 +0200
Subject: [PATCH 23/73] X11: remove all DefaultScreen and RootWindow macros
@ -11568,7 +11568,7 @@ index f858f88..d192697 100644
1.7.10
From cf018ebbf1eae8f5ae2914ef347aac5f963c0d71 Mon Sep 17 00:00:00 2001
From 019079003538369000d57b26a534a68f61ad6256 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 11:45:22 +0200
Subject: [PATCH 24/73] X11: remove all DefaultScreen and RootWindow macros
@ -11643,7 +11643,7 @@ index 9785fe7..0004e07 100644
1.7.10
From 5d8bfcd52e5a189515629c15c73434ef6c6bcc88 Mon Sep 17 00:00:00 2001
From 770cdec440e330d23629cc70153a5a05c3ddf9b7 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Wed, 20 Jun 2012 17:37:11 +0200
Subject: [PATCH 25/73] X11: recreate gl context after output has changed
@ -11797,7 +11797,7 @@ index d192697..0f2d1d2 100644
1.7.10
From bd9a29b7661c75152174959f9f269f32c13a658b Mon Sep 17 00:00:00 2001
From 097d10727fc8e75a3976850782d3e8da74482140 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 12:06:25 +0200
Subject: [PATCH 26/73] X11: hook video reference clock in windowing
@ -12005,7 +12005,7 @@ index dcc4f09..7eb6317 100644
1.7.10
From 702f79eab647ec68030c99d6113976f3c602e87c Mon Sep 17 00:00:00 2001
From 88e10ce5f4b4172129dd258b91ee4d7b6a6ecaec Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 21 Jun 2012 17:26:51 +0200
Subject: [PATCH 27/73] X11: fix video calibrations
@ -12113,7 +12113,7 @@ index cc28f56..c046c86 100644
1.7.10
From 07920e322c9770ebb99becd104ebce0789c502fa Mon Sep 17 00:00:00 2001
From 96ccf3d52796fdba75d37a18e9b514814657f332 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 12:00:26 +0200
Subject: [PATCH 28/73] X11: deactivate screen saver on startup
@ -12186,7 +12186,7 @@ index c046c86..e953d2d 100644
1.7.10
From 835bcc9c7fd477012492ffc4cad2bdd9ce506064 Mon Sep 17 00:00:00 2001
From 305cd979dbf8226fa8826f410172f3df8caa4811 Mon Sep 17 00:00:00 2001
From: FernetMenta <fernetmenta@online.de>
Date: Thu, 5 Jul 2012 12:10:09 +0200
Subject: [PATCH 29/73] X11: change method of going full-screen
@ -12233,7 +12233,7 @@ index b3e7ab5..91f92c1 100644
1.7.10
From e2442797ff82b3ed8053f1a6422863ffce9cbe5f Mon Sep 17 00:00:00 2001
From ded35a8abe03367f8b316106e2062c1d0a44fc02 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 28 Jun 2012 19:12:39 +0200
Subject: [PATCH 30/73] X11: reset key repeat and key modifier on focus lost
@ -12268,7 +12268,7 @@ index 6c22358..d86205d 100644
1.7.10
From 77a22163a7f611e9183b7cd0b817fc51a42d45de Mon Sep 17 00:00:00 2001
From ef601448e65346a8c7746cb1c470269a66f9afa0 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@xbmc.org>
Date: Thu, 5 Jul 2012 14:18:46 +0200
Subject: [PATCH 31/73] X11: replace custom utf8 to unicode with charset
@ -12488,7 +12488,7 @@ index 6100933..72955ad 100644
1.7.10
From e060b3197bbac54b79b604bbbf9a8e86257980f5 Mon Sep 17 00:00:00 2001
From 3d9931214dc45ed6442e39f2576175d90879e413 Mon Sep 17 00:00:00 2001
From: Joakim Plate <elupus@xbmc.org>
Date: Thu, 5 Jul 2012 14:23:54 +0200
Subject: [PATCH 32/73] X11: fixed invalid usage of sizeof() (squash into x11
@ -12555,7 +12555,7 @@ index 72955ad..102a076 100644
1.7.10
From c52af3ba68292f08331cbbbc940dfcea838a2f44 Mon Sep 17 00:00:00 2001
From 8b292cf47d12a0e8e1c980e9187074f5da30582e Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 9 Jun 2012 18:23:53 +0200
Subject: [PATCH 33/73] add missing keys to xbmc keytable
@ -12581,7 +12581,7 @@ index aaf65ba..9d7922f 100644
1.7.10
From 25587ee807eca2fc9dde4528e3fc930b337e38b0 Mon Sep 17 00:00:00 2001
From 285cb8393ff2c80aef5b0f8fd6f32cb24160fa66 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Fri, 16 Mar 2012 15:57:51 +0100
Subject: [PATCH 34/73] videorefclock: temp deactivate of nv settings
@ -12607,7 +12607,7 @@ index fa8e35a..85e36c7 100644
1.7.10
From 4f8a95de09408321e2df3da891536c314fe3b4d2 Mon Sep 17 00:00:00 2001
From f9326bbe9799df7e48baedd4c29a5084cc7f291d Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 20 Aug 2012 09:09:09 +0200
Subject: [PATCH 35/73] videorefclock: ask graphics context for refresh rate
@ -12641,7 +12641,7 @@ index 85e36c7..8209163 100644
1.7.10
From 85d81f0c933cb0a75c2c21de86b4065e3db86002 Mon Sep 17 00:00:00 2001
From 335cfdabc94f26144a021484bef565280fdb468c Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 9 Jul 2012 14:00:18 +0200
Subject: [PATCH 36/73] X11: fix icon texture after
@ -12752,7 +12752,7 @@ index 91f92c1..174ccef 100644
1.7.10
From 111c2f8fd0f6b698fbff0fda6dc6c17ce3644626 Mon Sep 17 00:00:00 2001
From b88e65666f467ccd3ab90a2cdc9cf90f32676667 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Tue, 10 Jul 2012 11:14:12 +0200
Subject: [PATCH 37/73] X11: check for window manager
@ -12876,7 +12876,7 @@ index e953d2d..0b7c10a 100644
1.7.10
From f1051e1991e5ef5d83ce428b841ac365082042ec Mon Sep 17 00:00:00 2001
From d69db585a0877699a1b21701a024c5a02cea9084 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 12 Jul 2012 11:11:47 +0200
Subject: [PATCH 38/73] X11: dont set window on xrandr if no mode available
@ -12916,7 +12916,7 @@ index 4f1ae26..c11ea89 100644
1.7.10
From 83b9c33e88077d957884ee22316c218e570dc3d5 Mon Sep 17 00:00:00 2001
From 9144abbbea8aeaae193fe5d35029d8796874093d Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 26 Jul 2012 09:34:28 +0200
Subject: [PATCH 39/73] X11: fix crash after a resolution change on startup
@ -12943,7 +12943,7 @@ index c11ea89..0bd72d4 100644
1.7.10
From b8956ed57f1b683ae79d7306c7461a31c894e9a9 Mon Sep 17 00:00:00 2001
From f7b05be0696cbda0d145deb7155d409fe7f25932 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 15 Sep 2012 18:27:29 +0200
Subject: [PATCH 40/73] X11: lock graphics context in NotifyXRREvent
@ -12969,7 +12969,7 @@ index 0bd72d4..ef83133 100644
1.7.10
From aed5d244b81b1a0b171b7fea3b332decafc96c56 Mon Sep 17 00:00:00 2001
From bc501e4a04225ce1ac7eadb90fc926ba156e46f5 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Sat, 8 Oct 2011 16:45:13 +0200
Subject: [PATCH 41/73] ffmpeg: add xvba hwaccel
@ -13839,7 +13839,7 @@ index f0d9c01..0f8cf7b 100644
1.7.10
From 922cada27e255bc3f685b700c2ffa4a146f87624 Mon Sep 17 00:00:00 2001
From 1502daa2e3432e56b5c7a156754fda9d1a804f91 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 12 Apr 2012 12:09:31 +0200
Subject: [PATCH 42/73] xvba: add decoder
@ -17289,7 +17289,7 @@ index f25d10d..f6b1ea4 100644
1.7.10
From 517eda0bf58a6376a82839ab92e51b97c143edf1 Mon Sep 17 00:00:00 2001
From 5b47c760839742a585f5e1aa3f6275eb283ae564 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 23 Aug 2012 19:39:49 +0200
Subject: [PATCH 43/73] ffmpeg: add av_find_default_stream_index to interface
@ -17338,7 +17338,7 @@ index 9bda3f3..bf31fcb 100644
1.7.10
From 23be471842ae9ea7bd62c18261a5e96a11045d04 Mon Sep 17 00:00:00 2001
From 2a600a0e3acac4f668f10f81a430f2b1d24d2243 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 20 Aug 2012 16:06:39 +0200
Subject: [PATCH 44/73] dvdplayer: observe pts counter overflow
@ -17627,7 +17627,7 @@ index 2b5f2e8..e0acf29 100644
1.7.10
From 66382788a903f99ba317e972ba0445fc68320750 Mon Sep 17 00:00:00 2001
From 64e55ac8d4fb589f337daba53ada52d6a8d3abf0 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Tue, 2 Oct 2012 13:02:10 +0200
Subject: [PATCH 45/73] dvdplayer: avoid short screen flicker caused by
@ -17663,7 +17663,7 @@ index e5e71f3..8b02d81 100644
1.7.10
From 04f4521c1938a7ac17acd59f3bd6be59c7ba8184 Mon Sep 17 00:00:00 2001
From 3dff64b607a88901b4bad7439c39b9133b01ed00 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 16 Jun 2012 12:46:30 +0200
Subject: [PATCH 46/73] xvba: do not use vaapi if xvba is present
@ -17696,7 +17696,7 @@ index a2b9195..43a05b3 100644
1.7.10
From a133b7fa119e859ec50b9f05a33de984105234f3 Mon Sep 17 00:00:00 2001
From 3c5e2eb61270b516341c1846722f5df42ba27eec Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 11 Oct 2012 12:05:50 +0200
Subject: [PATCH 47/73] vdpau: advanced settings for auto deinterlacing
@ -17765,7 +17765,7 @@ index 72718e5..aaa4702 100644
1.7.10
From 62540aeaa356823bd34e9367ac39eef23a6e4ce4 Mon Sep 17 00:00:00 2001
From 4ecb573a4578240c76d47edfa071a2872285c0ef Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 11 Oct 2012 13:01:08 +0200
Subject: [PATCH 48/73] dvdplayer: correct determination if video is playing
@ -17801,7 +17801,7 @@ index 6fcb6b3..f76691d 100644
1.7.10
From 5a093bbd60d1ca47ed7c5e4639f28dafc1b565c1 Mon Sep 17 00:00:00 2001
From 18112c69378d18c498e5f9e0a0ca2db262be6120 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 14 Oct 2012 13:46:54 +0200
Subject: [PATCH 49/73] rendermanager: fix stuttering in non full-screen mode,
@ -17830,7 +17830,7 @@ index 0506823..b141c80 100644
1.7.10
From d0597caa2c922575efdf081d719d5665c626ffec Mon Sep 17 00:00:00 2001
From 5488ba31ed2039da5186e4e6e26c16bfae6a7cb2 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 14 Oct 2012 17:54:02 +0200
Subject: [PATCH 50/73] rendermanager: forgot to set flip event if buffering
@ -17876,7 +17876,7 @@ index b141c80..9290f80 100644
1.7.10
From c485392afa608bfbcf903fa53a9dd824258c96dd Mon Sep 17 00:00:00 2001
From 3ac9979f74f43b629ea9391243697ed4168b290b Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Fri, 26 Oct 2012 15:30:22 +0200
Subject: [PATCH 51/73] vdpau: fix small mem leak
@ -17902,7 +17902,7 @@ index d95797b..fec4b88 100644
1.7.10
From 9d7228a84013e409149d7b05d34545d1bdf06e27 Mon Sep 17 00:00:00 2001
From 5c6e31de5b357022878c46c94885f34e62ba9a66 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 29 Oct 2012 18:25:56 +0100
Subject: [PATCH 52/73] xvba: do not render if there is no valid texture
@ -17939,7 +17939,7 @@ index ec3606a..7c3adcb 100644
1.7.10
From 85be082db41b27cdd3824b8360dc021e17a84c22 Mon Sep 17 00:00:00 2001
From 49267751b5b4d0315c0ff850c06c2c465cd0d2a5 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Fri, 2 Nov 2012 13:20:03 +0100
Subject: [PATCH 53/73] player: fix rewind
@ -18187,7 +18187,7 @@ index 509d5f7..7cddda7 100644
1.7.10
From 024ecda241754f02ad985fab9116e33b06b8d174 Mon Sep 17 00:00:00 2001
From 42907b5fc097d5b1d9cbc3941fee44af7b5ad95a Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Fri, 2 Nov 2012 17:56:12 +0100
Subject: [PATCH 54/73] xvba: do not create decoder for surfaces larger than
@ -18227,7 +18227,7 @@ index e8e376a..b73c48a 100644
1.7.10
From 98ebb0d0232cf4a7ea2082f9f16e210a39e983e8 Mon Sep 17 00:00:00 2001
From 8aacdb77cd98243077ecf2d3f7195233dcc38c15 Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Sun, 4 Nov 2012 16:24:10 +0100
Subject: [PATCH 55/73] xvba: add string for available decoders - we are
@ -18257,7 +18257,7 @@ index 0cea7a9..6fb74b7 100644
1.7.10
From 84e701f7db6603a2942611d5c74ba645c625ec0d Mon Sep 17 00:00:00 2001
From fe452b364c738733b949b3c7f09a6fb8fe228978 Mon Sep 17 00:00:00 2001
From: fritsch <Peter.Fruehberger@gmail.com>
Date: Thu, 22 Nov 2012 21:32:21 +0100
Subject: [PATCH 56/73] xvba: revisit Artefacts. There are more broken video
@ -18294,7 +18294,7 @@ index a077442..87af687 100644
1.7.10
From afd776e3e90a1787ce4c3392266d70368de4e164 Mon Sep 17 00:00:00 2001
From c7b995f8d10dc0171f80a4d604c5cbf0e6520a59 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Fri, 23 Nov 2012 09:42:02 +0100
Subject: [PATCH 57/73] xvba: reactivate accidently disabled
@ -18321,7 +18321,7 @@ index b73c48a..47ff25f 100644
1.7.10
From 37576c15f9e3a0c2dce593e9d9cb5a7863845de7 Mon Sep 17 00:00:00 2001
From 2e4d9701752aa760c2cc5b8ca9b247ec476026e2 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Fri, 23 Nov 2012 17:41:12 +0100
Subject: [PATCH 58/73] xrandr: fix query for multiple screens
@ -18365,7 +18365,7 @@ index cc933b9..533e03d 100644
1.7.10
From bd5d572c69ee254beedb5e9339831652943ea8b4 Mon Sep 17 00:00:00 2001
From c39f8e5141d6e176f1edb0eb510fa54976915654 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 2 Dec 2012 15:46:55 +0100
Subject: [PATCH 59/73] X11: add debug log to print out refresh after xrr
@ -18396,7 +18396,7 @@ index ef83133..76c6362 100644
1.7.10
From d418ae1053a3842eb3e6a3bbd84666a5ee3defe2 Mon Sep 17 00:00:00 2001
From 181697e9001e0568ff06098d0f2223fc4c0d8f51 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Tue, 11 Dec 2012 11:08:13 +0100
Subject: [PATCH 60/73] X11: dont call XCloseDisplay on shutdown, it crashes
@ -18424,7 +18424,7 @@ index 76c6362..e4e25b2 100644
1.7.10
From 3b700401e9aace50b5ce6c5d7ba2a2e33bb5217f Mon Sep 17 00:00:00 2001
From 87d87db6cd67fc7f7f7afa88f089eafaac1b9605 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Wed, 12 Dec 2012 09:52:17 +0100
Subject: [PATCH 61/73] vdpau: make interop gl default and remove setting,
@ -18582,7 +18582,7 @@ index 3c19a06..b9f18e4 100644
1.7.10
From a060312a4e236858bf3c9a97d663c5643796b649 Mon Sep 17 00:00:00 2001
From d468e959e2d7d888e02db3848542b5a203e007c3 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Wed, 12 Dec 2012 18:34:47 +0100
Subject: [PATCH 62/73] vdpau: drop studio level conversion
@ -18768,7 +18768,7 @@ index a4bd524..67aeec9 100644
1.7.10
From 6d03704ce1cbc7d09d684da1ced478b2b59c0b35 Mon Sep 17 00:00:00 2001
From 672e2f03b5b8d133ebfa87e0ebf20fd9f3fb0beb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= <gregory.coutant@gmail.com>
Date: Wed, 12 Dec 2012 19:49:47 +0100
Subject: [PATCH 63/73] x11: support for multiple x screens
@ -18794,7 +18794,7 @@ index 533e03d..7a16488 100644
1.7.10
From 597c8449084e1e5ebfebfb31db570f7826d06517 Mon Sep 17 00:00:00 2001
From c0f54dac42fba2a522ab4f43f3f20a11a3bace3b Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Wed, 12 Dec 2012 20:28:49 +0100
Subject: [PATCH 64/73] vdpau: observe ffmpeg tags for color space
@ -18901,7 +18901,7 @@ index 4d1559c..471ad68 100644
1.7.10
From 3f9308d76025ef1e31923fa9a06587f75c00f870 Mon Sep 17 00:00:00 2001
From 82584e21f05fb275853f9baca72a65b6ff0672ff Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 20 Dec 2012 19:35:38 +0100
Subject: [PATCH 65/73] fix compile error after recent change
@ -18927,7 +18927,7 @@ index b9f18e4..cacb32a 100644
1.7.10
From 213792b2678760d42740d581a1ee71e186a31c4d Mon Sep 17 00:00:00 2001
From 514833b80006796c7985e37e414137e50a0c0d43 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 24 Dec 2012 16:02:42 +0100
Subject: [PATCH 66/73] pvr: increase changes counter of stream on stream
@ -18965,7 +18965,7 @@ index 8c984f6..034e545 100644
1.7.10
From e810d3bd68e89e800fba217e88184c2df0fe4040 Mon Sep 17 00:00:00 2001
From 118041f574fa106e74e7a8ef26243ea4225643b5 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 17 Jan 2013 16:03:22 +0100
Subject: [PATCH 67/73] X11: add keymapping for XF86XK_Sleep
@ -18990,7 +18990,7 @@ index c31877e..ed31c04 100644
1.7.10
From 2cb807b2f801f06723cde1bdd636550c08fc08ab Mon Sep 17 00:00:00 2001
From adce338a8fef2247a878e52c34c8a38d2788beb3 Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Sat, 12 Jan 2013 13:03:50 +0100
Subject: [PATCH 68/73] dvdplayer: Allow multithread decoding for hi10p
@ -19098,7 +19098,7 @@ index aaa4702..863e4f3 100644
1.7.10
From 5e52fa15742e1300ac394738ead4ca2792c4812c Mon Sep 17 00:00:00 2001
From a4824bb077abbf61dcc123f70e4bd78a021de2eb Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 21 Jan 2013 09:00:19 +0100
Subject: [PATCH 69/73] X11: remove toggle full screen after resume
@ -19127,7 +19127,7 @@ index a5534c9..7e2ddc6 100644
1.7.10
From e8f3e20dfb3bde4434e2aea69b34e22ba1859a31 Mon Sep 17 00:00:00 2001
From db652deb4330ab7b7f3cc83a55359e910fc2caec Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Wed, 23 Jan 2013 17:03:02 +0100
Subject: [PATCH 70/73] xrandr: set screen on mode change command
@ -19153,7 +19153,7 @@ index 7a16488..6531ba3 100644
1.7.10
From f229dba603070e1f0528d395c9d5d63f9044ae6e Mon Sep 17 00:00:00 2001
From 81a1c20546aec833174595a86db363dd058b43b4 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Wed, 23 Jan 2013 17:03:39 +0100
Subject: [PATCH 71/73] X11: recreate glx context when output changes
@ -19207,7 +19207,7 @@ index 0b7c10a..33b1739 100644
1.7.10
From ae08a23a2f4fd78139e2ebca8a4a87ab619feb0b Mon Sep 17 00:00:00 2001
From 30eaf88e0a66baab5a3a18add429d295e4a272fb Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sun, 27 Jan 2013 12:10:19 +0100
Subject: [PATCH 72/73] vdpau: switch off de-interlacing on ff
@ -19236,7 +19236,7 @@ index 8858614..3e21d9d 100644
1.7.10
From 1ea917e026e8c5df15de6ce6276cba9e58d09d3d Mon Sep 17 00:00:00 2001
From 912b6ede1258d68c0f7cc7e57201bf1b50ae3fa7 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 2 Feb 2013 13:17:09 +0100
Subject: [PATCH 73/73] vdpau: fix mp4 part2 decoding, activate by default

View File

@ -0,0 +1,12 @@
diff --git a/xbmc/windowing/WinEventsX11.cpp b/xbmc/windowing/WinEventsX11.cpp
index ed31c04..34fcfae 100644
--- a/xbmc/windowing/WinEventsX11.cpp
+++ b/xbmc/windowing/WinEventsX11.cpp
@@ -709,7 +709,6 @@ bool CWinEventsX11::ProcessShortcuts(XBMC_Event& event)
switch(event.key.keysym.sym)
{
case XBMCK_TAB: // ALT+TAB to minimize/hide
- g_application.Minimize();
return true;
default:

View File

@ -0,0 +1,13 @@
diff --git a/xbmc/settings/GUIWindowSettingsCategory.cpp b/xbmc/settings/GUIWindowSettingsCategory.cpp
index cbf0acb..f789e18 100644
--- a/xbmc/settings/GUIWindowSettingsCategory.cpp
+++ b/xbmc/settings/GUIWindowSettingsCategory.cpp
@@ -2434,7 +2434,7 @@ DisplayMode CGUIWindowSettingsCategory::FillInScreens(CStdString strSetting, RES
pControl->Clear();
CStdString strScreen;
- if (g_advancedSettings.m_canWindowed)
+ if (g_advancedSettings.m_canWindowed && !g_application.IsStandAlone())
pControl->AddLabel(g_localizeStrings.Get(242), -1);
#if !defined(HAS_GLX)

View File

@ -1,309 +0,0 @@
From 0a2c144355ed750e61fadabe2dde185a76064f0a Mon Sep 17 00:00:00 2001
From: montellese <montellese@xbmc.org>
Date: Fri, 1 Mar 2013 17:53:54 +0100
Subject: [PATCH] websocket: fix inability to handle multiple queued websocket
frames/messages (fixes #13848)
---
xbmc/network/TCPServer.cpp | 31 +++---
xbmc/network/websocket/WebSocket.cpp | 174 +++++++++++++++++++---------------
xbmc/network/websocket/WebSocket.h | 2 +-
3 files changed, 114 insertions(+), 93 deletions(-)
diff --git a/xbmc/network/TCPServer.cpp b/xbmc/network/TCPServer.cpp
index 2d9fde0..e4b5984 100644
--- a/xbmc/network/TCPServer.cpp
+++ b/xbmc/network/TCPServer.cpp
@@ -654,23 +654,28 @@ void CTCPServer::CWebSocketClient::Send(const char *data, unsigned int size)
void CTCPServer::CWebSocketClient::PushBuffer(CTCPServer *host, const char *buffer, int length)
{
bool send;
- const CWebSocketMessage *msg;
- if ((msg = m_websocket->Handle(buffer, length, send)) != NULL && msg->IsComplete())
+ const CWebSocketMessage *msg = NULL;
+ size_t len = length;
+ do
{
- std::vector<const CWebSocketFrame *> frames = msg->GetFrames();
- if (send)
- {
- for (unsigned int index = 0; index < frames.size(); index++)
- Send(frames.at(index)->GetFrameData(), (unsigned int)frames.at(index)->GetFrameLength());
- }
- else
+ if ((msg = m_websocket->Handle(buffer, len, send)) != NULL && msg->IsComplete())
{
- for (unsigned int index = 0; index < frames.size(); index++)
- CTCPClient::PushBuffer(host, frames.at(index)->GetApplicationData(), (int)frames.at(index)->GetLength());
- }
+ std::vector<const CWebSocketFrame *> frames = msg->GetFrames();
+ if (send)
+ {
+ for (unsigned int index = 0; index < frames.size(); index++)
+ Send(frames.at(index)->GetFrameData(), (unsigned int)frames.at(index)->GetFrameLength());
+ }
+ else
+ {
+ for (unsigned int index = 0; index < frames.size(); index++)
+ CTCPClient::PushBuffer(host, frames.at(index)->GetApplicationData(), (int)frames.at(index)->GetLength());
+ }
- delete msg;
+ delete msg;
+ }
}
+ while (len > 0 && msg != NULL);
if (m_websocket->GetState() == WebSocketStateClosed)
Disconnect();
diff --git a/xbmc/network/websocket/WebSocket.cpp b/xbmc/network/websocket/WebSocket.cpp
index 94e7ab0..5008073 100644
--- a/xbmc/network/websocket/WebSocket.cpp
+++ b/xbmc/network/websocket/WebSocket.cpp
@@ -80,11 +80,11 @@
// Get the MASK flag
m_masked = ((m_data[1] & MASK_MASK) == MASK_MASK);
- // Get the playload length
+ // Get the payload length
m_length = (uint64_t)(m_data[1] & MASK_LENGTH);
- if ((m_length <= 125 && length < m_length + LENGTH_MIN) ||
- (m_length == 126 && length < LENGTH_MIN + 2) ||
- (m_length == 127 && length < LENGTH_MIN + 8))
+ if ((m_length <= 125 && m_lengthFrame < m_length + LENGTH_MIN) ||
+ (m_length == 126 && m_lengthFrame < LENGTH_MIN + 2) ||
+ (m_length == 127 && m_lengthFrame < LENGTH_MIN + 8))
{
CLog::Log(LOGINFO, "WebSocket: Frame with invalid length received");
reset();
@@ -110,7 +110,7 @@
offset = 8;
}
- if (length < LENGTH_MIN + offset + m_length)
+ if (m_lengthFrame < LENGTH_MIN + offset + m_length)
{
CLog::Log(LOGINFO, "WebSocket: Frame with invalid length received");
reset();
@@ -124,12 +124,8 @@
offset += 4;
}
- if (length != LENGTH_MIN + offset + m_length)
- {
- CLog::Log(LOGINFO, "WebSocket: Frame with invalid length received");
- reset();
- return;
- }
+ if (m_lengthFrame != LENGTH_MIN + offset + m_length)
+ m_lengthFrame = LENGTH_MIN + offset + m_length;
// Get application data
if (m_length > 0)
@@ -305,102 +301,122 @@ void CWebSocketMessage::Clear()
m_frames.clear();
}
-const CWebSocketMessage* CWebSocket::Handle(const char *buffer, size_t length, bool &send)
+const CWebSocketMessage* CWebSocket::Handle(const char* &buffer, size_t &length, bool &send)
{
send = false;
- switch (m_state)
+ while (length > 0)
{
- case WebSocketStateConnected:
+ switch (m_state)
{
- CWebSocketFrame *frame = GetFrame(buffer, length);
- if (!frame->IsValid())
+ case WebSocketStateConnected:
{
- CLog::Log(LOGINFO, "WebSocket: Invalid frame received");
- delete frame;
- return NULL;
- }
-
- if (frame->IsControlFrame())
- {
- if (!frame->IsFinal())
+ CWebSocketFrame *frame = GetFrame(buffer, length);
+ if (!frame->IsValid())
{
+ CLog::Log(LOGINFO, "WebSocket: Invalid frame received");
delete frame;
return NULL;
}
- CWebSocketMessage *msg = NULL;
- switch (frame->GetOpcode())
+ // adjust the length and the buffer values
+ length -= frame->GetFrameLength();
+ buffer += frame->GetFrameLength();
+
+ if (frame->IsControlFrame())
{
- case WebSocketPing:
- msg = GetMessage();
- if (msg != NULL)
- msg->AddFrame(Pong(frame->GetApplicationData()));
- break;
+ if (!frame->IsFinal())
+ {
+ delete frame;
+ return NULL;
+ }
+
+ CWebSocketMessage *msg = NULL;
+ switch (frame->GetOpcode())
+ {
+ case WebSocketPing:
+ msg = GetMessage();
+ if (msg != NULL)
+ msg->AddFrame(Pong(frame->GetApplicationData()));
+ break;
- case WebSocketConnectionClose:
- CLog::Log(LOGINFO, "WebSocket: connection closed by client");
-
- msg = GetMessage();
- if (msg != NULL)
- msg->AddFrame(Close());
-
- m_state = WebSocketStateClosed;
- break;
-
- case WebSocketContinuationFrame:
- case WebSocketTextFrame:
- case WebSocketBinaryFrame:
- case WebSocketPong:
- case WebSocketUnknownFrame:
- default:
- break;
+ case WebSocketConnectionClose:
+ CLog::Log(LOGINFO, "WebSocket: connection closed by client");
+
+ msg = GetMessage();
+ if (msg != NULL)
+ msg->AddFrame(Close());
+
+ m_state = WebSocketStateClosed;
+ break;
+
+ case WebSocketContinuationFrame:
+ case WebSocketTextFrame:
+ case WebSocketBinaryFrame:
+ case WebSocketPong:
+ case WebSocketUnknownFrame:
+ default:
+ break;
+ }
+
+ delete frame;
+
+ if (msg != NULL)
+ send = true;
+
+ return msg;
}
- delete frame;
+ if (m_message == NULL && (m_message = GetMessage()) == NULL)
+ {
+ CLog::Log(LOGINFO, "WebSocket: Could not allocate a new websocket message");
+ delete frame;
+ return NULL;
+ }
- if (msg != NULL)
- send = true;
+ m_message->AddFrame(frame);
+ if (!m_message->IsComplete())
+ {
+ if (length > 0)
+ continue;
+ else
+ return NULL;
+ }
+ CWebSocketMessage *msg = m_message;
+ m_message = NULL;
return msg;
}
- if (m_message == NULL && (m_message = GetMessage()) == NULL)
+ case WebSocketStateClosing:
{
- CLog::Log(LOGINFO, "WebSocket: Could not allocate a new websocket message");
- delete frame;
- return NULL;
- }
+ CWebSocketFrame *frame = GetFrame(buffer, length);
- m_message->AddFrame(frame);
- if (!m_message->IsComplete())
- return NULL;
+ if (frame->IsValid())
+ {
+ // adjust the length and the buffer values
+ length -= frame->GetFrameLength();
+ buffer += frame->GetFrameLength();
+ }
- CWebSocketMessage *msg = m_message;
- m_message = NULL;
- return msg;
- }
+ if (!frame->IsValid() || frame->GetOpcode() == WebSocketConnectionClose)
+ {
+ CLog::Log(LOGINFO, "WebSocket: Invalid or unexpected frame received (only closing handshake expected)");
+ delete frame;
+ return NULL;
+ }
- case WebSocketStateClosing:
- {
- CWebSocketFrame *frame = GetFrame(buffer, length);
- if (!frame->IsValid() || frame->GetOpcode() == WebSocketConnectionClose)
- {
- CLog::Log(LOGINFO, "WebSocket: Invalid or unexpected frame received (only closing handshake expected)");
- delete frame;
+ m_state = WebSocketStateClosed;
return NULL;
}
- m_state = WebSocketStateClosed;
- return NULL;
+ case WebSocketStateNotConnected:
+ case WebSocketStateClosed:
+ case WebSocketStateHandshaking:
+ default:
+ CLog::Log(LOGINFO, "WebSocket: No frame expected in the current state");
+ return NULL;
}
-
- case WebSocketStateNotConnected:
- case WebSocketStateClosed:
- case WebSocketStateHandshaking:
- default:
- CLog::Log(LOGINFO, "WebSocket: No frame expected in the current state");
- return NULL;
}
return NULL;
diff --git a/xbmc/network/websocket/WebSocket.h b/xbmc/network/websocket/WebSocket.h
index bbfaa89..e0d3cae 100644
--- a/xbmc/network/websocket/WebSocket.h
+++ b/xbmc/network/websocket/WebSocket.h
@@ -122,7 +122,7 @@ class CWebSocket
WebSocketState GetState() { return m_state; }
virtual bool Handshake(const char* data, size_t length, std::string &response) = 0;
- virtual const CWebSocketMessage* Handle(const char *buffer, size_t length, bool &send);
+ virtual const CWebSocketMessage* Handle(const char* &buffer, size_t &length, bool &send);
virtual const CWebSocketMessage* Send(WebSocketFrameOpcode opcode, const char* data = NULL, uint32_t length = 0);
virtual const CWebSocketFrame* Ping(const char* data = NULL) const = 0;
virtual const CWebSocketFrame* Pong(const char* data = NULL) const = 0;
--
1.7.10

View File

@ -0,0 +1,144 @@
From f2faaa846e03cbcc1ba11f09baad690c792035c5 Mon Sep 17 00:00:00 2001
From: fritsch <Peter.Fruehberger@gmail.com>
Date: Thu, 28 Feb 2013 00:17:03 +0100
Subject: [PATCH] AE: Revisit Device Opening. Try to set periodSize of 100 ms
and BufferSize of 800 ms
---
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 98 ++++++++++++++++-----------
1 file changed, 59 insertions(+), 39 deletions(-)
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
index fe40d17..821bd2e 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -38,7 +38,6 @@
#endif
#define ALSA_OPTIONS (SND_PCM_NONBLOCK | SND_PCM_NO_AUTO_FORMAT | SND_PCM_NO_AUTO_CHANNELS | SND_PCM_NO_AUTO_RESAMPLE)
-#define ALSA_PERIODS 16
#define ALSA_MAX_CHANNELS 16
static enum AEChannel ALSAChannelMap[ALSA_MAX_CHANNELS + 1] = {
@@ -328,59 +327,80 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
}
}
- unsigned int periods;
-
snd_pcm_uframes_t periodSize, bufferSize;
snd_pcm_hw_params_get_buffer_size_max(hw_params, &bufferSize);
+ snd_pcm_hw_params_get_period_size_max(hw_params, &periodSize, NULL);
+
+ /*
+ We want to make sure, that we have approx 500 to 800 ms Buffer with
+ a periodSize of approx 100 ms.
+ It is calced:
+ periodSize = sampleRate / 10
+ buffersize = periodSize * 1 frame * 8.
+ */
+ periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 10);
+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 8);
+
+ /*
+ According to upstream we should set buffer size first - so make sure it is always at least
+ double of period size to not get underruns
+ */
+ periodSize = std::min(periodSize, bufferSize / 2);
- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t)8192);
- periodSize = bufferSize / ALSA_PERIODS;
- periods = ALSA_PERIODS;
-
- CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, periods %u, bufferSize %lu", periodSize, periods, bufferSize);
+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Request: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
- /* work on a copy of the hw params */
snd_pcm_hw_params_t *hw_params_copy;
snd_pcm_hw_params_alloca(&hw_params_copy);
-
- /* try to set the buffer size then the period size */
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize);
- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL);
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // copy what we have and is already working
+
+ // first trying bufferSize, PeriodSize
+ // for more info see here:
+ // http://mailman.alsa-project.org/pipermail/alsa-devel/2009-September/021069.html
+ // the last three tries are done as within pulseaudio
+
+ // backup periodSize and bufferSize first. Restore them after every failed try
+ snd_pcm_uframes_t periodSizeTemp, bufferSizeTemp;
+ periodSizeTemp = periodSize;
+ bufferSizeTemp = bufferSize;
+ if (snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0
+ || snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
{
- /* try to set the period size then the buffer size */
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL);
- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize);
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
+ bufferSize = bufferSizeTemp;
+ periodSize = periodSizeTemp;
+ // retry with PeriodSize, bufferSize
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restore working copy
+ if (snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0
+ || snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
{
- /* try to just set the buffer size */
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
- snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize);
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
+ // try only periodSize
+ periodSize = periodSizeTemp;
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restore working copy
+ if(snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL) != 0
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
{
- /* try to just set the period size */
- snd_pcm_hw_params_copy(hw_params_copy, hw_params);
- snd_pcm_hw_params_set_period_size_near(m_pcm, hw_params_copy, &periodSize, NULL);
- snd_pcm_hw_params_set_periods_near (m_pcm, hw_params_copy, &periods , NULL);
- if (snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
+ // try only BufferSize
+ bufferSize = bufferSizeTemp;
+ snd_pcm_hw_params_copy(hw_params_copy, hw_params); // restory working copy
+ if (snd_pcm_hw_params_set_buffer_size_near(m_pcm, hw_params_copy, &bufferSize) != 0
+ || snd_pcm_hw_params(m_pcm, hw_params_copy) != 0)
{
- CLog::Log(LOGERROR, "CAESinkALSA::InitializeHW - Failed to set the parameters");
- return false;
+ // set default that Alsa would choose
+ CLog::Log(LOGWARNING, "CAESinkAlsa::IntializeHW - Using default alsa values - set failed");
+ if (snd_pcm_hw_params(m_pcm, hw_params) != 0)
+ {
+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Could not init a valid sink");
+ return false;
+ }
}
}
+ // reread values when alsa default was kept
+ snd_pcm_get_params(m_pcm, &bufferSize, &periodSize);
}
}
-
- snd_pcm_hw_params_get_period_size(hw_params_copy, &periodSize, NULL);
- snd_pcm_hw_params_get_buffer_size(hw_params_copy, &bufferSize);
-
- CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Got: periodSize %lu, periods %u, bufferSize %lu", periodSize, periods, bufferSize);
+ CLog::Log(LOGDEBUG, "CAESinkALSA::InitializeHW - Got: periodSize %lu, bufferSize %lu", periodSize, bufferSize);
/* set the format parameters */
format.m_sampleRate = sampleRate;
--
1.7.10

View File

@ -0,0 +1,156 @@
From 632825b71a2bc248eb5705666debc5f7653d6878 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Sun, 24 Feb 2013 15:25:49 +0000
Subject: [PATCH] [rbp] Fix for stuttery video when seeking before zero
There are a few issues with seeking I found.
We weren't correctly setting OMX_BUFFERFLAG_TIME_UNKNOWN on the first frame after a seek which could make the GPU think video was at 0 and audio at a much larger offset.
A full video fifo (to GPU) stops any higher priority messages from being received which can stall a seek and the flush message doesn't get through. Use m_flush to discard the video packet that doesn't fit.
We get an audio frame through with unknown pts/dts after the flush, but before the GENERAL_RESYNC when seeking. This was given to GPU and was perhaps 30 seconds out from the following packets and that throws off the timing between audio and video streams. Keeping m_flush true until the GENERAL_RESYNC discards this frame. Hopefully that is safe.
---
xbmc/cores/omxplayer/OMXPlayerAudio.cpp | 13 ++-----------
xbmc/cores/omxplayer/OMXPlayerAudio.h | 1 -
xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 7 +++++++
xbmc/cores/omxplayer/OMXPlayerVideo.h | 1 +
xbmc/cores/omxplayer/OMXVideo.cpp | 11 +++--------
5 files changed, 13 insertions(+), 20 deletions(-)
diff --git a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
index 58c3a4f..16ea6c3 100644
--- a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
+++ b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
@@ -369,13 +369,9 @@ bool OMXPlayerAudio::Decode(DemuxPacket *pkt, bool bDropPacket)
while(!m_bStop)
{
+ // discard if flushing as clocks may be stopped and we'll never submit it
if(m_flush)
- {
- CSingleLock lock(m_flushLock);
- m_flush = false;
- lock.Leave();
break;
- }
if(m_omxAudio.GetSpace() < (unsigned int)pkt->iSize)
{
@@ -420,12 +416,7 @@ bool OMXPlayerAudio::Decode(DemuxPacket *pkt, bool bDropPacket)
while(!m_bStop)
{
if(m_flush)
- {
- CSingleLock lock(m_flushLock);
- m_flush = false;
- lock.Leave();
break;
- }
if(m_omxAudio.GetSpace() < (unsigned int)pkt->iSize)
{
@@ -544,6 +535,7 @@ void OMXPlayerAudio::Process()
}
else
CLog::Log(LOGDEBUG, "COMXPlayerAudio - CDVDMsg::GENERAL_RESYNC(%f, 0)", m_audioClock);
+ m_flush = false;
}
else if (pMsg->IsType(CDVDMsg::GENERAL_RESET))
{
@@ -627,7 +619,6 @@ void OMXPlayerAudio::Process()
void OMXPlayerAudio::Flush()
{
- CSingleLock lock(m_flushLock);
m_flush = true;
m_messageQueue.Flush();
m_messageQueue.Put( new CDVDMsg(CDVDMsg::GENERAL_FLUSH), 1);
diff --git a/xbmc/cores/omxplayer/OMXPlayerAudio.h b/xbmc/cores/omxplayer/OMXPlayerAudio.h
index d10133e..d6083e9 100644
--- a/xbmc/cores/omxplayer/OMXPlayerAudio.h
+++ b/xbmc/cores/omxplayer/OMXPlayerAudio.h
@@ -42,7 +42,6 @@
class OMXPlayerAudio : public CThread
{
protected:
- CCriticalSection m_flushLock;
CDVDMessageQueue m_messageQueue;
CDVDMessageQueue &m_messageParent;
diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
index 5a6e31e..5dd908b 100644
--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
+++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
@@ -122,6 +122,7 @@ bool OMXPlayerVideo::OpenStream(CDVDStreamInfo &hints)
m_Deinterlace = ( g_settings.m_currentVideoSettings.m_DeinterlaceMode == VS_DEINTERLACEMODE_OFF ) ? false : true;
m_hdmi_clock_sync = (g_guiSettings.GetInt("videoplayer.adjustrefreshrate") != ADJUST_REFRESHRATE_OFF);
m_started = false;
+ m_flush = false;
m_stalled = m_messageQueue.GetPacketCount(CDVDMsg::DEMUXER_PACKET) == 0;
m_autosync = 1;
m_iSleepEndTime = DVD_NOPTS_VALUE;
@@ -593,6 +594,7 @@ void OMXPlayerVideo::Process()
m_omxVideo.Reset();
m_av_clock->OMXReset(false);
m_av_clock->UnLock();
+ m_flush = false;
}
else if (pMsg->IsType(CDVDMsg::PLAYER_SETSPEED))
{
@@ -633,6 +635,10 @@ void OMXPlayerVideo::Process()
while (!m_bStop)
{
+ // discard if flushing as clocks may be stopped and we'll never submit it
+ if (m_flush)
+ break;
+
if((int)m_omxVideo.GetFreeSpace() < pPacket->iSize)
{
Sleep(10);
@@ -697,6 +703,7 @@ void OMXPlayerVideo::Process()
void OMXPlayerVideo::Flush()
{
+ m_flush = true;
m_messageQueue.Flush();
m_messageQueue.Put(new CDVDMsg(CDVDMsg::GENERAL_FLUSH), 1);
}
diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.h b/xbmc/cores/omxplayer/OMXPlayerVideo.h
index cf05c1f..7df1b0b 100644
--- a/xbmc/cores/omxplayer/OMXPlayerVideo.h
+++ b/xbmc/cores/omxplayer/OMXPlayerVideo.h
@@ -61,6 +61,7 @@ class OMXPlayerVideo : public CThread
int m_audio_count;
bool m_stalled;
bool m_started;
+ bool m_flush;
std::string m_codecname;
double m_droptime;
double m_dropbase;
diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp
index 3417286..4f11ff8 100644
--- a/xbmc/cores/omxplayer/OMXVideo.cpp
+++ b/xbmc/cores/omxplayer/OMXVideo.cpp
@@ -809,17 +809,12 @@ int COMXVideo::Decode(uint8_t *pData, int iSize, double dts, double pts)
// only send dts on first frame to get nearly correct starttime
if(pts == DVD_NOPTS_VALUE)
pts = dts;
- if(pts == DVD_NOPTS_VALUE)
- omx_buffer->nFlags |= OMX_BUFFERFLAG_TIME_UNKNOWN;
- omx_buffer->nFlags = OMX_BUFFERFLAG_STARTTIME;
+ omx_buffer->nFlags |= OMX_BUFFERFLAG_STARTTIME;
CLog::Log(LOGDEBUG, "OMXVideo::Decode VDec : setStartTime %f\n", (pts == DVD_NOPTS_VALUE ? 0.0 : pts) / DVD_TIME_BASE);
m_av_clock->VideoStart(false);
}
- else
- {
- if(pts == DVD_NOPTS_VALUE)
- omx_buffer->nFlags = OMX_BUFFERFLAG_TIME_UNKNOWN;
- }
+ if(pts == DVD_NOPTS_VALUE)
+ omx_buffer->nFlags |= OMX_BUFFERFLAG_TIME_UNKNOWN;
omx_buffer->nTimeStamp = ToOMXTime((uint64_t)(pts == DVD_NOPTS_VALUE) ? 0 : pts);
omx_buffer->nFilledLen = (demuxer_bytes > omx_buffer->nAllocLen) ? omx_buffer->nAllocLen : demuxer_bytes;
--
1.7.10

View File

@ -0,0 +1,46 @@
From eb4ae32119a83716d7fb930381d2848c02383cea Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Wed, 6 Mar 2013 07:52:59 +0100
Subject: [PATCH] AE: Fix menu sounds by decreasing buffer(max 200 ms) and
periodSize(50 ms)
---
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
index 821bd2e..21891a5 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
@@ -332,18 +332,19 @@ bool CAESinkALSA::InitializeHW(AEAudioFormat &format)
snd_pcm_hw_params_get_period_size_max(hw_params, &periodSize, NULL);
/*
- We want to make sure, that we have approx 500 to 800 ms Buffer with
- a periodSize of approx 100 ms.
- It is calced:
- periodSize = sampleRate / 10
- buffersize = periodSize * 1 frame * 8.
+ We want to make sure, that we have max 200 ms Buffer with
+ a periodSize of approx 50 ms. Choosing a higher bufferSize
+ will cause problems with menu sounds. Buffer will be increased
+ after those are fixed.
+ periodSize = sampleRate / 20
+ bufferSize = periodSize * 1 frame * 4.
*/
- periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 10);
- bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 8);
+ periodSize = std::min(periodSize, (snd_pcm_uframes_t) sampleRate / 20);
+ bufferSize = std::min(bufferSize, (snd_pcm_uframes_t) periodSize * 4);
/*
- According to upstream we should set buffer size first - so make sure it is always at least
- double of period size to not get underruns
+ According to upstream we should set buffer size first - so make sure it is always at least
+ double of period size to not get underruns
*/
periodSize = std::min(periodSize, bufferSize / 2);
--
1.7.10

View File

@ -0,0 +1,520 @@
From dac7871e3440b9d4235fcd91af1c2d41a931d69d Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 18 Feb 2013 23:04:28 +0000
Subject: [PATCH] [rbp] Handle resolution changes during video stream.
When the resolution changes, GPU sends a port settings changed message. Host has to acknowledge it by disabling and enabling the affected ports.
---
xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 229 ++++++++++++-------------------
xbmc/cores/omxplayer/OMXPlayerVideo.h | 7 +-
xbmc/cores/omxplayer/OMXVideo.cpp | 95 ++++++++-----
xbmc/cores/omxplayer/OMXVideo.h | 7 +-
4 files changed, 151 insertions(+), 187 deletions(-)
diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
index 5a6e31e..a033c78 100644
--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
+++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
@@ -83,9 +83,6 @@ class COMXMsgVideoCodecChange : public CDVDMsg
m_iSubtitleDelay = 0;
m_FlipTimeStamp = 0.0;
m_bRenderSubs = false;
- m_width = 0;
- m_height = 0;
- m_fps = 0.0f;
m_flags = 0;
m_bAllowFullscreen = false;
m_iCurrentPts = DVD_NOPTS_VALUE;
@@ -98,12 +95,7 @@ class COMXMsgVideoCodecChange : public CDVDMsg
m_messageQueue.SetMaxDataSize(10 * 1024 * 1024);
m_messageQueue.SetMaxTimeSize(8.0);
- RESOLUTION res = g_graphicsContext.GetVideoResolution();
- m_video_width = g_settings.m_ResInfo[res].iScreenWidth;
- m_video_height = g_settings.m_ResInfo[res].iScreenHeight;
-
m_dst_rect.SetRect(0, 0, 0, 0);
-
}
OMXPlayerVideo::~OMXPlayerVideo()
@@ -125,6 +117,8 @@ bool OMXPlayerVideo::OpenStream(CDVDStreamInfo &hints)
m_stalled = m_messageQueue.GetPacketCount(CDVDMsg::DEMUXER_PACKET) == 0;
m_autosync = 1;
m_iSleepEndTime = DVD_NOPTS_VALUE;
+ // force SetVideoRect to be called initially
+ m_dst_rect.SetRect(0, 0, 0, 0);
m_audio_count = m_av_clock->HasAudio();
@@ -220,154 +214,45 @@ void OMXPlayerVideo::ProcessOverlays(int iGroupId, double pts)
if (m_started)
m_pOverlayContainer->CleanUp(pts - m_iSubtitleDelay);
- enum EOverlay
- { OVERLAY_AUTO // select mode auto
- , OVERLAY_GPU // render osd using gpu
- , OVERLAY_BUF // render osd on buffer
- } render = OVERLAY_AUTO;
-
- /*
- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU)
- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE)
- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) )
- render = OVERLAY_BUF;
- */
-
- if(render == OVERLAY_BUF)
- {
- // rendering spu overlay types directly on video memory costs a lot of processing power.
- // thus we allocate a temp picture, copy the original to it (needed because the same picture can be used more than once).
- // then do all the rendering on that temp picture and finaly copy it to video memory.
- // In almost all cases this is 5 or more times faster!.
-
- if(m_pTempOverlayPicture && ( m_pTempOverlayPicture->iWidth != m_width
- || m_pTempOverlayPicture->iHeight != m_height))
- {
- CDVDCodecUtils::FreePicture(m_pTempOverlayPicture);
- m_pTempOverlayPicture = NULL;
- }
-
- if(!m_pTempOverlayPicture)
- m_pTempOverlayPicture = CDVDCodecUtils::AllocatePicture(m_width, m_height);
- if(!m_pTempOverlayPicture)
- return;
- m_pTempOverlayPicture->format = RENDER_FMT_YUV420P;
- }
-
- if(render == OVERLAY_AUTO)
- render = OVERLAY_GPU;
-
VecOverlays overlays;
- {
- CSingleLock lock(*m_pOverlayContainer);
+ CSingleLock lock(*m_pOverlayContainer);
- VecOverlays* pVecOverlays = m_pOverlayContainer->GetOverlays();
- VecOverlaysIter it = pVecOverlays->begin();
-
- //Check all overlays and render those that should be rendered, based on time and forced
- //Both forced and subs should check timeing, pts == 0 in the stillframe case
- while (it != pVecOverlays->end())
- {
- CDVDOverlay* pOverlay = *it++;
- if(!pOverlay->bForced && !m_bRenderSubs)
- continue;
-
- if(pOverlay->iGroupId != iGroupId)
- continue;
+ VecOverlays* pVecOverlays = m_pOverlayContainer->GetOverlays();
+ VecOverlaysIter it = pVecOverlays->begin();
- double pts2 = pOverlay->bForced ? pts : pts - m_iSubtitleDelay;
+ //Check all overlays and render those that should be rendered, based on time and forced
+ //Both forced and subs should check timeing, pts == 0 in the stillframe case
+ while (it != pVecOverlays->end())
+ {
+ CDVDOverlay* pOverlay = *it++;
+ if(!pOverlay->bForced && !m_bRenderSubs)
+ continue;
- if((pOverlay->iPTSStartTime <= pts2 && (pOverlay->iPTSStopTime > pts2 || pOverlay->iPTSStopTime == 0LL)) || pts == 0)
- {
- if(pOverlay->IsOverlayType(DVDOVERLAY_TYPE_GROUP))
- overlays.insert(overlays.end(), static_cast<CDVDOverlayGroup*>(pOverlay)->m_overlays.begin()
- , static_cast<CDVDOverlayGroup*>(pOverlay)->m_overlays.end());
- else
- overlays.push_back(pOverlay);
+ if(pOverlay->iGroupId != iGroupId)
+ continue;
- }
- }
+ double pts2 = pOverlay->bForced ? pts : pts - m_iSubtitleDelay;
- for(it = overlays.begin(); it != overlays.end(); ++it)
+ if((pOverlay->iPTSStartTime <= pts2 && (pOverlay->iPTSStopTime > pts2 || pOverlay->iPTSStopTime == 0LL)) || pts == 0)
{
- double pts2 = (*it)->bForced ? pts : pts - m_iSubtitleDelay;
-
- if (render == OVERLAY_GPU)
- g_renderManager.AddOverlay(*it, pts2);
-
- /*
- printf("subtitle : DVDOVERLAY_TYPE_SPU %d DVDOVERLAY_TYPE_IMAGE %d DVDOVERLAY_TYPE_SSA %d\n",
- m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU),
- m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE),
- m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) );
- */
-
- if (render == OVERLAY_BUF)
- CDVDOverlayRenderer::Render(m_pTempOverlayPicture, *it, pts2);
+ if(pOverlay->IsOverlayType(DVDOVERLAY_TYPE_GROUP))
+ overlays.insert(overlays.end(), static_cast<CDVDOverlayGroup*>(pOverlay)->m_overlays.begin()
+ , static_cast<CDVDOverlayGroup*>(pOverlay)->m_overlays.end());
+ else
+ overlays.push_back(pOverlay);
}
}
-}
-
-void OMXPlayerVideo::Output(int iGroupId, double pts, bool bDropPacket)
-{
- if (!g_renderManager.IsConfigured()
- || m_video_width != m_width
- || m_video_height != m_height
- || m_fps != m_fFrameRate)
+ for(it = overlays.begin(); it != overlays.end(); ++it)
{
- m_width = m_video_width;
- m_height = m_video_height;
- m_fps = m_fFrameRate;
-
- unsigned flags = 0;
- ERenderFormat format = RENDER_FMT_BYPASS;
-
- if(m_bAllowFullscreen)
- {
- flags |= CONF_FLAGS_FULLSCREEN;
- m_bAllowFullscreen = false; // only allow on first configure
- }
-
- if(m_flags & CONF_FLAGS_FORMAT_SBS)
- {
- if(g_Windowing.Support3D(m_video_width, m_video_height, D3DPRESENTFLAG_MODE3DSBS))
- {
- CLog::Log(LOGNOTICE, "3DSBS movie found");
- flags |= CONF_FLAGS_FORMAT_SBS;
- }
- }
- else if(m_flags & CONF_FLAGS_FORMAT_TB)
- {
- if(g_Windowing.Support3D(m_video_width, m_video_height, D3DPRESENTFLAG_MODE3DTB))
- {
- CLog::Log(LOGNOTICE, "3DTB movie found");
- flags |= CONF_FLAGS_FORMAT_TB;
- }
- }
-
- unsigned int iDisplayWidth = m_hints.width;
- unsigned int iDisplayHeight = m_hints.height;
-
- /* use forced aspect if any */
- if( m_fForcedAspectRatio != 0.0f )
- iDisplayWidth = (int) (iDisplayHeight * m_fForcedAspectRatio);
-
- CLog::Log(LOGDEBUG,"%s - change configuration. %dx%d. framerate: %4.2f. %dx%x format: BYPASS",
- __FUNCTION__, m_width, m_height, m_fps, iDisplayWidth, iDisplayHeight);
-
- if(!g_renderManager.Configure(m_hints.width, m_hints.height,
- iDisplayWidth, iDisplayHeight, m_fps, flags, format, 0,
- m_hints.orientation))
- {
- CLog::Log(LOGERROR, "%s - failed to configure renderer", __FUNCTION__);
- return;
- }
-
- g_renderManager.RegisterRenderUpdateCallBack((const void*)this, RenderUpdateCallBack);
+ double pts2 = (*it)->bForced ? pts : pts - m_iSubtitleDelay;
+ g_renderManager.AddOverlay(*it, pts2);
}
+}
+void OMXPlayerVideo::Output(int iGroupId, double pts, bool bDropPacket)
+{
if (!g_renderManager.IsStarted()) {
CLog::Log(LOGERROR, "%s - renderer not started", __FUNCTION__);
return;
@@ -724,6 +609,7 @@ bool OMXPlayerVideo::OpenDecoder()
m_av_clock->OMXStop(false);
bool bVideoDecoderOpen = m_omxVideo.Open(m_hints, m_av_clock, m_Deinterlace, m_hdmi_clock_sync);
+ m_omxVideo.RegisterResolutionUpdateCallBack((void *)this, ResolutionUpdateCallBack);
if(!bVideoDecoderOpen)
{
@@ -859,3 +745,62 @@ void OMXPlayerVideo::RenderUpdateCallBack(const void *ctx, const CRect &SrcRect,
player->SetVideoRect(SrcRect, DestRect);
}
+void OMXPlayerVideo::ResolutionUpdateCallBack(uint32_t width, uint32_t height)
+{
+ RESOLUTION res = g_graphicsContext.GetVideoResolution();
+ uint32_t video_width = g_settings.m_ResInfo[res].iScreenWidth;
+ uint32_t video_height = g_settings.m_ResInfo[res].iScreenHeight;
+
+ unsigned flags = 0;
+ ERenderFormat format = RENDER_FMT_BYPASS;
+
+ if(m_bAllowFullscreen)
+ {
+ flags |= CONF_FLAGS_FULLSCREEN;
+ m_bAllowFullscreen = false; // only allow on first configure
+ }
+
+ if(m_flags & CONF_FLAGS_FORMAT_SBS)
+ {
+ if(g_Windowing.Support3D(video_width, video_height, D3DPRESENTFLAG_MODE3DSBS))
+ {
+ CLog::Log(LOGNOTICE, "3DSBS movie found");
+ flags |= CONF_FLAGS_FORMAT_SBS;
+ }
+ }
+ else if(m_flags & CONF_FLAGS_FORMAT_TB)
+ {
+ if(g_Windowing.Support3D(video_width, video_height, D3DPRESENTFLAG_MODE3DTB))
+ {
+ CLog::Log(LOGNOTICE, "3DTB movie found");
+ flags |= CONF_FLAGS_FORMAT_TB;
+ }
+ }
+
+ unsigned int iDisplayWidth = width;
+ unsigned int iDisplayHeight = height;
+
+ /* use forced aspect if any */
+ if( m_fForcedAspectRatio != 0.0f )
+ iDisplayWidth = (int) (iDisplayHeight * m_fForcedAspectRatio);
+
+ CLog::Log(LOGDEBUG,"%s - change configuration. video:%dx%d. framerate: %4.2f. %dx%d format: BYPASS",
+ __FUNCTION__, video_width, video_height, m_fFrameRate, iDisplayWidth, iDisplayHeight);
+
+ if(!g_renderManager.Configure(width, height,
+ iDisplayWidth, iDisplayHeight, m_fFrameRate, flags, format, 0,
+ m_hints.orientation))
+ {
+ CLog::Log(LOGERROR, "%s - failed to configure renderer", __FUNCTION__);
+ return;
+ }
+
+ g_renderManager.RegisterRenderUpdateCallBack((const void*)this, RenderUpdateCallBack);
+}
+
+void OMXPlayerVideo::ResolutionUpdateCallBack(void *ctx, uint32_t width, uint32_t height)
+{
+ OMXPlayerVideo *player = static_cast<OMXPlayerVideo*>(ctx);
+ player->ResolutionUpdateCallBack(width, height);
+}
+
diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.h b/xbmc/cores/omxplayer/OMXPlayerVideo.h
index cf05c1f..95a691b 100644
--- a/xbmc/cores/omxplayer/OMXPlayerVideo.h
+++ b/xbmc/cores/omxplayer/OMXPlayerVideo.h
@@ -70,12 +70,7 @@ class OMXPlayerVideo : public CThread
bool m_bAllowFullscreen;
float m_fForcedAspectRatio;
- unsigned int m_width;
- unsigned int m_height;
- unsigned int m_video_width;
- unsigned int m_video_height;
unsigned m_flags;
- float m_fps;
CRect m_dst_rect;
int m_view_mode;
@@ -133,5 +128,7 @@ class OMXPlayerVideo : public CThread
int GetFreeSpace();
void SetVideoRect(const CRect &SrcRect, const CRect &DestRect);
static void RenderUpdateCallBack(const void *ctx, const CRect &SrcRect, const CRect &DestRect);
+ void ResolutionUpdateCallBack(uint32_t width, uint32_t height);
+ static void ResolutionUpdateCallBack(void *ctx, uint32_t width, uint32_t height);
};
#endif
diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp
index 3417286..b6b42e7 100644
--- a/xbmc/cores/omxplayer/OMXVideo.cpp
+++ b/xbmc/cores/omxplayer/OMXVideo.cpp
@@ -86,7 +86,6 @@
m_video_codec_name = "";
m_deinterlace = false;
m_hdmi_clock_sync = false;
- m_first_frame = true;
}
COMXVideo::~COMXVideo()
@@ -154,6 +153,9 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
OMX_ERRORTYPE omx_err = OMX_ErrorNone;
std::string decoder_name;
+ m_res_ctx = NULL;
+ m_res_callback = NULL;
+
m_video_codec_name = "";
m_codingType = OMX_VIDEO_CodingUnused;
@@ -697,7 +699,6 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
CLASSNAME, __func__, m_omx_decoder.GetComponent(), m_omx_decoder.GetInputPort(), m_omx_decoder.GetOutputPort(),
m_deinterlace, m_hdmi_clock_sync);
- m_first_frame = true;
// start from assuming all recent frames had valid pts
m_history_valid_pts = ~0;
@@ -736,8 +737,10 @@ void COMXVideo::Close()
m_video_convert = false;
m_video_codec_name = "";
m_deinterlace = false;
- m_first_frame = true;
m_av_clock = NULL;
+
+ m_res_ctx = NULL;
+ m_res_callback = NULL;
}
void COMXVideo::SetDropState(bool bDrop)
@@ -851,57 +854,74 @@ int COMXVideo::Decode(uint8_t *pData, int iSize, double dts, double pts)
}
}
- if(m_first_frame && m_deinterlace)
+ omx_err = m_omx_decoder.WaitForEvent(OMX_EventPortSettingsChanged, 0);
+ if (omx_err == OMX_ErrorNone)
{
OMX_PARAM_PORTDEFINITIONTYPE port_image;
OMX_INIT_STRUCTURE(port_image);
port_image.nPortIndex = m_omx_decoder.GetOutputPort();
-
omx_err = m_omx_decoder.GetParameter(OMX_IndexParamPortDefinition, &port_image);
if(omx_err != OMX_ErrorNone)
- CLog::Log(LOGERROR, "%s::%s - error OMX_IndexParamPortDefinition 1 omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
+ {
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_decoder.GetParameter(OMX_IndexParamPortDefinition) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
+ }
+ // let OMXPlayerVideo know about resolution so it can inform RenderManager
+ if (m_res_callback)
+ m_res_callback(m_res_ctx, port_image.format.video.nFrameWidth, port_image.format.video.nFrameHeight);
+
+ m_omx_decoder.DisablePort(m_omx_decoder.GetOutputPort(), true);
+ m_omx_sched.DisablePort(m_omx_sched.GetInputPort(), true);
- /* we assume when the sizes equal we have the first decoded frame */
- if(port_image.format.video.nFrameWidth == m_decoded_width && port_image.format.video.nFrameHeight == m_decoded_height)
+ OMX_CONFIG_INTERLACETYPE interlace;
+ OMX_INIT_STRUCTURE(interlace);
+ interlace.nPortIndex = m_omx_decoder.GetOutputPort();
+ omx_err = m_omx_decoder.GetConfig(OMX_IndexConfigCommonInterlace, &interlace);
+ if(omx_err != OMX_ErrorNone)
{
- m_first_frame = false;
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_decoder.GetConfig(OMX_IndexConfigCommonInterlace) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
+ }
- omx_err = m_omx_decoder.WaitForEvent(OMX_EventPortSettingsChanged);
- if(omx_err == OMX_ErrorStreamCorrupt)
+ if (m_deinterlace)
+ {
+ m_omx_image_fx.DisablePort(m_omx_image_fx.GetInputPort(), true);
+ port_image.nPortIndex = m_omx_image_fx.GetInputPort();
+ omx_err = m_omx_image_fx.SetParameter(OMX_IndexParamPortDefinition, &port_image);
+ if(omx_err != OMX_ErrorNone)
{
- CLog::Log(LOGERROR, "%s::%s - image not unsupported\n", CLASSNAME, __func__);
- return false;
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_image_fx.SetParameter(OMX_IndexParamPortDefinition) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
}
-
- m_omx_decoder.DisablePort(m_omx_decoder.GetOutputPort(), false);
- m_omx_sched.DisablePort(m_omx_sched.GetInputPort(), false);
-
- if(m_deinterlace)
+ omx_err = m_omx_decoder.WaitForEvent(OMX_EventPortSettingsChanged);
+ if(omx_err != OMX_ErrorNone)
{
- m_omx_image_fx.DisablePort(m_omx_image_fx.GetOutputPort(), false);
- m_omx_image_fx.DisablePort(m_omx_image_fx.GetInputPort(), false);
-
- port_image.nPortIndex = m_omx_image_fx.GetInputPort();
- omx_err = m_omx_image_fx.SetParameter(OMX_IndexParamPortDefinition, &port_image);
- if(omx_err != OMX_ErrorNone)
- CLog::Log(LOGERROR, "%s::%s - error OMX_IndexParamPortDefinition 2 omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
-
- port_image.nPortIndex = m_omx_image_fx.GetOutputPort();
- omx_err = m_omx_image_fx.SetParameter(OMX_IndexParamPortDefinition, &port_image);
- if(omx_err != OMX_ErrorNone)
- CLog::Log(LOGERROR, "%s::%s - error OMX_IndexParamPortDefinition 3 omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_decoder.WaitForEvent(OMX_EventPortSettingsChanged) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
}
-
- m_omx_decoder.EnablePort(m_omx_decoder.GetOutputPort(), false);
-
- if(m_deinterlace)
+ port_image.nPortIndex = m_omx_image_fx.GetOutputPort();
+ omx_err = m_omx_image_fx.GetParameter(OMX_IndexParamPortDefinition, &port_image);
+ if(omx_err != OMX_ErrorNone)
{
- m_omx_image_fx.EnablePort(m_omx_image_fx.GetOutputPort(), false);
- m_omx_image_fx.EnablePort(m_omx_image_fx.GetInputPort(), false);
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_image_fx.GetParameter(OMX_IndexParamPortDefinition) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
}
+ m_omx_image_fx.EnablePort(m_omx_image_fx.GetInputPort(), true);
- m_omx_sched.EnablePort(m_omx_sched.GetInputPort(), false);
+ m_omx_image_fx.DisablePort(m_omx_image_fx.GetOutputPort(), true);
+ }
+ port_image.nPortIndex = m_omx_sched.GetInputPort();
+ omx_err = m_omx_sched.SetParameter(OMX_IndexParamPortDefinition, &port_image);
+ if(omx_err != OMX_ErrorNone)
+ {
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_sched.SetParameter(OMX_IndexParamPortDefinition) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
+ }
+ omx_err = m_omx_sched.WaitForEvent(OMX_EventPortSettingsChanged);
+ if(omx_err != OMX_ErrorNone)
+ {
+ CLog::Log(LOGERROR, "%s::%s - error m_omx_sched.WaitForEvent(OMX_EventPortSettingsChanged) omx_err(0x%08x)\n", CLASSNAME, __func__, omx_err);
+ }
+ if (m_deinterlace)
+ {
+ m_omx_image_fx.EnablePort(m_omx_image_fx.GetOutputPort(), true);
}
+ m_omx_decoder.EnablePort(m_omx_decoder.GetOutputPort(), true);
+ m_omx_sched.EnablePort(m_omx_sched.GetInputPort(), true);
}
}
@@ -932,7 +952,6 @@ void COMXVideo::Reset(void)
SendDecoderConfig();
- m_first_frame = true;
*/
}
diff --git a/xbmc/cores/omxplayer/OMXVideo.h b/xbmc/cores/omxplayer/OMXVideo.h
index 0afa56d..037f155 100644
--- a/xbmc/cores/omxplayer/OMXVideo.h
+++ b/xbmc/cores/omxplayer/OMXVideo.h
@@ -36,6 +36,8 @@
#define CLASSNAME "COMXVideo"
+typedef void (*ResolutionUpdateCallBackFn)(void *ctx, uint32_t width, uint32_t height);
+
class COMXVideo
{
public:
@@ -45,6 +47,7 @@ class COMXVideo
// Required overrides
bool SendDecoderConfig();
bool Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace = false, bool hdmi_clock_sync = false);
+ void RegisterResolutionUpdateCallBack(void *ctx, ResolutionUpdateCallBackFn callback) { m_res_ctx = ctx; m_res_callback = callback; }
void Close(void);
unsigned int GetFreeSpace();
unsigned int GetSize();
@@ -89,9 +92,9 @@ class COMXVideo
bool m_deinterlace;
bool m_hdmi_clock_sync;
- bool m_first_frame;
uint32_t m_history_valid_pts;
-
+ ResolutionUpdateCallBackFn m_res_callback;
+ void *m_res_ctx;
bool NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata, int in_extrasize);
};
--
1.7.10

View File

@ -0,0 +1,202 @@
From 3d1005fdd34e72f81aff9034f8d30a0d33a780a8 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Mon, 4 Mar 2013 08:30:47 +0100
Subject: [PATCH] Always copy overlays from file parser - Fixes stuck hw
resources on render
---
.../cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h | 6 +++
.../dvdplayer/DVDCodecs/Overlay/DVDOverlayImage.h | 6 +++
.../dvdplayer/DVDCodecs/Overlay/DVDOverlaySSA.h | 11 ++++++
.../dvdplayer/DVDCodecs/Overlay/DVDOverlayText.h | 41 ++++++++++++++++++++
xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp | 1 +
.../dvdplayer/DVDSubtitles/DVDSubtitleParser.h | 8 +++-
6 files changed, 72 insertions(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h
index 8c87bc4..da8de1f 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h
@@ -103,6 +103,12 @@ class CDVDOverlay
bool IsOverlayType(DVDOverlayType type) { return (m_type == type); }
+ /**
+ * return a copy to DVDPlayerSubtitle in order to have hw resources cleared
+ * after rendering
+ */
+ virtual CDVDOverlay* Clone() { return Acquire(); }
+
double iPTSStartTime;
double iPTSStopTime;
bool bForced; // display, no matter what
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayImage.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayImage.h
index bc90d68..e1cdf59 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayImage.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayImage.h
@@ -20,6 +20,7 @@
*
*/
+#include "PlatformDefs.h"
#include "DVDOverlay.h"
#include <string.h>
#include <stdlib.h>
@@ -117,6 +118,11 @@ class CDVDOverlayImage : public CDVDOverlay
if(palette) free(palette);
}
+ virtual CDVDOverlayImage* Clone()
+ {
+ return new CDVDOverlayImage(*this);
+ }
+
BYTE* data_at(int sub_x, int sub_y) const
{
int bpp;
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySSA.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySSA.h
index 31deba1..f42c571 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySSA.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySSA.h
@@ -37,10 +37,21 @@ class CDVDOverlaySSA : public CDVDOverlay
libass->Acquire();
}
+ CDVDOverlaySSA(CDVDOverlaySSA& src)
+ : CDVDOverlay(src)
+ , m_libass(src.m_libass)
+ {
+ m_libass->Acquire();
+ }
+
~CDVDOverlaySSA()
{
if(m_libass)
SAFE_RELEASE(m_libass);
}
+ virtual CDVDOverlaySSA* Clone()
+ {
+ return new CDVDOverlaySSA(*this);
+ }
};
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayText.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayText.h
index 849a6e3..54e3bfa 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayText.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayText.h
@@ -46,6 +46,12 @@ class CDVDOverlayText : public CDVDOverlay
m_type = type;
}
+ CElement(CElement& src)
+ {
+ pNext = NULL;
+ m_type = src.m_type;
+ }
+
virtual ~CElement()
{
}
@@ -71,6 +77,12 @@ class CDVDOverlayText : public CDVDOverlay
}
}
+ CElementText(CElementText& src)
+ : CElement(src)
+ {
+ m_text = strdup(src.m_text);
+ }
+
virtual ~CElementText()
{
if (m_text) free(m_text);
@@ -81,12 +93,20 @@ class CDVDOverlayText : public CDVDOverlay
class CElementProperty : public CElement
{
+ public:
CElementProperty() : CElement(ELEMENT_TYPE_PROPERTY)
{
bItalic = false;
bBold = false;
}
+ CElementProperty(CElementProperty& src)
+ : CElement(src)
+ {
+ bItalic = src.bItalic;
+ bBold = src.bBold;
+ }
+
public:
bool bItalic;
bool bBold;
@@ -99,6 +119,22 @@ class CDVDOverlayText : public CDVDOverlay
m_pEnd = NULL;
}
+ CDVDOverlayText(CDVDOverlayText& src)
+ : CDVDOverlay(src)
+ {
+ m_pHead = NULL;
+ m_pEnd = NULL;
+ for(CElement* e = src.m_pHead; e; e = e->pNext)
+ {
+ if(e->IsElementType(ELEMENT_TYPE_TEXT))
+ AddElement(new CElementText(*static_cast<CElementText*>(e)));
+ else if(e->IsElementType(ELEMENT_TYPE_PROPERTY))
+ AddElement(new CElementProperty(*static_cast<CElementProperty*>(e)));
+ else
+ AddElement(new CElement(*static_cast<CElement*>(e)));
+ }
+ }
+
virtual ~CDVDOverlayText()
{
CElement* pTemp;
@@ -110,6 +146,11 @@ class CDVDOverlayText : public CDVDOverlay
}
}
+ virtual CDVDOverlayText* Clone()
+ {
+ return new CDVDOverlayText(*this);
+ }
+
void AddElement(CDVDOverlayText::CElement* pElement)
{
pElement->pNext = NULL;
diff --git a/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp b/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp
index 29c8d57..540d890 100644
--- a/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp
@@ -222,6 +222,7 @@ void CDVDPlayerSubtitle::Process(double pts)
while(pOverlay)
{
m_pOverlayContainer->Add(pOverlay);
+ pOverlay->Release();
pOverlay = m_pSubtitleFileParser->Parse(pts);
}
diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h
index 944bf06..3cd1e95 100644
--- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h
+++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h
@@ -47,7 +47,13 @@ class CDVDSubtitleParserCollection
m_filename = strFile;
}
virtual ~CDVDSubtitleParserCollection() { }
- virtual CDVDOverlay* Parse(double iPts) { return m_collection.Get(iPts); }
+ virtual CDVDOverlay* Parse(double iPts)
+ {
+ CDVDOverlay* o = m_collection.Get(iPts);
+ if(o == NULL)
+ return o;
+ return o->Clone();
+ }
virtual void Reset() { m_collection.Reset(); }
virtual void Dispose() { m_collection.Clear(); }
--
1.7.10

View File

@ -0,0 +1,31 @@
From 8717c162b8c5092d77672351ce3bfa2d4e7e32d8 Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Tue, 5 Mar 2013 22:17:15 +0100
Subject: [PATCH] AE: Fix resample of e.g. 192 khz to 48 khz audio by scaling
the usual suspects with the src sampleRate
---
xbmc/cores/AudioEngine/Engines/SoftAE/SoftAEStream.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAEStream.cpp b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAEStream.cpp
index 258dcac..a64beb1 100644
--- a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAEStream.cpp
+++ b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAEStream.cpp
@@ -196,6 +196,13 @@ void CSoftAEStream::Initialize()
m_ssrcData.data_out = (float*)_aligned_malloc(m_format.m_frameSamples * (int)std::ceil(m_ssrcData.src_ratio) * sizeof(float), 16);
m_ssrcData.output_frames = m_format.m_frames * (long)std::ceil(m_ssrcData.src_ratio);
m_ssrcData.end_of_input = 0;
+ // we must buffer the same amount as before but taking the source sample rate into account
+ // there is no reason to decrease the buffer for upsampling
+ if (m_internalRatio < 1)
+ {
+ m_waterLevel *= (1.0 / m_internalRatio);
+ m_refillBuffer = m_waterLevel;
+ }
}
m_limiter.SetSamplerate(AE.GetSampleRate());
--
1.7.10

View File

@ -0,0 +1,53 @@
From 907f5086e76b0b6d0211c9bbd9da6c6fb54e891b Mon Sep 17 00:00:00 2001
From: Juan Font <juanfontalonso@gmail.com>
Date: Wed, 6 Mar 2013 09:50:15 +0100
Subject: [PATCH 1/2] Avoid fps detection when probing the format if we will
trust codec fps during playback.
---
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
index 7d4e35b..4b62d75 100644
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
@@ -425,6 +425,9 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput)
// set the interrupt callback, appeared in libavformat 53.15.0
m_pFormatContext->interrupt_callback = int_cb;
+
+ // Avoid detecting framerate if advancedsettings.xml says so
+ m_pFormatContext->fps_probe_size = (!g_advancedSettings.m_videoFpsDetect) ? 0 : -1;
// analyse very short to speed up mjpeg playback start
if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0)
--
1.7.10
From e2966a346140fcd7a9742f17bfd7710bffbe1066 Mon Sep 17 00:00:00 2001
From: Juan Font <juanfontalonso@gmail.com>
Date: Wed, 6 Mar 2013 10:33:32 +0100
Subject: [PATCH 2/2] Improved code legibility.
---
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
index 4b62d75..e84290d 100644
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
@@ -427,7 +427,7 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput)
m_pFormatContext->interrupt_callback = int_cb;
// Avoid detecting framerate if advancedsettings.xml says so
- m_pFormatContext->fps_probe_size = (!g_advancedSettings.m_videoFpsDetect) ? 0 : -1;
+ m_pFormatContext->fps_probe_size = (g_advancedSettings.m_videoFpsDetect == 0) ? 0 : -1;
// analyse very short to speed up mjpeg playback start
if (iformat && (strcmp(iformat->name, "mjpeg") == 0) && m_ioContext->seekable == 0)
--
1.7.10

View File

@ -0,0 +1,25 @@
From 249cccc2da097917995571b123ac22e30ed3f686 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 7 Mar 2013 12:50:57 +0000
Subject: [PATCH] [rbp] Enable Vsync as a default
---
xbmc/settings/Settings.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h
index fd44a0f..5ba1d36 100644
--- a/xbmc/settings/Settings.h
+++ b/xbmc/settings/Settings.h
@@ -36,7 +36,7 @@
#ifdef MID
#define DEFAULT_VSYNC VSYNC_DISABLED
#else // MID
-#if defined(TARGET_DARWIN) || defined(_WIN32)
+#if defined(TARGET_DARWIN) || defined(_WIN32) || defined(TARGET_RASPBERRY_PI)
#define DEFAULT_VSYNC VSYNC_ALWAYS
#else
#define DEFAULT_VSYNC VSYNC_DRIVER
--
1.7.10

View File

@ -1,64 +0,0 @@
diff -Naur xbmc-12.0.2/xbmc/cores/omxplayer/OMXPlayerVideo.cpp xbmc-12.0.2.patch/xbmc/cores/omxplayer/OMXPlayerVideo.cpp
--- xbmc-12.0.2/xbmc/cores/omxplayer/OMXPlayerVideo.cpp 2013-02-19 19:04:39.000000000 +0100
+++ xbmc-12.0.2.patch/xbmc/cores/omxplayer/OMXPlayerVideo.cpp 2013-02-22 18:18:47.298296862 +0100
@@ -124,7 +124,6 @@
m_started = false;
m_stalled = m_messageQueue.GetPacketCount(CDVDMsg::DEMUXER_PACKET) == 0;
m_autosync = 1;
- m_iSleepEndTime = DVD_NOPTS_VALUE;
m_audio_count = m_av_clock->HasAudio();
@@ -453,23 +452,13 @@
m_dropbase = 0.0f;
#endif
- // DVDPlayer sleeps until m_iSleepEndTime here before calling FlipPage.
- // Video playback in asynchronous in OMXPlayer, so we don't want to do that here, as it prevents the video fifo from being kept full.
- // So, we keep track of when FlipPage would have been called on DVDPlayer and return early if it is not time.
- // m_iSleepEndTime == DVD_NOPTS_VALUE means we are not waiting to call FlipPage, otherwise it is the time we want to call FlipPage
- if (m_iSleepEndTime == DVD_NOPTS_VALUE) {
- m_iSleepEndTime = iCurrentClock + iSleepTime;
- }
-
- if (!CThread::m_bStop && m_av_clock->GetAbsoluteClock(false) < m_iSleepEndTime + DVD_MSEC_TO_TIME(500))
- return;
-
double pts_media = m_av_clock->OMXMediaTime(false, false);
ProcessOverlays(iGroupId, pts_media);
- g_renderManager.FlipPage(CThread::m_bStop, m_iSleepEndTime / DVD_TIME_BASE, -1, FS_NONE);
+ while(!CThread::m_bStop && m_av_clock->GetAbsoluteClock(false) < (iCurrentClock + iSleepTime + DVD_MSEC_TO_TIME(500)) )
+ Sleep(1);
- m_iSleepEndTime = DVD_NOPTS_VALUE;
+ g_renderManager.FlipPage(CThread::m_bStop, (iCurrentClock + iSleepTime) / DVD_TIME_BASE, -1, FS_NONE);
//m_av_clock->WaitAbsoluteClock((iCurrentClock + iSleepTime));
}
@@ -580,14 +569,12 @@
m_av_clock->OMXReset(false);
m_av_clock->UnLock();
m_started = false;
- m_iSleepEndTime = DVD_NOPTS_VALUE;
}
else if (pMsg->IsType(CDVDMsg::GENERAL_FLUSH)) // private message sent by (COMXPlayerVideo::Flush())
{
CLog::Log(LOGDEBUG, "COMXPlayerVideo - CDVDMsg::GENERAL_FLUSH");
m_stalled = true;
m_started = false;
- m_iSleepEndTime = DVD_NOPTS_VALUE;
m_av_clock->Lock();
m_av_clock->OMXStop(false);
m_omxVideo.Reset();
diff -Naur xbmc-12.0.2/xbmc/cores/omxplayer/OMXPlayerVideo.h xbmc-12.0.2.patch/xbmc/cores/omxplayer/OMXPlayerVideo.h
--- xbmc-12.0.2/xbmc/cores/omxplayer/OMXPlayerVideo.h 2013-02-19 19:04:39.000000000 +0100
+++ xbmc-12.0.2.patch/xbmc/cores/omxplayer/OMXPlayerVideo.h 2013-02-22 18:18:44.166310881 +0100
@@ -49,7 +49,6 @@
bool m_open;
CDVDStreamInfo m_hints;
double m_iCurrentPts;
- double m_iSleepEndTime;
OMXClock *m_av_clock;
COMXVideo m_omxVideo;
float m_fFrameRate;

View File

@ -27,11 +27,13 @@ if lspci -n | grep 0300 | grep -q 10de; then
fi
if lspci -n | grep 0300 | grep -q 1002; then
if [ -f /storage/.config/xorg.conf ]; then
XORG="/storage/.config/xorg.conf"
else
XORG="/etc/X11/xorg-fglrx.conf"
fi
if [ -f /storage/.config/xorg.conf ]; then
XORG="/storage/.config/xorg.conf"
elif [ -f /etc/X11/xorg-fglrx-legacy.conf ]; then
XORG="/etc/X11/xorg-fglrx-legacy.conf"
else
XORG="/etc/X11/xorg-fglrx.conf"
fi
[ -f /usr/bin/aticonfig ] && TEMP=`/usr/bin/aticonfig -i $XORG --od-gettemperature | grep Temperature | cut -f 2 -d "-" | cut -f 1 -d "." | sed -e "s, ,,"`
fi

View File

@ -22,9 +22,11 @@
. config/options $1
mkdir -p $INSTALL/etc/pastebin.d
cp $PKG_BUILD/pastebin.d/sprunge.us.conf $INSTALL/etc/pastebin.d
echo "### Applying architecture based patches ###"
mkdir -p $INSTALL/usr/bin
cp $PKG_BUILD/pastebinit $INSTALL/usr/bin
ln -sf pastebinit $INSTALL/usr/bin/paste # link for a shorter command
if [ ! $TARGET_ARCH = arm ]; then
for patch in `ls $PKG_DIR/patches.x86`; do
cat $PKG_DIR/patches.x86/$patch | patch -d \
`echo $PKG_BUILD | cut -f1 -d\ ` -p1
done
fi

View File

@ -271,9 +271,9 @@ set_interface() {
set_hwclock
if [ -f $HOME/.config/debug.connman ]; then
/usr/sbin/connmand -nd > /dev/null 2>&1
/usr/sbin/connmand -nrd > /dev/null 2>&1
else
/usr/sbin/connmand -n > /dev/null 2>&1
/usr/sbin/connmand -nr > /dev/null 2>&1
fi
usleep 250000
done

View File

@ -26,7 +26,7 @@ add_user system x 430 430 "service" "/var/run/connman" "/bin/sh"
add_group system 430
mkdir -p $INSTALL/etc
cp $PKG_DIR/config/resolv.conf $INSTALL/etc
ln -sf /var/cache/resolv.conf $INSTALL/etc/resolv.conf
mkdir -p $INSTALL/etc/connman
cp $PKG_DIR/config/main.conf $INSTALL/etc/connman

View File

@ -22,5 +22,6 @@
. config/options $1
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp $PKG_BUILD/tcpdump $ADDON_BUILD/$PKG_ADDON_ID/bin
mkdir -p $INSTALL/usr/sbin
cp -P $PKG_BUILD/tcpdump $INSTALL/usr/sbin

View File

@ -27,11 +27,9 @@ PKG_URL="http://www.tcpdump.org/release/tcpdump-${PKG_VERSION}.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain libpcap"
PKG_PRIORITY=optional
PKG_SECTION="network/analyzer"
PKG_SECTION="network"
PKG_SHORTDESC="powerful tool for network monitoring and data acquisition"
PKG_LONGDESC="This program allows you to dump the traffic on a network. tcpdump is able to examine IPv4, ICMPv4, IPv6, ICMPv6, UDP, TCP, SNMP, AFS BGP, RIP, PIM, DVMRP, IGMP, SMB, OSPF, NFS and many other packet types."
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.python.script"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -31,3 +31,4 @@ python setup.py build --cross-compile
python setup.py install --root=./.install --prefix=/usr
rm -rf .install/usr/bin
find .install/usr/lib/python*/site-packages/ -name "*.py" -exec rm -rf {} ";"

View File

@ -31,3 +31,4 @@ python setup.py build --cross-compile
python setup.py install --root=./.install --prefix=/usr
rm -rf .install/usr/bin
rm -rf .install/usr/lib/python*/site-packages/*.py

View File

@ -23,8 +23,24 @@
# evironment variables that are not user defined.
################################################################################
PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] '
PS1='\[\e[0;32m\]\u\e[1;30m@\e[1;32m\h\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] '
export PS1
TERM="linux"
case "$TERM" in
# Do nothing when TERM already set (e.g. by SSH) and known
(linux|nxterm|screen|vt100|vt100-am|xterm|xterm-color)
;;
# Default to "linux" when unset
("")
TERM="linux"
;;
# Default to "xterm" when unknown
(*)
TERM="xterm"
;;
esac
export TERM

View File

@ -28,10 +28,10 @@
source /var/config/settings.conf
SYSLOGD_OPTIONS="-L"
SYSLOGD_OPTIONS="-L -D"
if [ "$SYSLOG_REMOTE" == "true" -a "$SYSLOG_SERVER" ]; then
SYSLOGD_OPTIONS="$SYSLOGD_OPTIONS -R $SYSLOG_SERVER"
SYSLOGD_OPTIONS="-R $SYSLOG_SERVER $SYSLOGD_OPTIONS"
fi
if [ -f /storage/.config/syslog.conf ]; then

View File

@ -40,6 +40,8 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`"
cp $PKG_DIR/scripts/lsb_release $INSTALL/usr/bin/
cp $PKG_DIR/scripts/apt-get $INSTALL/usr/bin/
ln -sf /bin/busybox $INSTALL/usr/bin/env #/usr/bin/env is needed for most python scripts
cp $PKG_DIR/scripts/pastebinit $INSTALL/usr/bin/
ln -sf pastebinit $INSTALL/usr/bin/paste
mkdir -p $INSTALL/sbin
cp $PKG_DIR/scripts/init $INSTALL/sbin/

View File

@ -25,7 +25,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.busybox.net"
PKG_URL="http://busybox.net/downloads/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS="bash kexec-tools hdparm speedcontrol pastebinit zip pciutils usbutils"
PKG_DEPENDS="bash kexec-tools hdparm speedcontrol zip pciutils usbutils"
PKG_BUILD_DEPENDS="toolchain busybox-hosttools"
PKG_PRIORITY="required"
PKG_SECTION="system"

Some files were not shown because too many files have changed in this diff Show More