diff --git a/packages/3rdparty/lib/libdvbcsa/build b/packages/3rdparty/lib/libdvbcsa/build new file mode 100755 index 0000000000..1f6818b173 --- /dev/null +++ b/packages/3rdparty/lib/libdvbcsa/build @@ -0,0 +1,14 @@ +#!/bin/sh + +. config/options $1 + +cd $PKG_BUILD + +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --disable-shared \ + --enable-static \ + --with-sysroot=$SYSROOT_PREFIX \ + +$MAKEINSTALL diff --git a/packages/toolchain/math/ppl/build b/packages/3rdparty/lib/libdvbcsa/meta old mode 100755 new mode 100644 similarity index 60% rename from packages/toolchain/math/ppl/build rename to packages/3rdparty/lib/libdvbcsa/meta index 19474c1eb7..e8ac53f622 --- a/packages/toolchain/math/ppl/build +++ b/packages/3rdparty/lib/libdvbcsa/meta @@ -1,5 +1,3 @@ -#!/bin/sh - ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) @@ -20,22 +18,20 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -. config/options $1 +PKG_NAME="libdvbcsa" +PKG_VERSION="1.1.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="LGPL" +PKG_SITE="http://www.videolan.org/developers/libdvbcsa.html" +PKG_URL="http://download.videolan.org/pub/videolan/libdvbcsa/${PKG_VERSION}/libdvbcsa-${PKG_VERSION}.tar.gz" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="lib" +PKG_SHORTDESC="libdvbcsa is a free implementation of the DVB Common Scrambling Algorithm - DVB/CSA - with encryption and decryption capabilities" +PKG_LONGDESC="libdvbcsa is a free implementation of the DVB Common Scrambling Algorithm - DVB/CSA - with encryption and decryption capabilities" -setup_toolchain host +PKG_IS_ADDON="no" -cd $BUILD/$1* - -mkdir -p objdir && cd objdir - -../configure --host=$HOST_NAME \ - --build=$HOST_NAME \ - --target=$TARGET_NAME \ - --prefix=$ROOT/$TOOLCHAIN \ - --enable-shared \ - --disable-static \ - --enable-interfaces="c,cxx" \ - --with-gmp="$ROOT/$TOOLCHAIN" \ - -make -j1 -make install +PKG_AUTORECONF="yes" diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/build b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/build index a0dd55baa4..5ec4a893df 100755 --- a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/build +++ b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/build @@ -36,5 +36,6 @@ cd $PKG_BUILD VDRSRC="../$VDR_DIR" \ LIBDIR="." \ LOCALEDIR="./locale" \ + LIBDVBCSA=1 \ CSAFLAGS="$CFLAGS -Wall -fomit-frame-pointer -fexpensive-optimizations -funroll-loops" diff --git a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta index a78b12de11..31ebfa56b1 100644 --- a/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta +++ b/packages/3rdparty/multimedia/vdr-plugin-dvbapi/meta @@ -26,7 +26,7 @@ PKG_LICENSE="GPL" PKG_SITE="https://github.com/manio/vdr-plugin-dvbapi" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS="vdr openssl" -PKG_BUILD_DEPENDS="toolchain vdr openssl" +PKG_BUILD_DEPENDS="toolchain vdr openssl libdvbcsa" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="TV" diff --git a/packages/addons/driver/hdhomerun/changelog.txt b/packages/addons/driver/hdhomerun/changelog.txt index 1806da7ad1..1a1f53c972 100644 --- a/packages/addons/driver/hdhomerun/changelog.txt +++ b/packages/addons/driver/hdhomerun/changelog.txt @@ -1,3 +1,5 @@ +3.1.6 + rebuild 3.1.5 get tuner id with command 'hdhomerun_config discover' and set number of tuners manually diff --git a/packages/addons/driver/hdhomerun/meta b/packages/addons/driver/hdhomerun/meta index ab8caf25e7..3940818054 100644 --- a/packages/addons/driver/hdhomerun/meta +++ b/packages/addons/driver/hdhomerun/meta @@ -20,7 +20,7 @@ PKG_NAME="hdhomerun" PKG_VERSION="3.2" -PKG_REV="5" +PKG_REV="6" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/" diff --git a/packages/addons/driver/sundtek-mediatv/changelog.txt b/packages/addons/driver/sundtek-mediatv/changelog.txt index 2ad4f8071a..0c69d90830 100644 --- a/packages/addons/driver/sundtek-mediatv/changelog.txt +++ b/packages/addons/driver/sundtek-mediatv/changelog.txt @@ -1,3 +1,5 @@ +3.1.3 + rebuild 3.1.2 new addon settings option to enable suspend/resume driver actions 3.1.1 diff --git a/packages/addons/driver/sundtek-mediatv/meta b/packages/addons/driver/sundtek-mediatv/meta index eae1b84de6..41703dba5f 100644 --- a/packages/addons/driver/sundtek-mediatv/meta +++ b/packages/addons/driver/sundtek-mediatv/meta @@ -20,7 +20,7 @@ PKG_NAME="sundtek-mediatv" PKG_VERSION="3.1" -PKG_REV="2" +PKG_REV="3" PKG_ARCH="any" PKG_LICENSE="nonfree" PKG_SITE="http://support.sundtek.com/" diff --git a/packages/addons/service/multimedia/boblightd/changelog.txt b/packages/addons/service/multimedia/boblightd/changelog.txt index c5921e1187..08fbbbd109 100644 --- a/packages/addons/service/multimedia/boblightd/changelog.txt +++ b/packages/addons/service/multimedia/boblightd/changelog.txt @@ -1,3 +1,6 @@ +3.1.2 +- rebuild + 3.1.1 - rebuild for OpenELEC-3.2 diff --git a/packages/addons/service/multimedia/boblightd/meta b/packages/addons/service/multimedia/boblightd/meta index e3350b1412..32cb48e624 100644 --- a/packages/addons/service/multimedia/boblightd/meta +++ b/packages/addons/service/multimedia/boblightd/meta @@ -20,7 +20,7 @@ PKG_NAME="boblightd" PKG_VERSION="467" -PKG_REV="1" +PKG_REV="2" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://code.google.com/p/boblight" diff --git a/packages/addons/service/multimedia/tvheadend/changelog.txt b/packages/addons/service/multimedia/tvheadend/changelog.txt index 83c6c99f8b..77653a233a 100644 --- a/packages/addons/service/multimedia/tvheadend/changelog.txt +++ b/packages/addons/service/multimedia/tvheadend/changelog.txt @@ -1,3 +1,6 @@ +3.1.4 +- rebuild + 3.1.3 - update to TVHeadend 3.4.27 diff --git a/packages/addons/service/multimedia/tvheadend/meta b/packages/addons/service/multimedia/tvheadend/meta index 26b3b75277..2fac10ebb8 100644 --- a/packages/addons/service/multimedia/tvheadend/meta +++ b/packages/addons/service/multimedia/tvheadend/meta @@ -20,7 +20,7 @@ PKG_NAME="tvheadend" PKG_VERSION="3.4.27" -PKG_REV="3" +PKG_REV="4" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html" diff --git a/packages/addons/service/multimedia/vdr-addon/changelog.txt b/packages/addons/service/multimedia/vdr-addon/changelog.txt index 63569c77fd..dc50ea3399 100644 --- a/packages/addons/service/multimedia/vdr-addon/changelog.txt +++ b/packages/addons/service/multimedia/vdr-addon/changelog.txt @@ -1,3 +1,9 @@ +3.1.4 +- vdr-plugin-dvbapi: switch to libdvbcsa + +3.1.3 +- rebuild + 3.1.2 - fix unloading multiple modules on suspend diff --git a/packages/addons/service/multimedia/vdr-addon/meta b/packages/addons/service/multimedia/vdr-addon/meta index dfada03149..dc773653b2 100644 --- a/packages/addons/service/multimedia/vdr-addon/meta +++ b/packages/addons/service/multimedia/vdr-addon/meta @@ -21,7 +21,7 @@ PKG_NAME="vdr-addon" PKG_VERSION="3.1" -PKG_REV="2" +PKG_REV="4" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.openelec.tv" diff --git a/packages/databases/sqlite/package.mk b/packages/databases/sqlite/package.mk index 81c15b0dbc..ff45b25b7a 100644 --- a/packages/databases/sqlite/package.mk +++ b/packages/databases/sqlite/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="sqlite" -PKG_VERSION="autoconf-3071700" +PKG_VERSION="autoconf-3080002" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="PublicDomain" diff --git a/packages/debug/gdb/package.mk b/packages/debug/gdb/package.mk index 438f0dbfb3..d244dcaa1b 100644 --- a/packages/debug/gdb/package.mk +++ b/packages/debug/gdb/package.mk @@ -39,7 +39,7 @@ CC_FOR_BUILD="$HOST_CC" CFLAGS_FOR_BUILD="$HOST_CFLAGS" pre_configure_target() { - strip_gold + # gdb could fail on runtime if build with LTO support strip_lto } diff --git a/packages/debug/strace/package.mk b/packages/debug/strace/package.mk index 014cac7a50..78f04535a2 100644 --- a/packages/debug/strace/package.mk +++ b/packages/debug/strace/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="strace" -PKG_VERSION="4.7" +PKG_VERSION="4.8" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="BSD" diff --git a/packages/debug/strace/patches/strace-4.7-automake_1.13.patch b/packages/debug/strace/patches/strace-4.7-automake_1.13.patch deleted file mode 100644 index 7c42624ffd..0000000000 --- a/packages/debug/strace/patches/strace-4.7-automake_1.13.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur strace-4.7-old/configure.ac strace-4.7-new/configure.ac ---- strace-4.7-old/configure.ac 2012-05-02 05:34:56.000000000 -0700 -+++ strace-4.7-new/configure.ac 2013-01-03 21:01:04.000000000 -0800 -@@ -3,7 +3,7 @@ - AC_INIT([strace],[4.7]) - AC_CONFIG_SRCDIR([strace.c]) - AC_CONFIG_AUX_DIR([.]) --AM_CONFIG_HEADER([config.h]) -+AC_CONFIG_HEADERS([config.h]) - AM_INIT_AUTOMAKE([foreign check-news dist-xz no-dist-gzip silent-rules]) - AM_MAINTAINER_MODE - AC_CANONICAL_HOST diff --git a/packages/debug/strace/patches/strace-4.8-autoreconf.patch b/packages/debug/strace/patches/strace-4.8-autoreconf.patch new file mode 100644 index 0000000000..bf7efa09c6 --- /dev/null +++ b/packages/debug/strace/patches/strace-4.8-autoreconf.patch @@ -0,0 +1,13 @@ +diff -Naur strace-4.8/configure.ac strace-4.8.patch/configure.ac +--- strace-4.8/configure.ac 2013-05-04 21:51:57.000000000 +0200 ++++ strace-4.8.patch/configure.ac 2013-09-04 03:30:12.478057723 +0200 +@@ -1,8 +1,6 @@ + dnl Process this file with autoconf to create configure. Use autoreconf. + AC_PREREQ(2.57) +-AC_INIT([strace], +- m4_esyscmd([./git-version-gen .tarball-version]), +- [strace-devel@lists.sourceforge.net]) ++AC_INIT([strace],[4.8]) + AC_CONFIG_SRCDIR([strace.c]) + AC_CONFIG_AUX_DIR([.]) + AC_CONFIG_HEADERS([config.h]) diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 5094cfd3cb..0fcce65d9d 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="3ab17ac" +PKG_VERSION="d4f5315" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" diff --git a/packages/lang/Python/build b/packages/lang/Python/build index 44e1ee00e5..b186de0236 100755 --- a/packages/lang/Python/build +++ b/packages/lang/Python/build @@ -81,17 +81,16 @@ sed -e "s|^LIBDIR=.*|LIBDIR= $SYSROOT_PREFIX/usr/lib|" \ -i $SYSROOT_PREFIX/usr/lib/python*/config/Makefile EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib" -INCLUDE_DIRS="compiler ctypes ctypes/macholib distutils distutils/command email" -INCLUDE_DIRS="$INCLUDE_DIRS email/mime encodings hotshot importlib json logging" -INCLUDE_DIRS="$INCLUDE_DIRS multiprocessing plat-linux2 sqlite3 xml xml/dom xml/etree" -INCLUDE_DIRS="$INCLUDE_DIRS xml/parsers xml/sax wsgiref" +INCLUDE_DIRS="compiler ctypes distutils email" +INCLUDE_DIRS="$INCLUDE_DIRS encodings hotshot importlib json logging" +INCLUDE_DIRS="$INCLUDE_DIRS multiprocessing plat-linux2 sqlite3 xml" +INCLUDE_DIRS="$INCLUDE_DIRS wsgiref" mkdir -p ./Lib cp ../Lib/*.py ./Lib -for dirs in $INCLUDE_DIRS; do - mkdir -p ./Lib/$dirs - cp ../Lib/$dirs/*.py ./Lib/$dirs +for dir in $INCLUDE_DIRS; do + cp -a ../Lib/$dir ./Lib/ done python -Wi -t -B ../Lib/compileall.py ./Lib -f diff --git a/packages/lang/Python/meta b/packages/lang/Python/meta index 10c4f6ac56..df21b76267 100644 --- a/packages/lang/Python/meta +++ b/packages/lang/Python/meta @@ -31,6 +31,11 @@ PKG_PRIORITY="optional" PKG_SECTION="lang" PKG_SHORTDESC="python: The Python programming language" PKG_LONGDESC="Python is an interpreted object-oriented programming language, and is often compared with Tcl, Perl, Java or Scheme." -PKG_IS_ADDON="no" +PKG_IS_ADDON="no" PKG_AUTORECONF="no" + +if [ "$BLUETOOTH_SUPPORT" = "yes" ]; then + PKG_DEPENDS="$PKG_DEPENDS bluez" + PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS bluez" +fi diff --git a/packages/linux/meta b/packages/linux/meta index 49abf870e7..26b88371ae 100644 --- a/packages/linux/meta +++ b/packages/linux/meta @@ -34,7 +34,7 @@ case "$LINUX" in PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2" ;; *) - PKG_VERSION="3.10.9" + PKG_VERSION="3.10.10" PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz" ;; esac @@ -53,7 +53,7 @@ PKG_IS_ADDON="no" PKG_AUTORECONF="no" -if [ "$DEVTOOLS" = "yes" ]; then +if [ "$PERF_SUPPORT" = "yes" -a "$DEVTOOLS" = "yes" ]; then PKG_DEPENDS="$PKG_DEPENDS Python" PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS elfutils Python" fi diff --git a/packages/linux/patches/3.10.9/linux-003-no_dev_console.patch b/packages/linux/patches/3.10.10/linux-003-no_dev_console.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-003-no_dev_console.patch rename to packages/linux/patches/3.10.10/linux-003-no_dev_console.patch diff --git a/packages/linux/patches/3.10.9/linux-010-perf_crosscompiling.patch b/packages/linux/patches/3.10.10/linux-010-perf_crosscompiling.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-010-perf_crosscompiling.patch rename to packages/linux/patches/3.10.10/linux-010-perf_crosscompiling.patch diff --git a/packages/linux/patches/3.10.9/linux-052-XBOX_remote_support.patch b/packages/linux/patches/3.10.10/linux-052-XBOX_remote_support.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-052-XBOX_remote_support.patch rename to packages/linux/patches/3.10.10/linux-052-XBOX_remote_support.patch diff --git a/packages/linux/patches/3.10.9/linux-053-spinelplus-remote-0.2.patch b/packages/linux/patches/3.10.10/linux-053-spinelplus-remote-0.2.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-053-spinelplus-remote-0.2.patch rename to packages/linux/patches/3.10.10/linux-053-spinelplus-remote-0.2.patch diff --git a/packages/linux/patches/3.10.9/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch b/packages/linux/patches/3.10.10/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch rename to packages/linux/patches/3.10.10/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch diff --git a/packages/linux/patches/3.10.9/linux-055-add_Formosa_eHome_Infrared_Receiver.patch b/packages/linux/patches/3.10.10/linux-055-add_Formosa_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-055-add_Formosa_eHome_Infrared_Receiver.patch rename to packages/linux/patches/3.10.10/linux-055-add_Formosa_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/3.10.9/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch b/packages/linux/patches/3.10.10/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch rename to packages/linux/patches/3.10.10/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/3.10.9/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch b/packages/linux/patches/3.10.10/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch rename to packages/linux/patches/3.10.10/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch diff --git a/packages/linux/patches/3.10.9/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch b/packages/linux/patches/3.10.10/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch rename to packages/linux/patches/3.10.10/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch diff --git a/packages/linux/patches/3.10.9/linux-058.01-HID-Sony-upstream_patches.patch b/packages/linux/patches/3.10.10/linux-058.01-HID-Sony-upstream_patches.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-058.01-HID-Sony-upstream_patches.patch rename to packages/linux/patches/3.10.10/linux-058.01-HID-Sony-upstream_patches.patch diff --git a/packages/linux/patches/3.10.9/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/3.10.10/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch rename to packages/linux/patches/3.10.10/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch diff --git a/packages/linux/patches/3.10.9/linux-058.06-hid_sony-add_SMK_link.patch b/packages/linux/patches/3.10.10/linux-058.06-hid_sony-add_SMK_link.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-058.06-hid_sony-add_SMK_link.patch rename to packages/linux/patches/3.10.10/linux-058.06-hid_sony-add_SMK_link.patch diff --git a/packages/linux/patches/3.10.9/linux-059-remove_some_xpad_pids-0.2.patch b/packages/linux/patches/3.10.10/linux-059-remove_some_xpad_pids-0.2.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-059-remove_some_xpad_pids-0.2.patch rename to packages/linux/patches/3.10.10/linux-059-remove_some_xpad_pids-0.2.patch diff --git a/packages/linux/patches/3.10.9/linux-060-add_AUGUST_DVB-T205.patch b/packages/linux/patches/3.10.10/linux-060-add_AUGUST_DVB-T205.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-060-add_AUGUST_DVB-T205.patch rename to packages/linux/patches/3.10.10/linux-060-add_AUGUST_DVB-T205.patch diff --git a/packages/linux/patches/3.10.9/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/3.10.10/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/3.10.10/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/3.10.9/linux-210-dvbsky.patch b/packages/linux/patches/3.10.10/linux-210-dvbsky.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-210-dvbsky.patch rename to packages/linux/patches/3.10.10/linux-210-dvbsky.patch diff --git a/packages/linux/patches/3.10.9/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/3.10.10/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/3.10.10/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/3.10.9/linux-221-ngene-octopus.patch b/packages/linux/patches/3.10.10/linux-221-ngene-octopus.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-221-ngene-octopus.patch rename to packages/linux/patches/3.10.10/linux-221-ngene-octopus.patch diff --git a/packages/linux/patches/3.10.9/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/3.10.10/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/3.10.10/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/3.10.9/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch b/packages/linux/patches/3.10.10/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch rename to packages/linux/patches/3.10.10/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch diff --git a/packages/linux/patches/3.10.9/linux-700-jmicron_1_0_8_5.patch b/packages/linux/patches/3.10.10/linux-700-jmicron_1_0_8_5.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-700-jmicron_1_0_8_5.patch rename to packages/linux/patches/3.10.10/linux-700-jmicron_1_0_8_5.patch diff --git a/packages/linux/patches/3.10.9/linux-701-linksys_aes2500_brcmfmac.patch b/packages/linux/patches/3.10.10/linux-701-linksys_aes2500_brcmfmac.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-701-linksys_aes2500_brcmfmac.patch rename to packages/linux/patches/3.10.10/linux-701-linksys_aes2500_brcmfmac.patch diff --git a/packages/linux/patches/3.10.9/linux-702-Support-for-cheap-Ralink-3070-WiFi-plug.patch b/packages/linux/patches/3.10.10/linux-702-Support-for-cheap-Ralink-3070-WiFi-plug.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-702-Support-for-cheap-Ralink-3070-WiFi-plug.patch rename to packages/linux/patches/3.10.10/linux-702-Support-for-cheap-Ralink-3070-WiFi-plug.patch diff --git a/packages/linux/patches/3.10.9/linux-703-macmini2012-ethernet.patch b/packages/linux/patches/3.10.10/linux-703-macmini2012-ethernet.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-703-macmini2012-ethernet.patch rename to packages/linux/patches/3.10.10/linux-703-macmini2012-ethernet.patch diff --git a/packages/linux/patches/3.10.9/linux-900-hide_tsc_error.patch b/packages/linux/patches/3.10.10/linux-900-hide_tsc_error.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-900-hide_tsc_error.patch rename to packages/linux/patches/3.10.10/linux-900-hide_tsc_error.patch diff --git a/packages/linux/patches/3.10.9/linux-950-saa716x_PCIe_interface_chipset.patch b/packages/linux/patches/3.10.10/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-950-saa716x_PCIe_interface_chipset.patch rename to packages/linux/patches/3.10.10/linux-950-saa716x_PCIe_interface_chipset.patch diff --git a/packages/linux/patches/3.10.9/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch b/packages/linux/patches/3.10.10/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch rename to packages/linux/patches/3.10.10/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch diff --git a/packages/linux/patches/3.10.10/linux-990.07-ALSA-hda-hdmi-Fallback-to-ALSA-allocation-when-selec.patch b/packages/linux/patches/3.10.10/linux-990.07-ALSA-hda-hdmi-Fallback-to-ALSA-allocation-when-selec.patch new file mode 100644 index 0000000000..5cf8c11d06 --- /dev/null +++ b/packages/linux/patches/3.10.10/linux-990.07-ALSA-hda-hdmi-Fallback-to-ALSA-allocation-when-selec.patch @@ -0,0 +1,70 @@ +From d0929f7068e8025a3d9ccf5dd7bea8dc0d887a49 Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +Date: Sun, 1 Sep 2013 13:01:09 +0300 +Subject: [PATCH] ALSA: hda - hdmi: Fallback to ALSA allocation when selecting + CA +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +hdmi_channel_allocation() tries to find a HDMI channel allocation that +matches the number channels in the playback stream and contains only +speakers that the HDMI sink has reported as available via EDID. If no +such allocation is found, 0 (stereo audio) is used. + +Using CA 0 causes the audio causes the sink to discard everything except +the first two channels (front left and front right). + +However, the sink may be capable of receiving more channels than it has +speakers (and then perform downmix or discard the extra channels), in +which case it is preferable to use a CA that contains extra channels +than to use CA 0 which discards all the non-stereo channels. + +Additionally, it seems that HBR passthrough output does not work on +Intel HDMI codecs when CA is set to 0 (possibly the codec zeroes +channels not present in CA). This happens with all receivers that report +a 5.1 speaker mask since a HBR stream is carried on 8 channels to the +codec. + +Add a fallback in the CA selection so that the CA channel count at least +matches the stream channel count, even if the streams contains channels +not present in the sink speaker descriptor. + +Thanks to GrimGriefer at OpenELEC forums for discovering that changing +the sink speaker mask allowed HBR output. + +Reported-by: GrimGriefer +Reported-by: Ashecrow +Reported-by: Frank Zafka +Reported-by: Peter Frühberger +Signed-off-by: Anssi Hannula +Cc: +--- + sound/pci/hda/patch_hdmi.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c +index 030ca86..354fc55 100644 +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -551,6 +551,17 @@ static int hdmi_channel_allocation(struct hdmi_eld *eld, int channels) + } + } + ++ if (!ca) { ++ /* if there was no match, select the regular ALSA channel ++ * allocation with the matching number of channels */ ++ for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) { ++ if (channels == channel_allocations[i].channels) { ++ ca = channel_allocations[i].ca_index; ++ break; ++ } ++ } ++ } ++ + snd_print_channel_allocation(eld->info.spk_alloc, buf, sizeof(buf)); + snd_printdd("HDMI: select CA 0x%x for %d-channel allocation: %s\n", + ca, channels, buf); +-- +1.8.1.5 + diff --git a/packages/linux/patches/3.10.9/linux-995-CX24120-13Z_frontend.patch b/packages/linux/patches/3.10.10/linux-995-CX24120-13Z_frontend.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-995-CX24120-13Z_frontend.patch rename to packages/linux/patches/3.10.10/linux-995-CX24120-13Z_frontend.patch diff --git a/packages/linux/patches/3.10.9/linux-998.01-cpufreq-revert-9d3ce4af3be0235d4cf41ea9fd774205a32e58a2.patch b/packages/linux/patches/3.10.10/linux-998.01-cpufreq-revert-9d3ce4af3be0235d4cf41ea9fd774205a32e58a2.patch similarity index 100% rename from packages/linux/patches/3.10.9/linux-998.01-cpufreq-revert-9d3ce4af3be0235d4cf41ea9fd774205a32e58a2.patch rename to packages/linux/patches/3.10.10/linux-998.01-cpufreq-revert-9d3ce4af3be0235d4cf41ea9fd774205a32e58a2.patch diff --git a/packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch b/packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch new file mode 100644 index 0000000000..3a54be72e6 --- /dev/null +++ b/packages/linux/patches/3.10.10/linux-999.01-smsdvb-fix-kernel-panic-on-inserting-DVB-T-stick.patch @@ -0,0 +1,94 @@ +From d78a0599d5b5d4da384eae08bf7da316389dfbe5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= +Date: Wed, 14 Aug 2013 10:24:39 +0200 +Subject: [PATCH] [media] siano: fix divide error on 0 counters +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ts_packets and ets_packets counters can be 0. Don't fall over +if they are. Fixes: + +[ 846.851711] divide error: 0000 [#1] SMP +[ 846.851806] Modules linked in: smsdvb dvb_core ir_lirc_codec lirc_dev ir_sanyo_decoder ir_mce_kbd_decoder ir_sony_decoder ir_jvc_decoder ir_rc6_decoder ir_rc5_decoder ir_nec_decoder rc_hauppauge smsusb smsmdtv rc_core pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) parport_pc ppdev lp parport cpufreq_userspace cpufreq_powersave cpufreq_stats cpufreq_conservative rfcomm bnep binfmt_misc uinput nfsd auth_rpcgss oid_registry nfs_acl nfs lockd dns_resolver fscache sunrpc ext4 jbd2 fuse tp_smapi(O) thinkpad_ec(O) loop firewire_sbp2 dm_crypt snd_hda_codec_conexant snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm thinkpad_acpi nvram snd_page_alloc hid_generic snd_seq_midi snd_seq_midi_event arc4 usbhid snd_rawmidi uvcvideo hid iwldvm coretemp kvm_intel mac8021 + 1 cdc_wdm +[ 846.853477] cdc_acm snd_seq videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media kvm radeon r852 ttm joydev cdc_ether usbnet pcmcia mii sm_common nand btusb drm_kms_helper tpm_tis acpi_cpufreq bluetooth iwlwifi nand_ecc drm nand_ids i2c_i801 mtd snd_seq_device iTCO_wdt iTCO_vendor_support r592 memstick lpc_ich mperf tpm yenta_socket pcmcia_rsrc pcmcia_core cfg80211 snd_timer snd pcspkr i2c_algo_bit crc16 i2c_core tpm_bios processor mfd_core wmi psmouse mei_me rfkill mei serio_raw soundcore evdev battery button video ac microcode ext3 mbcache jbd md_mod dm_mirror dm_region_hash dm_log dm_mod sg sr_mod sd_mod cdrom crc_t10dif firewire_ohci sdhci_pci sdhci mmc_core firewire_core crc_itu_t thermal thermal_sys ahci libahci ehci_pci uhci_hcd ehci_hcd libata scsi_mod usbcore e1000 + e usb_common +[ 846.855310] ptp pps_core +[ 846.855356] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 3.10-2-amd64 #1 Debian 3.10.5-1 +[ 846.855490] Hardware name: LENOVO 4061WFA/4061WFA, BIOS 6FET92WW (3.22 ) 12/14/2011 +[ 846.855609] task: ffffffff81613400 ti: ffffffff81600000 task.ti: ffffffff81600000 +[ 846.855636] RIP: 0010:[] [] smsdvb_onresponse+0x264/0xa86 [smsdvb] +[ 846.863906] RSP: 0018:ffff88013bc03cf0 EFLAGS: 00010046 +[ 846.863906] RAX: 0000000000000000 RBX: ffff880133bf6000 RCX: 0000000000000000 +[ 846.863906] RDX: 0000000000000000 RSI: ffff88005d3b58c0 RDI: ffff880133bf6000 +[ 846.863906] RBP: ffff88005d1da000 R08: 0000000000000058 R09: 0000000000000015 +[ 846.863906] R10: 0000000000001a0d R11: 000000000000021a R12: ffff88005d3b58c0 +[ 846.863906] R13: ffff88005d1da008 R14: 00000000ffffff8d R15: ffff880036cf5060 +[ 846.863906] FS: 0000000000000000(0000) GS:ffff88013bc00000(0000) knlGS:0000000000000000 +[ 846.863906] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b +[ 846.863906] CR2: 00007f3a4b69ae50 CR3: 0000000036dac000 CR4: 00000000000407f0 +[ 846.863906] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 +[ 846.863906] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 +[ 846.863906] Stack: +[ 846.863906] ffff88007a102000 ffff88005d1da000 ffff88005d3b58c0 0000000000085824 +[ 846.863906] ffffffffa08c5aa3 ffff88005d1da000 ffff8800a6907390 ffff8800a69073b0 +[ 846.863906] ffff8800a6907000 ffffffffa08b642c 000000000000021a ffff8800a69073b0 +[ 846.863906] Call Trace: +[ 846.863906] +[ 846.863906] +[ 846.863906] [] ? smscore_onresponse+0x1d5/0x353 [smsmdtv] +[ 846.863906] [] ? smsusb_onresponse+0x146/0x192 [smsusb] +[ 846.863906] [] ? usb_hcd_giveback_urb+0x6c/0xac [usbcore] +[ 846.863906] [] ? ehci_urb_done+0x62/0x72 [ehci_hcd] +[ 846.863906] [] ? qh_completions+0x91/0x364 [ehci_hcd] +[ 846.863906] [] ? ehci_work+0x8a/0x68e [ehci_hcd] +[ 846.863906] [] ? timekeeping_get_ns.constprop.10+0xd/0x31 +[ 846.863906] [] ? update_cfs_rq_blocked_load+0xde/0xec +[ 846.863906] [] ? run_posix_cpu_timers+0x25/0x575 +[ 846.863906] [] ? ehci_irq+0x211/0x23d [ehci_hcd] +[ 846.863906] [] ? usb_hcd_irq+0x31/0x48 [usbcore] +[ 846.863906] [] ? handle_irq_event_percpu+0x49/0x1a4 +[ 846.863906] [] ? handle_irq_event+0x32/0x4b +[ 846.863906] [] ? handle_fasteoi_irq+0x80/0xb6 +[ 846.863906] [] ? handle_irq+0x18/0x20 +[ 846.863906] [] ? do_IRQ+0x40/0x95 +[ 846.863906] [] ? common_interrupt+0x6d/0x6d +[ 846.863906] +[ 846.863906] +[ 846.863906] [] ? arch_local_irq_enable+0x4/0x8 +[ 846.863906] [] ? cpuidle_enter_state+0x52/0xc1 +[ 846.863906] [] ? cpuidle_idle_call+0xd4/0x143 +[ 846.863906] [] ? arch_cpu_idle+0x5/0x17 +[ 846.863906] [] ? cpu_startup_entry+0x10d/0x187 +[ 846.863906] [] ? start_kernel+0x3e8/0x3f3 +[ 846.863906] [] ? repair_env_string+0x54/0x54 +[ 846.863906] [] ? x86_64_start_kernel+0xf2/0xfd +[ 846.863906] Code: 25 09 00 00 c6 83 da 08 00 00 03 8b 45 54 48 01 83 b6 08 00 00 8b 45 50 48 01 83 db 08 00 00 8b 4d 18 69 c1 ff ff 00 00 03 4d 14 <48> f7 f1 89 83 a8 09 00 00 e9 68 fe ff ff 48 8b 7f 10 e8 79 92 +[ 846.863906] RIP [] smsdvb_onresponse+0x264/0xa86 [smsdvb] +[ 846.863906] RSP + +Reported-by: Johannes Rohr +Reference: http://bugs.debian.org/719623 +Cc: Mauro Carvalho Chehab +Signed-off-by: Bj?rn Mork +--- + drivers/media/common/siano/smsdvb-main.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/common/siano/smsdvb-main.c b/drivers/media/common/siano/smsdvb-main.c +index 0862622..63676a8 100644 +--- a/drivers/media/common/siano/smsdvb-main.c ++++ b/drivers/media/common/siano/smsdvb-main.c +@@ -276,7 +276,8 @@ static void smsdvb_update_per_slices(struct smsdvb_client_t *client, + + /* Legacy PER/BER */ + tmp = p->ets_packets * 65535; +- do_div(tmp, p->ts_packets + p->ets_packets); ++ if (p->ts_packets + p->ets_packets) ++ do_div(tmp, p->ts_packets + p->ets_packets); + client->legacy_per = tmp; + } + +-- +1.7.10.4 diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index 646db65d53..be56c09879 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/meta +++ b/packages/mediacenter/xbmc-theme-Confluence/meta @@ -19,9 +19,9 @@ ################################################################################ PKG_NAME="xbmc-theme-Confluence" -PKG_VERSION="12.2-18397e1" +PKG_VERSION="12.2-71eb528" if [ "$XBMC" = "master" ]; then - PKG_VERSION="13.alpha-0efa87e" + PKG_VERSION="13.alpha-2435cf3" elif [ "$XBMC" = "xbmc-aml" ]; then PKG_VERSION="aml-frodo-d9119f2" fi diff --git a/packages/mediacenter/xbmc/package.mk b/packages/mediacenter/xbmc/package.mk index 02956393ce..a217b9e46d 100644 --- a/packages/mediacenter/xbmc/package.mk +++ b/packages/mediacenter/xbmc/package.mk @@ -19,9 +19,9 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="12.2-18397e1" +PKG_VERSION="12.2-71eb528" if [ "$XBMC" = "master" ]; then - PKG_VERSION="13.alpha-0efa87e" + PKG_VERSION="13.alpha-2435cf3" elif [ "$XBMC" = "xbmc-aml" ]; then PKG_VERSION="aml-frodo-d9119f2" fi @@ -342,6 +342,12 @@ else XBMC_CRYSTALHD="--disable-crystalhd" fi +export CXX_FOR_BUILD="$HOST_CXX" +export CC_FOR_BUILD="$HOST_CC" +export CXXFLAGS_FOR_BUILD="$HOST_CXXFLAGS" +export CFLAGS_FOR_BUILD="$HOST_CFLAGS" +export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS" + export PYTHON_VERSION="2.7" export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION" export PYTHON_LDFLAGS="-L$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION -lpython$PYTHON_VERSION" @@ -381,6 +387,7 @@ PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \ $XBMC_NFS \ $XBMC_AFP \ $XBMC_VORBISENC \ + --disable-libcap \ --enable-ffmpeg-libvorbis \ $XBMC_LAMEENC \ $XBMC_DVDCSS \ diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-990.27-PR2232.patch.bk b/packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-990.27-PR2232.patch.bk deleted file mode 100644 index fff3c4477f..0000000000 --- a/packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-990.27-PR2232.patch.bk +++ /dev/null @@ -1,746 +0,0 @@ -From 1a93a46fe38c926ccd7658ce6f8c827d0491c117 Mon Sep 17 00:00:00 2001 -From: stupid-boy -Date: Wed, 13 Feb 2013 23:47:07 +0200 -Subject: [PATCH 1/2] [OMXPlayer] Both HDMI and Analog output - ---- - xbmc/cores/omxplayer/OMXAudio.cpp | 407 +++++++++++++++++++++++++------- - xbmc/cores/omxplayer/OMXAudio.h | 12 +- - xbmc/cores/omxplayer/OMXPlayerAudio.cpp | 9 +- - xbmc/settings/GUISettings.cpp | 2 + - xbmc/settings/GUISettings.h | 3 + - 5 files changed, 341 insertions(+), 92 deletions(-) - -diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp -index 10c3329..1470685 100644 ---- a/xbmc/cores/omxplayer/OMXAudio.cpp -+++ b/xbmc/cores/omxplayer/OMXAudio.cpp -@@ -111,8 +111,7 @@ - m_eEncoding (OMX_AUDIO_CodingPCM), - m_extradata (NULL ), - m_extrasize (0 ), -- m_last_pts (DVD_NOPTS_VALUE), -- m_omx_render (NULL ) -+ m_last_pts (DVD_NOPTS_VALUE) - { - m_vizBufferSize = m_vizRemapBufferSize = VIS_PACKET_SIZE * sizeof(float); - m_vizRemapBuffer = (uint8_t *)_aligned_malloc(m_vizRemapBufferSize,16); -@@ -161,7 +160,7 @@ CAEChannelInfo COMXAudio::GetChannelLayout(AEAudioFormat format) - return info; - } - --bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock *clock, CDVDStreamInfo &hints, bool bUsePassthrough, bool bUseHWDecode) -+bool COMXAudio::Initialize(AEAudioFormat format, OMXClock *clock, CDVDStreamInfo &hints, bool bUsePassthrough, bool bUseHWDecode) - { - Deinitialize(); - -@@ -320,32 +319,62 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * - - componentName = "OMX.broadcom.audio_render"; - -- if(!m_omx_render) -- m_omx_render = new COMXCoreComponent(); -- if(!m_omx_render) -+ std::string device = ""; -+ -+ if((g_guiSettings.GetInt("audiooutput.mode") == AUDIO_HDMI) || -+ (g_guiSettings.GetInt("audiooutput.mode") == AUDIO_BOTH)) - { -- CLog::Log(LOGERROR, "COMXAudio::Initialize error allocate OMX.broadcom.audio_render\n"); -- return false; -+ device = "hdmi"; -+ if(!m_omx_render_HDMI.Initialize((const std::string)componentName, OMX_IndexParamAudioInit)) -+ return false; -+ -+ OMX_CONFIG_BRCMAUDIODESTINATIONTYPE audioDest; -+ OMX_INIT_STRUCTURE(audioDest); -+ strncpy((char *)audioDest.sName, device.c_str(), strlen(device.c_str())); -+ -+ omx_err = m_omx_render_HDMI.SetConfig(OMX_IndexConfigBrcmAudioDestination, &audioDest); -+ if (omx_err != OMX_ErrorNone) -+ return false; -+ -+ OMX_CONFIG_BOOLEANTYPE configBool; -+ OMX_INIT_STRUCTURE(configBool); -+ configBool.bEnabled = OMX_FALSE; -+ -+ omx_err = m_omx_render_HDMI.SetConfig(OMX_IndexConfigBrcmClockReferenceSource, &configBool); -+ if (omx_err != OMX_ErrorNone) -+ return false; - } - -- if(!m_omx_render->Initialize((const std::string)componentName, OMX_IndexParamAudioInit)) -- return false; -+ if((g_guiSettings.GetInt("audiooutput.mode") == AUDIO_ANALOG) || -+ (g_guiSettings.GetInt("audiooutput.mode") == AUDIO_BOTH)) -+ { -+ device = "local"; -+ if(!m_omx_render_analog.Initialize((const std::string)componentName, OMX_IndexParamAudioInit)) -+ return false; - -- OMX_CONFIG_BRCMAUDIODESTINATIONTYPE audioDest; -- OMX_INIT_STRUCTURE(audioDest); -- strncpy((char *)audioDest.sName, device.c_str(), strlen(device.c_str())); -+ OMX_CONFIG_BRCMAUDIODESTINATIONTYPE audioDest; -+ OMX_INIT_STRUCTURE(audioDest); -+ strncpy((char *)audioDest.sName, device.c_str(), strlen(device.c_str())); - -- omx_err = m_omx_render->SetConfig(OMX_IndexConfigBrcmAudioDestination, &audioDest); -- if (omx_err != OMX_ErrorNone) -- return false; -+ omx_err = m_omx_render_analog.SetConfig(OMX_IndexConfigBrcmAudioDestination, &audioDest); -+ if (omx_err != OMX_ErrorNone) -+ return false; - -- OMX_CONFIG_BOOLEANTYPE configBool; -- OMX_INIT_STRUCTURE(configBool); -- configBool.bEnabled = OMX_FALSE; -+ OMX_CONFIG_BOOLEANTYPE configBool; -+ OMX_INIT_STRUCTURE(configBool); -+ configBool.bEnabled = OMX_FALSE; - -- omx_err = m_omx_render->SetConfig(OMX_IndexConfigBrcmClockReferenceSource, &configBool); -- if (omx_err != OMX_ErrorNone) -- return false; -+ omx_err = m_omx_render_analog.SetConfig(OMX_IndexConfigBrcmClockReferenceSource, &configBool); -+ if (omx_err != OMX_ErrorNone) -+ return false; -+ } -+ -+ if(g_guiSettings.GetInt("audiooutput.mode") == AUDIO_BOTH) -+ { -+ componentName = "OMX.broadcom.audio_splitter"; -+ if(!m_omx_splitter.Initialize((const std::string)componentName, OMX_IndexParamAudioInit)) -+ return false; -+ } - - componentName = "OMX.broadcom.audio_decode"; - if(!m_omx_decoder.Initialize((const std::string)componentName, OMX_IndexParamAudioInit)) -@@ -411,13 +440,30 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * - } - } - -- m_omx_tunnel_clock.Initialize(m_omx_clock, m_omx_clock->GetInputPort(), m_omx_render, m_omx_render->GetInputPort()+1); -+ if( m_omx_render_analog.IsInitialized()) -+ { -+ m_omx_tunnel_clock_analog.Initialize(m_omx_clock, m_omx_clock->GetInputPort(), -+ &m_omx_render_analog, m_omx_render_analog.GetInputPort()+1); - -- omx_err = m_omx_tunnel_clock.Establish(false); -- if(omx_err != OMX_ErrorNone) -+ omx_err = m_omx_tunnel_clock_analog.Establish(false, true); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize m_omx_tunnel_clock_analog.Establish\n"); -+ return false; -+ } -+ } -+ -+ if( m_omx_render_HDMI.IsInitialized()) - { -- CLog::Log(LOGERROR, "COMXAudio::Initialize m_omx_tunnel_clock.Establish\n"); -- return false; -+ m_omx_tunnel_clock_HDMI.Initialize(m_omx_clock, m_omx_clock->GetInputPort()+ ( m_omx_render_analog.IsInitialized() ? 2 : 0), -+ &m_omx_render_HDMI, m_omx_render_HDMI.GetInputPort()+1); -+ -+ omx_err = m_omx_tunnel_clock_HDMI.Establish(false, true); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize m_omx_tunnel_clock_HDMI.Establish\n"); -+ return false; -+ } - } - - omx_err = m_omx_decoder.AllocInputBuffers(); -@@ -443,12 +489,56 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * - return false; - } - -- m_omx_tunnel_mixer.Initialize(&m_omx_mixer, m_omx_mixer.GetOutputPort(), m_omx_render, m_omx_render->GetInputPort()); -- omx_err = m_omx_tunnel_mixer.Establish(false); -- if(omx_err != OMX_ErrorNone) -+ if(g_guiSettings.GetInt("audiooutput.mode") == AUDIO_ANALOG) - { -- CLog::Log(LOGERROR, "COMXAudio::Initialize - Error m_omx_tunnel_decoder.Establish 0x%08x", omx_err); -- return false; -+ m_omx_tunnel_mixer.Initialize(&m_omx_mixer, m_omx_mixer.GetOutputPort(), -+ &m_omx_render_analog, m_omx_render_analog.GetInputPort()); -+ omx_err = m_omx_tunnel_mixer.Establish(false); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error m_omx_tunnel_decoder.Establish 0x%08x", omx_err); -+ return false; -+ } -+ } -+ else if (g_guiSettings.GetInt("audiooutput.mode") == AUDIO_HDMI) -+ { -+ m_omx_tunnel_mixer.Initialize(&m_omx_mixer, m_omx_mixer.GetOutputPort(), -+ &m_omx_render_HDMI, m_omx_render_HDMI.GetInputPort()); -+ omx_err = m_omx_tunnel_mixer.Establish(false); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error m_omx_tunnel_decoder.Establish 0x%08x", omx_err); -+ return false; -+ } -+ } -+ else // AUDIO_BOTH -+ { -+ m_omx_tunnel_mixer.Initialize(&m_omx_mixer, m_omx_mixer.GetOutputPort(), -+ &m_omx_splitter, m_omx_splitter.GetInputPort()); -+ omx_err = m_omx_tunnel_mixer.Establish(false); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error m_omx_tunnel_mixer.Establish 0x%08x", omx_err); -+ return false; -+ } -+ -+ m_omx_tunnel_splitter_analog.Initialize(&m_omx_splitter, m_omx_splitter.GetOutputPort(), -+ &m_omx_render_analog, m_omx_render_analog.GetInputPort()); -+ omx_err = m_omx_tunnel_splitter_analog.Establish(false); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error m_omx_tunnel_splitter_analog.Establish 0x%08x", omx_err); -+ return false; -+ } -+ -+ m_omx_tunnel_splitter_HDMI.Initialize(&m_omx_splitter, m_omx_splitter.GetOutputPort() + 1, -+ &m_omx_render_HDMI, m_omx_render_HDMI.GetInputPort()); -+ omx_err = m_omx_tunnel_splitter_HDMI.Establish(false); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error m_omx_tunnel_splitter_HDMI.Establish 0x%08x", omx_err); -+ return false; -+ } - } - - omx_err = m_omx_mixer.SetStateForComponent(OMX_StateExecuting); -@@ -459,7 +549,9 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * - } - else - { -- m_omx_tunnel_decoder.Initialize(&m_omx_decoder, m_omx_decoder.GetOutputPort(), m_omx_render, m_omx_render->GetInputPort()); -+ // Passthrough work only for HDMI -+ m_omx_tunnel_decoder.Initialize(&m_omx_decoder, m_omx_decoder.GetOutputPort(), -+ &m_omx_render_HDMI, m_omx_render_HDMI.GetInputPort()); - omx_err = m_omx_tunnel_decoder.Establish(false); - if(omx_err != OMX_ErrorNone) - { -@@ -474,11 +566,34 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * - } - } - -- omx_err = m_omx_render->SetStateForComponent(OMX_StateExecuting); -- if(omx_err != OMX_ErrorNone) -+ if ( m_omx_splitter.IsInitialized()) - { -- CLog::Log(LOGERROR, "COMXAudio::Initialize - Error setting OMX_StateExecuting 0x%08x", omx_err); -- return false; -+ omx_err = m_omx_splitter.SetStateForComponent(OMX_StateExecuting); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error setting OMX_StateExecuting 0x%08x for m_omx_splitter", omx_err); -+ return false; -+ } -+ } -+ -+ if ( m_omx_render_analog.IsInitialized()) -+ { -+ omx_err = m_omx_render_analog.SetStateForComponent(OMX_StateExecuting); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error setting OMX_StateExecuting 0x%08x for m_omx_render_analog", omx_err); -+ return false; -+ } -+ } -+ -+ if ( m_omx_render_HDMI.IsInitialized()) -+ { -+ omx_err = m_omx_render_HDMI.SetStateForComponent(OMX_StateExecuting); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::Initialize - Error setting OMX_StateExecuting 0x%08x for m_omx_render_HDMI", omx_err); -+ return false; -+ } - } - - m_omx_decoder.EnablePort(m_omx_decoder.GetInputPort(), true); -@@ -570,9 +685,12 @@ bool COMXAudio::Deinitialize() - m_omx_tunnel_decoder.Flush(); - if(!m_Passthrough) - m_omx_tunnel_mixer.Flush(); -- m_omx_tunnel_clock.Flush(); - -- m_omx_tunnel_clock.Deestablish(); -+ m_omx_tunnel_clock_analog.Flush(); -+ m_omx_tunnel_clock_HDMI.Flush(); -+ m_omx_tunnel_clock_analog.Deestablish(); -+ m_omx_tunnel_clock_HDMI.Deestablish(); -+ - if(!m_Passthrough) - { - // workaround for the strange BCM mixer component -@@ -587,8 +705,16 @@ bool COMXAudio::Deinitialize() - - m_omx_decoder.FlushInput(); - -- if(m_omx_render) -- m_omx_render->Deinitialize(true); -+ m_omx_tunnel_splitter_analog.Flush(); -+ m_omx_tunnel_splitter_analog.Deestablish(true); -+ m_omx_tunnel_splitter_HDMI.Flush(); -+ m_omx_tunnel_splitter_HDMI.Deestablish(true); -+ -+ m_omx_splitter.Deinitialize(true); -+ -+ m_omx_render_analog.Deinitialize(true); -+ m_omx_render_HDMI.Deinitialize(true); -+ - if(!m_Passthrough) - m_omx_mixer.Deinitialize(true); - m_omx_decoder.Deinitialize(true); -@@ -613,9 +739,6 @@ bool COMXAudio::Deinitialize() - m_first_frame = true; - m_last_pts = DVD_NOPTS_VALUE; - -- delete m_omx_render; -- m_omx_render = NULL; -- - return true; - } - -@@ -696,7 +819,7 @@ void COMXAudio::Mute(bool bMute) - //*********************************************************************************************** - bool COMXAudio::SetCurrentVolume(float fVolume) - { -- CSingleLock lock (m_critSection); -+CSingleLock lock (m_critSection); - - if(!m_Initialized || m_Passthrough) - return false; -@@ -754,22 +877,39 @@ bool COMXAudio::SetCurrentVolume(float fVolume) - { - OMX_AUDIO_CONFIG_VOLUMETYPE volume; - OMX_INIT_STRUCTURE(volume); -- volume.nPortIndex = m_omx_render->GetInputPort(); -+ OMX_ERRORTYPE omx_err; - - volume.bLinear = OMX_TRUE; - float hardwareVolume = fVolume * gain * 100.0f; - volume.sVolume.nValue = (int)(hardwareVolume + 0.5f); - -- OMX_ERRORTYPE omx_err = -- m_omx_render->SetConfig(OMX_IndexConfigAudioVolume, &volume); -- if(omx_err != OMX_ErrorNone) -+ if(m_omx_render_analog.IsInitialized()) - { -- CLog::Log(LOGERROR, "%s::%s - error setting OMX_IndexConfigAudioVolume, error 0x%08x\n", -+ volume.nPortIndex = m_omx_render_analog.GetInputPort(); -+ omx_err = m_omx_render_analog.SetConfig(OMX_IndexConfigAudioVolume, &volume); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "%s::%s - error setting OMX_IndexConfigAudioVolume, error 0x%08x for m_omx_render_analog\n", - CLASSNAME, __func__, omx_err); -- return false; -+ return false; -+ } -+ } -+ if(m_omx_render_HDMI.IsInitialized()) -+ { -+ volume.nPortIndex = m_omx_render_HDMI.GetInputPort(); -+ omx_err = m_omx_render_HDMI.SetConfig(OMX_IndexConfigAudioVolume, &volume); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "%s::%s - error setting OMX_IndexConfigAudioVolume, error 0x%08x for m_omx_render_HDMI\n", -+ CLASSNAME, __func__, omx_err); -+ return false; -+ } - } -+ - } - return true; -+ -+ return true; - } - - -@@ -927,7 +1067,18 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - m_first_frame = false; - //m_omx_render.WaitForEvent(OMX_EventPortSettingsChanged); - -- m_omx_render->DisablePort(m_omx_render->GetInputPort(), false); -+ if(m_omx_render_analog.IsInitialized()) -+ m_omx_render_analog.DisablePort(m_omx_render_analog.GetInputPort(), false); -+ if(m_omx_render_HDMI.IsInitialized()) -+ m_omx_render_HDMI.DisablePort(m_omx_render_HDMI.GetInputPort(), false); -+ -+ if(m_omx_splitter.IsInitialized()) -+ { -+ m_omx_splitter.DisablePort(m_omx_splitter.GetOutputPort(), false); -+ m_omx_splitter.DisablePort(m_omx_splitter.GetOutputPort()+1, false); -+ m_omx_splitter.DisablePort(m_omx_splitter.GetInputPort(), false); -+ } -+ - if(!m_Passthrough) - { - m_omx_mixer.DisablePort(m_omx_mixer.GetOutputPort(), false); -@@ -965,6 +1116,11 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - } - - m_pcm_output.nSamplingRate = m_format.m_sampleRate; -+ // "Currently this component only supports raw PCM on all audio ports." -+ if(m_omx_splitter.IsInitialized()) -+ { -+ m_pcm_output.ePCMMode = OMX_AUDIO_PCMModeLinear; -+ } - - /* setup mixer output */ - m_pcm_output.nPortIndex = m_omx_mixer.GetOutputPort(); -@@ -981,16 +1137,64 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - - m_pcm_output.nSamplingRate = m_format.m_sampleRate; - -- m_pcm_output.nPortIndex = m_omx_render->GetInputPort(); -- omx_err = m_omx_render->SetParameter(OMX_IndexParamAudioPcm, &m_pcm_output); -- if(omx_err != OMX_ErrorNone) -+ if(m_omx_splitter.IsInitialized()) - { -- CLog::Log(LOGERROR, "COMXAudio::AddPackets error SetParameter 1 render omx_err(0x%08x)\n", omx_err); -+ m_pcm_output.nPortIndex = m_omx_splitter.GetInputPort(); -+ omx_err = m_omx_splitter.SetParameter(OMX_IndexParamAudioPcm, &m_pcm_output); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::AddPackets error SetParameter 1 omx_err(0x%08x) for m_omx_splitter\n", omx_err); -+ } -+ -+ -+ // Splitter will copy input params to output when input port is enabled. -+ omx_err = m_omx_splitter.SetStateForComponent(OMX_StateIdle); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::AddPackets - Error setting OMX_StateIdle 0x%08x for m_omx_splitter", omx_err); -+ return false; -+ } -+ -+ m_omx_splitter.EnablePort(m_omx_splitter.GetInputPort(), false); -+ m_omx_splitter.DisablePort(m_omx_splitter.GetInputPort(), false); -+ -+ omx_err = m_omx_splitter.SetStateForComponent(OMX_StateExecuting); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::AddPackets - Error setting OMX_StateExecuting 0x%08x for m_omx_splitter", omx_err); -+ return false; -+ } -+ -+ m_pcm_output.nPortIndex = m_omx_splitter.GetOutputPort(); -+ omx_err = m_omx_splitter.GetParameter(OMX_IndexParamAudioPcm, &m_pcm_output); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::AddPackets error GetParameter 3 omx_err(0x%08x) for m_omx_splitter\n", omx_err); -+ } -+ -+ m_pcm_output.nSamplingRate = m_format.m_sampleRate; - } -- omx_err = m_omx_render->GetParameter(OMX_IndexParamAudioPcm, &m_pcm_output); -- if(omx_err != OMX_ErrorNone) -+ -+ if(m_omx_render_analog.IsInitialized()) -+ { -+ m_pcm_output.nPortIndex = m_omx_render_analog.GetInputPort(); -+ omx_err = m_omx_render_analog.SetParameter(OMX_IndexParamAudioPcm, &m_pcm_output); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::AddPackets error SetParameter 1 render omx_err(0x%08x) for m_omx_render_analog\n", omx_err); -+ } -+ -+ } -+ -+ if(m_omx_render_HDMI.IsInitialized()) - { -- CLog::Log(LOGERROR, "COMXAudio::AddPackets error GetParameter 2 render omx_err(0x%08x)\n", omx_err); -+ m_pcm_output.nPortIndex = m_omx_render_HDMI.GetInputPort(); -+ omx_err = m_omx_render_HDMI.SetParameter(OMX_IndexParamAudioPcm, &m_pcm_output); -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "COMXAudio::AddPackets error SetParameter 1 render omx_err(0x%08x) for m_omx_render_HDMI\n", omx_err); -+ } -+ - } - - PrintPCM(&m_pcm_input, std::string("input")); -@@ -1000,9 +1204,9 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - { - OMX_AUDIO_PARAM_PORTFORMATTYPE formatType; - OMX_INIT_STRUCTURE(formatType); -- formatType.nPortIndex = m_omx_render->GetInputPort(); -+ formatType.nPortIndex = m_omx_render_HDMI.GetInputPort(); - -- omx_err = m_omx_render->GetParameter(OMX_IndexParamAudioPortFormat, &formatType); -+ omx_err = m_omx_render_HDMI.GetParameter(OMX_IndexParamAudioPortFormat, &formatType); - if(omx_err != OMX_ErrorNone) - { - CLog::Log(LOGERROR, "COMXAudio::AddPackets error OMX_IndexParamAudioPortFormat omx_err(0x%08x)\n", omx_err); -@@ -1011,7 +1215,7 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - - formatType.eEncoding = m_eEncoding; - -- omx_err = m_omx_render->SetParameter(OMX_IndexParamAudioPortFormat, &formatType); -+ omx_err = m_omx_render_HDMI.SetParameter(OMX_IndexParamAudioPortFormat, &formatType); - if(omx_err != OMX_ErrorNone) - { - CLog::Log(LOGERROR, "COMXAudio::AddPackets error OMX_IndexParamAudioPortFormat omx_err(0x%08x)\n", omx_err); -@@ -1023,7 +1227,7 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - OMX_AUDIO_PARAM_DDPTYPE m_ddParam; - OMX_INIT_STRUCTURE(m_ddParam); - -- m_ddParam.nPortIndex = m_omx_render->GetInputPort(); -+ m_ddParam.nPortIndex = m_omx_render_HDMI.GetInputPort(); - - m_ddParam.nChannels = m_format.m_channelLayout.Count(); //(m_InputChannels == 6) ? 8 : m_InputChannels; - m_ddParam.nSampleRate = m_SampleRate; -@@ -1038,13 +1242,13 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - m_ddParam.eChannelMapping[i] = OMXChannels[i]; - } - -- m_omx_render->SetParameter(OMX_IndexParamAudioDdp, &m_ddParam); -- m_omx_render->GetParameter(OMX_IndexParamAudioDdp, &m_ddParam); -+ m_omx_render_HDMI.SetParameter(OMX_IndexParamAudioDdp, &m_ddParam); -+ m_omx_render_HDMI.GetParameter(OMX_IndexParamAudioDdp, &m_ddParam); - PrintDDP(&m_ddParam); - } - else if(m_eEncoding == OMX_AUDIO_CodingDTS) - { -- m_dtsParam.nPortIndex = m_omx_render->GetInputPort(); -+ m_dtsParam.nPortIndex = m_omx_render_HDMI.GetInputPort(); - - m_dtsParam.nChannels = m_format.m_channelLayout.Count(); //(m_InputChannels == 6) ? 8 : m_InputChannels; - m_dtsParam.nBitRate = 0; -@@ -1057,13 +1261,24 @@ unsigned int COMXAudio::AddPackets(const void* data, unsigned int len, double dt - m_dtsParam.eChannelMapping[i] = OMXChannels[i]; - } - -- m_omx_render->SetParameter(OMX_IndexParamAudioDts, &m_dtsParam); -- m_omx_render->GetParameter(OMX_IndexParamAudioDts, &m_dtsParam); -+ m_omx_render_HDMI.SetParameter(OMX_IndexParamAudioDts, &m_dtsParam); -+ m_omx_render_HDMI.GetParameter(OMX_IndexParamAudioDts, &m_dtsParam); - PrintDTS(&m_dtsParam); - } - } - -- m_omx_render->EnablePort(m_omx_render->GetInputPort(), false); -+ if(m_omx_render_analog.IsInitialized()) -+ m_omx_render_analog.EnablePort(m_omx_render_analog.GetInputPort(), false); -+ if(m_omx_render_HDMI.IsInitialized()) -+ m_omx_render_HDMI.EnablePort(m_omx_render_HDMI.GetInputPort(), false); -+ -+ if(m_omx_splitter.IsInitialized()) -+ { -+ m_omx_splitter.EnablePort(m_omx_splitter.GetOutputPort(), false); -+ m_omx_splitter.EnablePort(m_omx_splitter.GetOutputPort()+1, false); -+ m_omx_splitter.EnablePort(m_omx_splitter.GetInputPort(), false); -+ } -+ - if(!m_Passthrough) - { - m_omx_mixer.EnablePort(m_omx_mixer.GetOutputPort(), false); -@@ -1139,21 +1354,49 @@ unsigned int COMXAudio::GetAudioRenderingLatency() - if(!m_Initialized) - return 0; - -- OMX_PARAM_U32TYPE param; -- OMX_INIT_STRUCTURE(param); -- param.nPortIndex = m_omx_render->GetInputPort(); -+ unsigned int latAnalog = 0; -+ unsigned int latHDMI = 0; - -- OMX_ERRORTYPE omx_err = -- m_omx_render->GetConfig(OMX_IndexConfigAudioRenderingLatency, ¶m); -+ // Prefer HDMI latency if both are used -+ if(m_omx_render_analog.IsInitialized() && !m_omx_render_HDMI.IsInitialized()) -+ { -+ OMX_PARAM_U32TYPE param; -+ OMX_INIT_STRUCTURE(param); -+ param.nPortIndex = m_omx_render_analog.GetInputPort(); - -- if(omx_err != OMX_ErrorNone) -+ OMX_ERRORTYPE omx_err = -+ m_omx_render_analog.GetConfig(OMX_IndexConfigAudioRenderingLatency, ¶m); -+ -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "%s::%s - error getting OMX_IndexConfigAudioRenderingLatency error 0x%08x\n for m_omx_render_analog", -+ CLASSNAME, __func__, omx_err); -+ return 0; -+ } -+ -+ latAnalog = param.nU32; -+ } -+ -+ if(m_omx_render_HDMI.IsInitialized()) - { -- CLog::Log(LOGERROR, "%s::%s - error getting OMX_IndexConfigAudioRenderingLatency error 0x%08x\n", -- CLASSNAME, __func__, omx_err); -- return 0; -+ OMX_PARAM_U32TYPE param; -+ OMX_INIT_STRUCTURE(param); -+ param.nPortIndex = m_omx_render_HDMI.GetInputPort(); -+ -+ OMX_ERRORTYPE omx_err = -+ m_omx_render_HDMI.GetConfig(OMX_IndexConfigAudioRenderingLatency, ¶m); -+ -+ if(omx_err != OMX_ErrorNone) -+ { -+ CLog::Log(LOGERROR, "%s::%s - error getting OMX_IndexConfigAudioRenderingLatency error 0x%08x\n for m_omx_render_HDMI", -+ CLASSNAME, __func__, omx_err); -+ return 0; -+ } -+ -+ latHDMI = param.nU32; - } - -- return param.nU32; -+ return std::max(latAnalog, latHDMI); - } - - void COMXAudio::WaitCompletion() -@@ -1188,7 +1431,8 @@ void COMXAudio::WaitCompletion() - unsigned int nTimeOut = AUDIO_BUFFER_SECONDS * 1000; - while(nTimeOut) - { -- if(m_omx_render->IsEOS()) -+ if((m_omx_render_analog.IsInitialized() ? m_omx_render_analog.IsEOS() : true) && -+ (m_omx_render_HDMI.IsInitialized() ? m_omx_render_HDMI.IsEOS() : true)) - { - CLog::Log(LOGDEBUG, "%s::%s - got eos\n", CLASSNAME, __func__); - break; -@@ -1218,7 +1462,8 @@ void COMXAudio::WaitCompletion() - nTimeOut -= 50; - } - -- m_omx_render->ResetEos(); -+ m_omx_render_analog.ResetEos(); -+ m_omx_render_HDMI.ResetEos(); - - return; - } -diff --git a/xbmc/cores/omxplayer/OMXAudio.h b/xbmc/cores/omxplayer/OMXAudio.h -index d812e0a..81aeb7e 100644 ---- a/xbmc/cores/omxplayer/OMXAudio.h -+++ b/xbmc/cores/omxplayer/OMXAudio.h -@@ -60,7 +60,7 @@ class COMXAudio - float GetCacheTime(); - float GetCacheTotal(); - COMXAudio(); -- bool Initialize(AEAudioFormat format, std::string& device, OMXClock *clock, CDVDStreamInfo &hints, bool bUsePassthrough, bool bUseHWDecode); -+ bool Initialize(AEAudioFormat format, OMXClock *clock, CDVDStreamInfo &hints, bool bUsePassthrough, bool bUseHWDecode); - ~COMXAudio(); - - unsigned int AddPackets(const void* data, unsigned int len); -@@ -132,12 +132,18 @@ class COMXAudio - WAVEFORMATEXTENSIBLE m_wave_header; - AEAudioFormat m_format; - protected: -- COMXCoreComponent *m_omx_render; -+ void DumpStates(); -+ COMXCoreComponent m_omx_render_analog; -+ COMXCoreComponent m_omx_render_HDMI; -+ COMXCoreComponent m_omx_splitter; - COMXCoreComponent m_omx_mixer; - COMXCoreComponent m_omx_decoder; -- COMXCoreTunel m_omx_tunnel_clock; -+ COMXCoreTunel m_omx_tunnel_clock_analog; -+ COMXCoreTunel m_omx_tunnel_clock_HDMI; - COMXCoreTunel m_omx_tunnel_mixer; - COMXCoreTunel m_omx_tunnel_decoder; -+ COMXCoreTunel m_omx_tunnel_splitter_analog; -+ COMXCoreTunel m_omx_tunnel_splitter_HDMI; - DllAvUtil m_dllAvUtil; - - OMX_AUDIO_CHANNELTYPE m_input_channels[OMX_AUDIO_MAXCHANNELS]; -diff --git a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp -index 58c3a4f..f3276d2 100644 ---- a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp -+++ b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp -@@ -731,17 +731,10 @@ bool OMXPlayerAudio::OpenDecoder() - /* GetDataFormat is setting up evrything */ - m_format.m_dataFormat = GetDataFormat(m_hints); - -- std::string device = ""; -- -- if(g_guiSettings.GetInt("audiooutput.mode") == AUDIO_HDMI) -- device = "hdmi"; -- else -- device = "local"; -- - m_av_clock->Lock(); - m_av_clock->OMXStop(false); - -- bool bAudioRenderOpen = m_omxAudio.Initialize(m_format, device, m_av_clock, m_hints, m_passthrough, m_hw_decode); -+ bool bAudioRenderOpen = m_omxAudio.Initialize(m_format, m_av_clock, m_hints, m_passthrough, m_hw_decode); - - m_codec_name = ""; - m_bad_state = !bAudioRenderOpen; -diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp -index e92a82d..e798683 100644 ---- a/xbmc/settings/GUISettings.cpp -+++ b/xbmc/settings/GUISettings.cpp -@@ -457,6 +457,8 @@ void CGUISettings::Initialize() - audiomode.insert(make_pair(338,AUDIO_ANALOG)); - #if !defined(TARGET_RASPBERRY_PI) - audiomode.insert(make_pair(339,AUDIO_IEC958)); -+#else -+ audiomode.insert(make_pair(593,AUDIO_BOTH)); - #endif - audiomode.insert(make_pair(420,AUDIO_HDMI )); - #if defined(TARGET_RASPBERRY_PI) -diff --git a/xbmc/settings/GUISettings.h b/xbmc/settings/GUISettings.h -index b48ba35..500ec36 100644 ---- a/xbmc/settings/GUISettings.h -+++ b/xbmc/settings/GUISettings.h -@@ -84,6 +84,9 @@ - #define AUDIO_ANALOG 0 - #define AUDIO_IEC958 1 - #define AUDIO_HDMI 2 -+#ifdef TARGET_RASPBERRY_PI -+#define AUDIO_BOTH 3 -+#endif - #define AUDIO_IS_BITSTREAM(x) ((x) == AUDIO_IEC958 || (x) == AUDIO_HDMI) - - #define VIDEO_NORMAL 0 --- -1.8.1.6 - - -From 85bb82a3f78a63385767e8e1a7490860077b1b32 Mon Sep 17 00:00:00 2001 -From: stupid-boy -Date: Thu, 7 Mar 2013 20:46:21 +0200 -Subject: [PATCH 2/2] Seek fixed - ---- - xbmc/cores/omxplayer/OMXAudio.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp -index 1470685..6b0e71a 100644 ---- a/xbmc/cores/omxplayer/OMXAudio.cpp -+++ b/xbmc/cores/omxplayer/OMXAudio.cpp -@@ -749,8 +749,16 @@ void COMXAudio::Flush() - - m_omx_decoder.FlushInput(); - m_omx_tunnel_decoder.Flush(); -- if(!m_Passthrough) -+ if ( m_omx_mixer.IsInitialized() ) -+ m_omx_mixer.FlushAll(); -+ if( m_omx_tunnel_mixer.IsInitialized() ) - m_omx_tunnel_mixer.Flush(); -+ if ( m_omx_splitter.IsInitialized() ) -+ m_omx_splitter.FlushAll(); -+ if ( m_omx_tunnel_splitter_analog.IsInitialized() ) -+ m_omx_tunnel_splitter_analog.Flush(); -+ if ( m_omx_tunnel_splitter_HDMI.IsInitialized() ) -+ m_omx_tunnel_splitter_HDMI.Flush(); - - m_last_pts = DVD_NOPTS_VALUE; - m_LostSync = true; --- -1.8.1.6 - diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-321-texturepacker-hostflags-and-rework.patch b/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-321-texturepacker-hostflags-and-rework.patch deleted file mode 100644 index 113e0f79e7..0000000000 --- a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-321-texturepacker-hostflags-and-rework.patch +++ /dev/null @@ -1,169 +0,0 @@ -diff -Naur xbmc-frodo-0ff0d2e/configure.in xbmc-frodo-0ff0d2e.patch/configure.in ---- xbmc-frodo-0ff0d2e/configure.in 2012-10-11 15:45:44.000000000 +0200 -+++ xbmc-frodo-0ff0d2e.patch/configure.in 2012-10-11 16:49:08.872850880 +0200 -@@ -452,6 +452,12 @@ - [use_texturepacker=$enableval], - [use_texturepacker=auto]) - -+AC_ARG_WITH([texturepacker-root], -+ [AS_HELP_STRING([--with-texturepacker-root], -+ [root dir to search for librarys and includes if building native TexturePacker (default is \$prefix)])], -+ [use_texturepacker_root=$withval], -+ [use_texturepacker_root=$prefix]) -+ - AC_ARG_WITH([lirc-device], - [AS_HELP_STRING([--with-lirc-device=file], - [specify the default LIRC device (default is /dev/lircd)])], -@@ -2000,13 +2006,13 @@ - - USE_TEXTUREPACKER_NATIVE=0 - if test "x$use_texturepacker" != "xno"; then -- final_message="$final_message\n TexturePacker:Yes" - USE_TEXTUREPACKER=1 -- if test "x$use_texturepacker_native" = "xyes"; then -+ if test "x$cross_compiling" = "xyes"; then - USE_TEXTUREPACKER_NATIVE=1 -- if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then -- USE_TEXTUREPACKER_NATIVE_ROOT= -- fi -+ USE_TEXTUREPACKER_NATIVE_ROOT="$use_texturepacker_root" -+ final_message="$final_message\n TexturePacker:Native ($USE_TEXTUREPACKER_NATIVE_ROOT)" -+ else -+ final_message="$final_message\n TexturePacker:Yes" - fi - else - final_message="$final_message\n TexturePacker:No" -diff -Naur xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in ---- xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in 2012-10-11 15:47:26.000000000 +0200 -+++ xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in 2012-10-11 16:49:08.873850900 +0200 -@@ -11,26 +11,25 @@ - singlecolourfit.cpp \ - squish.cpp - --CXXFLAGS+=-I. -- --LIB=libsquish.a -- --ifeq (@USE_TEXTUREPACKER_NATIVE@,1) --NATIVE_LIB=libsquish-native.so --CLEAN_FILES+=$(NATIVE_LIB) -+LIB = libsquish.a -+NATIVE_LIB = libsquish-native.so -+CLEAN_FILES += $(NATIVE_LIB) -+ -+HOST_CXX ?= g++ -+CXXFLAGS += -I. -+HOST_CXXFLAGS += -I. - - ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) --NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ -+ HOST_CXXFLAGS += @DARWIN_NATIVE_ARCH@ - endif - --all: $(LIB) $(NATIVE_LIB) -+$(LIB): $(SRCS) - # TexturePacker links to libsquish and needs to run on build system, so make a native flavor. - $(NATIVE_LIB): $(SRCS) - ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) -- g++ $(NATIVE_ARCH) -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ -+ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ - else -- g++ -I. $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ --endif -+ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ - endif - - include ../../Makefile.include -diff -Naur xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in ---- xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in 2012-10-11 15:47:05.000000000 +0200 -+++ xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in 2012-10-11 16:49:08.874850920 +0200 -@@ -1,56 +1,54 @@ --DEFINES += -D_LINUX -DUSE_LZO_PACKING -+DEFINES += -D_LINUX -DUSE_LZO_PACKING - ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),) --DEFINES += -DHOST_BIGENDIAN -+DEFINES += -DHOST_BIGENDIAN - endif - --CXXFLAGS+= \ -+SRCS = \ -+ md5.cpp \ -+ SDL_anigif.cpp \ -+ XBTFWriter.cpp \ -+ XBMCTex.cpp \ -+ @abs_top_srcdir@/xbmc/guilib/XBTF.cpp -+ -+TARGET = TexturePacker -+CLEAN_FILES = $(TARGET) -+ -+all: $(TARGET) -+ -+HOST_CXX ?= g++ -+HOST_ROOT_PATH = @USE_TEXTUREPACKER_NATIVE_ROOT@ -+ -+LIBS += -lSDL_image -lSDL -llzo2 -+LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish -+HOST_LIBS += -L$(HOST_ROOT_PATH)/lib -lSDL_image -lSDL -llzo2 -+HOST_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native -+ -+CXXFLAGS += \ - -I. \ - -I@abs_top_srcdir@/lib \ - -I@abs_top_srcdir@/xbmc \ - -I@abs_top_srcdir@/xbmc/linux - --RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib -+HOST_CXXFLAGS += \ -+ -I. \ -+ -I@abs_top_srcdir@/lib \ -+ -I@abs_top_srcdir@/xbmc \ -+ -I@abs_top_srcdir@/xbmc/linux \ -+ -I$(HOST_ROOT_PATH)/include -+ -+RPATH=-Wl,-rpath=$(HOST_ROOT_PATH)/lib - --ifeq (@USE_TEXTUREPACKER_NATIVE@,1) --NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@ --ifdef NATIVE_ROOT_PATH - ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) - DEFINES += -DTARGET_DARWIN - NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ - RPATH= - endif --NATIVE_CXXFLAGS+= -I. \ -- -I$(NATIVE_ROOT_PATH)/include \ -- -I@abs_top_srcdir@/lib \ -- -I@abs_top_srcdir@/xbmc \ -- -I@abs_top_srcdir@/xbmc/linux --NATIVE_LIBS += -L$(NATIVE_ROOT_PATH)/lib --endif --NATIVE_LIBS += -lSDL_image -lSDL -llzo2 --NATIVE_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native --else --LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish --endif -- --LIBS += -lSDL_image -lSDL -llzo2 -- --SRCS = \ -- md5.cpp \ -- SDL_anigif.cpp \ -- XBTFWriter.cpp \ -- XBMCTex.cpp \ -- @abs_top_srcdir@/xbmc/guilib/XBTF.cpp -- -- --TARGET = TexturePacker --CLEAN_FILES=$(TARGET) -- --all: $(TARGET) - - ifeq (@USE_TEXTUREPACKER_NATIVE@,1) - # TexturePacker run native on build system, build it with native tools - $(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h -- g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET) -+ make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so -+ $(HOST_CXX) $(DEFINES) $(NATIVE_ARCH) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) $(RPATH) -o $(TARGET) - clean: - rm -f $(TARGET) - else diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.11-enable-vpp-deinterlacing.patch b/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.11-enable-vpp-deinterlacing.patch deleted file mode 100644 index f71019f76d..0000000000 --- a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.11-enable-vpp-deinterlacing.patch +++ /dev/null @@ -1,1405 +0,0 @@ -From 61b5f0b195a3d3d8556d5cb341beef00021acb9a Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Tue, 9 Apr 2013 23:28:36 +0200 -Subject: [PATCH 1/8] VAAPI: Add VPP class which handles bob deinterlacing - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in | 1 + - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp | 345 ++++++++++++++++++++ - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.h | 78 +++++ - 3 files changed, 424 insertions(+) - create mode 100644 xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp - create mode 100644 xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.h - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in -index c58422b..574ec3c 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in -@@ -9,6 +9,7 @@ SRCS += VDPAU.cpp - endif - ifeq (@USE_VAAPI@,1) - SRCS += VAAPI.cpp -+SRCS += VAAPI_VPP.cpp - endif - ifeq (@USE_CRYSTALHD@,1) - SRCS += CrystalHD.cpp -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -new file mode 100644 -index 0000000..47f98f8 ---- /dev/null -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -@@ -0,0 +1,345 @@ -+/* -+ * Copyright (C) 2005-2013 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library 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 -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ * -+ */ -+ -+#include "system.h" -+#ifdef HAVE_LIBVA -+ -+#include "VAAPI_VPP.h" -+#if VA_CHECK_VERSION(0,34,0) -+# define VPP_AVAIL 1 -+#endif -+ -+#ifdef VPP_AVAIL -+#include -+#endif -+ -+#include "utils/log.h" -+#include "threads/SingleLock.h" -+ -+#include -+ -+using namespace VAAPI; -+ -+bool CVPP::isSupported = true; -+ -+CVPP::CVPP() -+ :m_width(0) -+ ,m_height(0) -+ ,m_configId(VA_INVALID_ID) -+ ,m_vppReady(-1) -+ ,m_deintBobReady(-1) -+ ,m_bobContext(VA_INVALID_ID) -+ ,m_bobTargetCount(0) -+ ,m_bobFilter(VA_INVALID_ID) -+{} -+ -+CVPP::CVPP(CDisplayPtr& display, int width, int height) -+ :m_display(display) -+ ,m_width(width) -+ ,m_height(height) -+ ,m_configId(VA_INVALID_ID) -+ ,m_vppReady(0) -+ ,m_deintBobReady(0) -+ ,m_bobContext(VA_INVALID_ID) -+ ,m_bobTargetCount(0) -+ ,m_bobFilter(VA_INVALID_ID) -+{ -+ assert(display.get() && display->get()); -+ assert(width > 0 && height > 0); -+} -+ -+CVPP::~CVPP() -+{ -+ deinit(); -+} -+ -+bool CVPP::Supported() -+{ -+#ifdef VPP_AVAIL -+ return isSupported; -+#else -+ return false; -+#endif -+} -+ -+void CVPP::deinit() -+{ -+#ifdef VPP_AVAIL -+ CSingleLock lock(m_bob_lock); -+ -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - Deinitializing"); -+ -+ if(DeintBobReady() || m_deintBobReady == -100) -+ { -+ vaDestroyBuffer(m_display->get(), m_bobFilter); -+ vaDestroyContext(m_display->get(), m_bobContext); -+ delete[] m_bobTargets; -+ m_bobTargets = 0; -+ m_deintBobReady = -1; -+ -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - Deinitialized bob"); -+ } -+ -+ if(VppReady()) -+ { -+ vaDestroyConfig(m_display->get(), m_configId); -+ m_vppReady = -1; -+ -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - Deinitialized vpp"); -+ } -+#endif -+} -+ -+bool CVPP::InitVpp() -+{ -+#ifdef VPP_AVAIL -+ CSingleLock lock(m_bob_lock); -+ -+ if(VppFailed()) -+ return false; -+ -+ int numEntrypoints = vaMaxNumEntrypoints(m_display->get()); -+ VAEntrypoint *entrypoints = new VAEntrypoint[numEntrypoints]; -+ -+ if(vaQueryConfigEntrypoints(m_display->get(), VAProfileNone, entrypoints, &numEntrypoints) != VA_STATUS_SUCCESS) -+ { -+ delete[] entrypoints; -+ -+ CLog::Log(LOGERROR, "VAAPI_VPP - failed querying entrypoints"); -+ -+ m_vppReady = -1; -+ return false; -+ } -+ -+ int i; -+ for(i = 0; i < numEntrypoints; ++i) -+ if(entrypoints[i] == VAEntrypointVideoProc) -+ break; -+ delete[] entrypoints; -+ -+ if(i >= numEntrypoints) -+ { -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - Entrypoint VideoProc not supported"); -+ isSupported = false; -+ m_vppReady = -1; -+ return false; -+ } -+ -+ if(vaCreateConfig(m_display->get(), VAProfileNone, VAEntrypointVideoProc, NULL, 0, &m_configId) != VA_STATUS_SUCCESS) -+ { -+ CLog::Log(LOGERROR, "VAAPI_VPP - failed creating va config"); -+ m_vppReady = -1; -+ return false; -+ } -+ -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - Successfully initialized VPP"); -+ -+ m_vppReady = 1; -+ return true; -+#else -+ m_vppReady = -1; -+ return false; -+#endif -+} -+ -+bool CVPP::InitDeintBob(int num_surfaces) -+{ -+#ifdef VPP_AVAIL -+ CSingleLock lock(m_bob_lock); -+ -+ assert(VppReady()); -+ -+ if(DeintBobFailed()) -+ return false; -+ -+ VASurfaceID *bobTargetsInternal = new VASurfaceID[num_surfaces]; -+ m_bobTargetCount = num_surfaces; -+ if(vaCreateSurfaces(m_display->get(), VA_RT_FORMAT_YUV420, m_width, m_height, bobTargetsInternal, m_bobTargetCount, NULL, 0) != VA_STATUS_SUCCESS) -+ { -+ CLog::Log(LOGERROR, "VAAPI_VPP - failed creating bob target surface"); -+ m_deintBobReady = -1; -+ return false; -+ } -+ -+ if(vaCreateContext(m_display->get(), m_configId, m_width, m_height, VA_PROGRESSIVE, bobTargetsInternal, m_bobTargetCount, &m_bobContext) != VA_STATUS_SUCCESS) -+ { -+ CLog::Log(LOGERROR, "VAAPI_VPP - failed creating bob deint context"); -+ vaDestroySurfaces(m_display->get(), bobTargetsInternal, m_bobTargetCount); -+ m_deintBobReady = -1; -+ return false; -+ } -+ -+ VAProcFilterType filters[VAProcFilterCount]; -+ unsigned int numFilters = VAProcFilterCount; -+ VAProcFilterCapDeinterlacing deinterlacingCaps[VAProcDeinterlacingCount]; -+ unsigned int numDeinterlacingCaps = VAProcDeinterlacingCount; -+ -+ if( -+ vaQueryVideoProcFilters(m_display->get(), m_bobContext, filters, &numFilters) != VA_STATUS_SUCCESS -+ || vaQueryVideoProcFilterCaps(m_display->get(), m_bobContext, VAProcFilterDeinterlacing, deinterlacingCaps, &numDeinterlacingCaps) != VA_STATUS_SUCCESS) -+ { -+ vaDestroyContext(m_display->get(), m_bobContext); -+ vaDestroySurfaces(m_display->get(), bobTargetsInternal, m_bobTargetCount); -+ CLog::Log(LOGERROR, "VAAPI_VPP - failed querying filter caps"); -+ m_deintBobReady = -1; -+ return false; -+ } -+ -+ bool bobSupported = false; -+ for(unsigned int fi = 0; fi < numFilters; ++fi) -+ if(filters[fi] == VAProcFilterDeinterlacing) -+ for(unsigned int ci = 0; ci < numDeinterlacingCaps; ++ci) -+ { -+ if(deinterlacingCaps[ci].type != VAProcDeinterlacingBob) -+ continue; -+ bobSupported = true; -+ break; -+ } -+ -+ if(!bobSupported) -+ { -+ vaDestroyContext(m_display->get(), m_bobContext); -+ vaDestroySurfaces(m_display->get(), bobTargetsInternal, m_bobTargetCount); -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - bob deinterlacing filter is not supported"); -+ isSupported = false; -+ m_deintBobReady = -1; -+ return false; -+ } -+ -+ VAProcFilterParameterBufferDeinterlacing deint; -+ deint.type = VAProcFilterDeinterlacing; -+ deint.algorithm = VAProcDeinterlacingBob; -+ deint.flags = 0; -+ -+ if(vaCreateBuffer(m_display->get(), m_bobContext, VAProcFilterParameterBufferType, sizeof(deint), 1, &deint, &m_bobFilter) != VA_STATUS_SUCCESS) -+ { -+ vaDestroyContext(m_display->get(), m_bobContext); -+ vaDestroySurfaces(m_display->get(), bobTargetsInternal, m_bobTargetCount); -+ CLog::Log(LOGERROR, "VAAPI_VPP - creating ProcFilterParameterBuffer failed"); -+ m_deintBobReady = -1; -+ return false; -+ } -+ -+ CLog::Log(LOGDEBUG, "VAAPI_VPP - Successfully initialized bob"); -+ -+ m_bobTargets = new CSurfacePtr[m_bobTargetCount]; -+ for(int i = 0; i < m_bobTargetCount; ++i) -+ m_bobTargets[i] = CSurfacePtr(new CSurface(bobTargetsInternal[i], m_display)); -+ -+ m_deintBobReady = 1; -+ return true; -+#else -+ m_deintBobReady = -1; -+ return false; -+#endif -+} -+ -+#define CHECK_VA(s, b) \ -+{\ -+ VAStatus res = s;\ -+ if(res != VA_STATUS_SUCCESS)\ -+ {\ -+ CLog::Log(LOGERROR, "VAAPI_VPP - failed executing "#s" at line %d with error %x:%s", __LINE__, res, vaErrorStr(res));\ -+ VABufferID buf = b;\ -+ if(buf != 0)\ -+ vaDestroyBuffer(m_display->get(), buf);\ -+ m_deintBobReady = -100;\ -+ return CSurfacePtr();\ -+ }\ -+} -+ -+CSurfacePtr CVPP::DeintBob(const CSurfacePtr& input, bool topField) -+{ -+#ifdef VPP_AVAIL -+ CSingleLock lock(m_bob_lock); -+ -+ if(!DeintBobReady()) -+ return CSurfacePtr(); -+ -+ CSurfacePtr bobTarget = getFreeSurface(); -+ if(!bobTarget.get()) -+ return CSurfacePtr(); -+ -+ VABufferID pipelineBuf; -+ VAProcPipelineParameterBuffer *pipelineParam; -+ VARectangle inputRegion; -+ VARectangle outputRegion; -+ -+ CHECK_VA(vaBeginPicture(m_display->get(), m_bobContext, bobTarget->m_id), 0); -+ -+ CHECK_VA(vaCreateBuffer(m_display->get(), m_bobContext, VAProcPipelineParameterBufferType, sizeof(VAProcPipelineParameterBuffer), 1, NULL, &pipelineBuf), 0); -+ CHECK_VA(vaMapBuffer(m_display->get(), pipelineBuf, (void**)&pipelineParam), pipelineBuf); -+ -+ // This input/output regions crop two the top and bottom pixel rows -+ // It removes the flickering pixels caused by bob -+ const int vcrop = 1; -+ const int hcrop = 0; -+ inputRegion.x = outputRegion.x = hcrop; -+ inputRegion.y = outputRegion.y = vcrop; -+ inputRegion.width = outputRegion.width = m_width - (2 * hcrop); -+ inputRegion.height = outputRegion.height = m_height - (2 * vcrop); -+ -+ pipelineParam->surface = input->m_id; -+ pipelineParam->output_region = &outputRegion; -+ pipelineParam->surface_region = &inputRegion; -+ pipelineParam->output_background_color = 0xff000000; -+ -+ pipelineParam->filter_flags = topField ? VA_TOP_FIELD : VA_BOTTOM_FIELD; -+ pipelineParam->filters = &m_bobFilter; -+ pipelineParam->num_filters = 1; -+ -+ pipelineParam->num_forward_references = 0; -+ pipelineParam->forward_references = NULL; -+ pipelineParam->num_backward_references = 0; -+ pipelineParam->backward_references = NULL; -+ -+ CHECK_VA(vaUnmapBuffer(m_display->get(), pipelineBuf), pipelineBuf); -+ -+ CHECK_VA(vaRenderPicture(m_display->get(), m_bobContext, &pipelineBuf, 1), pipelineBuf); -+ CHECK_VA(vaEndPicture(m_display->get(), m_bobContext), pipelineBuf); -+ -+ CHECK_VA(vaDestroyBuffer(m_display->get(), pipelineBuf), 0); -+ -+ CHECK_VA(vaSyncSurface(m_display->get(), bobTarget->m_id), 0); -+ -+ return bobTarget; -+#else -+ return VA_INVALID_ID; -+#endif -+} -+ -+CSurfacePtr CVPP::getFreeSurface() -+{ -+#ifdef VPP_AVAIL -+ for(int i = 0; i < m_bobTargetCount; ++i) -+ { -+ if(m_bobTargets[i].use_count() == 1) -+ { -+ return m_bobTargets[i]; -+ } -+ } -+ -+ CLog::Log(LOGWARNING, "VAAPI_VPP - Running out of surfaces"); -+#endif -+ -+ return CSurfacePtr(); -+} -+ -+#endif -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.h -new file mode 100644 -index 0000000..5fa3ed6 ---- /dev/null -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.h -@@ -0,0 +1,78 @@ -+/* -+ * Copyright (C) 2005-2013 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library 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 -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ * -+ */ -+#pragma once -+ -+#include "VAAPI.h" -+#include "threads/CriticalSection.h" -+ -+#include -+#include -+ -+namespace VAAPI -+{ -+ class CVPP -+ { -+ friend class VPPSurfaceDeleter; -+ CVPP(); -+ -+ public: -+ CVPP(CDisplayPtr& display, int width, int height); -+ ~CVPP(); -+ -+ static bool Supported(); -+ -+ void deinit(); -+ -+ bool InitVpp(); -+ bool InitDeintBob(int num_surfaces); -+ -+ inline bool VppReady() { return m_vppReady > 0; } -+ inline bool VppFailed() { return m_vppReady < 0; } -+ inline bool DeintBobReady() { return m_deintBobReady > 0; } -+ inline bool DeintBobFailed() { return m_deintBobReady < 0; } -+ -+ CSurfacePtr DeintBob(const CSurfacePtr& input, bool topField); -+ -+ private: -+ CSurfacePtr getFreeSurface(); -+ -+ -+ static bool isSupported; -+ -+ -+ CDisplayPtr m_display; -+ int m_width; -+ int m_height; -+ -+ VAConfigID m_configId; -+ -+ int m_vppReady; -+ int m_deintBobReady; -+ -+ //VPP Bob Deinterlacing -+ CCriticalSection m_bob_lock; -+ VAContextID m_bobContext; -+ int m_bobTargetCount; -+ CSurfacePtr *m_bobTargets; -+ VABufferID m_bobFilter; -+ }; -+ -+} -+ --- -1.7.10.4 - - -From 701ac98da10ebd8255943ccb9031e431b383d09b Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Tue, 9 Apr 2013 23:29:19 +0200 -Subject: [PATCH 2/8] VAAPI: Integrate VPP into VAAPI implementation (resolve - conflicts) - ---- - language/English/strings.po | 6 +- - xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 14 ++ - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 319 +++++++++++++++++++++--- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h | 66 +++++ - xbmc/settings/VideoSettings.h | 2 + - xbmc/video/dialogs/GUIDialogVideoSettings.cpp | 1 + - 6 files changed, 374 insertions(+), 34 deletions(-) - -diff --git a/language/English/strings.po b/language/English/strings.po -index 17bc493..b5a07f7 100644 ---- a/language/English/strings.po -+++ b/language/English/strings.po -@@ -6354,7 +6354,11 @@ msgctxt "#16326" - msgid "XVBA" - msgstr "" - --#empty strings from id 16327 to 16399 -+msgctxt "#16327" -+msgid "VAAPI Auto" -+msgstr "" -+ -+#empty strings from id 16328 to 16399 - - msgctxt "#16400" - msgid "Post-processing" -diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp -index 147dc06..3f54607 100644 ---- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp -+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp -@@ -54,6 +54,7 @@ - #include - #include - #include "cores/dvdplayer/DVDCodecs/Video/VAAPI.h" -+#include "cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.h" - - #define USE_VAAPI_GLX_BIND \ - (VA_MAJOR_VERSION == 0 && \ -@@ -3659,6 +3660,11 @@ bool CLinuxRendererGL::Supports(EINTERLACEMETHOD method) - if(m_renderMethod & RENDER_VAAPI) - { - #ifdef HAVE_LIBVA -+ if(method == VS_INTERLACEMETHOD_VAAPI_AUTO) -+ { -+ return VAAPI::CVPP::Supported(); -+ } -+ - VAAPI::CDisplayPtr disp = m_buffers[m_iYV12RenderBuffer].vaapi.display; - if(disp) - { -@@ -3756,6 +3762,14 @@ EINTERLACEMETHOD CLinuxRendererGL::AutoInterlaceMethod() - if(m_renderMethod & RENDER_VDPAU) - return VS_INTERLACEMETHOD_NONE; - -+ if(m_renderMethod & RENDER_VAAPI) -+ { -+#ifdef HAVE_LIBVA -+ if(VAAPI::CVPP::Supported()) -+ return VS_INTERLACEMETHOD_VAAPI_AUTO; -+#endif -+ } -+ - if(Supports(VS_INTERLACEMETHOD_RENDER_BOB)) - return VS_INTERLACEMETHOD_RENDER_BOB; - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index 43a05b3..2079f0a 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -20,8 +20,11 @@ - #include "system.h" - #ifdef HAVE_LIBVA - #include "windowing/WindowingFactory.h" -+#include "settings/MediaSettings.h" - #include "settings/Settings.h" -+#include "cores/dvdplayer/DVDClock.h" - #include "VAAPI.h" -+#include "VAAPI_VPP.h" - #include "DVDVideoCodec.h" - #include - #include -@@ -147,6 +150,7 @@ CDecoder::CDecoder() - m_surfaces_count = 0; - m_config = 0; - m_context = 0; -+ m_vppth = 0; - m_hwaccel = (vaapi_context*)calloc(1, sizeof(vaapi_context)); - memset(m_surfaces, 0, sizeof(*m_surfaces)); - } -@@ -203,13 +207,13 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) - else - { - // To avoid stutter, we scan the free surface pool (provided by decoder) for surfaces -- // that are 100% not in use by renderer. The pointers to these surfaces have a use_count of 1. -- for (; it != m_surfaces_free.end() && it->use_count() > 1; it++) {} -+ // that are 100% not in use by renderer or vpp. The pointers to these surfaces have a use_count of 1. -+ for (; it != m_surfaces_free.end() && it->use_count() > 1; ++it) {} - - // If we have zero free surface from decoder OR all free surfaces are in use by renderer, we allocate a new surface - if (it == m_surfaces_free.end()) - { -- if (!m_surfaces_free.empty()) CLog::Log(LOGERROR, "VAAPI - renderer still using all freed up surfaces by decoder"); -+ if (!m_surfaces_free.empty()) CLog::Log(LOGERROR, "VAAPI - renderer/vpp still using all freed up surfaces by decoder"); - CLog::Log(LOGERROR, "VAAPI - unable to find free surface, trying to allocate a new one"); - if(!EnsureSurfaces(avctx, m_surfaces_count+1) || m_surfaces_free.empty()) - { -@@ -230,7 +234,7 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) - pic->data[0] = (uint8_t*)wrapper; - pic->data[1] = NULL; - pic->data[2] = NULL; -- pic->data[3] = (uint8_t*)surface; -+ pic->data[3] = (uint8_t*)(uintptr_t)surface; - pic->linesize[0] = 0; - pic->linesize[1] = 0; - pic->linesize[2] = 0; -@@ -240,7 +244,11 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) - } - - void CDecoder::Close() --{ -+{ -+ if(m_vppth) -+ delete m_vppth; -+ m_vppth = 0; -+ - if(m_context) - WARN(vaDestroyContext(m_display->get(), m_context)) - m_context = 0; -@@ -370,6 +378,10 @@ bool CDecoder::Open(AVCodecContext *avctx, enum PixelFormat fmt, unsigned int su - if (!EnsureContext(avctx)) - return false; - -+ m_vppth = new CVPPThread(m_display, avctx->width, avctx->height); -+ m_vppth->Init(m_refs); // Ignore result, VPPThread just passes frames if init failed -+ m_vppth->Start(); -+ - m_hwaccel->display = m_display->get(); - - avctx->hwaccel_context = m_hwaccel; -@@ -398,7 +410,12 @@ bool CDecoder::EnsureContext(AVCodecContext *avctx) - else - m_refs = 2; - } -- return EnsureSurfaces(avctx, m_refs + m_renderbuffers_count + 1); -+ -+ int vpp_buf = 0; -+ if(CVPP::Supported()) -+ vpp_buf = 4; -+ -+ return EnsureSurfaces(avctx, m_refs + m_renderbuffers_count + vpp_buf + 3); - } - - bool CDecoder::EnsureSurfaces(AVCodecContext *avctx, unsigned n_surfaces_count) -@@ -448,45 +465,69 @@ int CDecoder::Decode(AVCodecContext* avctx, AVFrame* frame) - return status; - - if(frame) -- return VC_BUFFER | VC_PICTURE; -- else -- return VC_BUFFER; --} -- --bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) --{ -- ((CDVDVideoCodecFFmpeg*)avctx->opaque)->GetPictureCommon(picture); -- VASurfaceID surface = GetSurfaceID(frame); -- -+ { -+ CVPPDecodedPicture picture; -+ picture.valid = true; - -- m_holder.surface.reset(); -+ memset(&picture.DVDPic, 0, sizeof(picture.DVDPic)); -+ ((CDVDVideoCodecFFmpeg*)avctx->opaque)->GetPictureCommon(&picture.DVDPic); -+ VASurfaceID surface = GetSurfaceID(frame); - -- std::list::iterator it; -- for(it = m_surfaces_used.begin(); it != m_surfaces_used.end() && !m_holder.surface; it++) -- { -- if((*it)->m_id == surface) -- { -- m_holder.surface = *it; -- break; -+ std::list::iterator it; -+ for(it = m_surfaces_used.begin(); it != m_surfaces_used.end() && !m_holder.surface; ++it) -+ { -+ if((*it)->m_id == surface) -+ { -+ picture.surface = *it; -+ break; -+ } - } -- } -- -- for(it = m_surfaces_free.begin(); it != m_surfaces_free.end() && !m_holder.surface; it++) -- { -- if((*it)->m_id == surface) -+ for(it = m_surfaces_free.begin(); it != m_surfaces_free.end() && !m_holder.surface; ++it) -+ { -+ if((*it)->m_id == surface) -+ { -+ picture.surface = *it; -+ break; -+ } -+ } -+ if(!picture.surface) - { -- m_holder.surface = *it; -- break; -+ CLog::Log(LOGERROR, "VAAPI - Unable to find surface"); -+ return VC_ERROR; - } -+ -+ m_vppth->InsertNewFrame(picture); - } -- if(!m_holder.surface) -+ -+ m_vppth->WaitForOutput(2000); -+ -+ int ret = 0; -+ -+ if(m_vppth->GetInputQueueSize() < 4 && m_vppth->GetOutputQueueSize() < 8) -+ ret |= VC_BUFFER; -+ if(m_vppth->GetOutputQueueSize() > 0) -+ ret |= VC_PICTURE; -+ -+ return ret; -+} -+ -+bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) -+{ -+ m_holder.surface.reset(); -+ -+ CVPPRenderPicture outPic = m_vppth->GetOutputPicture(); -+ if(!outPic.valid) - { -- CLog::Log(LOGERROR, "VAAPI - Unable to find surface"); -+ CLog::Log(LOGERROR, "VAAPI - Got an invalid render picture"); - return false; - } - -+ m_holder.surface = outPic.surface; -+ *picture = outPic.DVDPic; -+ - picture->format = RENDER_FMT_VAAPI; - picture->vaapi = &m_holder; -+ - return true; - } - -@@ -521,4 +562,216 @@ int CDecoder::Check(AVCodecContext* avctx) - return 0; - } - -+ -+CVPPThread::CVPPThread(CDisplayPtr& display, int width, int height) -+ :CThread("VAAPI VPP Thread") -+ ,m_stop(false) -+{ -+ m_vpp = new CVPP(display, width, height); -+} -+ -+CVPPThread::~CVPPThread() -+{ -+ Dispose(); -+} -+ -+bool CVPPThread::Init(int num_refs) -+{ -+ if(!m_vpp->InitVpp()) -+ return false; -+ -+ if(!m_vpp->InitDeintBob(num_refs + 16)) -+ return false; -+ -+ return true; -+} -+ -+void CVPPThread::Start() -+{ -+ m_stop = false; -+ Create(); -+} -+ -+void CVPPThread::Dispose() -+{ -+ m_stop = true; -+ m_input_cond.notifyAll(); -+ StopThread(); -+ m_output_cond.notifyAll(); -+ -+ m_input_queue = std::queue(); -+ m_output_queue = std::queue(); -+ -+ if(m_vpp) -+ { -+ delete m_vpp; -+ m_vpp = 0; -+ } -+} -+ -+void CVPPThread::OnStartup() -+{ -+ CLog::Log(LOGDEBUG, "VAAPI - VPP thread on startup"); -+} -+ -+void CVPPThread::OnExit() -+{ -+ CLog::Log(LOGDEBUG, "VAAPI - VPP thread on exit"); -+} -+ -+void CVPPThread::InsertNewFrame(CVPPDecodedPicture &new_frame) -+{ -+ if(!IsRunning()) -+ return; -+ -+ m_input_queue_lock.lock(); -+ -+ m_input_queue.push(new_frame); -+ -+ m_input_cond.notify(); -+ m_input_queue_lock.unlock(); -+} -+ -+void CVPPThread::WaitForOutput(unsigned long msec) -+{ -+ if(!IsRunning()) -+ return; -+ -+ m_output_queue_lock.lock(); -+ if(m_output_queue.empty()) -+ { -+ if(msec > 0) -+ m_output_cond.wait(m_output_queue_lock, msec); -+ else -+ m_output_cond.wait(m_output_queue_lock); -+ } -+ m_output_queue_lock.unlock(); -+} -+ -+CVPPRenderPicture CVPPThread::GetOutputPicture() -+{ -+ CVPPRenderPicture res = CVPPRenderPicture(); -+ -+ if(!IsRunning()) -+ return res; -+ -+ m_output_queue_lock.lock(); -+ -+ if(!m_output_queue.empty()) -+ { -+ res = m_output_queue.front(); -+ m_output_queue.pop(); -+ } -+ -+ m_output_queue_lock.unlock(); -+ -+ return res; -+} -+ -+CVPPDecodedPicture CVPPThread::GetCurrentFrame() -+{ -+ CVPPDecodedPicture res = CVPPDecodedPicture(); -+ -+ if(m_stop) -+ return res; -+ -+ m_input_queue_lock.lock(); -+ -+ if(m_input_queue.empty()) -+ m_input_cond.wait(m_input_queue_lock); -+ -+ if(!m_input_queue.empty()) -+ { -+ res = m_input_queue.front(); -+ m_input_queue.pop(); -+ } -+ -+ m_input_queue_lock.unlock(); -+ -+ return res; -+} -+ -+void CVPPThread::InsertOutputFrame(CVPPRenderPicture &new_frame) -+{ -+ m_output_queue_lock.lock(); -+ -+ m_output_queue.push(new_frame); -+ -+ m_output_cond.notify(); -+ m_output_queue_lock.unlock(); -+} -+ -+int CVPPThread::GetInputQueueSize() -+{ -+ CSingleLock lock(m_input_queue_lock); -+ return m_input_queue.size(); -+} -+ -+int CVPPThread::GetOutputQueueSize() -+{ -+ CSingleLock lock(m_output_queue_lock); -+ return m_output_queue.size(); -+} -+ -+void CVPPThread::DoDeinterlacing(const CVPPDecodedPicture &frame, bool topField) -+{ -+ if(!m_vpp->DeintBobReady()) -+ return; -+ -+ CSurfacePtr surf = m_vpp->DeintBob(frame.surface, topField); -+ if(!surf.get()) -+ return; -+ -+ CVPPRenderPicture res; -+ res.valid = true; -+ res.surface = surf; -+ res.DVDPic = frame.DVDPic; -+ -+ res.DVDPic.iFlags &= ~(DVP_FLAG_TOP_FIELD_FIRST | DVP_FLAG_REPEAT_TOP_FIELD | DVP_FLAG_INTERLACED); -+ -+ if( ((frame.DVDPic.iFlags & DVP_FLAG_TOP_FIELD_FIRST) && !topField) -+ || (!(frame.DVDPic.iFlags & DVP_FLAG_TOP_FIELD_FIRST) && topField) ) -+ { -+ res.DVDPic.pts = DVD_NOPTS_VALUE; -+ res.DVDPic.dts = DVD_NOPTS_VALUE; -+ } -+ res.DVDPic.iRepeatPicture = 0.0; -+ -+ InsertOutputFrame(res); -+} -+ -+void CVPPThread::Process() -+{ -+ CVPPDecodedPicture currentFrame = CVPPDecodedPicture(); -+ -+ while(!m_stop) -+ { -+ if(currentFrame.valid) -+ { -+ bool isInterlaced = currentFrame.DVDPic.iFlags & DVP_FLAG_INTERLACED; -+ EDEINTERLACEMODE mode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; -+ EINTERLACEMETHOD method = CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod; -+ -+ if (m_vpp->DeintBobReady() && (method == VS_INTERLACEMETHOD_VAAPI_AUTO || method == VS_INTERLACEMETHOD_AUTO) -+ && (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && isInterlaced))) -+ { -+ bool topField = currentFrame.DVDPic.iFlags & DVP_FLAG_TOP_FIELD_FIRST; -+ DoDeinterlacing(currentFrame, topField); -+ DoDeinterlacing(currentFrame, !topField); -+ } -+ else -+ { -+ CVPPRenderPicture res; -+ res.valid = true; -+ res.DVDPic = currentFrame.DVDPic; -+ res.surface = currentFrame.surface; -+ InsertOutputFrame(res); -+ } -+ } -+ -+ currentFrame = CVPPDecodedPicture(); -+ currentFrame = GetCurrentFrame(); -+ } -+} -+ - #endif -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -index 417cbc0..241ff38 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -@@ -23,11 +23,16 @@ - - #include "DllAvCodec.h" - #include "DVDVideoCodecFFmpeg.h" -+#include "threads/Thread.h" -+#include "threads/Condition.h" -+#include "threads/CriticalSection.h" -+ - #include - #include - #include - #include - #include -+#include - #include - - -@@ -97,6 +102,65 @@ struct CHolder - {} - }; - -+class CVPP; -+ -+struct CVPPDecodedPicture -+{ -+ CVPPDecodedPicture():valid(false) {} -+ -+ bool valid; -+ DVDVideoPicture DVDPic; -+ CSurfacePtr surface; -+}; -+ -+struct CVPPRenderPicture -+{ -+ CVPPRenderPicture():valid(false) {} -+ -+ bool valid; -+ DVDVideoPicture DVDPic; -+ CSurfacePtr surface; -+}; -+ -+class CVPPThread : private CThread -+{ -+public: -+ CVPPThread(CDisplayPtr& display, int width, int height); -+ ~CVPPThread(); -+ -+ bool Init(int num_refs); -+ void Start(); -+ void Dispose(); -+ -+ void InsertNewFrame(CVPPDecodedPicture &new_frame); -+ void WaitForOutput(unsigned long msec = 0); -+ CVPPRenderPicture GetOutputPicture(); -+ -+ int GetInputQueueSize(); -+ int GetOutputQueueSize(); -+ -+protected: -+ void OnStartup(); -+ void OnExit(); -+ void Process(); -+ -+ void InsertOutputFrame(CVPPRenderPicture &new_frame); -+ CVPPDecodedPicture GetCurrentFrame(); -+ void DoDeinterlacing(const CVPPDecodedPicture &frame, bool topField); -+ -+ CVPP *m_vpp; -+ -+ bool m_stop; -+ -+ CCriticalSection m_input_queue_lock; -+ XbmcThreads::ConditionVariable m_input_cond; -+ std::queue m_input_queue; -+ -+ CCriticalSection m_output_queue_lock; -+ XbmcThreads::ConditionVariable m_output_cond; -+ std::queue m_output_queue; -+}; -+ - class CDecoder - : public CDVDVideoCodecFFmpeg::IHardwareDecoder - { -@@ -134,6 +198,8 @@ protected: - - vaapi_context *m_hwaccel; - -+ CVPPThread *m_vppth; -+ - CHolder m_holder; // silly struct to pass data to renderer - }; - -diff --git a/xbmc/settings/VideoSettings.h b/xbmc/settings/VideoSettings.h -index f54a837..5e37d0c 100644 ---- a/xbmc/settings/VideoSettings.h -+++ b/xbmc/settings/VideoSettings.h -@@ -67,6 +67,8 @@ enum EINTERLACEMETHOD - - VS_INTERLACEMETHOD_XVBA = 22, - -+ VS_INTERLACEMETHOD_VAAPI_AUTO = 23, -+ - VS_INTERLACEMETHOD_MAX // do not use and keep as last enum value. - }; - -diff --git a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -index f6b1ea4..08702dd 100644 ---- a/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -+++ b/xbmc/video/dialogs/GUIDialogVideoSettings.cpp -@@ -111,6 +111,7 @@ void CGUIDialogVideoSettings::CreateSettings() - entries.push_back(make_pair(VS_INTERLACEMETHOD_DXVA_BEST , 16321)); - entries.push_back(make_pair(VS_INTERLACEMETHOD_AUTO_ION , 16325)); - entries.push_back(make_pair(VS_INTERLACEMETHOD_XVBA , 16326)); -+ entries.push_back(make_pair(VS_INTERLACEMETHOD_VAAPI_AUTO , 16327)); - - /* remove unsupported methods */ - for(vector >::iterator it = entries.begin(); it != entries.end();) --- -1.7.10.4 - - -From 201720df44515b512c2e1bd77a869c1537c05d44 Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Wed, 10 Apr 2013 10:38:01 +0200 -Subject: [PATCH 3/8] VAAPI: Add Flush function - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 29 ++++++++++++++++++++++++ - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h | 6 +++++ - 2 files changed, 35 insertions(+) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index 2079f0a..aedeb0f 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -531,6 +531,11 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture - return true; - } - -+void CDecoder::Reset() -+{ -+ m_vppth->Flush(); -+} -+ - int CDecoder::Check(AVCodecContext* avctx) - { - if (m_display == NULL) -@@ -713,6 +718,19 @@ int CVPPThread::GetOutputQueueSize() - return m_output_queue.size(); - } - -+void CVPPThread::Flush() -+{ -+ CSingleLock lock(m_work_lock); -+ -+ m_input_queue_lock.lock(); -+ m_input_queue = std::queue(); -+ m_input_queue_lock.unlock(); -+ -+ m_output_queue_lock.lock(); -+ m_output_queue = std::queue(); -+ m_output_queue_lock.unlock(); -+} -+ - void CVPPThread::DoDeinterlacing(const CVPPDecodedPicture &frame, bool topField) - { - if(!m_vpp->DeintBobReady()) -@@ -744,11 +762,16 @@ void CVPPThread::Process() - { - CVPPDecodedPicture currentFrame = CVPPDecodedPicture(); - -+ m_work_lock.lock(); -+ - while(!m_stop) - { - if(currentFrame.valid) - { - bool isInterlaced = currentFrame.DVDPic.iFlags & DVP_FLAG_INTERLACED; -+ //if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -+ // isInterlaced = false; -+ - EDEINTERLACEMODE mode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; - EINTERLACEMETHOD method = CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod; - -@@ -756,6 +779,7 @@ void CVPPThread::Process() - && (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && isInterlaced))) - { - bool topField = currentFrame.DVDPic.iFlags & DVP_FLAG_TOP_FIELD_FIRST; -+ - DoDeinterlacing(currentFrame, topField); - DoDeinterlacing(currentFrame, !topField); - } -@@ -770,8 +794,13 @@ void CVPPThread::Process() - } - - currentFrame = CVPPDecodedPicture(); -+ -+ m_work_lock.unlock(); - currentFrame = GetCurrentFrame(); -+ m_work_lock.lock(); - } -+ -+ m_work_lock.unlock(); - } - - #endif -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -index 241ff38..1aa2fd7 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -@@ -139,6 +139,8 @@ public: - int GetInputQueueSize(); - int GetOutputQueueSize(); - -+ void Flush(); -+ - protected: - void OnStartup(); - void OnExit(); -@@ -152,6 +154,8 @@ protected: - - bool m_stop; - -+ CCriticalSection m_work_lock; -+ - CCriticalSection m_input_queue_lock; - XbmcThreads::ConditionVariable m_input_cond; - std::queue m_input_queue; -@@ -173,9 +177,11 @@ public: - virtual int Decode (AVCodecContext* avctx, AVFrame* frame); - virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture); - virtual int Check (AVCodecContext* avctx); -+ virtual void Reset (); - virtual void Close(); - virtual const std::string Name() { return "vaapi"; } - virtual CCriticalSection* Section() { if(m_display) return m_display.get(); else return NULL; } -+ virtual bool CanSkipDeint() { return true; } - - int GetBuffer(AVCodecContext *avctx, AVFrame *pic); - void RelBuffer(AVCodecContext *avctx, AVFrame *pic); --- -1.7.10.4 - - -From 58605e632bf6fdb9133e96d570951a36e65b5d97 Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Wed, 10 Apr 2013 11:26:01 +0200 -Subject: [PATCH 4/8] VAAPI: Use shared_ptr::unique() instead of use_count() - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 4 ++-- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index aedeb0f..114c8ce 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -207,8 +207,8 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) - else - { - // To avoid stutter, we scan the free surface pool (provided by decoder) for surfaces -- // that are 100% not in use by renderer or vpp. The pointers to these surfaces have a use_count of 1. -- for (; it != m_surfaces_free.end() && it->use_count() > 1; ++it) {} -+ // that are 100% not in use by renderer or vpp. The pointers to these surfaces are unique(use_count() == 1). -+ for (; it != m_surfaces_free.end() && !it->unique(); ++it) {} - - // If we have zero free surface from decoder OR all free surfaces are in use by renderer, we allocate a new surface - if (it == m_surfaces_free.end()) -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -index 47f98f8..f063b07 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -@@ -330,7 +330,7 @@ CSurfacePtr CVPP::getFreeSurface() - #ifdef VPP_AVAIL - for(int i = 0; i < m_bobTargetCount; ++i) - { -- if(m_bobTargets[i].use_count() == 1) -+ if(m_bobTargets[i].unique()) - { - return m_bobTargets[i]; - } --- -1.7.10.4 - - -From 55c5d2d8da95a7cf968bcd5cbe858ab21e15f475 Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Wed, 10 Apr 2013 12:06:57 +0200 -Subject: [PATCH 5/8] VAAPI: Reduce VPP buffer size - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 15 +++++++++------ - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h | 2 ++ - 2 files changed, 11 insertions(+), 6 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index 114c8ce..4e27bb5 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -146,6 +146,9 @@ CSurfaceGL::~CSurfaceGL() - - CDecoder::CDecoder() - { -+ // Buffer size passed to VPP Init -+ m_buffer_size = 9; -+ - m_refs = 0; - m_surfaces_count = 0; - m_config = 0; -@@ -379,7 +382,7 @@ bool CDecoder::Open(AVCodecContext *avctx, enum PixelFormat fmt, unsigned int su - return false; - - m_vppth = new CVPPThread(m_display, avctx->width, avctx->height); -- m_vppth->Init(m_refs); // Ignore result, VPPThread just passes frames if init failed -+ m_vppth->Init(m_buffer_size); // Ignore result, VPPThread just passes frames if init failed - m_vppth->Start(); - - m_hwaccel->display = m_display->get(); -@@ -413,7 +416,7 @@ bool CDecoder::EnsureContext(AVCodecContext *avctx) - - int vpp_buf = 0; - if(CVPP::Supported()) -- vpp_buf = 4; -+ vpp_buf = m_buffer_size >> 1; - - return EnsureSurfaces(avctx, m_refs + m_renderbuffers_count + vpp_buf + 3); - } -@@ -503,7 +506,7 @@ int CDecoder::Decode(AVCodecContext* avctx, AVFrame* frame) - - int ret = 0; - -- if(m_vppth->GetInputQueueSize() < 4 && m_vppth->GetOutputQueueSize() < 8) -+ if(m_vppth->GetInputQueueSize() < (m_buffer_size >> 2) && m_vppth->GetOutputQueueSize() < (m_buffer_size >> 1)) - ret |= VC_BUFFER; - if(m_vppth->GetOutputQueueSize() > 0) - ret |= VC_PICTURE; -@@ -585,7 +588,7 @@ bool CVPPThread::Init(int num_refs) - if(!m_vpp->InitVpp()) - return false; - -- if(!m_vpp->InitDeintBob(num_refs + 16)) -+ if(!m_vpp->InitDeintBob(num_refs)) - return false; - - return true; -@@ -769,8 +772,8 @@ void CVPPThread::Process() - if(currentFrame.valid) - { - bool isInterlaced = currentFrame.DVDPic.iFlags & DVP_FLAG_INTERLACED; -- //if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -- // isInterlaced = false; -+ if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -+ isInterlaced = false; - - EDEINTERLACEMODE mode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; - EINTERLACEMETHOD method = CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod; -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -index 1aa2fd7..6ccef59 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -@@ -194,6 +194,8 @@ protected: - VASurfaceID m_surfaces[m_surfaces_max]; - unsigned m_renderbuffers_count; - -+ int m_buffer_size; -+ - int m_refs; - std::list m_surfaces_used; - std::list m_surfaces_free; --- -1.7.10.4 - - -From b1d06507eaf2b765a36d8df3a4d527ac7618e153 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Thu, 25 Apr 2013 21:13:33 +0200 -Subject: [PATCH 6/8] VAAPI: adapt code to work with frodo - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index 4e27bb5..fbe3fd5 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -20,7 +20,6 @@ - #include "system.h" - #ifdef HAVE_LIBVA - #include "windowing/WindowingFactory.h" --#include "settings/MediaSettings.h" - #include "settings/Settings.h" - #include "cores/dvdplayer/DVDClock.h" - #include "VAAPI.h" -@@ -775,8 +774,8 @@ void CVPPThread::Process() - if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) - isInterlaced = false; - -- EDEINTERLACEMODE mode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; -- EINTERLACEMETHOD method = CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod; -+ EDEINTERLACEMODE mode = g_settings.m_currentVideoSettings.m_DeinterlaceMode; -+ EINTERLACEMETHOD method = g_settings.m_currentVideoSettings.m_InterlaceMethod; - - if (m_vpp->DeintBobReady() && (method == VS_INTERLACEMETHOD_VAAPI_AUTO || method == VS_INTERLACEMETHOD_AUTO) - && (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && isInterlaced))) --- -1.7.10.4 - - -From 754919b065c32fdf0e3b78a072cce6282d3c371c Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Sat, 27 Apr 2013 15:37:56 +0200 -Subject: [PATCH 7/8] VAAPI: Fix VPP compile if libva is too old - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -index f063b07..1fdad18 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -@@ -321,7 +321,7 @@ CSurfacePtr CVPP::DeintBob(const CSurfacePtr& input, bool topField) - - return bobTarget; - #else -- return VA_INVALID_ID; -+ return CSurfacePtr(); - #endif - } - --- -1.7.10.4 - - -From b1c3a0320232080b935b3146146ba33ca6162f84 Mon Sep 17 00:00:00 2001 -From: BtbN -Date: Fri, 24 May 2013 19:25:59 +0200 -Subject: [PATCH 8/8] VAAPI, sqash me: Fix compile for new 1.2-testing branch - ---- - xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -index 1fdad18..8a500cc 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI_VPP.cpp -@@ -35,6 +35,11 @@ - - #include - -+#ifndef VA_SURFACE_ATTRIB_SETTABLE -+#define vaCreateSurfaces(d, f, w, h, s, ns, a, na) \ -+ vaCreateSurfaces(d, w, h, f, ns, s) -+#endif -+ - using namespace VAAPI; - - bool CVPP::isSupported = true; --- -1.7.10.4 - diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.12-enable-vpp-fix-audio-out-of-sync.patch b/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.12-enable-vpp-fix-audio-out-of-sync.patch deleted file mode 100644 index 95190cbb52..0000000000 --- a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.12-enable-vpp-fix-audio-out-of-sync.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 7205cbc5abda0a8571170a132bd30fc54a4aa6b6 -Author: fritsch -Date: Tue Jun 18 18:59:05 2013 +0200 - - VPP: SkipDeint was not only meant for interlaced content (fixes Audio out of sync after pause, ffwd) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index fbe3fd5..0f138aa 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -771,8 +771,8 @@ void CVPPThread::Process() - if(currentFrame.valid) - { - bool isInterlaced = currentFrame.DVDPic.iFlags & DVP_FLAG_INTERLACED; -- if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -- isInterlaced = false; -+ //if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -+ // isInterlaced = false; - - EDEINTERLACEMODE mode = g_settings.m_currentVideoSettings.m_DeinterlaceMode; - EINTERLACEMETHOD method = g_settings.m_currentVideoSettings.m_InterlaceMethod; -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -index 6ccef59..b7b82c9 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -@@ -181,7 +181,7 @@ public: - virtual void Close(); - virtual const std::string Name() { return "vaapi"; } - virtual CCriticalSection* Section() { if(m_display) return m_display.get(); else return NULL; } -- virtual bool CanSkipDeint() { return true; } -+ virtual bool CanSkipDeint() { return false; } - - int GetBuffer(AVCodecContext *avctx, AVFrame *pic); - void RelBuffer(AVCodecContext *avctx, AVFrame *pic); diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.13-vpp-fix-skipping.patch b/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.13-vpp-fix-skipping.patch deleted file mode 100644 index b617367c5d..0000000000 --- a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-995.13-vpp-fix-skipping.patch +++ /dev/null @@ -1,95 +0,0 @@ -commit 6f1d11cf3e44a37b5d90689bda9fc7df11ae8a52 -Author: fritsch -Date: Wed Jun 19 20:30:44 2013 +0200 - - VPP: Implement proper deinterlace skipping - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -index 0f138aa..fcc9ec9 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp -@@ -569,10 +569,15 @@ int CDecoder::Check(AVCodecContext* avctx) - return 0; - } - -+bool CDecoder::CanSkipDeint() -+{ -+ return m_vppth->CanSkipDeint(); -+} - - CVPPThread::CVPPThread(CDisplayPtr& display, int width, int height) - :CThread("VAAPI VPP Thread") - ,m_stop(false) -+ ,m_skipDeinterlace(false) - { - m_vpp = new CVPP(display, width, height); - } -@@ -720,6 +725,11 @@ int CVPPThread::GetOutputQueueSize() - return m_output_queue.size(); - } - -+bool CVPPThread::CanSkipDeint() -+{ -+ return m_skipDeinterlace; -+} -+ - void CVPPThread::Flush() - { - CSingleLock lock(m_work_lock); -@@ -771,22 +781,22 @@ void CVPPThread::Process() - if(currentFrame.valid) - { - bool isInterlaced = currentFrame.DVDPic.iFlags & DVP_FLAG_INTERLACED; -- //if(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -- // isInterlaced = false; - - EDEINTERLACEMODE mode = g_settings.m_currentVideoSettings.m_DeinterlaceMode; - EINTERLACEMETHOD method = g_settings.m_currentVideoSettings.m_InterlaceMethod; - -- if (m_vpp->DeintBobReady() && (method == VS_INTERLACEMETHOD_VAAPI_AUTO || method == VS_INTERLACEMETHOD_AUTO) -- && (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && isInterlaced))) -+ if (m_vpp->DeintBobReady() && !(currentFrame.DVDPic.iFlags & DVP_FLAG_DROPDEINT) -+ && (method == VS_INTERLACEMETHOD_VAAPI_AUTO || method == VS_INTERLACEMETHOD_AUTO) -+ && (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && isInterlaced))) - { - bool topField = currentFrame.DVDPic.iFlags & DVP_FLAG_TOP_FIELD_FIRST; -- -+ m_skipDeinterlace = true; - DoDeinterlacing(currentFrame, topField); - DoDeinterlacing(currentFrame, !topField); - } - else - { -+ m_skipDeinterlace = false; - CVPPRenderPicture res; - res.valid = true; - res.DVDPic = currentFrame.DVDPic; -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -index b7b82c9..8361ff0 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h -@@ -134,6 +134,7 @@ public: - - void InsertNewFrame(CVPPDecodedPicture &new_frame); - void WaitForOutput(unsigned long msec = 0); -+ virtual bool CanSkipDeint(); - CVPPRenderPicture GetOutputPicture(); - - int GetInputQueueSize(); -@@ -153,6 +154,7 @@ protected: - CVPP *m_vpp; - - bool m_stop; -+ bool m_skipDeinterlace; - - CCriticalSection m_work_lock; - -@@ -181,7 +183,7 @@ public: - virtual void Close(); - virtual const std::string Name() { return "vaapi"; } - virtual CCriticalSection* Section() { if(m_display) return m_display.get(); else return NULL; } -- virtual bool CanSkipDeint() { return false; } -+ virtual bool CanSkipDeint(); - - int GetBuffer(AVCodecContext *avctx, AVFrame *pic); - void RelBuffer(AVCodecContext *avctx, AVFrame *pic); diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-999-dualaudiofix.patch b/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-999-dualaudiofix.patch deleted file mode 100644 index 1d46fbef55..0000000000 --- a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-999-dualaudiofix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur xbmc-12.2-83bda98/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp xbmc-12.2-83bda98.patch/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp ---- xbmc-12.2-83bda98/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp 2013-08-25 21:45:30.000000000 +0200 -+++ xbmc-12.2-83bda98.patch/xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp 2013-08-26 01:26:41.950633846 +0200 -@@ -277,7 +277,9 @@ - case 0: g_guiSettings.SetInt("audiooutput.mode", AUDIO_ANALOG ); break; - case 1: g_guiSettings.SetInt("audiooutput.mode", AUDIO_IEC958 ); bitstream = true; break; - case 2: g_guiSettings.SetInt("audiooutput.mode", AUDIO_HDMI ); bitstream = true; break; -+#ifdef TARGET_RASPBERRY_PI - case 3: g_guiSettings.SetInt("audiooutput.mode", AUDIO_BOTH ); break; -+#endif - } - - EnableSettings(AUDIO_SETTINGS_OUTPUT_TO_ALL_SPEAKERS, bitstream); diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch.bk b/packages/mediacenter/xbmc/patches/12.2-71eb528/todo/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch.bk similarity index 100% rename from packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch.bk rename to packages/mediacenter/xbmc/patches/12.2-71eb528/todo/xbmc-995.03-OMXPlayer-Audio-fix_incorrect_usage_of_flag_talled.patch.bk diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch.bk b/packages/mediacenter/xbmc/patches/12.2-71eb528/todo/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch.bk similarity index 100% rename from packages/mediacenter/xbmc/patches/12.2-18397e1/todo/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch.bk rename to packages/mediacenter/xbmc/patches/12.2-71eb528/todo/xbmc-995.04-OMXPlayer-some_caching_fixes_for_pvr.patch.bk diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch rename to packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-452-change_lcd_content-0.1.patch b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-452-change_lcd_content-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-452-change_lcd_content-0.1.patch rename to packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-452-change_lcd_content-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-453-add_openelec.tv_RSS_news-0.1.patch b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-453-add_openelec.tv_RSS_news-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-453-add_openelec.tv_RSS_news-0.1.patch rename to packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-453-add_openelec.tv_RSS_news-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-990.00-remove-windowed-display-mode.patch b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.00-remove-windowed-display-mode.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/12.2-18397e1/xbmc-990.00-remove-windowed-display-mode.patch rename to packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.00-remove-windowed-display-mode.patch diff --git a/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.24-wait-for-nic-on-wakeup.patch b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.24-wait-for-nic-on-wakeup.patch new file mode 100644 index 0000000000..a75dba87e4 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.24-wait-for-nic-on-wakeup.patch @@ -0,0 +1,60 @@ +diff --git a/xbmc/powermanagement/PowerManager.cpp b/xbmc/powermanagement/PowerManager.cpp +index 26d7002..71c4bd4 100644 +--- a/xbmc/powermanagement/PowerManager.cpp ++++ b/xbmc/powermanagement/PowerManager.cpp +@@ -23,6 +23,7 @@ + #include "Application.h" + #include "cores/AudioEngine/AEFactory.h" + #include "input/KeyboardStat.h" ++#include "network/Network.h" + #include "settings/GUISettings.h" + #include "windowing/WindowingFactory.h" + #include "utils/log.h" +@@ -218,10 +219,34 @@ void CPowerManager::OnSleep() + CAEFactory::Suspend(); + } + ++void CPowerManager::WaitForNet() ++{ ++ CLog::Log(LOGDEBUG, "%s: Waithing for first NIC to come up", __FUNCTION__); ++ ++ const unsigned maxLoopCount = 50u; ++ const unsigned sleepTimeMs = 200u; ++ ++ for(unsigned i=0; i < 50; ++i) ++ { ++ CNetworkInterface* pIface = g_application.getNetwork().GetFirstConnectedInterface(); ++ if (pIface && pIface->IsEnabled() && pIface->IsConnected()) ++ { ++ CLog::Log(LOGDEBUG, "%s: NIC is up after waiting %d ms", __FUNCTION__, i * sleepTimeMs); ++ return; ++ } ++ ++ Sleep(sleepTimeMs); ++ } ++ ++ CLog::Log(LOGDEBUG, "%s: NIC did not come up within %d ms... Lets give up...", __FUNCTION__, maxLoopCount * sleepTimeMs); ++} ++ + void CPowerManager::OnWake() + { + CLog::Log(LOGNOTICE, "%s: Running resume jobs", __FUNCTION__); + ++ WaitForNet(); ++ + // reset out timers + g_application.ResetShutdownTimers(); + +diff --git a/xbmc/powermanagement/PowerManager.h b/xbmc/powermanagement/PowerManager.h +index 0a9183c..714b5cc 100644 +--- a/xbmc/powermanagement/PowerManager.h ++++ b/xbmc/powermanagement/PowerManager.h +@@ -72,6 +72,8 @@ private: + + void OnLowBattery(); + ++ void WaitForNet(); ++ + IPowerSyscall *m_instance; + }; + diff --git a/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.25-BP-xbmc-PR3166.patch b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.25-BP-xbmc-PR3166.patch new file mode 100644 index 0000000000..86998e3dad --- /dev/null +++ b/packages/mediacenter/xbmc/patches/12.2-71eb528/xbmc-990.25-BP-xbmc-PR3166.patch @@ -0,0 +1,69 @@ +diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp +index da7a06c..86a328e 100644 +--- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp ++++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp +@@ -20,6 +20,7 @@ + + #include "DVDSubtitlesLibass.h" + #include "DVDClock.h" ++#include "filesystem/File.h" + #include "filesystem/SpecialProtocol.h" + #include "settings/GUISettings.h" + #include "utils/log.h" +@@ -76,8 +77,13 @@ CDVDSubtitlesLibass::CDVDSubtitlesLibass() + return; + + //Setting default font to the Arial in \media\fonts (used if FontConfig fails) +- strPath = "special://xbmc/media/Fonts/"; ++ strPath = "special://home/media/Fonts/"; + strPath += g_guiSettings.GetString("subtitles.font"); ++ if (!XFILE::CFile::Exists(strPath)) ++ { ++ strPath = "special://xbmc/media/Fonts/"; ++ strPath += g_guiSettings.GetString("subtitles.font"); ++ } + int fc = !g_guiSettings.GetBool("subtitles.overrideassfonts"); + + m_dll.ass_set_margins(m_renderer, 0, 0, 0, 0); +diff --git a/xbmc/music/karaoke/karaokelyricstext.cpp b/xbmc/music/karaoke/karaokelyricstext.cpp +index a73881c..fa9c49f 100644 +--- a/xbmc/music/karaoke/karaokelyricstext.cpp ++++ b/xbmc/music/karaoke/karaokelyricstext.cpp +@@ -139,7 +139,9 @@ bool CKaraokeLyricsText::InitGraphics() + if ( m_lyrics.empty() ) + return false; + +- CStdString fontPath = "special://xbmc/media/Fonts/" + g_guiSettings.GetString("karaoke.font"); ++ CStdString fontPath = "special://home/media/Fonts/" + g_guiSettings.GetString("karaoke.font"); ++ if (!XFILE::CFile::Exists(fontPath)) ++ fontPath = "special://xbmc/media/Fonts/" + g_guiSettings.GetString("karaoke.font");; + m_karaokeFont = g_fontManager.LoadTTF("__karaoke__", fontPath, + m_colorLyrics, 0, g_guiSettings.GetInt("karaoke.fontheight"), FONT_STYLE_BOLD ); + CGUIFont *karaokeBorder = g_fontManager.LoadTTF("__karaokeborder__", fontPath, +diff --git a/xbmc/video/windows/GUIWindowFullScreen.cpp b/xbmc/video/windows/GUIWindowFullScreen.cpp +index 519bcfb..0583e6a 100644 +--- a/xbmc/video/windows/GUIWindowFullScreen.cpp ++++ b/xbmc/video/windows/GUIWindowFullScreen.cpp +@@ -56,6 +56,7 @@ + #include "pvr/PVRManager.h" + #include "pvr/channels/PVRChannelGroupsContainer.h" + #include "windowing/WindowingFactory.h" ++#include "filesystem/File.h" + + #include + #include +@@ -707,8 +708,13 @@ bool CGUIWindowFullScreen::OnMessage(CGUIMessage& message) + { + CSingleLock lock (m_fontLock); + +- CStdString fontPath = "special://xbmc/media/Fonts/"; ++ CStdString fontPath = "special://home/media/Fonts/"; + fontPath += g_guiSettings.GetString("subtitles.font"); ++ if (!XFILE::CFile::Exists(fontPath)) ++ { ++ fontPath = "special://xbmc/media/Fonts/"; ++ fontPath += g_guiSettings.GetString("subtitles.font"); ++ } + + // We scale based on PAL4x3 - this at least ensures all sizing is constant across resolutions. + RESOLUTION_INFO pal(720, 576, 0); diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-321-texturepacker-hostflags-and-rework.patch b/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-321-texturepacker-hostflags-and-rework.patch deleted file mode 100644 index 93fead20be..0000000000 --- a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-321-texturepacker-hostflags-and-rework.patch +++ /dev/null @@ -1,169 +0,0 @@ -diff -Naur xbmc-frodo-0ff0d2e/configure.in xbmc-frodo-0ff0d2e.patch/configure.in ---- xbmc-frodo-0ff0d2e/configure.in 2012-10-11 15:45:44.000000000 +0200 -+++ xbmc-frodo-0ff0d2e.patch/configure.in 2012-10-11 16:49:08.872850880 +0200 -@@ -452,6 +452,12 @@ - [use_texturepacker=$enableval], - [use_texturepacker=auto]) - -+AC_ARG_WITH([texturepacker-root], -+ [AS_HELP_STRING([--with-texturepacker-root], -+ [root dir to search for librarys and includes if building native TexturePacker (default is \$prefix)])], -+ [use_texturepacker_root=$withval], -+ [use_texturepacker_root=$prefix]) -+ - AC_ARG_WITH([lirc-device], - [AS_HELP_STRING([--with-lirc-device=file], - [specify the default LIRC device (default is /dev/lircd)])], -@@ -2000,13 +2006,13 @@ - - USE_TEXTUREPACKER_NATIVE=0 - if test "x$use_texturepacker" != "xno"; then -- final_message="$final_message\n TexturePacker:Yes" - USE_TEXTUREPACKER=1 -- if test "x$use_texturepacker_native" = "xyes"; then -+ if test "x$cross_compiling" = "xyes"; then - USE_TEXTUREPACKER_NATIVE=1 -- if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then -- USE_TEXTUREPACKER_NATIVE_ROOT= -- fi -+ USE_TEXTUREPACKER_NATIVE_ROOT="$use_texturepacker_root" -+ final_message="$final_message\n TexturePacker:Native ($USE_TEXTUREPACKER_NATIVE_ROOT)" -+ else -+ final_message="$final_message\n TexturePacker:Yes" - fi - else - final_message="$final_message\n TexturePacker:No" -diff -Naur xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in ---- xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in 2012-10-11 15:47:26.000000000 +0200 -+++ xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in 2012-10-11 16:49:08.873850900 +0200 -@@ -11,26 +11,25 @@ - singlecolourfit.cpp \ - squish.cpp - --CXXFLAGS+=-I. -- --LIB=libsquish.a -- --ifeq (@USE_TEXTUREPACKER_NATIVE@,1) --NATIVE_LIB=libsquish-native.so --CLEAN_FILES+=$(NATIVE_LIB) -+LIB = libsquish.a -+NATIVE_LIB = libsquish-native.so -+CLEAN_FILES += $(NATIVE_LIB) -+ -+HOST_CXX ?= g++ -+CXXFLAGS += -I. -+HOST_CXXFLAGS += -I. - - ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) --NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ -+ HOST_CXXFLAGS += @DARWIN_NATIVE_ARCH@ - endif - --all: $(LIB) $(NATIVE_LIB) -+$(LIB): $(SRCS) - # TexturePacker links to libsquish and needs to run on build system, so make a native flavor. - $(NATIVE_LIB): $(SRCS) - ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) -- g++ $(NATIVE_ARCH) -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ -+ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ - else -- g++ -I. $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ --endif -+ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ - endif - - include ../../Makefile.include -diff -Naur xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in ---- xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in 2012-10-11 15:47:05.000000000 +0200 -+++ xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in 2012-10-11 16:49:08.874850920 +0200 -@@ -1,56 +1,54 @@ --DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING -+DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING - ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),) --DEFINES += -DHOST_BIGENDIAN -+DEFINES += -DHOST_BIGENDIAN - endif - --CXXFLAGS+= \ -+SRCS = \ -+ md5.cpp \ -+ SDL_anigif.cpp \ -+ XBTFWriter.cpp \ -+ XBMCTex.cpp \ -+ @abs_top_srcdir@/xbmc/guilib/XBTF.cpp -+ -+TARGET = TexturePacker -+CLEAN_FILES = $(TARGET) -+ -+all: $(TARGET) -+ -+HOST_CXX ?= g++ -+HOST_ROOT_PATH = @USE_TEXTUREPACKER_NATIVE_ROOT@ -+ -+LIBS += -lSDL_image -lSDL -llzo2 -+LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish -+HOST_LIBS += -L$(HOST_ROOT_PATH)/lib -lSDL_image -lSDL -llzo2 -+HOST_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native -+ -+CXXFLAGS += \ - -I. \ - -I@abs_top_srcdir@/lib \ - -I@abs_top_srcdir@/xbmc \ - -I@abs_top_srcdir@/xbmc/linux - --RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib -+HOST_CXXFLAGS += \ -+ -I. \ -+ -I@abs_top_srcdir@/lib \ -+ -I@abs_top_srcdir@/xbmc \ -+ -I@abs_top_srcdir@/xbmc/linux \ -+ -I$(HOST_ROOT_PATH)/include -+ -+RPATH=-Wl,-rpath=$(HOST_ROOT_PATH)/lib - --ifeq (@USE_TEXTUREPACKER_NATIVE@,1) --NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@ --ifdef NATIVE_ROOT_PATH - ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) - DEFINES += -DTARGET_DARWIN - NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ - RPATH= - endif --NATIVE_CXXFLAGS+= -I. \ -- -I$(NATIVE_ROOT_PATH)/include \ -- -I@abs_top_srcdir@/lib \ -- -I@abs_top_srcdir@/xbmc \ -- -I@abs_top_srcdir@/xbmc/linux --NATIVE_LIBS += -L$(NATIVE_ROOT_PATH)/lib --endif --NATIVE_LIBS += -lSDL_image -lSDL -llzo2 --NATIVE_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native --else --LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish --endif -- --LIBS += -lSDL_image -lSDL -llzo2 -- --SRCS = \ -- md5.cpp \ -- SDL_anigif.cpp \ -- XBTFWriter.cpp \ -- XBMCTex.cpp \ -- @abs_top_srcdir@/xbmc/guilib/XBTF.cpp -- -- --TARGET = TexturePacker --CLEAN_FILES=$(TARGET) -- --all: $(TARGET) - - ifeq (@USE_TEXTUREPACKER_NATIVE@,1) - # TexturePacker run native on build system, build it with native tools - $(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h -- g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET) -+ make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so -+ $(HOST_CXX) $(DEFINES) $(NATIVE_ARCH) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) $(RPATH) -o $(TARGET) - clean: - rm -f $(TARGET) - else diff --git a/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-321-PR3190-texturepacker.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-321-PR3190-texturepacker.patch new file mode 100644 index 0000000000..566812e05a --- /dev/null +++ b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-321-PR3190-texturepacker.patch @@ -0,0 +1,714 @@ +From 70199b49c92d0ca58b09f948794e637ed1bc963c Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Tue, 3 Sep 2013 05:16:54 +0200 +Subject: [PATCH 1/5] configure: add initial support for CC_FOR_BUILD, + CXX_FOR_BUILD, CFLAGS_FOR_BUILD, CXXFLAGS_FOR_BUILD, LDFLAGS_FOR_BUILD + +--- + Makefile.include.in | 5 ++ + configure.in | 15 ++++-- + m4/ax_prog_cc_for_build.m4 | 125 ++++++++++++++++++++++++++++++++++++++++++++ + m4/ax_prog_cxx_for_build.m4 | 110 ++++++++++++++++++++++++++++++++++++++ + 4 files changed, 252 insertions(+), 3 deletions(-) + create mode 100644 m4/ax_prog_cc_for_build.m4 + create mode 100644 m4/ax_prog_cxx_for_build.m4 + +diff --git a/Makefile.include.in b/Makefile.include.in +index 2b7b89a..2afe6ba 100644 +--- a/Makefile.include.in ++++ b/Makefile.include.in +@@ -28,10 +28,15 @@ dvidir=@dvidir@ + pdfdir=@pdfdir@ + psdir=@psdir@ + CXX=@CXX@ ++CXX_FOR_BUILD=@CXX_FOR_BUILD@ + CC=@CC@ ++CC_FOR_BUILD=@CC_FOR_BUILD@ + CXXFLAGS+=@CXXFLAGS@ ++CXXFLAGS_FOR_BUILD+=@CXXFLAGS_FOR_BUILD@ + CFLAGS+=@CFLAGS@ ++CFLAGS_FOR_BUILD+=@CFLAGS_FOR_BUILD@ + LDFLAGS+=@LDFLAGS@ ++LDFLAGS_FOR_BUILD+=@LDFLAGS_FOR_BUILD@ + INCLUDES+=-I@abs_top_srcdir@/lib + INCLUDES+=-I@abs_top_srcdir@/xbmc + INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.gui +diff --git a/configure.in b/configure.in +index a6153ad..ef0e051 100644 +--- a/configure.in ++++ b/configure.in +@@ -5,6 +5,8 @@ AC_PREREQ(2.59) + AC_INIT([xbmc], [12.9.8], [http://trac.xbmc.org]) + AC_CONFIG_HEADERS([xbmc/config.h]) + AH_TOP([#pragma once]) ++m4_include([m4/ax_prog_cc_for_build.m4]) ++m4_include([m4/ax_prog_cxx_for_build.m4]) + m4_include([m4/ax_python_devel.m4]) + m4_include([m4/xbmc_arch.m4]) + +@@ -579,13 +581,15 @@ if test "x$host_vendor" != "xapple"; then + fi + + # Checks for programs. ++PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values ++AC_PROG_CC ++AX_PROG_CC_FOR_BUILD ++CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS" + PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values + AC_PROG_CXX ++AX_PROG_CXX_FOR_BUILD + CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS" +-PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values +-AC_PROG_CC + AC_PROG_LIBTOOL +-CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS" + AC_PROG_AWK + AC_PROG_LN_S + AC_PROG_MAKE_SET +@@ -2467,6 +2471,11 @@ AC_SUBST(CFLAGS) + AC_SUBST(CXXFLAGS) + AC_SUBST(INCLUDES) + AC_SUBST(LDFLAGS) ++AC_SUBST(CXX_FOR_BUILD) ++AC_SUBST(CC_FOR_BUILD) ++AC_SUBST(CFLAGS_FOR_BUILD) ++AC_SUBST(CXXFLAGS_FOR_BUILD) ++AC_SUBST(LDFLAGS_FOR_BUILD) + AC_SUBST(SDL_DEFINES) + AC_SUBST(BUILD_DVDCSS) + AC_SUBST(DISABLE_WAVEFORM) +diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4 +new file mode 100644 +index 0000000..77fd346 +--- /dev/null ++++ b/m4/ax_prog_cc_for_build.m4 +@@ -0,0 +1,125 @@ ++# =========================================================================== ++# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_PROG_CC_FOR_BUILD ++# ++# DESCRIPTION ++# ++# This macro searches for a C compiler that generates native executables, ++# that is a C compiler that surely is not a cross-compiler. This can be ++# useful if you have to generate source code at compile-time like for ++# example GCC does. ++# ++# The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything ++# needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD). ++# The value of these variables can be overridden by the user by specifying ++# a compiler with an environment variable (like you do for standard CC). ++# ++# It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object ++# file extensions for the build platform, and GCC_FOR_BUILD to `yes' if ++# the compiler we found is GCC. All these variables but GCC_FOR_BUILD are ++# substituted in the Makefile. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Paolo Bonzini ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice ++# and this notice are preserved. This file is offered as-is, without any ++# warranty. ++ ++#serial 8 ++ ++AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) ++AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_PROG_CPP])dnl ++AC_REQUIRE([AC_EXEEXT])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++ ++dnl Use the standard macros, but make them use other variable names ++dnl ++pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl ++pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl ++pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl ++pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl ++pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl ++pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl ++pushdef([ac_cv_objext], ac_cv_build_objext)dnl ++pushdef([ac_exeext], ac_build_exeext)dnl ++pushdef([ac_objext], ac_build_objext)dnl ++pushdef([CC], CC_FOR_BUILD)dnl ++pushdef([CPP], CPP_FOR_BUILD)dnl ++pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl ++pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl ++pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl ++pushdef([host], build)dnl ++pushdef([host_alias], build_alias)dnl ++pushdef([host_cpu], build_cpu)dnl ++pushdef([host_vendor], build_vendor)dnl ++pushdef([host_os], build_os)dnl ++pushdef([ac_cv_host], ac_cv_build)dnl ++pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl ++pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl ++pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl ++pushdef([ac_cv_host_os], ac_cv_build_os)dnl ++pushdef([ac_cpp], ac_build_cpp)dnl ++pushdef([ac_compile], ac_build_compile)dnl ++pushdef([ac_link], ac_build_link)dnl ++ ++save_cross_compiling=$cross_compiling ++save_ac_tool_prefix=$ac_tool_prefix ++cross_compiling=no ++ac_tool_prefix= ++ ++AC_PROG_CC ++AC_PROG_CPP ++AC_EXEEXT ++ ++ac_tool_prefix=$save_ac_tool_prefix ++cross_compiling=$save_cross_compiling ++ ++dnl Restore the old definitions ++dnl ++popdef([ac_link])dnl ++popdef([ac_compile])dnl ++popdef([ac_cpp])dnl ++popdef([ac_cv_host_os])dnl ++popdef([ac_cv_host_vendor])dnl ++popdef([ac_cv_host_cpu])dnl ++popdef([ac_cv_host_alias])dnl ++popdef([ac_cv_host])dnl ++popdef([host_os])dnl ++popdef([host_vendor])dnl ++popdef([host_cpu])dnl ++popdef([host_alias])dnl ++popdef([host])dnl ++popdef([LDFLAGS])dnl ++popdef([CPPFLAGS])dnl ++popdef([CFLAGS])dnl ++popdef([CPP])dnl ++popdef([CC])dnl ++popdef([ac_objext])dnl ++popdef([ac_exeext])dnl ++popdef([ac_cv_objext])dnl ++popdef([ac_cv_exeext])dnl ++popdef([ac_cv_prog_cc_g])dnl ++popdef([ac_cv_prog_cc_cross])dnl ++popdef([ac_cv_prog_cc_works])dnl ++popdef([ac_cv_prog_gcc])dnl ++popdef([ac_cv_prog_CPP])dnl ++ ++dnl Finally, set Makefile variables ++dnl ++BUILD_EXEEXT=$ac_build_exeext ++BUILD_OBJEXT=$ac_build_objext ++AC_SUBST(BUILD_EXEEXT)dnl ++AC_SUBST(BUILD_OBJEXT)dnl ++AC_SUBST([CFLAGS_FOR_BUILD])dnl ++AC_SUBST([CPPFLAGS_FOR_BUILD])dnl ++AC_SUBST([LDFLAGS_FOR_BUILD])dnl ++]) +diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4 +new file mode 100644 +index 0000000..8cc0f73 +--- /dev/null ++++ b/m4/ax_prog_cxx_for_build.m4 +@@ -0,0 +1,110 @@ ++# =========================================================================== ++# http://www.gnu.org/software/autoconf-archive/ax_prog_cxx_for_build.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_PROG_CXX_FOR_BUILD ++# ++# DESCRIPTION ++# ++# This macro searches for a C++ compiler that generates native ++# executables, that is a C++ compiler that surely is not a cross-compiler. ++# This can be useful if you have to generate source code at compile-time ++# like for example GCC does. ++# ++# The macro sets the CXX_FOR_BUILD and CXXCPP_FOR_BUILD macros to anything ++# needed to compile or link (CXX_FOR_BUILD) and preprocess ++# (CXXCPP_FOR_BUILD). The value of these variables can be overridden by ++# the user by specifying a compiler with an environment variable (like you ++# do for standard CXX). ++# ++# LICENSE ++# ++# Copyright (c) 2008 Paolo Bonzini ++# Copyright (c) 2012 Avionic Design GmbH ++# ++# Based on the AX_PROG_CC_FOR_BUILD macro by Paolo Bonzini. ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice ++# and this notice are preserved. This file is offered as-is, without any ++# warranty. ++ ++#serial 2 ++ ++AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD]) ++AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl ++AC_REQUIRE([AX_PROG_CC_FOR_BUILD])dnl ++AC_REQUIRE([AC_PROG_CXX])dnl ++AC_REQUIRE([AC_PROG_CXXCPP])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++ ++dnl Use the standard macros, but make them use other variable names ++dnl ++pushdef([ac_cv_prog_CXXCPP], ac_cv_build_prog_CXXCPP)dnl ++pushdef([ac_cv_prog_gxx], ac_cv_build_prog_gxx)dnl ++pushdef([ac_cv_prog_cxx_works], ac_cv_build_prog_cxx_works)dnl ++pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl ++pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl ++pushdef([CXX], CXX_FOR_BUILD)dnl ++pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl ++pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl ++pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl ++pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl ++pushdef([host], build)dnl ++pushdef([host_alias], build_alias)dnl ++pushdef([host_cpu], build_cpu)dnl ++pushdef([host_vendor], build_vendor)dnl ++pushdef([host_os], build_os)dnl ++pushdef([ac_cv_host], ac_cv_build)dnl ++pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl ++pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl ++pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl ++pushdef([ac_cv_host_os], ac_cv_build_os)dnl ++pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl ++pushdef([ac_compile], ac_build_compile)dnl ++pushdef([ac_link], ac_build_link)dnl ++ ++save_cross_compiling=$cross_compiling ++save_ac_tool_prefix=$ac_tool_prefix ++cross_compiling=no ++ac_tool_prefix= ++ ++AC_PROG_CXX ++AC_PROG_CXXCPP ++ ++ac_tool_prefix=$save_ac_tool_prefix ++cross_compiling=$save_cross_compiling ++ ++dnl Restore the old definitions ++dnl ++popdef([ac_link])dnl ++popdef([ac_compile])dnl ++popdef([ac_cxxcpp])dnl ++popdef([ac_cv_host_os])dnl ++popdef([ac_cv_host_vendor])dnl ++popdef([ac_cv_host_cpu])dnl ++popdef([ac_cv_host_alias])dnl ++popdef([ac_cv_host])dnl ++popdef([host_os])dnl ++popdef([host_vendor])dnl ++popdef([host_cpu])dnl ++popdef([host_alias])dnl ++popdef([host])dnl ++popdef([CXXCPPFLAGS])dnl ++popdef([CPPFLAGS])dnl ++popdef([CXXFLAGS])dnl ++popdef([CXXCPP])dnl ++popdef([CXX])dnl ++popdef([ac_cv_prog_cxx_g])dnl ++popdef([ac_cv_prog_cxx_cross])dnl ++popdef([ac_cv_prog_cxx_works])dnl ++popdef([ac_cv_prog_gxx])dnl ++popdef([ac_cv_prog_CXXCPP])dnl ++ ++dnl Finally, set Makefile variables ++dnl ++AC_SUBST([CXXFLAGS_FOR_BUILD])dnl ++AC_SUBST([CXXCPPFLAGS_FOR_BUILD])dnl ++]) +-- +1.8.4 + + +From 3a03d3cfc95f8d8b77a583d8556000fafce358c0 Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Tue, 3 Sep 2013 05:31:39 +0200 +Subject: [PATCH 2/5] configure/depends: rename 'USE_TEXTUREPACKER_NATIVE_ROOT' + to 'NATIVE_ROOT' for general usage to use with other hostbuilt tools. Add + $NATIVE_ROOT/lib to LDFLAGS_FOR_BUILD and $NATIVE_ROOT/include to + CFLAGS_FOR_BUILD and CXXFLAGS_FOR_BUILD + +--- + configure.in | 14 ++++++++++---- + tools/TexturePacker/Makefile.in | 2 +- + tools/depends/target/config.site.in | 2 +- + tools/rbp/depends/depends.mk | 4 ++-- + 4 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/configure.in b/configure.in +index ef0e051..daf5477 100644 +--- a/configure.in ++++ b/configure.in +@@ -695,7 +695,7 @@ case $host in + esac + AC_SUBST([ARCH]) + +-check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`] ++check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`] + if test "x$check_sdl_arch" = "xi386" ; then + DARWIN_NATIVE_ARCH=-m32 + elif test "x$check_sdl_arch" = "xx86_64" ; then +@@ -1960,6 +1960,12 @@ AC_C_BIGENDIAN + + if test "$cross_compiling" = "yes"; then + final_message="$final_message\n Crosscomp.:\tYes" ++ if [[ -d "$NATIVE_ROOT" ]]; then ++ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include" ++ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include" ++ LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib" ++ final_message="$final_message\n Native Root:\t$NATIVE_ROOT" ++ fi + else + final_message="$final_message\n Crosscomp.:\tNo" + fi +@@ -2103,8 +2109,8 @@ if test "x$use_texturepacker" != "xno"; then + USE_TEXTUREPACKER=1 + if test "x$use_texturepacker_native" = "xyes"; then + USE_TEXTUREPACKER_NATIVE=1 +- if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then +- USE_TEXTUREPACKER_NATIVE_ROOT= ++ if [[ ! -d "$NATIVE_ROOT" ]]; then ++ NATIVE_ROOT= + fi + fi + else +@@ -2517,7 +2523,7 @@ AC_SUBST(USE_XRANDR) + AC_SUBST(USE_ALSA) + AC_SUBST(USE_TEXTUREPACKER) + AC_SUBST(USE_TEXTUREPACKER_NATIVE) +-AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT) ++AC_SUBST(NATIVE_ROOT) + AC_SUBST(USE_AIRTUNES) + AC_SUBST(USE_LIBUDEV) + AC_SUBST(USE_LIBUSB) +diff --git a/tools/TexturePacker/Makefile.in b/tools/TexturePacker/Makefile.in +index 71e3d4a..343182c 100644 +--- a/tools/TexturePacker/Makefile.in ++++ b/tools/TexturePacker/Makefile.in +@@ -12,7 +12,7 @@ CXXFLAGS+= \ + RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib + + ifeq (@USE_TEXTUREPACKER_NATIVE@,1) +-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@ ++NATIVE_ROOT_PATH=@NATIVE_ROOT@ + ifdef NATIVE_ROOT_PATH + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) + DEFINES += -DTARGET_DARWIN +diff --git a/tools/depends/target/config.site.in b/tools/depends/target/config.site.in +index 7cc470d..207748a 100644 +--- a/tools/depends/target/config.site.in ++++ b/tools/depends/target/config.site.in +@@ -39,7 +39,7 @@ PYTHON_LDFLAGS="-L@prefix@/@deps_dir@/lib -lpython${PYTHON_VERSION} -lc -ldl -lm + PYTHON_CPPFLAGS=-I@prefix@/@deps_dir@/include/python${PYTHON_VERSION} + PYTHON_SITE_PKG=@prefix@/@deps_dir@/lib/python${PYTHON_VERSION}/site-packages + PYTHON_NOVERSIONCHECK=no-check +-USE_TEXTUREPACKER_NATIVE_ROOT=@prefix@/@tool_dir@ ++NATIVE_ROOT=@prefix@/@tool_dir@ + + #afps-ng and libomxil-bellagio + ac_cv_func_malloc_0_nonnull=yes +diff --git a/tools/rbp/depends/depends.mk b/tools/rbp/depends/depends.mk +index bafa99c..d805001 100644 +--- a/tools/rbp/depends/depends.mk ++++ b/tools/rbp/depends/depends.mk +@@ -19,7 +19,7 @@ ifeq ($(USE_BUILDROOT),1) + export PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig + export PYTHON_VERSION=2.7 + export PATH:=$(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH) +- export USE_TEXTUREPACKER_NATIVE_ROOT=/usr ++ export NATIVE_ROOT=/usr + export PYTHON_LDFLAGS=-L$(SDKSTAGE)/usr/lib -lpython$(PYTHON_VERSION) -lpthread -ldl -lutil -lm + else + export CFLAGS=-pipe -O3 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated -Wno-deprecated-declarations +@@ -47,7 +47,7 @@ else + export PKG_CONFIG_PATH=$(PREFIX)/bin/pkg-config + export PYTHON_VERSION=2.6 + export PATH:=${PREFIX}/bin:$(PATH):${TOOLCHAIN}/bin +- export USE_TEXTUREPACKER_NATIVE_ROOT=/usr ++ export NATIVE_ROOT=/usr + export PYTHON_LDFLAGS=-L$(SDKSTAGE)/usr/lib -lpython$(PYTHON_VERSION) + endif + export PYTHON_CPPFLAGS=-I$(SDKSTAGE)/usr/include/python$(PYTHON_VERSION) +-- +1.8.4 + + +From 59109579ecfe7622fea2283d1391ca4da07aa9a7 Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Tue, 3 Sep 2013 05:37:05 +0200 +Subject: [PATCH 3/5] libsquish: rework to support native builds with + *_FOR_BUILD + +--- + lib/libsquish/Makefile.in | 22 ++++++++++------------ + 1 file changed, 10 insertions(+), 12 deletions(-) + +diff --git a/lib/libsquish/Makefile.in b/lib/libsquish/Makefile.in +index 34f93bd..ef57bb8 100644 +--- a/lib/libsquish/Makefile.in ++++ b/lib/libsquish/Makefile.in +@@ -11,26 +11,24 @@ SRCS= \ + singlecolourfit.cpp \ + squish.cpp + +-CXXFLAGS+=-I. +- +-LIB=libsquish.a +- +-ifeq (@USE_TEXTUREPACKER_NATIVE@,1) +-NATIVE_LIB=libsquish-native.so +-CLEAN_FILES+=$(NATIVE_LIB) ++CXXFLAGS += -I. ++CXXFLAGS_FOR_BUILD += -I. ++LIB = libsquish.a ++NATIVE_LIB = libsquish-native.so ++CLEAN_FILES += $(NATIVE_LIB) + + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) +-NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ ++ CXXFLAGS_FOR_BUILD += @DARWIN_NATIVE_ARCH@ + endif + +-all: $(LIB) $(NATIVE_LIB) ++all: $(LIB) ++ + # TexturePacker links to libsquish and needs to run on build system, so make a native flavor. + $(NATIVE_LIB): $(SRCS) + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) +- g++ $(NATIVE_ARCH) -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ ++ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $(SRCS) -dynamiclib -install_name `pwd`/$(NATIVE_LIB) -o $@ + else +- g++ -I. $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ +-endif ++ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/$(NATIVE_LIB) -o $@ + endif + + include ../../Makefile.include +-- +1.8.4 + + +From 2108f29aa7f60ed03afea65b262cec5ca1ed5ab9 Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Tue, 3 Sep 2013 05:44:33 +0200 +Subject: [PATCH 4/5] Texturepacker: rework to support native builds with + *_FOR_BUILD, Texturepacker builds always against libsquish-native.so, which + is ok because CXX_FOR_BUILD=CXX, CXXFLAGS_FOR_BUILD=CXXFLAGS and + LDFLAGS_FOR_BUILD=LDFLAGS on non crosscompiled builds, sothere + libsquish-native is the same like libsquish + +--- + Makefile.in | 2 +- + configure.in | 3 ++ + tools/TexturePacker/Makefile.in | 62 +++++++++++++---------------------------- + 3 files changed, 23 insertions(+), 44 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 8162f64..3b21d50 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -520,7 +520,7 @@ else + $(SILENT_LD) $(CC) $(CFLAGS) $(LDFLAGS) -o xbmc-xrandr xbmc-xrandr.c -lXrandr -lX11 -lm + endif + +-tools/TexturePacker/TexturePacker: lib/libsquish/libsquish.a xbmc/guilib/XBTF.h ++tools/TexturePacker/TexturePacker: xbmc/guilib/XBTF.h + $(MAKE) -C tools/TexturePacker/ + + +diff --git a/configure.in b/configure.in +index daf5477..dda18ea 100644 +--- a/configure.in ++++ b/configure.in +@@ -1964,6 +1964,9 @@ if test "$cross_compiling" = "yes"; then + CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include" + CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include" + LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib" ++ if test "$host_vendor" != "apple" ; then ++ LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib" ++ fi + final_message="$final_message\n Native Root:\t$NATIVE_ROOT" + fi + else +diff --git a/tools/TexturePacker/Makefile.in b/tools/TexturePacker/Makefile.in +index 343182c..4f0b610 100644 +--- a/tools/TexturePacker/Makefile.in ++++ b/tools/TexturePacker/Makefile.in +@@ -1,61 +1,37 @@ +-DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING ++DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING + ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),) +-DEFINES += -DHOST_BIGENDIAN ++DEFINES += -DHOST_BIGENDIAN + endif + +-CXXFLAGS+= \ ++SRCS = \ ++ md5.cpp \ ++ SDL_anigif.cpp \ ++ XBTFWriter.cpp \ ++ XBMCTex.cpp \ ++ @abs_top_srcdir@/xbmc/guilib/XBTF.cpp ++ ++TARGET = TexturePacker ++CLEAN_FILES = $(TARGET) ++ ++CXXFLAGS_FOR_BUILD += \ + -I. \ + -I@abs_top_srcdir@/lib \ + -I@abs_top_srcdir@/xbmc \ + -I@abs_top_srcdir@/xbmc/linux + +-RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib ++LDFLAGS_FOR_BUILD += -lSDL_image -lSDL -llzo2 ++LDFLAGS_FOR_BUILD += -L@abs_top_srcdir@/lib/libsquish -lsquish-native + +-ifeq (@USE_TEXTUREPACKER_NATIVE@,1) +-NATIVE_ROOT_PATH=@NATIVE_ROOT@ +-ifdef NATIVE_ROOT_PATH + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) + DEFINES += -DTARGET_DARWIN + NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ +-RPATH= +-endif +-NATIVE_CXXFLAGS+= -I. \ +- -I$(NATIVE_ROOT_PATH)/include \ +- -I@abs_top_srcdir@/lib \ +- -I@abs_top_srcdir@/xbmc \ +- -I@abs_top_srcdir@/xbmc/linux +-NATIVE_LIBS += -L$(NATIVE_ROOT_PATH)/lib +-endif +-NATIVE_LIBS += -lSDL_image -lSDL -llzo2 +-NATIVE_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native +-else +-LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish + endif + +-LIBS += -lSDL_image -lSDL -llzo2 +- +-SRCS = \ +- md5.cpp \ +- SDL_anigif.cpp \ +- XBTFWriter.cpp \ +- XBMCTex.cpp \ +- @abs_top_srcdir@/xbmc/guilib/XBTF.cpp +- +- +-TARGET = TexturePacker +-CLEAN_FILES=$(TARGET) +- + all: $(TARGET) + +-ifeq (@USE_TEXTUREPACKER_NATIVE@,1) +-# TexturePacker run native on build system, build it with native tools + $(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h +- g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET) +-clean: +- rm -f $(TARGET) +-else +-include @abs_top_srcdir@/Makefile.include ++# TexturePacker run native on build system, build it with native tools ++ make -C @abs_top_srcdir@/lib/libsquish/ libsquish-native.so ++ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $(DEFINES) $(NATIVE_ARCH) $(SRCS) $(LDFLAGS_FOR_BUILD) -o $(TARGET) + +-$(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h +- $(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(SRCS) $(LDFLAGS) $(LIBS) -o $(TARGET) +-endif ++include @abs_top_srcdir@/Makefile.include +-- +1.8.4 + + +From ed1cd08fd1e93f3af283eb522082c8c8dbaf2ee7 Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Tue, 3 Sep 2013 05:55:37 +0200 +Subject: [PATCH 5/5] configure: cleanup, we dont need + 'use_texturepacker_native' anymore and dont need to force 'use_texturepacker' + (its enabled by default). + +--- + configure.in | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/configure.in b/configure.in +index dda18ea..0337705 100644 +--- a/configure.in ++++ b/configure.in +@@ -637,7 +637,6 @@ case $host in + use_dvdcss=no + use_gles=yes + use_cpu=cortex-a8 +- use_texturepacker_native=yes + ARCH="arm-osx" + use_arch="arm" + PYTHON_VERSION="2.6" +@@ -649,7 +648,6 @@ case $host in + *86*-apple-darwin*) + use_joystick=no + use_vtbdecoder=no +- use_texturepacker_native=yes + ARCH="x86-osx" + ;; + powerpc-apple-darwin*) +@@ -666,7 +664,6 @@ case $host in + ARCH="powerpc64-linux" + ;; + arm*-*-linux-gnu*) +- use_texturepacker=no + ARCH="arm" + use_arch="arm" + ffmpeg_target_os=linux +@@ -705,7 +702,6 @@ AC_SUBST([DARWIN_NATIVE_ARCH]) + + if test "$target_platform" = "target_android" ; then + USE_ANDROID=1 +- use_texturepacker_native=yes + webserver_checkdepends=yes + CFLAGS="$CFLAGS -Wno-psabi" + CXXFLAGS="$CXXFLAGS -Wno-psabi" +@@ -716,8 +712,6 @@ case $use_platform in + raspberry-pi) + target_platform=target_raspberry_pi + use_neon=no +- use_texturepacker=yes +- use_texturepacker_native=yes + use_arch="arm" + use_cpu=arm1176jzf-s + use_hardcoded_tables="yes" +@@ -2106,16 +2100,9 @@ else + final_message="$final_message\n Bluray:\tNo" + fi + +-USE_TEXTUREPACKER_NATIVE=0 + if test "x$use_texturepacker" != "xno"; then + final_message="$final_message\n TexturePacker:Yes" + USE_TEXTUREPACKER=1 +- if test "x$use_texturepacker_native" = "xyes"; then +- USE_TEXTUREPACKER_NATIVE=1 +- if [[ ! -d "$NATIVE_ROOT" ]]; then +- NATIVE_ROOT= +- fi +- fi + else + final_message="$final_message\n TexturePacker:No" + USE_TEXTUREPACKER=0 +@@ -2525,8 +2512,6 @@ AC_SUBST(USE_PULSE) + AC_SUBST(USE_XRANDR) + AC_SUBST(USE_ALSA) + AC_SUBST(USE_TEXTUREPACKER) +-AC_SUBST(USE_TEXTUREPACKER_NATIVE) +-AC_SUBST(NATIVE_ROOT) + AC_SUBST(USE_AIRTUNES) + AC_SUBST(USE_LIBUDEV) + AC_SUBST(USE_LIBUSB) +-- +1.8.4 + diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch rename to packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-408-enable_PYTHONOPTIMIZE_with_external_Python-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-453-add_openelec.tv_RSS_news-0.1.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-453-add_openelec.tv_RSS_news-0.1.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-453-add_openelec.tv_RSS_news-0.1.patch rename to packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-453-add_openelec.tv_RSS_news-0.1.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-602-add_as.xml_busy_dialog_delay_control.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-602-add_as.xml_busy_dialog_delay_control.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-602-add_as.xml_busy_dialog_delay_control.patch rename to packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-602-add_as.xml_busy_dialog_delay_control.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch rename to packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-990.15-depends-mark_our_wrapped_functions_as_used.patch diff --git a/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-990.25-BP-xbmc-PR3166.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-990.25-BP-xbmc-PR3166.patch new file mode 100644 index 0000000000..801d170d4e --- /dev/null +++ b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-990.25-BP-xbmc-PR3166.patch @@ -0,0 +1,86 @@ +From 1501e49f96f75d12ef8071f30ca3338ea18f4ff4 Mon Sep 17 00:00:00 2001 +From: "Chris \"Koying\" Browet" +Date: Sat, 31 Aug 2013 03:04:48 +0200 +Subject: [PATCH] FIX: Consistenly look for fonts in special//home, then + special://xbmc + +--- + xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp | 10 ++++++++-- + xbmc/music/karaoke/karaokelyricstext.cpp | 4 +++- + xbmc/video/windows/GUIWindowFullScreen.cpp | 8 +++++++- + 3 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp +index 2a4efde..5d7b855 100644 +--- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp ++++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp +@@ -20,6 +20,7 @@ + + #include "DVDSubtitlesLibass.h" + #include "DVDClock.h" ++#include "filesystem/File.h" + #include "filesystem/SpecialProtocol.h" + #include "settings/Settings.h" + #include "utils/log.h" +@@ -75,9 +76,14 @@ static void libass_log(int level, const char *fmt, va_list args, void *data) + if(!m_renderer) + return; + +- //Setting default font to the Arial in \media\fonts (used if FontConfig fails) +- strPath = "special://xbmc/media/Fonts/"; ++ //Setting default font to the Arial in \media\fonts (used if FontConfig fails) ++ strPath = "special://home/media/Fonts/"; + strPath += CSettings::Get().GetString("subtitles.font"); ++ if (!XFILE::CFile::Exists(strPath)) ++ { ++ strPath = "special://xbmc/media/Fonts/"; ++ strPath += CSettings::Get().GetString("subtitles.font"); ++ } + int fc = !CSettings::Get().GetBool("subtitles.overrideassfonts"); + + m_dll.ass_set_margins(m_renderer, 0, 0, 0, 0); +diff --git a/xbmc/music/karaoke/karaokelyricstext.cpp b/xbmc/music/karaoke/karaokelyricstext.cpp +index f04f4c5..f43a188 100644 +--- a/xbmc/music/karaoke/karaokelyricstext.cpp ++++ b/xbmc/music/karaoke/karaokelyricstext.cpp +@@ -139,7 +139,9 @@ bool CKaraokeLyricsText::InitGraphics() + if ( m_lyrics.empty() ) + return false; + +- CStdString fontPath = "special://xbmc/media/Fonts/" + CSettings::Get().GetString("karaoke.font"); ++ CStdString fontPath = "special://home/media/Fonts/" + CSettings::Get().GetString("karaoke.font"); ++ if (!XFILE::CFile::Exists(fontPath)) ++ fontPath = "special://xbmc/media/Fonts/" + CSettings::Get().GetString("karaoke.font"); + m_karaokeFont = g_fontManager.LoadTTF("__karaoke__", fontPath, + m_colorLyrics, 0, CSettings::Get().GetInt("karaoke.fontheight"), FONT_STYLE_BOLD ); + CGUIFont *karaokeBorder = g_fontManager.LoadTTF("__karaokeborder__", fontPath, +diff --git a/xbmc/video/windows/GUIWindowFullScreen.cpp b/xbmc/video/windows/GUIWindowFullScreen.cpp +index 9c8526d..bd1e9ed 100644 +--- a/xbmc/video/windows/GUIWindowFullScreen.cpp ++++ b/xbmc/video/windows/GUIWindowFullScreen.cpp +@@ -56,6 +56,7 @@ + #include "pvr/channels/PVRChannelGroupsContainer.h" + #include "windowing/WindowingFactory.h" + #include "cores/IPlayer.h" ++#include "filesystem/File.h" + + #include + #include +@@ -401,8 +402,13 @@ bool CGUIWindowFullScreen::OnMessage(CGUIMessage& message) + { + CSingleLock lock (m_fontLock); + +- CStdString fontPath = "special://xbmc/media/Fonts/"; ++ CStdString fontPath = "special://home/media/Fonts/"; + fontPath += CSettings::Get().GetString("subtitles.font"); ++ if (!XFILE::CFile::Exists(fontPath)) ++ { ++ fontPath = "special://xbmc/media/Fonts/"; ++ fontPath += CSettings::Get().GetString("subtitles.font"); ++ } + + // We scale based on PAL4x3 - this at least ensures all sizing is constant across resolutions. + RESOLUTION_INFO pal(720, 576, 0); +-- +1.8.4 + diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-995.01-xvba_support-e70c101.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-995.01-xvba_support-4083650.patch similarity index 91% rename from packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-995.01-xvba_support-e70c101.patch rename to packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-995.01-xvba_support-4083650.patch index ba73315ef1..e37593c5eb 100644 --- a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-995.01-xvba_support-e70c101.patch +++ b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-995.01-xvba_support-4083650.patch @@ -1,1226 +1,7 @@ -From eb767f12f803f34a841f490e58bd11629c2e7f84 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Sun, 11 Aug 2013 18:10:05 +0200 -Subject: [PATCH 001/111] AE: add planar formats to end of enum, some other - code relies on the order - ---- - xbmc/cores/AudioEngine/AEAudioFormat.h | 22 +++++++------ - xbmc/cores/AudioEngine/Utils/AEUtil.cpp | 57 +++++++++++++++++---------------- - 2 files changed, 42 insertions(+), 37 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/AEAudioFormat.h b/xbmc/cores/AudioEngine/AEAudioFormat.h -index 64be36f..5664e6e 100644 ---- a/xbmc/cores/AudioEngine/AEAudioFormat.h -+++ b/xbmc/cores/AudioEngine/AEAudioFormat.h -@@ -31,33 +31,26 @@ enum AEDataFormat - AE_FMT_INVALID = -1, - - AE_FMT_U8, -- AE_FMT_U8P, - AE_FMT_S8, - - AE_FMT_S16BE, - AE_FMT_S16LE, - AE_FMT_S16NE, -- AE_FMT_S16NEP, - - AE_FMT_S32BE, - AE_FMT_S32LE, - AE_FMT_S32NE, -- AE_FMT_S32NEP, -- -+ - AE_FMT_S24BE4, - AE_FMT_S24LE4, - AE_FMT_S24NE4, /* S24 in 4 bytes */ -- AE_FMT_S24NE4P, - - AE_FMT_S24BE3, - AE_FMT_S24LE3, - AE_FMT_S24NE3, /* S24 in 3 bytes */ -- AE_FMT_S24NE3P, - - AE_FMT_DOUBLE, -- AE_FMT_DOUBLEP, - AE_FMT_FLOAT, -- AE_FMT_FLOATP, - - /* Bitstream formats */ - AE_FMT_AAC, -@@ -68,11 +61,20 @@ enum AEDataFormat - AE_FMT_DTSHD, - AE_FMT_LPCM, - -+ /* planar formats */ -+ AE_FMT_U8P, -+ AE_FMT_S16NEP, -+ AE_FMT_S32NEP, -+ AE_FMT_S24NE4P, -+ AE_FMT_S24NE3P, -+ AE_FMT_DOUBLEP, -+ AE_FMT_FLOATP, -+ - AE_FMT_MAX - }; - --#define AE_IS_RAW(x) ((x) >= AE_FMT_AAC && (x) < AE_FMT_MAX) --#define AE_IS_RAW_HD(x) ((x) >= AE_FMT_EAC3 && (x) < AE_FMT_MAX) -+#define AE_IS_RAW(x) ((x) >= AE_FMT_AAC && (x) < AE_FMT_U8P) -+#define AE_IS_RAW_HD(x) ((x) >= AE_FMT_EAC3 && (x) < AE_FMT_U8P) - - /** - * The audio format structure that fully defines a stream's audio information -diff --git a/xbmc/cores/AudioEngine/Utils/AEUtil.cpp b/xbmc/cores/AudioEngine/Utils/AEUtil.cpp -index 3a5c78f..1ff44f8 100644 ---- a/xbmc/cores/AudioEngine/Utils/AEUtil.cpp -+++ b/xbmc/cores/AudioEngine/Utils/AEUtil.cpp -@@ -82,42 +82,43 @@ const unsigned int CAEUtil::DataFormatToBits(const enum AEDataFormat dataFormat) - static const unsigned int formats[AE_FMT_MAX] = - { - 8, /* U8 */ -- 8, /* U8P */ - 8, /* S8 */ - - 16, /* S16BE */ - 16, /* S16LE */ - 16, /* S16NE */ -- 16, /* S16NEP */ -- -+ - 32, /* S32BE */ - 32, /* S32LE */ - 32, /* S32NE */ -- 32, /* S32NEP */ -- -+ - 32, /* S24BE */ - 32, /* S24LE */ - 32, /* S24NE */ -- 32, /* S24NEP */ -- -+ - 24, /* S24BE3 */ - 24, /* S24LE3 */ - 24, /* S24NE3 */ -- 24, /* S24NE3P*/ -- -+ - sizeof(double) << 3, /* DOUBLE */ -- sizeof(double) << 3, /* DOUBLEP */ - sizeof(float ) << 3, /* FLOAT */ -- sizeof(float ) << 3, /* FLOATP */ -- -+ - 16, /* AAC */ - 16, /* AC3 */ - 16, /* DTS */ - 16, /* EAC3 */ - 16, /* TRUEHD */ - 16, /* DTS-HD */ -- 32 /* LPCM */ -- }; -+ 32, /* LPCM */ -+ -+ 8, /* U8P */ -+ 16, /* S16NEP */ -+ 32, /* S32NEP */ -+ 32, /* S24NEP */ -+ 24, /* S24NE3P*/ -+ sizeof(double) << 3, /* DOUBLEP */ -+ sizeof(float ) << 3 /* FLOATP */ -+ }; - - return formats[dataFormat]; - } -@@ -130,34 +131,27 @@ const char* CAEUtil::DataFormatToStr(const enum AEDataFormat dataFormat) - static const char *formats[AE_FMT_MAX] = - { - "AE_FMT_U8", -- "AE_FMT_U8P", - "AE_FMT_S8", - - "AE_FMT_S16BE", - "AE_FMT_S16LE", - "AE_FMT_S16NE", -- "AE_FMT_S16NEP", -- -+ - "AE_FMT_S32BE", - "AE_FMT_S32LE", - "AE_FMT_S32NE", -- "AE_FMT_S32NEP", -- -+ - "AE_FMT_S24BE4", - "AE_FMT_S24LE4", - "AE_FMT_S24NE4", /* S24 in 4 bytes */ -- "AE_FMT_S24NE4P", -- -+ - "AE_FMT_S24BE3", - "AE_FMT_S24LE3", - "AE_FMT_S24NE3", /* S24 in 3 bytes */ -- "AE_FMT_S24NE3P", -- -+ - "AE_FMT_DOUBLE", -- "AE_FMT_DOUBLEP", - "AE_FMT_FLOAT", -- "AE_FMT_FLOATP", -- -+ - /* for passthrough streams and the like */ - "AE_FMT_AAC", - "AE_FMT_AC3", -@@ -165,7 +159,16 @@ const char* CAEUtil::DataFormatToStr(const enum AEDataFormat dataFormat) - "AE_FMT_EAC3", - "AE_FMT_TRUEHD", - "AE_FMT_DTSHD", -- "AE_FMT_LPCM" -+ "AE_FMT_LPCM", -+ -+ /* planar formats */ -+ "AE_FMT_U8P", -+ "AE_FMT_S16NEP", -+ "AE_FMT_S32NEP", -+ "AE_FMT_S24NE4P", -+ "AE_FMT_S24NE3P", -+ "AE_FMT_DOUBLEP", -+ "AE_FMT_FLOATP" - }; - - return formats[dataFormat]; --- -1.8.1.6 - - -From a2ab55a82288080ef0fbb92f9cf5a7d4c34c8ff9 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Sun, 11 Aug 2013 19:35:57 +0200 -Subject: [PATCH 002/111] AudioEngine: Add AE_IS_PLANAR(x) macro - ---- - xbmc/cores/AudioEngine/AEAudioFormat.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/xbmc/cores/AudioEngine/AEAudioFormat.h b/xbmc/cores/AudioEngine/AEAudioFormat.h -index 5664e6e..5774132 100644 ---- a/xbmc/cores/AudioEngine/AEAudioFormat.h -+++ b/xbmc/cores/AudioEngine/AEAudioFormat.h -@@ -75,6 +75,7 @@ enum AEDataFormat - - #define AE_IS_RAW(x) ((x) >= AE_FMT_AAC && (x) < AE_FMT_U8P) - #define AE_IS_RAW_HD(x) ((x) >= AE_FMT_EAC3 && (x) < AE_FMT_U8P) -+#define AE_IS_PLANAR(x) ((x) >= AE_FMT_U8P && (x) <= AE_FMT_FLOATP) - - /** - * The audio format structure that fully defines a stream's audio information --- -1.8.1.6 - - -From 6fe6e6009ffb0ccafc270a5cacf8b3bc0c7a7ff7 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Mon, 12 Aug 2013 09:08:34 +0200 -Subject: [PATCH 003/111] AE: WASAPI - fix AddPackets for the case of provided - frames are less than buffer size - ---- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -index ef43428..8a7001b 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -@@ -466,7 +466,7 @@ unsigned int CAESinkWASAPI::AddPackets(uint8_t *data, unsigned int frames, bool - { - memcpy(m_pBuffer+m_bufferPtr*m_format.m_frameSize, data, FramesToCopy*m_format.m_frameSize); - m_bufferPtr += FramesToCopy; -- if (frames != m_format.m_frames) -+ if (m_bufferPtr != m_format.m_frames) - return frames; - } - --- -1.8.1.6 - - -From beb6b84b7694a5ed50b981eab59405bf5f6ec4c0 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Mon, 12 Aug 2013 09:40:38 +0200 -Subject: [PATCH 004/111] ActiveAE: engage transcode for stereo if upmix is - selected - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index bc861ae..4326729 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -1172,7 +1172,7 @@ void CActiveAE::ApplySettingsToFormat(AEAudioFormat &format, AudioSettings &sett - settings.ac3passthrough && - (!settings.multichannellpcm || (m_settings.mode != AUDIO_HDMI)) && - !m_streams.empty() && -- format.m_channelLayout.Count() > 2) -+ (format.m_channelLayout.Count() > 2 || settings.stereoupmix)) - { - format.m_dataFormat = AE_FMT_AC3; - format.m_sampleRate = 48000; --- -1.8.1.6 - - -From 18f24beff89d8c872962967698cd21dce715373d Mon Sep 17 00:00:00 2001 -From: unknown -Date: Mon, 12 Aug 2013 14:59:38 +0200 -Subject: [PATCH 005/111] ActiveAE: flush engine on flush stream if only one - stream is active - ---- - .../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 27 ++++++++++++++++++++++ - .../AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 5 ++++ - .../AudioEngine/Engines/ActiveAE/ActiveAESink.h | 1 + - 3 files changed, 33 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 4326729..30af6e8 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -1077,6 +1077,33 @@ void CActiveAE::SFlushStream(CActiveAEStream *stream) - stream->m_streamPort->Purge(); - stream->m_bufferedTime = 0.0; - stream->m_paused = true; -+ -+ // flsuh the engine if we only have a single stream -+ if (m_streams.size() == 1) -+ { -+ m_sinkBuffers->Flush(); -+ m_vizBuffers->Flush(); -+ -+ // send message to sink -+ Message *reply; -+ if (m_sink.m_controlPort.SendOutMessageSync(CSinkControlProtocol::FLUSH, -+ &reply, 2000)) -+ { -+ bool success = reply->signal == CSinkControlProtocol::ACC ? true : false; -+ if (!success) -+ { -+ CLog::Log(LOGERROR, "ActiveAE::%s - returned error on flush", __FUNCTION__); -+ m_extError = true; -+ } -+ reply->Release(); -+ } -+ else -+ { -+ CLog::Log(LOGERROR, "ActiveAE::%s - failed to flush", __FUNCTION__); -+ m_extError = true; -+ } -+ m_stats.Reset(m_sinkFormat.m_sampleRate); -+ } - } - - void CActiveAE::ClearDiscardedBuffers() -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp -index 82854c2..4785c76 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp -@@ -167,6 +167,11 @@ void CActiveAESink::StateMachine(int signal, Protocol *port, Message *msg) - msg->Reply(CSinkControlProtocol::ACC); - return; - -+ case CSinkControlProtocol::FLUSH: -+ ReturnBuffers(); -+ msg->Reply(CSinkControlProtocol::ACC); -+ return; -+ - default: - break; - } -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.h -index 559179c..e241b03 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.h -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.h -@@ -50,6 +50,7 @@ class CSinkControlProtocol : public Protocol - UNCONFIGURE, - SILENCEMODE, - VOLUME, -+ FLUSH, - TIMEOUT, - }; - enum InSignal --- -1.8.1.6 - - -From 25616c11a7f18e7d159d149f98df94c35692e203 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Mon, 12 Aug 2013 15:01:09 +0200 -Subject: [PATCH 006/111] ActiveAE: check for error during playback - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 30af6e8..5f068a1 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -649,6 +649,12 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - switch (signal) - { - case CActiveAEControlProtocol::TIMEOUT: -+ if (m_extError) -+ { -+ m_state = AE_TOP_ERROR; -+ m_extTimeout = 100; -+ return; -+ } - if (RunStages()) - { - m_extTimeout = 0; --- -1.8.1.6 - - -From 49e6399b73ad242133f8f75e48d8830eef00d788 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Mon, 12 Aug 2013 15:32:50 +0200 -Subject: [PATCH 007/111] dvdplayer: flush audio on close stream in case of - nowait - ---- - xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -index 3c1e553..583a7f8 100644 ---- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp -@@ -231,6 +231,11 @@ void CDVDPlayerAudio::CloseStream(bool bWaitForBuffers) - m_dvdAudio.Drain(); - m_bStop = true; - } -+ else -+ { -+ m_dvdAudio.Flush(); -+ } -+ - m_dvdAudio.Destroy(); - - // uninit queue --- -1.8.1.6 - - -From 049909912598dcca3dc5e4113bf1da9c7dc856fd Mon Sep 17 00:00:00 2001 -From: unknown -Date: Mon, 12 Aug 2013 15:33:49 +0200 -Subject: [PATCH 008/111] ActiveAE: faster flushing of stream - ---- - .../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 22 ++++++++++++---------- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h | 2 +- - .../Engines/ActiveAE/ActiveAEStream.cpp | 10 +--------- - 3 files changed, 14 insertions(+), 20 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 5f068a1..3ae6d9c 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -424,6 +424,11 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - m_state = AE_TOP_CONFIGURED_PLAY; - m_extTimeout = 0; - return; -+ case CActiveAEControlProtocol::FLUSHSTREAM: -+ stream = *(CActiveAEStream**)msg->data; -+ SFlushStream(stream); -+ msg->Reply(CActiveAEControlProtocol::ACC); -+ return; - case CActiveAEControlProtocol::STREAMAMP: - MsgStreamParameter *par; - par = (MsgStreamParameter*)msg->data; -@@ -541,11 +546,6 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - m_state = AE_TOP_CONFIGURED_PLAY; - msg->Reply(CActiveAEDataProtocol::ACC); - return; -- case CActiveAEDataProtocol::FLUSHSTREAM: -- stream = *(CActiveAEStream**)msg->data; -- SFlushStream(stream); -- msg->Reply(CActiveAEDataProtocol::ACC); -- return; - default: - break; - } -@@ -1084,11 +1084,13 @@ void CActiveAE::SFlushStream(CActiveAEStream *stream) - stream->m_bufferedTime = 0.0; - stream->m_paused = true; - -- // flsuh the engine if we only have a single stream -+ // flush the engine if we only have a single stream - if (m_streams.size() == 1) - { -- m_sinkBuffers->Flush(); -- m_vizBuffers->Flush(); -+ if (m_sinkBuffers) -+ m_sinkBuffers->Flush(); -+ if (m_vizBuffers) -+ m_vizBuffers->Flush(); - - // send message to sink - Message *reply; -@@ -2263,11 +2265,11 @@ IAEStream *CActiveAE::FreeStream(IAEStream *stream) - void CActiveAE::FlushStream(CActiveAEStream *stream) - { - Message *reply; -- if (m_dataPort.SendOutMessageSync(CActiveAEDataProtocol::FLUSHSTREAM, -+ if (m_controlPort.SendOutMessageSync(CActiveAEControlProtocol::FLUSHSTREAM, - &reply,1000, - &stream, sizeof(CActiveAEStream*))) - { -- bool success = reply->signal == CActiveAEDataProtocol::ACC ? true : false; -+ bool success = reply->signal == CActiveAEControlProtocol::ACC ? true : false; - reply->Release(); - if (!success) - { -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -index 90c7f14..e5a3e9d 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -@@ -73,6 +73,7 @@ class CActiveAEControlProtocol : public Protocol - VOLUME, - PAUSESTREAM, - RESUMESTREAM, -+ FLUSHSTREAM, - STREAMRGAIN, - STREAMVOLUME, - STREAMAMP, -@@ -106,7 +107,6 @@ class CActiveAEDataProtocol : public Protocol - FREESTREAM, - STREAMSAMPLE, - DRAINSTREAM, -- FLUSHSTREAM, - }; - enum InSignal - { -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp -index 3ef5d1f..ab2b10a 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEStream.cpp -@@ -247,15 +247,7 @@ bool CActiveAEStream::IsDrained() - - void CActiveAEStream::Flush() - { -- if (m_currentBuffer) -- { -- MsgStreamSample msgData; -- m_currentBuffer->pkt->nb_samples = 0; -- msgData.buffer = m_currentBuffer; -- msgData.stream = this; -- m_streamPort->SendOutMessage(CActiveAEDataProtocol::STREAMSAMPLE, &msgData, sizeof(MsgStreamSample)); -- m_currentBuffer = NULL; -- } -+ m_currentBuffer = NULL; - AE.FlushStream(this); - ResetFreeBuffers(); - } --- -1.8.1.6 - - -From 2d51194c3ca1c4a62be4ca48d8edd85c7922c9b3 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Tue, 13 Aug 2013 10:55:39 +0200 -Subject: [PATCH 009/111] AE: WASAPI - fix GetDelay - ---- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 15 ++++++++++++++- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h | 1 + - 2 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -index 8a7001b..a49e86d 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -@@ -418,7 +418,19 @@ double CAESinkWASAPI::GetDelay() - if (!m_initialized) - return 0.0; - -- return m_sinkLatency; -+ double time_played = 0.0; -+ if (m_running) -+ { -+ unsigned int now = XbmcThreads::SystemClockMillis(); -+ time_played = (double)(now-m_lastWriteToBuffer) / 1000; -+ } -+ -+ double delay = m_sinkLatency - time_played + (double)m_bufferPtr / (double)m_format.m_sampleRate; -+ -+ if (delay < 0) -+ delay = 0.0; -+ -+ return delay; - } - - double CAESinkWASAPI::GetCacheTime() -@@ -579,6 +591,7 @@ unsigned int CAESinkWASAPI::AddPackets(uint8_t *data, unsigned int frames, bool - #endif - return INT_MAX; - } -+ m_lastWriteToBuffer = XbmcThreads::SystemClockMillis(); - - if (FramesToCopy != frames) - { -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h -index d9619c4..8b29f50 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h -@@ -79,6 +79,7 @@ class CAESinkWASAPI : public IAESink - unsigned int m_uiBufferLen; /* wasapi endpoint buffer size, in frames */ - double m_avgTimeWaiting; /* time between next buffer of data from SoftAE and driver call for data */ - double m_sinkLatency; /* time in seconds of total duration of the two WASAPI buffers */ -+ unsigned int m_lastWriteToBuffer; - - uint8_t *m_pBuffer; - int m_bufferPtr; --- -1.8.1.6 - - -From c04bd2950634488381ed17897fd20347b517a889 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Tue, 13 Aug 2013 13:19:48 +0200 -Subject: [PATCH 010/111] ActiveAE: do not pause stream when flushing it - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 3ae6d9c..9b3ff00 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -428,6 +428,8 @@ void CActiveAE::StateMachine(int signal, Protocol *port, Message *msg) - stream = *(CActiveAEStream**)msg->data; - SFlushStream(stream); - msg->Reply(CActiveAEControlProtocol::ACC); -+ m_state = AE_TOP_CONFIGURED_PLAY; -+ m_extTimeout = 0; - return; - case CActiveAEControlProtocol::STREAMAMP: - MsgStreamParameter *par; -@@ -1082,7 +1084,7 @@ void CActiveAE::SFlushStream(CActiveAEStream *stream) - stream->m_resampleBuffers->Flush(); - stream->m_streamPort->Purge(); - stream->m_bufferedTime = 0.0; -- stream->m_paused = true; -+ stream->m_paused = false; - - // flush the engine if we only have a single stream - if (m_streams.size() == 1) --- -1.8.1.6 - - -From 6188a2c1d3b5613eaba8338fba32b6e1f9544c68 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Wed, 14 Aug 2013 08:11:05 +0200 -Subject: [PATCH 011/111] AE: adapt limiter to planar formats - ---- - xbmc/cores/AudioEngine/Utils/AELimiter.cpp | 9 ++++++--- - xbmc/cores/AudioEngine/Utils/AELimiter.h | 2 +- - 2 files changed, 7 insertions(+), 4 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Utils/AELimiter.cpp b/xbmc/cores/AudioEngine/Utils/AELimiter.cpp -index 77af320..5ea0884 100644 ---- a/xbmc/cores/AudioEngine/Utils/AELimiter.cpp -+++ b/xbmc/cores/AudioEngine/Utils/AELimiter.cpp -@@ -34,12 +34,15 @@ - m_increase = 0.0f; - } - --float CAELimiter::Run(float* frame, int channels) -+float CAELimiter::Run(float* frame, int channels, int stride /*= 1*/) - { -- float* end = frame + channels; -+ float* end = frame + channels*stride; - float highest = 0.0f; - while (frame != end) -- highest = std::max(highest, fabsf(*(frame++))); -+ { -+ highest = std::max(highest, fabsf(*(frame))); -+ frame += stride; -+ } - - float sample = highest * m_amplify; - if (sample * m_attenuation > 1.0f) -diff --git a/xbmc/cores/AudioEngine/Utils/AELimiter.h b/xbmc/cores/AudioEngine/Utils/AELimiter.h -index ef46d0c..9507e71 100644 ---- a/xbmc/cores/AudioEngine/Utils/AELimiter.h -+++ b/xbmc/cores/AudioEngine/Utils/AELimiter.h -@@ -48,5 +48,5 @@ class CAELimiter - m_samplerate = (float)samplerate; - } - -- float Run(float* frame, int channels); -+ float Run(float* frame, int channels, int stride = 1); - }; --- -1.8.1.6 - - -From 8b77985e390eeb90a17ef4198b0177d03a910406 Mon Sep 17 00:00:00 2001 -From: unknown -Date: Wed, 14 Aug 2013 08:11:42 +0200 -Subject: [PATCH 012/111] ActiveAE: fix volume amplification - ---- - .../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 36 +++++++++------------- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h | 1 - - 2 files changed, 15 insertions(+), 22 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 9b3ff00..db331dc 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -972,6 +972,9 @@ void CActiveAE::Configure(AEAudioFormat *desiredFmt) - } - if (m_mode == MODE_TRANSCODE || m_streams.size() > 1) - (*it)->m_resampleBuffers->m_fillPackets = true; -+ -+ // amplification -+ (*it)->m_limiter.SetSamplerate(outputFormat.m_sampleRate); - } - - // buffers for viz -@@ -1165,19 +1168,6 @@ void CActiveAE::DiscardSound(CActiveAESound *sound) - } - } - --float CActiveAE::CalcStreamAmplification(CActiveAEStream *stream, CSampleBuffer *buf) --{ -- float amp = 1.0f; -- int nb_floats = buf->pkt->nb_samples * buf->pkt->config.channels / buf->pkt->planes; -- float tamp; -- for(int i=0; ipkt->planes; i++) -- { -- tamp = stream->m_limiter.Run((float*)buf->pkt->data[i], nb_floats); -- amp = std::min(amp, tamp); -- } -- return amp; --} -- - void CActiveAE::ChangeResampleQuality() - { - std::list::iterator it; -@@ -1488,12 +1478,10 @@ bool CActiveAE::RunStages() - out = (*it)->m_resampleBuffers->m_outputSamples.front(); - (*it)->m_resampleBuffers->m_outputSamples.pop_front(); - -- // volume for stream -- float amp = (*it)->m_rgain * CalcStreamAmplification((*it), out); -- - int nb_floats = out->pkt->nb_samples * out->pkt->config.channels / out->pkt->planes; - int nb_loops = 1; - float fadingStep = 0.0f; -+ int stride = 1; - - // fading - if ((*it)->m_fadingSamples == -1) -@@ -1508,6 +1496,7 @@ bool CActiveAE::RunStages() - float delta = (*it)->m_fadingTarget - (*it)->m_fadingBase; - int samples = m_internalFormat.m_sampleRate * (float)(*it)->m_fadingTime / 1000.0f; - fadingStep = delta / samples; -+ stride = out->pkt->planes > 1 ? out->pkt->linesize : 1; - } - for(int i=0; im_streamFading = false; - } - } -- float volume = (*it)->m_volume * amp; -+ -+ // volume for stream -+ float volume = (*it)->m_volume * (*it)->m_rgain * -+ (*it)->m_limiter.Run((float*)out->pkt->data[0]+i*nb_floats, out->pkt->config.channels, stride); - - for(int j=0; jpkt->planes; j++) - { -@@ -1543,12 +1535,10 @@ bool CActiveAE::RunStages() - mix = (*it)->m_resampleBuffers->m_outputSamples.front(); - (*it)->m_resampleBuffers->m_outputSamples.pop_front(); - -- // volume for stream -- float amp = (*it)->m_volume * (*it)->m_rgain * CalcStreamAmplification((*it), mix); -- - int nb_floats = mix->pkt->nb_samples * mix->pkt->config.channels / mix->pkt->planes; - int nb_loops = 1; - float fadingStep = 0.0f; -+ int stride = 1; - - // fading - if ((*it)->m_fadingSamples == -1) -@@ -1563,6 +1553,7 @@ bool CActiveAE::RunStages() - float delta = (*it)->m_fadingTarget - (*it)->m_fadingBase; - int samples = m_internalFormat.m_sampleRate * (float)(*it)->m_fadingTime / 1000.0f; - fadingStep = delta / samples; -+ stride = out->pkt->planes > 1 ? out->pkt->linesize : 1; - } - for(int i=0; im_streamFading = false; - } - } -- float volume = (*it)->m_volume * amp; -+ -+ // volume for stream -+ float volume = (*it)->m_volume * (*it)->m_rgain * -+ (*it)->m_limiter.Run((float*)out->pkt->data[0]+i*nb_floats, out->pkt->config.channels, stride); - - for(int j=0; jpkt->planes && jpkt->planes; j++) - { -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -index e5a3e9d..9b4c243 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h -@@ -258,7 +258,6 @@ class CActiveAE : public IAE, private CThread - void ClearDiscardedBuffers(); - void SStopSound(CActiveAESound *sound); - void DiscardSound(CActiveAESound *sound); -- float CalcStreamAmplification(CActiveAEStream *stream, CSampleBuffer *buf); - void ChangeResampleQuality(); - - bool RunStages(); --- -1.8.1.6 - - -From 2f9784b5419e70e3c19271a071ffc17c968922b1 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Wed, 14 Aug 2013 08:22:03 +0200 -Subject: [PATCH 013/111] AESinkOSS: Implement Drain() - ---- - xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -index 7986c60..6612dc2 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -@@ -435,7 +435,10 @@ void CAESinkOSS::Drain() - if (m_fd == -1) - return; - -- // ??? -+ if(ioctl(m_fd, SNDCTL_DSP_SYNC, NULL) == -1) -+ { -+ CLog::Log(LOGERROR, "CAESinkOSS::Drain - Draining the Sink failed"); -+ } - } - - void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) --- -1.8.1.6 - - -From 908abe4c4b5a9470168b0f8b71dfe042243349eb Mon Sep 17 00:00:00 2001 -From: unknown -Date: Wed, 14 Aug 2013 09:14:36 +0200 -Subject: [PATCH 014/111] ActiveAE: make sure GetDalay returns no negative - values - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index db331dc..2a3e49c 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -83,6 +83,9 @@ float CEngineStats::GetDelay() - float delay = m_sinkDelay - (double)(now-m_sinkUpdate) / 1000; - delay += (float)m_bufferedSamples / m_sinkSampleRate; - -+ if (delay < 0) -+ delay = 0.0; -+ - return delay; - } - --- -1.8.1.6 - - -From f77b9d7d24aba628e9a2a13045ec7d1712c493c3 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Wed, 14 Aug 2013 09:16:25 +0200 -Subject: [PATCH 015/111] AESinkOSS: Make sink usable in blocking mode - ---- - xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 22 +++++++++++++++------- - xbmc/cores/AudioEngine/Sinks/AESinkOSS.h | 1 + - 2 files changed, 16 insertions(+), 7 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -index 6612dc2..60df54d 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -@@ -66,6 +66,7 @@ - CAESinkOSS::CAESinkOSS() - { - m_fd = 0; -+ m_blockingNeedsUpdate = true; - } - - CAESinkOSS::~CAESinkOSS() -@@ -321,13 +322,6 @@ bool CAESinkOSS::Initialize(AEAudioFormat &format, std::string &device) - return false; - } - -- if (fcntl(m_fd, F_SETFL, fcntl(m_fd, F_GETFL, 0) | O_NONBLOCK) == -1) -- { -- close(m_fd); -- CLog::Log(LOGERROR, "CAESinkOSS::Initialize - Failed to set non blocking writes"); -- return false; -- } -- - format.m_sampleRate = oss_sr; - format.m_frameSize = (CAEUtil::DataFormatToBits(format.m_dataFormat) >> 3) * format.m_channelLayout.Count(); - format.m_frames = bi.fragsize / format.m_frameSize; -@@ -344,6 +338,8 @@ void CAESinkOSS::Deinitialize() - - if (m_fd != -1) - close(m_fd); -+ -+ m_blockingNeedsUpdate = true; - } - - inline CAEChannelInfo CAESinkOSS::GetChannelLayout(AEAudioFormat format) -@@ -417,6 +413,18 @@ unsigned int CAESinkOSS::AddPackets(uint8_t *data, unsigned int frames, bool has - return INT_MAX; - } - -+ if(m_blockingNeedsUpdate) -+ { -+ if(!blocking) -+ { -+ if (fcntl(m_fd, F_SETFL, fcntl(m_fd, F_GETFL, 0) | O_NONBLOCK) == -1) -+ { -+ CLog::Log(LOGERROR, "CAESinkOSS::Initialize - Failed to set non blocking writes"); -+ } -+ } -+ m_blockingNeedsUpdate = false; -+ } -+ - int wrote = write(m_fd, data, size); - if (wrote < 0) - { -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h -index 1131dc7..2f9a1ee 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h -@@ -46,6 +46,7 @@ class CAESinkOSS : public IAESink - static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); - private: - int m_fd; -+ bool m_blockingNeedsUpdate; - std::string m_device; - AEAudioFormat m_initFormat; - AEAudioFormat m_format; --- -1.8.1.6 - - -From ff9570ce226025fd8c2b40d27893d90c692406a7 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Wed, 14 Aug 2013 15:19:45 +0200 -Subject: [PATCH 016/111] AESinkOSS: Set required format for passthrough - ---- - xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -index 60df54d..d9524f7 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -@@ -150,7 +150,10 @@ bool CAESinkOSS::Initialize(AEAudioFormat &format, std::string &device) - else if ((format.m_dataFormat == AE_FMT_U8 ) && (format_mask & AFMT_U8 )) - oss_fmt = AFMT_U8; - else if ((AE_IS_RAW(format.m_dataFormat) ) && (format_mask & AFMT_AC3 )) -+ { - oss_fmt = AFMT_AC3; -+ format.m_dataFormat = AE_FMT_S16NE; -+ } - else if (AE_IS_RAW(format.m_dataFormat)) - { - close(m_fd); --- -1.8.1.6 - - -From 7454c2ef78b76825b99d5c99d7cee9d253b4bdcc Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Wed, 14 Aug 2013 16:46:42 +0200 -Subject: [PATCH 017/111] AESinkOSS: Missed one reuse of format.m_dataFormat in - 4c536e960dfa5610bd62968feff1eebaada17c6d - ---- - xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -index d9524f7..1f88326 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp -@@ -262,7 +262,7 @@ bool CAESinkOSS::Initialize(AEAudioFormat &format, std::string &device) - - #if defined(TARGET_FREEBSD) - /* fix hdmi 8 channels order */ -- if (!AE_IS_RAW(format.m_dataFormat) && 8 == oss_ch) -+ if ((oss_fmt != AFMT_AC3) && 8 == oss_ch) - { - unsigned long long order = 0x0000000087346521ULL; - --- -1.8.1.6 - - -From b762c57174277e73ae0e562b3a679810b1761d79 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Thu, 15 Aug 2013 16:06:49 +0200 -Subject: [PATCH 018/111] ActiveAE: Fix refcounting with viz - ---- - .../AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 25 +++++++++++++--------- - 1 file changed, 15 insertions(+), 10 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 2a3e49c..43fc085 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -1596,6 +1596,7 @@ bool CActiveAE::RunStages() - } - - // process output buffer, gui sounds, encode, viz -+ CSampleBuffer *viz = NULL; - if (out) - { - // mix gui sounds -@@ -1603,21 +1604,17 @@ bool CActiveAE::RunStages() - if (!m_sinkHasVolume) - Deamplify(*(out->pkt)); - -- // encode -+ // encode and backup out buffer for viz -+ viz = out; - if (m_mode == MODE_TRANSCODE && m_encoder) - { - CSampleBuffer *buf = m_encoderBuffers->GetFreeBuffer(); - m_encoder->Encode(out->pkt->data[0], out->pkt->planes*out->pkt->linesize, - buf->pkt->data[0], buf->pkt->planes*buf->pkt->linesize); - buf->pkt->nb_samples = buf->pkt->max_nb_samples; -- out->Return(); - out = buf; - } - -- // update stats -- m_stats.AddSamples(out->pkt->nb_samples, m_streams); -- m_sinkBuffers->m_inputSamples.push_back(out); -- - busy = true; - } - -@@ -1632,13 +1629,13 @@ bool CActiveAE::RunStages() - m_vizInitialized = true; - } - -- // if viz has no free buffer, it won't return current buffer "out" -+ // if viz has no free buffer, it won't return current buffer "viz" - if (!m_vizBuffers->m_freeSamples.empty()) - { -- if (out) -+ if (viz) - { -- out->Acquire(); -- m_vizBuffers->m_inputSamples.push_back(out); -+ viz->Acquire(); -+ m_vizBuffers->m_inputSamples.push_back(viz); - } - } - else -@@ -1669,6 +1666,14 @@ bool CActiveAE::RunStages() - else if (m_vizBuffers) - m_vizBuffers->Flush(); - } -+ // update stats -+ if(out) -+ { -+ m_stats.AddSamples(out->pkt->nb_samples, m_streams); -+ m_sinkBuffers->m_inputSamples.push_back(out); -+ if(viz && (viz != out)) -+ viz->Return(); -+ } - } - // pass through - else --- -1.8.1.6 - - -From e2242bc9bb34f5b9b1ad6570d448bbb8cbc98162 Mon Sep 17 00:00:00 2001 -From: wsoltys -Date: Thu, 15 Aug 2013 19:41:12 +0200 -Subject: [PATCH 019/111] [WASAPI] fixed: return the right channel layout - ---- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -index a49e86d..e4022e3 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -@@ -1150,6 +1150,7 @@ bool CAESinkWASAPI::InitializeExclusive(AEAudioFormat &format) - initialize: - - AEChannelsFromSpeakerMask(wfxex.dwChannelMask); -+ format.m_channelLayout = m_channelLayout; - - /* When the stream is raw, the values in the format structure are set to the link */ - /* parameters, so store the encoded stream values here for the IsCompatible function */ --- -1.8.1.6 - - -From 1f7c7f5848cbd6b63c4bf8b33fae9d09545263ee Mon Sep 17 00:00:00 2001 -From: wsoltys -Date: Thu, 15 Aug 2013 20:00:22 +0200 -Subject: [PATCH 020/111] [WASAPI] fixed: use the more accurate GetDelay() for - Drain(). - ---- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 7 ++----- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h | 1 - - 2 files changed, 2 insertions(+), 6 deletions(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -index e4022e3..dbfc071 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -@@ -193,8 +193,7 @@ CStdStringA localWideToUtf(LPCWSTR wstr) - m_avgTimeWaiting(50), - m_sinkLatency(0.0), - m_pBuffer(NULL), -- m_bufferPtr(0), -- m_hnsRequestedDuration(0) -+ m_bufferPtr(0) - { - m_channelLayout.Reset(); - } -@@ -1196,8 +1195,6 @@ bool CAESinkWASAPI::InitializeExclusive(AEAudioFormat &format) - hr = m_pAudioClient->Initialize(AUDCLNT_SHAREMODE_EXCLUSIVE, AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST, - audioSinkBufferDurationMsec, audioSinkBufferDurationMsec, &wfxex.Format, NULL); - -- m_hnsRequestedDuration = audioSinkBufferDurationMsec; -- - if (hr == AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED) - { - /* WASAPI requires aligned buffer */ -@@ -1333,7 +1330,7 @@ void CAESinkWASAPI::Drain() - if(!m_pAudioClient) - return; - -- Sleep( (DWORD)(m_hnsRequestedDuration / 10000)); -+ Sleep( (DWORD)(GetDelay()*50) ); - - if (m_running) - { -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h -index 8b29f50..144bad3 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h -@@ -83,5 +83,4 @@ class CAESinkWASAPI : public IAESink - - uint8_t *m_pBuffer; - int m_bufferPtr; -- REFERENCE_TIME m_hnsRequestedDuration; - }; --- -1.8.1.6 - - -From ac99b47888fdd232351ff48482eae66aa3473ce9 Mon Sep 17 00:00:00 2001 -From: wsoltys -Date: Fri, 16 Aug 2013 23:35:39 +0200 -Subject: [PATCH 021/111] [WASAPI] fixed: wrong multiplicator (thanks - Voyager1). - ---- - xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -index dbfc071..2aa7362 100644 ---- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp -@@ -1330,7 +1330,7 @@ void CAESinkWASAPI::Drain() - if(!m_pAudioClient) - return; - -- Sleep( (DWORD)(GetDelay()*50) ); -+ Sleep( (DWORD)(GetDelay()*500) ); - - if (m_running) - { --- -1.8.1.6 - - -From 729154f830f60aabd3bc85ebacacda444b52b27b Mon Sep 17 00:00:00 2001 -From: Rainer Hochecker -Date: Sun, 18 Aug 2013 22:32:12 +0200 -Subject: [PATCH 022/111] ActiveAE: check for valid ac3 sampling rates, fixes - no sound for flac 96khz when transcoding - ---- - xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 43fc085..78f9eee 100644 ---- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -@@ -893,6 +893,14 @@ void CActiveAE::Configure(AEAudioFormat *desiredFmt) - CLog::Log(LOGINFO, "CActiveAE::Configure - Forcing samplerate to %d", inputFormat.m_sampleRate); - } - -+ // check for valid sampling rates -+ if (inputFormat.m_sampleRate != 48000 || -+ inputFormat.m_sampleRate != 41000 || -+ inputFormat.m_sampleRate != 32000) -+ { -+ outputFormat.m_sampleRate = 48000; -+ } -+ - // setup encoder - if (!m_encoder) - { --- -1.8.1.6 - - -From e3655dd63f7a324c92acac376a5f8cd8b25426a9 Mon Sep 17 00:00:00 2001 +From 433613010a5e6bbe4edc983026f07942876347aa Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 2 Aug 2013 18:55:56 +0200 -Subject: [PATCH 023/111] linuxrenderer: do not render if upload texture fails +Subject: [PATCH 01/90] linuxrenderer: do not render if upload texture fails --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 39 ++++++++++++++++----------- @@ -1464,13 +245,13 @@ index b986d93..b5c4dec 100644 void ToRGBFields(YV12Image* im, unsigned flipIndexPlaneTop, unsigned flipIndexPlaneBot, unsigned flipIndexBuf); void SetupRGBBuffer(); -- -1.8.1.6 +1.8.4 -From 50714278e46ea4565c68eadc40c94f7544b63d6f Mon Sep 17 00:00:00 2001 +From 23a0432899735b822ac868608c885dd601e52346 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 7 Apr 2012 09:19:00 +0200 -Subject: [PATCH 024/111] vdpau: redesign +Subject: [PATCH 02/90] vdpau: redesign --- language/English/strings.po | 21 +- @@ -1485,14 +266,14 @@ Subject: [PATCH 024/111] vdpau: redesign .../dvdplayer/DVDCodecs/Video/DVDVideoCodec.h | 4 +- .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 6 +- .../DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 - - xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 3917 +++++++++++++++----- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 3926 +++++++++++++++----- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 681 +++- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 1 + xbmc/settings/AdvancedSettings.cpp | 8 +- xbmc/settings/AdvancedSettings.h | 4 +- xbmc/video/dialogs/GUIDialogVideoSettings.cpp | 2 +- xbmc/windowing/X11/WinSystemX11.h | 1 + - 19 files changed, 3670 insertions(+), 1236 deletions(-) + 19 files changed, 3679 insertions(+), 1236 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po index 0042682..4a10f5d 100644 @@ -1541,7 +322,7 @@ index 0042682..4a10f5d 100644 #: system/settings/settings.xml diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 2bad9bb..04c521d 100644 +index 3da9550..183c91c 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -375,6 +375,16 @@ @@ -2075,7 +856,7 @@ index c509339..2287031 100644 class CDVDVideoCodecFFmpeg : public CDVDVideoCodec diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index f830f61..1e4b0b7 100644 +index f830f61..c10c7ea 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp @@ -33,11 +33,16 @@ @@ -3127,7 +1908,7 @@ index f830f61..1e4b0b7 100644 default: vdp_decoder_profile = 0; vdp_chroma_type = 0; -@@ -966,170 +556,78 @@ void CVDPAU::ReadFormatOf( AVCodecID codec +@@ -966,170 +556,87 @@ void CVDPAU::ReadFormatOf( AVCodecID codec } } @@ -3245,6 +2026,15 @@ index f830f61..1e4b0b7 100644 + sizeof(m_vdpauConfig))) + { + bool success = reply->signal == COutputControlProtocol::ACC ? true : false; ++ if (success) ++ { ++ CVdpauConfig *data; ++ data = (CVdpauConfig*)reply->data; ++ if (data) ++ { ++ m_vdpauConfig.usePixmaps = data->usePixmaps; ++ } ++ } + reply->Release(); + if (!success) + { @@ -3346,7 +2136,7 @@ index f830f61..1e4b0b7 100644 { VdpStatus rv; CLog::Log(LOGNOTICE,"VDPAU Decoder capabilities:"); -@@ -1139,7 +637,7 @@ void CVDPAU::SpewHardwareAvailable() //Copyright (c) 2008 Wladimir J. van der L +@@ -1139,7 +646,7 @@ void CVDPAU::SpewHardwareAvailable() //Copyright (c) 2008 Wladimir J. van der L { VdpBool is_supported = false; uint32_t max_level, max_macroblocks, max_width, max_height; @@ -3355,7 +2145,7 @@ index f830f61..1e4b0b7 100644 &is_supported, &max_level, &max_macroblocks, &max_width, &max_height); if(rv == VDP_STATUS_OK && is_supported) { -@@ -1148,13 +646,13 @@ void CVDPAU::SpewHardwareAvailable() //Copyright (c) 2008 Wladimir J. van der L +@@ -1148,13 +655,13 @@ void CVDPAU::SpewHardwareAvailable() //Copyright (c) 2008 Wladimir J. van der L } } CLog::Log(LOGNOTICE,"------------------------------------"); @@ -3372,7 +2162,7 @@ index f830f61..1e4b0b7 100644 } \ } while(false) -@@ -1178,7 +676,7 @@ void CVDPAU::SpewHardwareAvailable() //Copyright (c) 2008 Wladimir J. van der L +@@ -1178,7 +685,7 @@ void CVDPAU::SpewHardwareAvailable() //Copyright (c) 2008 Wladimir J. van der L } @@ -3381,7 +2171,7 @@ index f830f61..1e4b0b7 100644 { // find render state in queue bool found(false); -@@ -1205,34 +703,33 @@ bool CVDPAU::IsSurfaceValid(vdpau_render_state *render) +@@ -1205,34 +712,33 @@ bool CVDPAU::IsSurfaceValid(vdpau_render_state *render) return true; } @@ -3431,7 +2221,7 @@ index f830f61..1e4b0b7 100644 } } -@@ -1241,21 +738,22 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) +@@ -1241,21 +747,22 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) { // create a new surface VdpDecoderProfile profile; @@ -3457,7 +2247,7 @@ index f830f61..1e4b0b7 100644 avctx->coded_width, avctx->coded_height, &render->surface); -@@ -1274,18 +772,6 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) +@@ -1274,18 +781,6 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) pic->linesize[0] = pic->linesize[1] = pic->linesize[2] = 0; @@ -3476,7 +2266,7 @@ index f830f61..1e4b0b7 100644 pic->type= FF_BUFFER_TYPE_USER; render->state |= FF_VDPAU_STATE_USED_FOR_REFERENCE; -@@ -1293,15 +779,16 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) +@@ -1293,15 +788,16 @@ int CVDPAU::FFGetBuffer(AVCodecContext *avctx, AVFrame *pic) return 0; } @@ -3496,7 +2286,7 @@ index f830f61..1e4b0b7 100644 render=(vdpau_render_state*)pic->data[0]; if(!render) -@@ -1310,6 +797,8 @@ void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) +@@ -1310,6 +806,8 @@ void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) return; } @@ -3505,7 +2295,7 @@ index f830f61..1e4b0b7 100644 for(i=0; i<4; i++) pic->data[i]= NULL; -@@ -1323,29 +812,26 @@ void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) +@@ -1323,29 +821,26 @@ void CVDPAU::FFReleaseBuffer(AVCodecContext *avctx, AVFrame *pic) render->state &= ~FF_VDPAU_STATE_USED_FOR_REFERENCE; } @@ -3544,7 +2334,7 @@ index f830f61..1e4b0b7 100644 if(src->linesize[0] || src->linesize[1] || src->linesize[2] || offset[0] || offset[1] || offset[2]) -@@ -1375,67 +861,50 @@ void CVDPAU::FFDrawSlice(struct AVCodecContext *s, +@@ -1375,67 +870,50 @@ void CVDPAU::FFDrawSlice(struct AVCodecContext *s, if(s->codec_id == AV_CODEC_ID_H264) max_refs = vdp->m_hwContext.info.h264.num_ref_frames; @@ -3631,7 +2421,7 @@ index f830f61..1e4b0b7 100644 // ffmpeg vc-1 decoder does not flush, make sure the data buffer is still valid if (!IsSurfaceValid(render)) -@@ -1444,258 +913,166 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) +@@ -1444,258 +922,166 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) return VC_BUFFER; } @@ -4000,7 +2790,7 @@ index f830f61..1e4b0b7 100644 if(m_DisplayState == VDPAU_OPEN) { -@@ -1713,4 +1090,2508 @@ bool CVDPAU::CheckStatus(VdpStatus vdp_st, int line) +@@ -1713,4 +1099,2508 @@ bool CVDPAU::CheckStatus(VdpStatus vdp_st, int line) return false; } @@ -5445,7 +4235,7 @@ index f830f61..1e4b0b7 100644 + if (!m_vdpError) + { + m_state = O_TOP_CONFIGURED_IDLE; -+ msg->Reply(COutputControlProtocol::ACC); ++ msg->Reply(COutputControlProtocol::ACC, &m_config, sizeof(m_config)); + } + else + { @@ -7361,13 +6151,13 @@ index a0f7bba..b6b6ec4 100644 protected: bool RefreshGlxContext(); -- -1.8.1.6 +1.8.4 -From 3c0d159b590e6489fac9a47955b18cbad1826484 Mon Sep 17 00:00:00 2001 +From 6dd9410662f8ac0dfc02dcb49763f61536ffd331 Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 12 Dec 2012 09:52:17 +0100 -Subject: [PATCH 025/111] vdpau: make interop gl default and remove setting, +Subject: [PATCH 03/90] vdpau: make interop gl default and remove setting, rename and intvert interop yuv --- @@ -7398,7 +6188,7 @@ index 4a10f5d..0e900ad 100644 #: system/settings/settings.xml msgctxt "#13500" diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index 1e4b0b7..c3af67a 100644 +index c10c7ea..41defb6 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp @@ -374,12 +374,15 @@ bool CDecoder::Supports(EINTERLACEMETHOD method) @@ -7418,7 +6208,7 @@ index 1e4b0b7..c3af67a 100644 for(SInterlaceMapping* p = g_interlace_mapping; p->method != VS_INTERLACEMETHOD_NONE; p++) { if(p->method == method) -@@ -1860,7 +1863,7 @@ void CMixer::SetDeinterlacing() +@@ -1869,7 +1872,7 @@ void CMixer::SetDeinterlacing() SetDeintSkipChroma(); @@ -7427,7 +6217,7 @@ index 1e4b0b7..c3af67a 100644 } void CMixer::SetDeintSkipChroma() -@@ -2052,7 +2055,7 @@ void CMixer::Init() +@@ -2061,7 +2064,7 @@ void CMixer::Init() m_vdpError = false; m_config.upscale = g_advancedSettings.m_videoVDPAUScaling; @@ -7436,7 +6226,7 @@ index 1e4b0b7..c3af67a 100644 CreateVdpauMixer(); } -@@ -2162,11 +2165,12 @@ void CMixer::InitCycle() +@@ -2171,11 +2174,12 @@ void CMixer::InitCycle() DVP_FLAG_INTERLACED); m_config.useInteropYuv = false; } @@ -7450,7 +6240,7 @@ index 1e4b0b7..c3af67a 100644 } else { -@@ -3279,7 +3283,7 @@ bool COutput::GLInit() +@@ -3288,7 +3292,7 @@ bool COutput::GLInit() glVDPAUGetSurfaceivNV = NULL; #endif @@ -7459,7 +6249,7 @@ index 1e4b0b7..c3af67a 100644 #ifdef GL_NV_vdpau_interop if (glewIsSupported("GL_NV_vdpau_interop")) -@@ -3311,8 +3315,7 @@ bool COutput::GLInit() +@@ -3320,8 +3324,7 @@ bool COutput::GLInit() #endif { m_config.usePixmaps = true; @@ -7470,13 +6260,13 @@ index 1e4b0b7..c3af67a 100644 if (!glXBindTexImageEXT) glXBindTexImageEXT = (PFNGLXBINDTEXIMAGEEXTPROC)glXGetProcAddress((GLubyte *) "glXBindTexImageEXT"); -- -1.8.1.6 +1.8.4 -From 81a040e60363479ee026aa33d19da1ea4b235425 Mon Sep 17 00:00:00 2001 +From 1651196ec68ebb5f596881a1e2dfb8617c877cc0 Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 12 Dec 2012 20:28:49 +0100 -Subject: [PATCH 026/111] vdpau: observe ffmpeg tags for color space +Subject: [PATCH 04/90] vdpau: observe ffmpeg tags for color space --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 38 ++++++++++++++++++-------- @@ -7484,10 +6274,10 @@ Subject: [PATCH 026/111] vdpau: observe ffmpeg tags for color space 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index c3af67a..2d8b8e2 100644 +index 41defb6..8a31cd1 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -925,6 +925,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) +@@ -934,6 +934,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) memset(&pic.DVDPic, 0, sizeof(pic.DVDPic)); ((CDVDVideoCodecFFmpeg*)avctx->opaque)->GetPictureCommon(&pic.DVDPic); pic.render = render; @@ -7495,7 +6285,7 @@ index c3af67a..2d8b8e2 100644 m_bufferStats.IncDecoded(); m_vdpauOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic)); -@@ -1535,10 +1536,6 @@ void CMixer::InitCSCMatrix(int Width) +@@ -1544,10 +1545,6 @@ void CMixer::InitCSCMatrix(int Width) m_Procamp.contrast = 1.0; m_Procamp.saturation = 1.0; m_Procamp.hue = 0; @@ -7506,7 +6296,7 @@ index c3af67a..2d8b8e2 100644 } void CMixer::CheckFeatures() -@@ -1549,11 +1546,13 @@ void CMixer::CheckFeatures() +@@ -1558,11 +1555,13 @@ void CMixer::CheckFeatures() m_Upscale = m_config.upscale; } if (m_Brightness != CMediaSettings::Get().GetCurrentVideoSettings().m_Brightness || @@ -7521,7 +6311,7 @@ index c3af67a..2d8b8e2 100644 } if (m_NoiseReduction != CMediaSettings::Get().GetCurrentVideoSettings().m_NoiseReduction) { -@@ -1704,13 +1703,27 @@ void CMixer::SetColor() +@@ -1713,13 +1712,27 @@ void CMixer::SetColor() m_Procamp.contrast = (float)((CMediaSettings::Get().GetCurrentVideoSettings().m_Contrast)+50) / 100; VdpColorStandard colorStandard; @@ -7556,7 +6346,7 @@ index c3af67a..2d8b8e2 100644 VdpVideoMixerAttribute attributes[] = { VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX }; if (CSettings::Get().GetBool("videoscreen.limitedrange")) -@@ -2051,6 +2064,7 @@ void CMixer::Init() +@@ -2060,6 +2073,7 @@ void CMixer::Init() m_Sharpness = 0.0; m_DeintMode = 0; m_Deint = 0; @@ -7577,23 +6367,23 @@ index aae4173..8845a16 100644 VdpVideoMixerPictureStructure m_mixerfield; int m_mixerstep; -- -1.8.1.6 +1.8.4 -From 550eb77b91beb31fcb70a480451da977755e1d8d Mon Sep 17 00:00:00 2001 +From 33bec9436d37732f910caaac7d5a8b4adf43b3b0 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 27 Jan 2013 12:10:19 +0100 -Subject: [PATCH 027/111] vdpau: switch off de-interlacing on ff +Subject: [PATCH 05/90] vdpau: switch off de-interlacing on ff --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index 2d8b8e2..7a9dfc9 100644 +index 8a31cd1..6d982a7 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -2142,8 +2142,9 @@ void CMixer::InitCycle() +@@ -2151,8 +2151,9 @@ void CMixer::InitCycle() EINTERLACEMETHOD method = GetDeinterlacingMethod(); bool interlaced = m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_INTERLACED; @@ -7606,13 +6396,13 @@ index 2d8b8e2..7a9dfc9 100644 if((method == VS_INTERLACEMETHOD_AUTO && interlaced) || method == VS_INTERLACEMETHOD_VDPAU_BOB -- -1.8.1.6 +1.8.4 -From 760abbbfdd0f77c63adb22d4ea3cf2950cf4ce2c Mon Sep 17 00:00:00 2001 +From 8d9512c7db32ec4a9f19937e656c25eb8e86c054 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 25 Sep 2012 12:14:15 +0200 -Subject: [PATCH 028/111] linuxrenderer: drop method RenderMultiPass +Subject: [PATCH 06/90] linuxrenderer: drop method RenderMultiPass --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 9 ++------- @@ -7659,13 +6449,13 @@ index 8daf72c..b086bae 100644 void RenderFromFBO(); void RenderSinglePass(int renderBuffer, int field); // single pass glsl renderer -- -1.8.1.6 +1.8.4 -From 81ca23124841b2f9c0be794f71449f6d7ed60e7a Mon Sep 17 00:00:00 2001 +From dc876ab1b8930bd0d35c5d42af52c06acad6b2c5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 25 Sep 2012 13:20:47 +0200 -Subject: [PATCH 029/111] linuxrenderer: implement progressive weave for vdpau +Subject: [PATCH 07/90] linuxrenderer: implement progressive weave for vdpau --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 56 +++++++++++++++++++-------- @@ -7791,13 +6581,13 @@ index b086bae..966733e 100644 struct -- -1.8.1.6 +1.8.4 -From d02fb09931eb70af6b1f7ee4ecd18af7420af1e1 Mon Sep 17 00:00:00 2001 +From 1d66197939f9eceede2e264cd56f2c419f1b265e Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 6 Mar 2013 07:35:10 +0100 -Subject: [PATCH 030/111] vdpau: set deinterlacing method to auto, if default +Subject: [PATCH 08/90] vdpau: set deinterlacing method to auto, if default method not supported --- @@ -7805,10 +6595,10 @@ Subject: [PATCH 030/111] vdpau: set deinterlacing method to auto, if default 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index 7a9dfc9..a2e2ab9 100644 +index 6d982a7..9ac8186 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -2189,13 +2189,15 @@ void CMixer::InitCycle() +@@ -2198,13 +2198,15 @@ void CMixer::InitCycle() } else { @@ -7826,52 +6616,58 @@ index 7a9dfc9..a2e2ab9 100644 } else -- -1.8.1.6 +1.8.4 -From 4d3cf498b807eb38f21e2a4907a5f82ea7f8e21a Mon Sep 17 00:00:00 2001 +From 6e2c93cf2db0f51bf75e8cbb08167ad2cdeeef61 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 14 Jun 2013 09:23:22 +0200 -Subject: [PATCH 031/111] vdpau: calculate timestamp of second field when doing +Subject: [PATCH 09/90] vdpau: calculate timestamp of second field when doing deinterlacing --- - xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index a2e2ab9..3dd6343 100644 +index 9ac8186..369a19e 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -2312,7 +2312,9 @@ void CMixer::ProcessPicture() +@@ -2321,7 +2321,15 @@ void CMixer::ProcessPicture() futu_surfaces[0] = m_mixerInput[1].render->surface; futu_surfaces[1] = m_mixerInput[1].render->surface; - m_processPicture.DVDPic.pts = DVD_NOPTS_VALUE; -+ m_processPicture.DVDPic.pts = m_mixerInput[1].DVDPic.pts + -+ (m_mixerInput[0].DVDPic.pts - -+ m_mixerInput[1].DVDPic.pts) / 2; ++ if (m_mixerInput[0].DVDPic.pts != DVD_NOPTS_VALUE && ++ m_mixerInput[1].DVDPic.pts != DVD_NOPTS_VALUE) ++ { ++ m_processPicture.DVDPic.pts = m_mixerInput[1].DVDPic.pts + ++ (m_mixerInput[0].DVDPic.pts - ++ m_mixerInput[1].DVDPic.pts) / 2; ++ } ++ else ++ m_processPicture.DVDPic.pts = DVD_NOPTS_VALUE; m_processPicture.DVDPic.dts = DVD_NOPTS_VALUE; } m_processPicture.DVDPic.iRepeatPicture = 0.0; -- -1.8.1.6 +1.8.4 -From ca6eb6900dca7e7d1ae074847b8f2c33460f844e Mon Sep 17 00:00:00 2001 +From 5f154eebc9a6ab3296b50ecda17b577cc025ddc1 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 2 Aug 2013 13:57:47 +0200 -Subject: [PATCH 032/111] vdpau: comment some features that will be added later +Subject: [PATCH 10/90] vdpau: comment some features that will be added later --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index 3dd6343..e73b059 100644 +index 369a19e..ae7cce7 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -929,7 +929,8 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) +@@ -938,7 +938,8 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) m_bufferStats.IncDecoded(); m_vdpauOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic)); @@ -7881,7 +6677,7 @@ index 3dd6343..e73b059 100644 } int retval = 0; -@@ -984,7 +985,8 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) +@@ -993,7 +994,8 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) msg->Release(); } @@ -7891,7 +6687,7 @@ index 3dd6343..e73b059 100644 { if (decoded + processed + render < 4) { -@@ -2131,7 +2133,8 @@ void CMixer::InitCycle() +@@ -2140,7 +2142,8 @@ void CMixer::InitCycle() int flags; m_config.stats->GetParams(latency, flags); latency = (latency*1000)/CurrentHostFrequency(); @@ -7901,7 +6697,7 @@ index 3dd6343..e73b059 100644 SetPostProcFeatures(false); else SetPostProcFeatures(true); -@@ -2142,7 +2145,8 @@ void CMixer::InitCycle() +@@ -2151,7 +2154,8 @@ void CMixer::InitCycle() EINTERLACEMETHOD method = GetDeinterlacingMethod(); bool interlaced = m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_INTERLACED; @@ -7911,7 +6707,7 @@ index 3dd6343..e73b059 100644 (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && interlaced))) { -@@ -2164,7 +2168,8 @@ void CMixer::InitCycle() +@@ -2173,7 +2177,8 @@ void CMixer::InitCycle() m_config.stats->SetCanSkipDeint(true); } @@ -7922,13 +6718,13 @@ index 3dd6343..e73b059 100644 m_mixersteps = 1; } -- -1.8.1.6 +1.8.4 -From 035e6b2965408d1bed9decb1c4883d2b6c52d3c3 Mon Sep 17 00:00:00 2001 +From 872505796df263932988f2a442a702b94e490d12 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 6 Aug 2013 10:37:37 +0200 -Subject: [PATCH 033/111] renderer: protect against div by zero +Subject: [PATCH 11/90] renderer: protect against div by zero --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 7 +++++++ @@ -7953,13 +6749,13 @@ index 1dbb670..fb065ea 100644 p.rect.y1 /= p.pixpertex_y; p.rect.y2 /= p.pixpertex_y; -- -1.8.1.6 +1.8.4 -From 1b6c3ea6e6a258598bb3594266b2a50b008f9367 Mon Sep 17 00:00:00 2001 +From 496734a6cbd75173bbc84870fe2cf2bb660f985f Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 09:52:46 +0200 -Subject: [PATCH 034/111] vdpau: add fence for detecting when a buffer can be +Subject: [PATCH 12/90] vdpau: add fence for detecting when a buffer can be reused --- @@ -7991,10 +6787,10 @@ index fb065ea..7bfd892 100644 void CLinuxRendererGL::RenderSinglePass(int index, int field) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index e73b059..7f0fbd0 100644 +index ae7cce7..43316c1 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -1135,6 +1135,23 @@ void CVdpauRenderPicture::ReturnUnused() +@@ -1144,6 +1144,23 @@ void CVdpauRenderPicture::ReturnUnused() if (vdpau) vdpau->ReturnRenderPicture(this); } @@ -8018,7 +6814,7 @@ index e73b059..7f0fbd0 100644 //----------------------------------------------------------------------------- // Mixer //----------------------------------------------------------------------------- -@@ -2516,7 +2533,7 @@ void COutput::StateMachine(int signal, Protocol *port, Message *msg) +@@ -2531,7 +2548,7 @@ void COutput::StateMachine(int signal, Protocol *port, Message *msg) case COutputDataProtocol::RETURNPIC: CVdpauRenderPicture *pic; pic = *((CVdpauRenderPicture**)msg->data); @@ -8027,7 +6823,7 @@ index e73b059..7f0fbd0 100644 return; default: break; -@@ -2607,7 +2624,7 @@ void COutput::StateMachine(int signal, Protocol *port, Message *msg) +@@ -2622,7 +2639,7 @@ void COutput::StateMachine(int signal, Protocol *port, Message *msg) case COutputDataProtocol::RETURNPIC: CVdpauRenderPicture *pic; pic = *((CVdpauRenderPicture**)msg->data); @@ -8036,7 +6832,7 @@ index e73b059..7f0fbd0 100644 m_controlPort.SendInMessage(COutputControlProtocol::STATS); m_state = O_TOP_CONFIGURED_WORK; m_extTimeout = 0; -@@ -2639,6 +2656,10 @@ void COutput::StateMachine(int signal, Protocol *port, Message *msg) +@@ -2654,6 +2671,10 @@ void COutput::StateMachine(int signal, Protocol *port, Message *msg) switch (signal) { case COutputControlProtocol::TIMEOUT: @@ -8047,7 +6843,7 @@ index e73b059..7f0fbd0 100644 return; default: break; -@@ -2830,7 +2851,7 @@ void COutput::Flush() +@@ -2845,7 +2866,7 @@ void COutput::Flush() { CVdpauRenderPicture *pic; pic = *((CVdpauRenderPicture**)msg->data); @@ -8056,7 +6852,7 @@ index e73b059..7f0fbd0 100644 } msg->Release(); } -@@ -2841,7 +2862,7 @@ void COutput::Flush() +@@ -2856,7 +2877,7 @@ void COutput::Flush() { CVdpauRenderPicture *pic; pic = *((CVdpauRenderPicture**)msg->data); @@ -8065,7 +6861,7 @@ index e73b059..7f0fbd0 100644 } } -@@ -2969,7 +2990,7 @@ CVdpauRenderPicture* COutput::ProcessMixerPicture() +@@ -2984,7 +3005,7 @@ CVdpauRenderPicture* COutput::ProcessMixerPicture() return retPic; } @@ -8074,7 +6870,7 @@ index e73b059..7f0fbd0 100644 { std::deque::iterator it; for (it = m_bufferPool.usedRenderPics.begin(); it != m_bufferPool.usedRenderPics.end(); ++it) -@@ -2982,17 +3003,84 @@ void COutput::ProcessReturnPicture(CVdpauRenderPicture *pic) +@@ -2997,17 +3018,84 @@ void COutput::ProcessReturnPicture(CVdpauRenderPicture *pic) if (it == m_bufferPool.usedRenderPics.end()) { @@ -8165,7 +6961,7 @@ index e73b059..7f0fbd0 100644 if (m_config.usePixmaps) { m_bufferPool.pixmaps[pic->sourceIdx].used = false; -@@ -3141,10 +3229,43 @@ void COutput::ReleaseBufferPool() +@@ -3156,10 +3244,43 @@ void COutput::ReleaseBufferPool() } m_bufferPool.outputSurfaces.clear(); @@ -8210,7 +7006,7 @@ index e73b059..7f0fbd0 100644 } } -@@ -3154,6 +3275,7 @@ void COutput::PreCleanup() +@@ -3169,6 +3290,7 @@ void COutput::PreCleanup() VdpStatus vdp_st; m_mixer.Dispose(); @@ -8218,7 +7014,7 @@ index e73b059..7f0fbd0 100644 CSingleLock lock(m_bufferPool.renderPicSec); for (unsigned int i = 0; i < m_bufferPool.outputSurfaces.size(); ++i) -@@ -3360,6 +3482,15 @@ bool COutput::GLInit() +@@ -3375,6 +3497,15 @@ bool COutput::GLInit() CLog::Log(LOGNOTICE, "VDPAU::COutput: vdpau gl interop initialized"); } #endif @@ -8276,13 +7072,13 @@ index 8845a16..c555d2d 100644 bool Init(); bool Uninit(); -- -1.8.1.6 +1.8.4 -From 522296f5fccdd7297e30a97dbb9ebe83f05a8236 Mon Sep 17 00:00:00 2001 +From a27560a554241c7a80d198291f960409daf6ef26 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:34:39 +0200 -Subject: [PATCH 035/111] videoplayer: adapt lateness detection and dropping to +Subject: [PATCH 13/90] videoplayer: adapt lateness detection and dropping to buffering --- @@ -8860,14 +7656,14 @@ index f8ad541..186e271 100644 }; -- -1.8.1.6 +1.8.4 -From 76318b7f4bc0202f545a39563f1f72dc1eeaf5f4 Mon Sep 17 00:00:00 2001 +From 545f80e1587482d93639ef386b4acb0d4b941d82 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Sep 2012 16:05:21 +0200 -Subject: [PATCH 036/111] video player: present correct pts to user for a/v - sync (after buffering in renderer) +Subject: [PATCH 14/90] video player: present correct pts to user for a/v sync + (after buffering in renderer) --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 25 +++++++++++++++++++++++++ @@ -8931,13 +7727,13 @@ index 186e271..59c7f09 100644 double GetOutputDelay(); /* returns the expected delay, from that a packet is put in queue */ -- -1.8.1.6 +1.8.4 -From 2c978a3390d2cfcd0b728efcb977485b329b6568 Mon Sep 17 00:00:00 2001 +From e4ef3a35e8e54e3c0610c50970a4d936a1d9fb1f Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 16 Feb 2013 18:25:53 +0100 -Subject: [PATCH 037/111] videoplayer: some rework and documentation +Subject: [PATCH 15/90] videoplayer: some rework and documentation --- .../dvdplayer/DVDCodecs/Video/DVDVideoCodec.h | 29 ++++++++++++++++++++-- @@ -9045,13 +7841,13 @@ index 99c8b3c..be3d511 100644 if (iDecoderPts == DVD_NOPTS_VALUE) iDecoderPts = pts; -- -1.8.1.6 +1.8.4 -From d2886a5d3e6a639e828eadc44bcf84f3fd09325b Mon Sep 17 00:00:00 2001 +From 784f41358ea98a2759234c7a600ed4cf99a525be Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 1 Jun 2013 11:21:19 +0200 -Subject: [PATCH 038/111] renderer: bump buffers to 5 +Subject: [PATCH 16/90] renderer: bump buffers to 5 --- xbmc/cores/VideoRenderers/BaseRenderer.h | 2 +- @@ -9071,13 +7867,13 @@ index a61d3cf..df5fe0e 100644 class CSetting; -- -1.8.1.6 +1.8.4 -From 5d2b6497e63d417e2547ca9e32a7dcc639c9911c Mon Sep 17 00:00:00 2001 +From 6aae029ba3acd1130db39200e38beca2902af1a4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:41:31 +0200 -Subject: [PATCH 039/111] videoplayer: update frametime, it might change due to +Subject: [PATCH 17/90] videoplayer: update frametime, it might change due to fps detection --- @@ -9098,14 +7894,14 @@ index be3d511..dbbd11b 100644 { m_codecname = m_pVideoCodec->GetName(); -- -1.8.1.6 +1.8.4 -From 7a7479ea9632e37579d09511cdafb936d326b2f0 Mon Sep 17 00:00:00 2001 +From 39480d2298cb424dd73628f6a6b7e9f76a2ae04d Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:43:06 +0200 -Subject: [PATCH 040/111] videoplayer: give streams with invalid fps a chance - for fps detection +Subject: [PATCH 18/90] videoplayer: give streams with invalid fps a chance for + fps detection --- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp | 2 +- @@ -9125,14 +7921,14 @@ index dbbd11b..eb443af 100644 //reset the stored framerates if no good framerate was detected m_fStableFrameRate = 0.0; -- -1.8.1.6 +1.8.4 -From 9ba3949b7c7d86ae5d16587d36d954b628a0db24 Mon Sep 17 00:00:00 2001 +From 587ed875534f6500d9277ca9624ec85a0af77cba Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:49:05 +0200 -Subject: [PATCH 041/111] dvdplayer: allow rewinding at end of stream, do a - seek after rewind +Subject: [PATCH 19/90] dvdplayer: allow rewinding at end of stream, do a seek + after rewind --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 8 +++++++- @@ -9165,13 +7961,13 @@ index d12121f..06c9439 100644 // audioplayer, stops outputing audio to audiorendere, but still tries to // sleep an correct amount for each packet -- -1.8.1.6 +1.8.4 -From cc9082cea16fe56f6ef2a09349784f0070ca14bc Mon Sep 17 00:00:00 2001 +From dc4518580ba32618f1099a942c0a440aeb881a8d Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:22:05 +0200 -Subject: [PATCH 042/111] X11: ditch SDL for video and window events +Subject: [PATCH 20/90] X11: ditch SDL for video and window events --- xbmc/Application.cpp | 2 +- @@ -9187,7 +7983,7 @@ Subject: [PATCH 042/111] 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 57aa100..92e467d 100644 +index 534e55f..becf35d 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -855,7 +855,7 @@ bool CApplication::CreateGUI() @@ -10652,13 +9448,13 @@ index b6b6ec4..448a1bb 100644 CCriticalSection m_resourceSection; std::vector m_resources; -- -1.8.1.6 +1.8.4 -From 00e253a6d5ac1702d59f5c1616fbc38972e2f68a Mon Sep 17 00:00:00 2001 +From 0709ff85262eb4cd21480b04b067fda62d253ee4 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:24:22 +0200 -Subject: [PATCH 043/111] X11: Add xbmc icon +Subject: [PATCH 21/90] X11: Add xbmc icon --- xbmc/windowing/X11/WinSystemX11.cpp | 126 +++++++++++++++++++++++++++++++++++- @@ -10844,13 +9640,13 @@ index 448a1bb..e618268 100644 CStopWatch m_screensaverReset; }; -- -1.8.1.6 +1.8.4 -From dff100069b17cc5d595d542da1b0fe69f9ede738 Mon Sep 17 00:00:00 2001 +From 647cea31241e1fed7d54568e01eee7052bbd7ed6 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 14:11:26 +0200 -Subject: [PATCH 044/111] X11: add SDL joystick until we have a better solution +Subject: [PATCH 22/90] X11: add SDL joystick until we have a better solution --- xbmc/windowing/WinEventsX11.cpp | 26 ++++++++++++++++++++++++++ @@ -10901,14 +9697,13 @@ index 5a8bbb8..5bc1de0 100644 } -- -1.8.1.6 +1.8.4 -From e57226830ca3639cde456f782c3eeaeb89042cf0 Mon Sep 17 00:00:00 2001 +From 9b80f5d960654627e7a46c74593a3e4a86d6e3f6 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 12:35:55 +0200 -Subject: [PATCH 045/111] X11: factor out code handling device reset - notification +Subject: [PATCH 23/90] X11: factor out code handling device reset notification --- xbmc/windowing/X11/WinSystemX11.cpp | 22 ++++++++++++++-------- @@ -10968,13 +9763,13 @@ index e618268..c4d4b76 100644 protected: bool RefreshGlxContext(); -- -1.8.1.6 +1.8.4 -From c63da366bbbbb77484758d20b4d1008d5b2de2a8 Mon Sep 17 00:00:00 2001 +From f05926af6b37b7f81c92d24136aa40e29add9c80 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:02:00 +0200 -Subject: [PATCH 046/111] X11: move xrandr events to WinEventsX11 +Subject: [PATCH 24/90] X11: move xrandr events to WinEventsX11 --- xbmc/windowing/WinEventsX11.cpp | 42 +++++++++++++++++++++++++++++++++++++ @@ -11115,13 +9910,13 @@ index c5938af..9f74dd5 100644 void CWinSystemX11::Register(IDispResource *resource) -- -1.8.1.6 +1.8.4 -From 78313aa1729974e0e3306213ff71b8671b2d4b3b Mon Sep 17 00:00:00 2001 +From 64357da870600d360349cdb21ea561ad2da730dc Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 12 Apr 2012 15:43:56 +0200 -Subject: [PATCH 047/111] xrandr: remove method RestoreState +Subject: [PATCH 25/90] xrandr: remove method RestoreState --- xbmc/windowing/X11/WinSystemX11.cpp | 13 +++++++++++-- @@ -11197,13 +9992,13 @@ index 0aec487..00b49dc 100644 //bool Has1080p(); //bool Has720p(); -- -1.8.1.6 +1.8.4 -From d7d3e323aedad05c8f318a4b3dc429175a70873a Mon Sep 17 00:00:00 2001 +From 8e78796297a9899c11ffa46759eaf24ee2016eb9 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 13:17:10 +0200 -Subject: [PATCH 048/111] xrandr: observe orientation +Subject: [PATCH 26/90] xrandr: observe orientation --- xbmc/windowing/X11/WinSystemX11.cpp | 89 ++++++++++++++++++++++++++++++------- @@ -11415,13 +10210,13 @@ index 00b49dc..508604d 100644 class CXRandR -- -1.8.1.6 +1.8.4 -From bc51bb36ca7fbe2626f244767cfd58dc5b22c235 Mon Sep 17 00:00:00 2001 +From 84941e78c58de9127c9c3b9b474481ba9e090927 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:54:15 +0200 -Subject: [PATCH 049/111] xrandr: allow getting info for multiple screen's +Subject: [PATCH 27/90] xrandr: allow getting info for multiple screen's Refactored by: Joakim Plate --- @@ -11593,13 +10388,13 @@ index 508604d..d37838a 100644 extern CXRandR g_xrandr; -- -1.8.1.6 +1.8.4 -From 11a6b3ebd99e492bcac8072e2daf114fea33d2c1 Mon Sep 17 00:00:00 2001 +From 7621f9a351c5c0698e1e389137675c43c71a83e9 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:44:00 +0200 -Subject: [PATCH 050/111] X11: fix multi-head setups +Subject: [PATCH 28/90] X11: fix multi-head setups --- language/English/strings.po | 4 +- @@ -11629,10 +10424,10 @@ index 0e900ad..90fb3fd 100644 msgctxt "#247" msgid "Scripts" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 04c521d..a0a1a5b 100644 +index 183c91c..9bbcc77 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -1870,6 +1870,15 @@ +@@ -1865,6 +1865,15 @@
@@ -11648,7 +10443,7 @@ index 04c521d..a0a1a5b 100644 0 0 -@@ -1891,6 +1900,7 @@ +@@ -1886,6 +1895,7 @@ -1 @@ -11656,7 +10451,7 @@ index 04c521d..a0a1a5b 100644 -@@ -1908,6 +1918,7 @@ +@@ -1903,6 +1913,7 @@ -1 @@ -12365,13 +11160,13 @@ index 0727bb9..b1eb278 100644 private: bool IsSuitableVisual(XVisualInfo *vInfo); -- -1.8.1.6 +1.8.4 -From 79782dac98b48a16bc5f6c7eb1c1a98bba798a56 Mon Sep 17 00:00:00 2001 +From aa2b8b2638d2b69295b2e41ebbc2d7f1aa0f93fb Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:36:32 +0200 -Subject: [PATCH 051/111] X11: remove all DefaultScreen and RootWindow macros +Subject: [PATCH 29/90] X11: remove all DefaultScreen and RootWindow macros --- xbmc/windowing/X11/WinSystemX11.cpp | 6 +++--- @@ -12436,13 +11231,13 @@ index 095012f..60a6878 100644 CLog::Log(LOGDEBUG, "GLX_EXTENSIONS:%s", m_glxext.c_str()); -- -1.8.1.6 +1.8.4 -From a54ab5a3cfb1203bf5923bbedc62eb7f17bcd973 Mon Sep 17 00:00:00 2001 +From 3446cb12a64d0fa3a5bcc90a0b2f19efc862c841 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:45:22 +0200 -Subject: [PATCH 052/111] X11: remove all DefaultScreen and RootWindow macros +Subject: [PATCH 30/90] X11: remove all DefaultScreen and RootWindow macros (VideoRefClock) Note this is on a separate display connection. @@ -12511,13 +11306,13 @@ index 5bf3656..0b9e7b3 100644 XRRFreeScreenConfigInfo(CurrInfo); -- -1.8.1.6 +1.8.4 -From 695958ee7db334a3e28b54ed210be4e6944a4311 Mon Sep 17 00:00:00 2001 +From 89db4450489d1aa1ef216f6cbefff729870f4f4b Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 20 Jun 2012 17:37:11 +0200 -Subject: [PATCH 053/111] X11: recreate gl context after output has changed +Subject: [PATCH 31/90] X11: recreate gl context after output has changed --- xbmc/windowing/X11/WinSystemX11.cpp | 24 ++++++++++++++---------- @@ -12665,13 +11460,13 @@ index 60a6878..d6ba80a 100644 } -- -1.8.1.6 +1.8.4 -From dd3b14222b04dbf9fd6021ff87334decc7c63d30 Mon Sep 17 00:00:00 2001 +From 5943f65feb3d4b961c272e0cdbc54de06e2d5d28 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:06:25 +0200 -Subject: [PATCH 054/111] X11: hook video reference clock in windowing +Subject: [PATCH 32/90] X11: hook video reference clock in windowing --- xbmc/video/VideoReferenceClock.cpp | 71 +++++++++++++++++++++++++++----------- @@ -12873,13 +11668,13 @@ index dd65a1b..afd71fc 100644 bool m_UseNvSettings; bool m_bIsATI; -- -1.8.1.6 +1.8.4 -From bc4b5f595c21c8037c584a24de4361d37c7c0cf4 Mon Sep 17 00:00:00 2001 +From 428f6a7eccb2a96850050fd38f088c5a6bec649e Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 21 Jun 2012 17:26:51 +0200 -Subject: [PATCH 055/111] X11: fix video calibrations +Subject: [PATCH 33/90] X11: fix video calibrations --- xbmc/windowing/WinSystem.h | 1 + @@ -12968,13 +11763,13 @@ index 05aa60e..95672d1 100644 // Local to WinSystemX11 only Display* GetDisplay() { return m_dpy; } -- -1.8.1.6 +1.8.4 -From a61e1e7b866ae6799725a3cee7055947fd2b7b02 Mon Sep 17 00:00:00 2001 +From 880e3e53ce9fea9252b45467cdda323837a96157 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:00:26 +0200 -Subject: [PATCH 056/111] X11: deactivate screen saver on startup +Subject: [PATCH 34/90] X11: deactivate screen saver on startup --- xbmc/windowing/X11/WinSystemX11.cpp | 29 +++++++++++++++++++++++++++++ @@ -13041,13 +11836,13 @@ index 95672d1..51ac314 100644 virtual void NotifyAppActiveChange(bool bActivated); virtual void NotifyAppFocusChange(bool bGaining); -- -1.8.1.6 +1.8.4 -From 7b5eeda44e844f39d026abc306fb530dc74410db Mon Sep 17 00:00:00 2001 +From 6f22cefb4c18613bb1a0a3ab539112485d5c5da3 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:10:09 +0200 -Subject: [PATCH 057/111] X11: change method of going full-screen +Subject: [PATCH 35/90] X11: change method of going full-screen --- xbmc/windowing/X11/WinSystemX11.cpp | 9 ++++++++- @@ -13088,13 +11883,13 @@ index 14a4307..66b91fd 100644 Pixmap bitmapNoData; XColor black; -- -1.8.1.6 +1.8.4 -From c9966a2bc75891d7f2962424946957cd3840a46f Mon Sep 17 00:00:00 2001 +From 7d494c5ab536c72f17a2ce1f519a85a3e86b52cb Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Jun 2012 19:12:39 +0200 -Subject: [PATCH 058/111] X11: reset key repeat and key modifier on focus lost +Subject: [PATCH 36/90] X11: reset key repeat and key modifier on focus lost and gain --- @@ -13123,13 +11918,13 @@ index c58067b..c9f8a20 100644 serial = xevent.xfocus.serial; break; -- -1.8.1.6 +1.8.4 -From 0f1c51b14d98a525cddfe80122e15837fd4739ae Mon Sep 17 00:00:00 2001 +From c78a22d009ab004b008cac4657e75cb4d9e6aec9 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:18:46 +0200 -Subject: [PATCH 059/111] X11: replace custom utf8 to unicode with charset +Subject: [PATCH 37/90] X11: replace custom utf8 to unicode with charset convertor (squash to x11 events) --- @@ -13343,13 +12138,13 @@ index 6100933..72955ad 100644 XIC m_xic; XBMC_Event m_lastKey; -- -1.8.1.6 +1.8.4 -From 02972d370ad7e5cd498690bf26d176d34c0bc70e Mon Sep 17 00:00:00 2001 +From dbdcd1398b9596edd368bc11ba33f5f234c6f807 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:23:54 +0200 -Subject: [PATCH 060/111] X11: fixed invalid usage of sizeof() (squash into x11 +Subject: [PATCH 38/90] X11: fixed invalid usage of sizeof() (squash into x11 changes) --- @@ -13410,13 +12205,13 @@ index 72955ad..102a076 100644 XIC m_xic; XBMC_Event m_lastKey; -- -1.8.1.6 +1.8.4 -From 262f4b16ae84bce0348da566c3760d111e908acc Mon Sep 17 00:00:00 2001 +From 7174edd30e64400b3aeb027b86bf1fa88aed04a5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 9 Jun 2012 18:23:53 +0200 -Subject: [PATCH 061/111] add missing keys to xbmc keytable +Subject: [PATCH 39/90] add missing keys to xbmc keytable --- xbmc/input/XBMC_keytable.cpp | 2 ++ @@ -13436,13 +12231,13 @@ index b430f55..246164b 100644 // Function keys , { XBMCK_F1, 0, 0, XBMCVK_F1, "f1"} -- -1.8.1.6 +1.8.4 -From d63ae68338fc4da0e774e016698f7fb62a04d9a0 Mon Sep 17 00:00:00 2001 +From 0f4f3b56b38bbc5893bd7d0ba25563980c8fb0b8 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 16 Mar 2012 15:57:51 +0100 -Subject: [PATCH 062/111] videorefclock: temp deactivate of nv settings +Subject: [PATCH 40/90] videorefclock: temp deactivate of nv settings --- xbmc/video/VideoReferenceClock.cpp | 2 +- @@ -13462,13 +12257,13 @@ index 3bd8133..59f924c 100644 #endif } -- -1.8.1.6 +1.8.4 -From 1b502562a8a1e00a0be4d6ccb0f39be9c2c77511 Mon Sep 17 00:00:00 2001 +From fefe0d5855abb1eed3f7dea5a995d52ac9a7eaca Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 09:09:09 +0200 -Subject: [PATCH 063/111] videorefclock: ask graphics context for refresh rate +Subject: [PATCH 41/90] videorefclock: ask graphics context for refresh rate --- xbmc/video/VideoReferenceClock.cpp | 3 ++- @@ -13496,13 +12291,13 @@ index 59f924c..2f8bc69 100644 CLog::Log(LOGDEBUG, "CVideoReferenceClock: Detected refreshrate: %i hertz", (int)m_RefreshRate); -- -1.8.1.6 +1.8.4 -From eb42185640059d34fd1fc3e77f65e1743f760d5f Mon Sep 17 00:00:00 2001 +From e6075ceb421bd2c5617a2fc814ebbd5583922820 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 9 Jul 2012 14:00:18 +0200 -Subject: [PATCH 064/111] X11: fix icon texture after +Subject: [PATCH 42/90] X11: fix icon texture after cc5ed3c2474084ebc0373a3046410e6f766e03f4 --- @@ -13607,13 +12402,13 @@ index 66b91fd..b00eddc 100644 } -- -1.8.1.6 +1.8.4 -From c4b8d1cd002ca52a18a1f871157ccd598f62475c Mon Sep 17 00:00:00 2001 +From ce07b488bf7bd6984eb27f405d917189bd1bf601 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 10 Jul 2012 11:14:12 +0200 -Subject: [PATCH 065/111] X11: check for window manager +Subject: [PATCH 43/90] X11: check for window manager --- xbmc/windowing/X11/WinSystemX11.cpp | 74 ++++++++++++++++++++++++++++++++++++- @@ -13731,13 +12526,13 @@ index 51ac314..ce3c289 100644 CStopWatch m_screensaverReset; }; -- -1.8.1.6 +1.8.4 -From a9dc1666ab76cc5fc46fa07e8b2d8a6278530128 Mon Sep 17 00:00:00 2001 +From d9814394d56246c6877cfd01010e9186d8ee686f Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 12 Jul 2012 11:11:47 +0200 -Subject: [PATCH 066/111] X11: dont set window on xrandr if no mode available +Subject: [PATCH 44/90] X11: dont set window on xrandr if no mode available --- xbmc/windowing/X11/WinSystemX11.cpp | 11 ++++++----- @@ -13771,13 +12566,13 @@ index 05279ad..9697cbb 100644 CStdString currentOutput = CSettings::Get().GetString("videoscreen.monitor"); -- -1.8.1.6 +1.8.4 -From 657ef9713d20db3fed7787bc1b933c40d2528b0c Mon Sep 17 00:00:00 2001 +From 87d9381f4dd3f79f6ceed1e43d28e3f8c38483be Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 26 Jul 2012 09:34:28 +0200 -Subject: [PATCH 067/111] X11: fix crash after a resolution change on startup +Subject: [PATCH 45/90] X11: fix crash after a resolution change on startup --- xbmc/windowing/X11/WinSystemX11.cpp | 3 ++- @@ -13798,13 +12593,13 @@ index 9697cbb..868071c 100644 #endif -- -1.8.1.6 +1.8.4 -From 33480af67d2e02f415a8bc967573b22b894d5fad Mon Sep 17 00:00:00 2001 +From 8bcd5f0e0e77b9ebcc590e120c6bc8bce387f598 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 15 Sep 2012 18:27:29 +0200 -Subject: [PATCH 068/111] X11: lock graphics context in NotifyXRREvent +Subject: [PATCH 46/90] X11: lock graphics context in NotifyXRREvent --- xbmc/windowing/X11/WinSystemX11.cpp | 2 ++ @@ -13824,13 +12619,13 @@ index 868071c..9ff947c 100644 { CLog::Log(LOGERROR, "WinSystemX11::RefreshWindow - failed to query xrandr"); -- -1.8.1.6 +1.8.4 -From 5f9c99545002127cd03b8e66b2fbacb05c80aac1 Mon Sep 17 00:00:00 2001 +From a5d48e1814d392c6a2bd3ac54d5fc4e8b03464f7 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 8 Oct 2011 16:45:13 +0200 -Subject: [PATCH 069/111] ffmpeg: add xvba hwaccel, co-author @fritsch +Subject: [PATCH 47/90] ffmpeg: add xvba hwaccel, co-author @fritsch --- lib/ffmpeg/configure | 11 ++ @@ -14734,13 +13529,13 @@ index 1c00ac4..6437e29 100644 AV_PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian AV_PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian -- -1.8.1.6 +1.8.4 -From 598d3e850b950f2f47352047e2ff70f5e51525cb Mon Sep 17 00:00:00 2001 +From da33e5cad8c7b2988a62a949241ac5b5b1fcef4f Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 12 Apr 2012 12:09:31 +0200 -Subject: [PATCH 070/111] xvba: add decoder, co-author @fritsch +Subject: [PATCH 48/90] xvba: add decoder, co-author @fritsch --- configure.in | 47 + @@ -14765,10 +13560,10 @@ Subject: [PATCH 070/111] xvba: add decoder, co-author @fritsch create mode 100644 xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.h diff --git a/configure.in b/configure.in -index 66e679f..558126f 100644 +index 86dc876..25c189b 100644 --- a/configure.in +++ b/configure.in -@@ -144,6 +144,8 @@ vaapi_not_found="== Could not find libva. VAAPI support disabled. ==" +@@ -148,6 +148,8 @@ vaapi_not_found="== Could not find libva. VAAPI support disabled. ==" vaapi_disabled="== VAAPI support manually disabled. ==" crystalhd_not_found="== Could not find libcrystalhd. CrystalHD support disabled. ==" crystalhd_disabled="== CrystalHD support manually disabled. ==" @@ -14777,7 +13572,7 @@ index 66e679f..558126f 100644 vtbdecoder_enabled="== VTBDecoder support enabled. ==" vtbdecoder_disabled="== VTBDecoder support manually disabled. ==" openmax_disabled="== OpenMax support manually disabled. ==" -@@ -263,6 +265,12 @@ AC_ARG_ENABLE([crystalhd], +@@ -267,6 +269,12 @@ AC_ARG_ENABLE([crystalhd], [enable CrystalHD decoding (default is auto)])], [use_crystalhd=$enableval], [use_crystalhd=auto]) @@ -14790,7 +13585,7 @@ index 66e679f..558126f 100644 AC_ARG_ENABLE([vtbdecoder], [AS_HELP_STRING([--enable-vtbdecoder], -@@ -1776,6 +1784,37 @@ else +@@ -1810,6 +1818,37 @@ else USE_CRYSTALHD=0 fi @@ -14828,7 +13623,7 @@ index 66e679f..558126f 100644 # VTBDecoder if test "x$use_vtbdecoder" != "xno"; then if test "$host_vendor" = "apple" ; then -@@ -1978,6 +2017,12 @@ else +@@ -2012,6 +2051,12 @@ else final_message="$final_message\n CrystalHD:\tNo" fi @@ -14841,7 +13636,7 @@ index 66e679f..558126f 100644 if test "x$use_vtbdecoder" != "xno"; then final_message="$final_message\n VTBDecoder:\tYes" else -@@ -2450,6 +2495,7 @@ AC_SUBST(USE_OPENGLES) +@@ -2498,6 +2543,7 @@ AC_SUBST(USE_OPENGLES) AC_SUBST(USE_VDPAU) AC_SUBST(USE_VAAPI) AC_SUBST(USE_CRYSTALHD) @@ -14849,7 +13644,7 @@ index 66e679f..558126f 100644 AC_SUBST(USE_LIBSMBCLIENT) AC_SUBST(USE_LIBNFS) AC_SUBST(USE_LIBAFPCLIENT) -@@ -2634,6 +2680,7 @@ XB_CONFIG_MODULE([lib/ffmpeg], [ +@@ -2682,6 +2728,7 @@ XB_CONFIG_MODULE([lib/ffmpeg], [ `if test "x$use_vdpau" != "xno"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \ `if test "x$use_vaapi" != "xno"; then echo --enable-vaapi; else echo --disable-vaapi; fi` \ `if test "$use_optimizations" != "no"; then echo --enable-optimizations; else echo --disable-optimizations; fi` \ @@ -14889,7 +13684,7 @@ index 90fb3fd..6e87bc7 100644 msgctxt "#16400" msgid "Post-processing" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index a0a1a5b..a1c7833 100644 +index 9bbcc77..00a0b1f 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -410,6 +410,11 @@ @@ -14901,9 +13696,9 @@ index a0a1a5b..a1c7833 100644 + 2 + true + - - HAVE_LIBSTAGEFRIGHTDECODER - 2 + + HAS_GL + 4 diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp index 7bfd892..696c3f1 100644 --- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp @@ -15337,10 +14132,10 @@ index ae610ca..08d6230 100644 return index; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp -index 514a5e1..614afdd 100644 +index 3ff3993..c95fd33 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp -@@ -183,6 +183,11 @@ CDVDVideoCodec* CDVDFactoryCodec::CreateVideoCodec(CDVDStreamInfo &hint, unsigne +@@ -184,6 +184,11 @@ CDVDVideoCodec* CDVDFactoryCodec::CreateVideoCodec(CDVDStreamInfo &hint, unsigne #elif defined(TARGET_POSIX) && !defined(TARGET_DARWIN) hwSupport += "VAAPI:no "; #endif @@ -15409,7 +14204,7 @@ index 9f1fc03..7e01ef0 100644 // mpeg4 vaapi decoding is disabled if(*cur == PIX_FMT_VAAPI_VLD && CSettings::Get().GetBool("videoplayer.usevaapi") diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in -index 86b0a89..7bc4065 100644 +index 043f570..8754625 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in @@ -34,6 +34,10 @@ INCLUDES += -I${prefix}/opt/android-source/system/core/include @@ -18245,13 +17040,13 @@ index 8f30248..db58075 100644 /* remove unsupported methods */ for(vector >::iterator it = entries.begin(); it != entries.end();) -- -1.8.1.6 +1.8.4 -From c8f44c6aeca2d7b420a576cada451931c1e8ce71 Mon Sep 17 00:00:00 2001 +From 9848f8007c61217b884ae1ff4737d60bc75a6ca2 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 16 Jun 2012 12:46:30 +0200 -Subject: [PATCH 071/111] xvba: do not use vaapi if xvba is present +Subject: [PATCH 49/90] xvba: do not use vaapi if xvba is present --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 9 +++++++++ @@ -18278,13 +17073,13 @@ index 2d59b09..aa83875 100644 VAProfile profile; -- -1.8.1.6 +1.8.4 -From 62a049ada0e780211a53cf5e0a315a0cc5f9f824 Mon Sep 17 00:00:00 2001 +From 7aad86e6fd4ff45fcda435d32a3cc926e3547261 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 23 Aug 2012 19:39:49 +0200 -Subject: [PATCH 072/111] ffmpeg: add av_find_default_stream_index to interface +Subject: [PATCH 50/90] ffmpeg: add av_find_default_stream_index to interface --- lib/DllAvFormat.h | 4 ++++ @@ -18327,13 +17122,13 @@ index 0016c0b..3514856 100644 /* dependencies of libavformat */ -- -1.8.1.6 +1.8.4 -From 345117b7bb8287000dc771151d1a34f14b465c19 Mon Sep 17 00:00:00 2001 +From 678d601433801d7ec12455353e7aec83e198f156 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 16:06:39 +0200 -Subject: [PATCH 073/111] dvdplayer: observe pts counter overflow +Subject: [PATCH 51/90] dvdplayer: observe pts counter overflow --- .../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 198 ++++++++++++++++++++- @@ -18617,13 +17412,13 @@ index aef5ab1..35abbdf 100644 }; -- -1.8.1.6 +1.8.4 -From c9faeb54dec08b3ff07c8064dcf3310248455005 Mon Sep 17 00:00:00 2001 +From 018dbad87adb89f8deae6f55fd95b756220d1227 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 13:02:10 +0200 -Subject: [PATCH 074/111] dvdplayer: avoid short screen flicker caused by +Subject: [PATCH 52/90] dvdplayer: avoid short screen flicker caused by unnecessary reconfigure of renderer --- @@ -18653,13 +17448,13 @@ index c2808c3..5d487f4 100644 m_output.extended_format = pPicture->extended_format; m_output.color_matrix = pPicture->color_matrix; -- -1.8.1.6 +1.8.4 -From c38283b4394ce4dcaea0421b29a1491a6c715ccb Mon Sep 17 00:00:00 2001 +From 76092b0eb617ce0222ffe1b733e9905e56de78ab Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 12:05:50 +0200 -Subject: [PATCH 075/111] vdpau: advanced settings for auto deinterlacing +Subject: [PATCH 53/90] vdpau: advanced settings for auto deinterlacing --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++---- @@ -18668,10 +17463,10 @@ Subject: [PATCH 075/111] vdpau: advanced settings for auto deinterlacing 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index 7f0fbd0..b6f3b83 100644 +index 43316c1..cbaf985 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -1818,10 +1818,10 @@ EINTERLACEMETHOD CMixer::GetDeinterlacingMethod(bool log /* = false */) +@@ -1827,10 +1827,10 @@ EINTERLACEMETHOD CMixer::GetDeinterlacingMethod(bool log /* = false */) if (method == VS_INTERLACEMETHOD_AUTO) { int deint = -1; @@ -18722,13 +17517,13 @@ index df5b028..82057bf 100644 bool m_videoVDPAUdeintSkipChromaHD; bool m_musicUseTimeSeeking; -- -1.8.1.6 +1.8.4 -From 695161587d0744b427548511fe7b0ed631741bf5 Mon Sep 17 00:00:00 2001 +From 3131970bd9cb75bc3e565ee6120239496bb9d093 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 2 Nov 2012 13:20:03 +0100 -Subject: [PATCH 076/111] player: fix rewind +Subject: [PATCH 54/90] player: fix rewind --- xbmc/cores/dvdplayer/DVDMessage.h | 5 ++++- @@ -18940,13 +17735,13 @@ index 59c7f09..65dea76 100644 unsigned int m_dropRequests; }; -- -1.8.1.6 +1.8.4 -From ad0e6973d2a300143c701de14bdbe8b08f26d1a3 Mon Sep 17 00:00:00 2001 +From 6ef45bf7f53cc1a51206418727d1bd8bb5bc2fa6 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 23 Nov 2012 17:41:12 +0100 -Subject: [PATCH 077/111] xrandr: fix query for multiple screens +Subject: [PATCH 55/90] xrandr: fix query for multiple screens --- xbmc/windowing/X11/XRandR.cpp | 10 ++++++---- @@ -18984,14 +17779,13 @@ index 9e181f2..ce0a02b 100644 FILE* file = popen(cmd.c_str(),"r"); if (!file) -- -1.8.1.6 +1.8.4 -From 746c5a49798137e3c4b209b9e9f0ca0b7bd66d9e Mon Sep 17 00:00:00 2001 +From 7ab27d6889178da26d24e6ccfb5eb8c6a7bd3863 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Dec 2012 15:46:55 +0100 -Subject: [PATCH 078/111] X11: add debug log to print out refresh after xrr - event +Subject: [PATCH 56/90] X11: add debug log to print out refresh after xrr event --- xbmc/windowing/X11/WinSystemX11.cpp | 6 ++++++ @@ -19015,13 +17809,13 @@ index 9ff947c..a3394e6 100644 unsigned int i; bool found(false); -- -1.8.1.6 +1.8.4 -From b7bfc1df08a3713d8b7d97f33d09bd8bfc447616 Mon Sep 17 00:00:00 2001 +From b42267ed0b252916b62f35294c62b4a951bf5d6e Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 11 Dec 2012 11:08:13 +0100 -Subject: [PATCH 079/111] X11: dont call XCloseDisplay on shutdown, it crashes +Subject: [PATCH 57/90] X11: dont call XCloseDisplay on shutdown, it crashes when powered doen by cec on ATI --- @@ -19043,13 +17837,13 @@ index a3394e6..b941c14 100644 // m_SDLSurface is free()'d by SDL_Quit(). -- -1.8.1.6 +1.8.4 -From 029656493f159d1ff6c300a2e7cad40e05d90c2a Mon Sep 17 00:00:00 2001 +From 11917b49dc814e4a3912951b121edca6fce4ab3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= Date: Wed, 12 Dec 2012 19:49:47 +0100 -Subject: [PATCH 080/111] x11: support for multiple x screens +Subject: [PATCH 58/90] x11: support for multiple x screens --- xbmc/windowing/X11/XRandR.cpp | 2 +- @@ -19069,13 +17863,13 @@ index ce0a02b..aa27d2b 100644 // TODO ERROR return false; -- -1.8.1.6 +1.8.4 -From 452fade6666016d2932a6b2eb6ad560bcddfc77f Mon Sep 17 00:00:00 2001 +From 4aa0e9e73a0dfde18bd7e6b245f2e437a3cd353c Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 24 Dec 2012 16:02:42 +0100 -Subject: [PATCH 081/111] pvr: increase changes counter of stream on stream +Subject: [PATCH 59/90] pvr: increase changes counter of stream on stream change, cosmetics after dd307930d39d92f145a01a16600cd00e01ec39be --- @@ -19106,13 +17900,13 @@ index 62fbb41..a80c789 100644 else if (props.stream[i].iCodecType == XBMC_CODEC_TYPE_VIDEO) { -- -1.8.1.6 +1.8.4 -From 047d50ff03dc0e13b386edda99d5d185f449037c Mon Sep 17 00:00:00 2001 +From efadfccd9e6ae4601a6560a035663ae524bfbbf3 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 17 Jan 2013 16:03:22 +0100 -Subject: [PATCH 082/111] X11: add keymapping for XF86XK_Sleep +Subject: [PATCH 60/90] X11: add keymapping for XF86XK_Sleep --- xbmc/windowing/WinEventsX11.cpp | 1 + @@ -19131,13 +17925,13 @@ index 4a5aab4..da5d412 100644 , {XK_Undo, XBMCK_UNDO} /* Media keys */ -- -1.8.1.6 +1.8.4 -From b1a2fc5e223085fb9f465ba1ce73a583579402ec Mon Sep 17 00:00:00 2001 +From b1c759fe6ef7480e6c12cc266fc9fd7a4df4bf60 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 21 Jan 2013 09:00:19 +0100 -Subject: [PATCH 083/111] X11: remove toggle full screen after resume +Subject: [PATCH 61/90] X11: remove toggle full screen after resume --- xbmc/powermanagement/PowerManager.cpp | 5 ----- @@ -19160,13 +17954,13 @@ index 2033574..c79bbc1 100644 } g_application.ResetScreenSaver(); -- -1.8.1.6 +1.8.4 -From 21c12b87da8a2eef346b6249b2980d7d316d8ae5 Mon Sep 17 00:00:00 2001 +From 9da38850f2d3316c648dfd9d2c280486aaed86d1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 23 Jan 2013 17:03:02 +0100 -Subject: [PATCH 084/111] xrandr: set screen on mode change command +Subject: [PATCH 62/90] xrandr: set screen on mode change command --- xbmc/windowing/X11/XRandR.cpp | 2 +- @@ -19186,13 +17980,13 @@ index aa27d2b..67bf6ca 100644 return false; CLog::Log(LOGINFO, "XRANDR: %s", cmd); -- -1.8.1.6 +1.8.4 -From 4385222d8becf806704305ae839f1b70160b33da Mon Sep 17 00:00:00 2001 +From b4fb02f6ea5cea93a5a9fa8ffe318d7eedef051c Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 23 Jan 2013 17:03:39 +0100 -Subject: [PATCH 085/111] X11: recreate glx context when output changes +Subject: [PATCH 63/90] X11: recreate glx context when output changes --- xbmc/windowing/X11/WinSystemX11.cpp | 6 +++--- @@ -19240,13 +18034,13 @@ index ce3c289..311e4cc 100644 void OnLostDevice(); bool SetWindow(int width, int height, bool fullscreen, const CStdString &output); -- -1.8.1.6 +1.8.4 -From 3e971e46fa6e016c76e807c8d00af449d258f719 Mon Sep 17 00:00:00 2001 +From d1cf19fac6d8dec1e896562564da9682b9331c20 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 14 Dec 2012 14:19:15 +0100 -Subject: [PATCH 086/111] pvr: do not show selection dialog for a single menu +Subject: [PATCH 64/90] pvr: do not show selection dialog for a single menu hook --- @@ -19281,13 +18075,13 @@ index aab6345..a880778 100644 client->CallMenuHook(hooks->at(hookIDs.at(selection)), item); } -- -1.8.1.6 +1.8.4 -From 933978ae6ca200d2739d36c417fa3459c3ea392f Mon Sep 17 00:00:00 2001 +From 5e49f860cf5fde967eeab65d38c7917100d872b2 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 3 Feb 2013 08:17:16 +0100 -Subject: [PATCH 087/111] X11: use default screen parameters if no output +Subject: [PATCH 65/90] X11: use default screen parameters if no output connected --- @@ -19388,13 +18182,13 @@ index c84e793..5215f4d 100644 mask, &swa); -- -1.8.1.6 +1.8.4 -From 635080d09a9552a4900ffa2fd504946879851af6 Mon Sep 17 00:00:00 2001 +From 176e1edd97dda5b927403ebc28f143b8f9d60549 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 23 Mar 2013 15:13:32 +0100 -Subject: [PATCH 088/111] X11: create parent window +Subject: [PATCH 66/90] X11: create parent window --- xbmc/windowing/X11/WinSystemX11.cpp | 69 +++++++++++++++++++++++-------------- @@ -19657,13 +18451,13 @@ index 311e4cc..49365a8 100644 Display* m_dpy; Cursor m_invisibleCursor; -- -1.8.1.6 +1.8.4 -From cc5af656ee061060547df565c9d7fd62b3153a2d Mon Sep 17 00:00:00 2001 +From 5c69c27d3ca7b30ce128993a93505fd5e2cc7be6 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 12:30:12 +0100 -Subject: [PATCH 089/111] X11: use system key repeat rate instead of hardcoded +Subject: [PATCH 67/90] X11: use system key repeat rate instead of hardcoded one, taken from 58fd64b194e38b73b5f3132744bab35e994e7441 --- @@ -19862,13 +18656,13 @@ index 102a076..5b1f3fa 100644 int m_keymodState; bool m_structureChanged; -- -1.8.1.6 +1.8.4 -From 5bf17c84b9dd8e2e03b90e2a418ad2a1f018856a Mon Sep 17 00:00:00 2001 +From 31dfd5d58bd7e8a092eb59e1a35f265cde604761 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 24 Mar 2013 16:04:48 +0100 -Subject: [PATCH 090/111] linux: use CLOCK_MONOTONIC_RAW as this is not subject +Subject: [PATCH 68/90] linux: use CLOCK_MONOTONIC_RAW as this is not subject to NTP --- @@ -19903,13 +18697,13 @@ index c06b8c5..4390d2e 100644 #endif } -- -1.8.1.6 +1.8.4 -From 52392e8e6b9b2359de01f0a6708a121196641622 Mon Sep 17 00:00:00 2001 +From 670ece8bdbc1b052e91df86be1ef133ed262baa5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 15:18:53 +0100 -Subject: [PATCH 091/111] OMXPlayer: some caching fixes for pvr +Subject: [PATCH 69/90] OMXPlayer: some caching fixes for pvr --- xbmc/cores/omxplayer/OMXPlayer.cpp | 3 ++- @@ -19930,23 +18724,23 @@ index 1bfbdaf..11dd1cc 100644 m_av_clock.OMXSetSpeed(speed); m_av_clock.OMXPause(); -- -1.8.1.6 +1.8.4 -From 49bae3f230d681d6890d2ee706ef68ce72f504bf Mon Sep 17 00:00:00 2001 +From 202c5ecb3114faf5403e0f0a1e6f66df7096b3e6 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Mar 2013 20:50:59 +0100 -Subject: [PATCH 092/111] fix incorrect display of fps when dr kicks in +Subject: [PATCH 70/90] fix incorrect display of fps when dr kicks in --- xbmc/Application.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 92e467d..525402c 100644 +index becf35d..dd9d1e1 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp -@@ -2184,10 +2184,11 @@ void CApplication::Render() +@@ -2193,10 +2193,11 @@ void CApplication::Render() if (frameTime < singleFrameTime) Sleep(singleFrameTime - frameTime); } @@ -19960,13 +18754,13 @@ index 92e467d..525402c 100644 g_renderManager.UpdateResolution(); -- -1.8.1.6 +1.8.4 -From 25be31f0e6ffc174c415f0a9bdcd9c38f48bdf01 Mon Sep 17 00:00:00 2001 +From e05b98e99b195b2d157bbd3f31d862f7abe606b4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 13 Apr 2013 08:32:06 +0200 -Subject: [PATCH 093/111] X11: fix mouse coverage +Subject: [PATCH 71/90] X11: fix mouse coverage --- xbmc/windowing/X11/WinSystemX11.cpp | 11 ++++++++--- @@ -20029,13 +18823,13 @@ index 49365a8..924af1d 100644 CCriticalSection m_resourceSection; std::vector m_resources; -- -1.8.1.6 +1.8.4 -From 7a1d8137b3ed2e7a2ddfe7be1963615b462926b6 Mon Sep 17 00:00:00 2001 +From b71b1b554293c5f7714628ea450a1397efbed3c8 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 8 May 2013 13:14:58 +0200 -Subject: [PATCH 094/111] X11: fix incorrectly used screen num in desktop +Subject: [PATCH 72/90] X11: fix incorrectly used screen num in desktop resolution --- @@ -20067,13 +18861,13 @@ index 186a28e..66955b8 100644 res.iHeight = mode.h; res.iScreenWidth = mode.w; -- -1.8.1.6 +1.8.4 -From b13292942c269723de9d5ad1c1a346cd660ae9e1 Mon Sep 17 00:00:00 2001 +From bc4c72a6709137731b70c2ddb436622ef1ae54df Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 9 May 2013 12:07:09 +0200 -Subject: [PATCH 095/111] X11: do not overwrite user selected monitor with +Subject: [PATCH 73/90] X11: do not overwrite user selected monitor with fallback --- @@ -20195,13 +18989,13 @@ index 924af1d..2fb9e0f 100644 bool m_bIsInternalXrr; bool m_newGlContext; -- -1.8.1.6 +1.8.4 -From 4e2bee476f5ff41e71c8841e4d37c162e84f309c Mon Sep 17 00:00:00 2001 +From 847dae2fcf7bc923afb7bbab21e1255ccb432bf9 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 12 May 2013 10:50:30 +0200 -Subject: [PATCH 096/111] xrandr: add turn on/off to wrapper +Subject: [PATCH 74/90] xrandr: add turn on/off to wrapper --- xbmc/windowing/X11/XRandR.cpp | 78 +++++++++++++++++++++++++++++++++++++++---- @@ -20364,13 +19158,13 @@ index d37838a..059062f 100644 //bool Has1080p(); //bool Has720p(); -- -1.8.1.6 +1.8.4 -From fc2f08443b4e7dbaeb97ecfe3ef86ecf0c0540ac Mon Sep 17 00:00:00 2001 +From 84ca055b225c28e8650046027f26326045893eef Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 19 May 2013 12:55:35 +0200 -Subject: [PATCH 097/111] xrandr: add GetPreferredMode to wrapper +Subject: [PATCH 75/90] xrandr: add GetPreferredMode to wrapper --- xbmc/windowing/X11/XRandR.cpp | 23 +++++++++++++++++++++++ @@ -20424,13 +19218,13 @@ index 059062f..ab7cc63 100644 bool SetMode(XOutput output, XMode mode); void LoadCustomModeLinesToAllOutputs(void); -- -1.8.1.6 +1.8.4 -From 31a16ec843d58847c3e1e3418f1a13481555b950 Mon Sep 17 00:00:00 2001 +From 755d86ea8f38056c093b9de3b2ff363f850184c7 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 11 May 2013 17:12:12 +0200 -Subject: [PATCH 098/111] X11: multi-head improvement - poll for desired output +Subject: [PATCH 76/90] X11: multi-head improvement - poll for desired output if we do not get an xrr event --- @@ -20472,10 +19266,10 @@ index 6e87bc7..b9aefe3 100644 #: xbmc/dialogs/GUIDialogFavourites.cpp msgctxt "#15015" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index a1c7833..a737dc2 100644 +index 00a0b1f..ed3c982 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -1884,6 +1884,11 @@ +@@ -1879,6 +1879,11 @@ @@ -20487,7 +19281,7 @@ index a1c7833..a737dc2 100644 0 0 -@@ -1935,6 +1940,7 @@ +@@ -1930,6 +1935,7 @@ @@ -20708,13 +19502,13 @@ index 4809821..1ad26b2 100644 int status = system(cmd.c_str()); if (status == -1) -- -1.8.1.6 +1.8.4 -From b32ea3e1cb503ac97ecdf361a238b74ab436ea4c Mon Sep 17 00:00:00 2001 +From f9ee70d207b85bd4196af681b7e1863c97f7911a Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Wed, 15 May 2013 09:14:34 +0200 -Subject: [PATCH 099/111] X11: ignore mouse move event form other windows +Subject: [PATCH 77/90] X11: ignore mouse move event form other windows --- xbmc/windowing/WinEventsX11.cpp | 4 +++- @@ -20743,13 +19537,13 @@ index 6ddaead..e4451fe 100644 memset(&newEvent, 0, sizeof(newEvent)); newEvent.type = XBMC_MOUSEMOTION; -- -1.8.1.6 +1.8.4 -From 31dc0a9d086769a0e920c0ddf926b876f6ed7015 Mon Sep 17 00:00:00 2001 +From 47da713a623b5327fc365ed96122e664f4ef9088 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Tue, 11 Jun 2013 16:20:29 +0200 -Subject: [PATCH 100/111] renderer: allow some lateness within vblank interval +Subject: [PATCH 78/90] renderer: allow some lateness within vblank interval --- xbmc/cores/VideoRenderers/RenderManager.cpp | 12 ++++++++++-- @@ -20806,13 +19600,13 @@ index befd851..27283ec 100644 OVERLAY::CRenderer m_overlays; -- -1.8.1.6 +1.8.4 -From 2cb5380ec3bffaaa968462afbe09484581355889 Mon Sep 17 00:00:00 2001 +From f3f060802ffa5ca698755f91c9f67e407810986e Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 16 Jun 2013 13:22:58 +0200 -Subject: [PATCH 101/111] X11: another fix for mouse coverage +Subject: [PATCH 79/90] X11: another fix for mouse coverage --- xbmc/windowing/WinEventsX11.cpp | 6 ++++-- @@ -20842,13 +19636,13 @@ index e4451fe..582b9f5 100644 break; } -- -1.8.1.6 +1.8.4 -From 57726ab8ccb995463bbb76a566638aa8fd751751 Mon Sep 17 00:00:00 2001 +From 344c3ad759793fb684ceee73f65f1864abf93e30 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 5 Jul 2013 12:14:00 +0200 -Subject: [PATCH 102/111] X11: set windows class name +Subject: [PATCH 80/90] X11: set windows class name --- xbmc/windowing/X11/WinSystemX11.cpp | 9 ++++++++- @@ -20887,21 +19681,21 @@ index 7e4b637..44e40a3 100644 // register interest in the delete window message -- -1.8.1.6 +1.8.4 -From 002808de57386d6f7edf2e352d1d86199db3545d Mon Sep 17 00:00:00 2001 +From c6d410d4aebb063b200823c450c7474290ac83fb Mon Sep 17 00:00:00 2001 From: fritsch Date: Sun, 14 Jul 2013 14:21:52 +0200 -Subject: [PATCH 103/111] ActiveAE: Make ActiveAE default Audio Engine to get - it tested via ppa +Subject: [PATCH 81/90] ActiveAE: Make ActiveAE default Audio Engine to get it + tested via ppa --- xbmc/cores/AudioEngine/AEFactory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xbmc/cores/AudioEngine/AEFactory.cpp b/xbmc/cores/AudioEngine/AEFactory.cpp -index 6a5808c..fc38090 100644 +index e4a6cd3..2fbcecf 100644 --- a/xbmc/cores/AudioEngine/AEFactory.cpp +++ b/xbmc/cores/AudioEngine/AEFactory.cpp @@ -97,7 +97,7 @@ bool CAEFactory::LoadEngine() @@ -20914,13 +19708,13 @@ index 6a5808c..fc38090 100644 return loaded; -- -1.8.1.6 +1.8.4 -From 6659a6c0436b4f00494612e1d96c8b9d842160a9 Mon Sep 17 00:00:00 2001 +From 9b0b7cf83f4102b450bfc49416f7b93202651d4a Mon Sep 17 00:00:00 2001 From: spiff Date: Tue, 16 Jul 2013 14:34:04 +0200 -Subject: [PATCH 104/111] fixed: typo +Subject: [PATCH 82/90] fixed: typo --- language/English/strings.po | 2 +- @@ -20940,20 +19734,20 @@ index b9aefe3..0c5a8dd 100644 #empty strings from id 14102 to 15014 -- -1.8.1.6 +1.8.4 -From 9b0b4c425a6d1f547565226b3815c3709048b5f9 Mon Sep 17 00:00:00 2001 +From 57af4044ed57779b68f39ebbf6b0ef3f0bec380e Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Thu, 25 Jul 2013 17:18:13 +0200 -Subject: [PATCH 105/111] ActiveAE: slightly reduce buffer size +Subject: [PATCH 83/90] ActiveAE: slightly reduce buffer size --- xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp -index 78f9eee..961adc8 100644 +index d203fb7..88d280b 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -30,8 +30,8 @@ @@ -20968,14 +19762,14 @@ index 78f9eee..961adc8 100644 void CEngineStats::Reset(unsigned int sampleRate) { -- -1.8.1.6 +1.8.4 -From bda6c8230b4740b032553eabd3f4309d57b668c1 Mon Sep 17 00:00:00 2001 +From b5d8863507c637224600fd8d847735e926ae4807 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sun, 4 Aug 2013 10:11:16 +0200 -Subject: [PATCH 106/111] Revert "vdpau: comment some features that will be - added later" +Subject: [PATCH 84/90] Revert "vdpau: comment some features that will be added + later" This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf. --- @@ -20983,10 +19777,10 @@ This reverts commit e00b4f65864d623ab4d2e9e5c06db138e661f1cf. 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -index b6f3b83..5f62189 100644 +index cbaf985..c28f353 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp -@@ -929,8 +929,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) +@@ -938,8 +938,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) m_bufferStats.IncDecoded(); m_vdpauOutput.m_dataPort.SendOutMessage(COutputDataProtocol::NEWFRAME, &pic, sizeof(pic)); @@ -20996,7 +19790,7 @@ index b6f3b83..5f62189 100644 } int retval = 0; -@@ -985,8 +984,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) +@@ -994,8 +993,7 @@ int CDecoder::Decode(AVCodecContext *avctx, AVFrame *pFrame) msg->Release(); } @@ -21006,7 +19800,7 @@ index b6f3b83..5f62189 100644 { if (decoded + processed + render < 4) { -@@ -2150,8 +2148,7 @@ void CMixer::InitCycle() +@@ -2159,8 +2157,7 @@ void CMixer::InitCycle() int flags; m_config.stats->GetParams(latency, flags); latency = (latency*1000)/CurrentHostFrequency(); @@ -21016,7 +19810,7 @@ index b6f3b83..5f62189 100644 SetPostProcFeatures(false); else SetPostProcFeatures(true); -@@ -2162,8 +2159,7 @@ void CMixer::InitCycle() +@@ -2171,8 +2168,7 @@ void CMixer::InitCycle() EINTERLACEMETHOD method = GetDeinterlacingMethod(); bool interlaced = m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_INTERLACED; @@ -21026,7 +19820,7 @@ index b6f3b83..5f62189 100644 (mode == VS_DEINTERLACEMODE_FORCE || (mode == VS_DEINTERLACEMODE_AUTO && interlaced))) { -@@ -2185,8 +2181,7 @@ void CMixer::InitCycle() +@@ -2194,8 +2190,7 @@ void CMixer::InitCycle() m_config.stats->SetCanSkipDeint(true); } @@ -21037,13 +19831,13 @@ index b6f3b83..5f62189 100644 m_mixersteps = 1; } -- -1.8.1.6 +1.8.4 -From 85c36804624f9fbceae85c5e82e757b066d21cb7 Mon Sep 17 00:00:00 2001 +From 768e191416afbac708c78e88deebba1c9d29ec2b Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 18:01:40 +0200 -Subject: [PATCH 107/111] X11: fix keysyms +Subject: [PATCH 85/90] X11: fix keysyms --- xbmc/windowing/WinEventsX11.cpp | 2 +- @@ -21063,13 +19857,13 @@ index 582b9f5..ca31278 100644 newEvent.key.keysym.unicode = keys[keys.length() - 1]; newEvent.key.state = xevent.xkey.state; -- -1.8.1.6 +1.8.4 -From cc051edca6fd3bf6430a0503aab29d564f2e77af Mon Sep 17 00:00:00 2001 +From 0a7539073df21555e55387a42b685e63ceb4f25f Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Fri, 9 Aug 2013 18:42:36 +0200 -Subject: [PATCH 108/111] X11: fix keysym for non-IM +Subject: [PATCH 86/90] X11: fix keysym for non-IM --- xbmc/windowing/WinEventsX11.cpp | 2 +- @@ -21089,13 +19883,13 @@ index ca31278..db50d3c 100644 newEvent.key.keysym.scancode = xevent.xkey.keycode; newEvent.key.state = xevent.xkey.state; -- -1.8.1.6 +1.8.4 -From 6b45549f6174112896c51108315a68d410579cbe Mon Sep 17 00:00:00 2001 +From 8d0449fc972132bd371e04a4057fb0f99566185e Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 11:18:16 +0200 -Subject: [PATCH 109/111] add some missing multi media keys +Subject: [PATCH 87/90] add some missing multi media keys --- system/keymaps/keyboard.xml | 3 +++ @@ -21147,13 +19941,13 @@ index ee6bb69..364b45a 100644 XBMCVK_LCONTROL = 0xD0, XBMCVK_RCONTROL = 0xD1, -- -1.8.1.6 +1.8.4 -From 6b9ecbb8956eb6bdc59eeae79f628bf511be52b8 Mon Sep 17 00:00:00 2001 +From 63bf84f43a79b7432f6a95b14fef019b975b3b9c Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 15:32:06 +0200 -Subject: [PATCH 110/111] CWinSystemBase: keep RES_DESKTOP untouched at pos 0, +Subject: [PATCH 88/90] CWinSystemBase: keep RES_DESKTOP untouched at pos 0, fixes toggle fullscreen --- @@ -21185,13 +19979,13 @@ index b3add75..6294965 100644 return resolutions; } -- -1.8.1.6 +1.8.4 -From e70c101a28981a2e5e238654bdbc05e7ee5132fe Mon Sep 17 00:00:00 2001 +From 502da5f74ccc5fd483e9bde6b5d28914d5c86399 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 10 Aug 2013 15:53:45 +0200 -Subject: [PATCH 111/111] X11: squash multi +Subject: [PATCH 89/90] X11: squash multi --- xbmc/windowing/X11/WinSystemX11.cpp | 2 +- @@ -21211,5 +20005,5 @@ index 44e40a3..a00481e 100644 bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) -- -1.8.1.6 +1.8.4 diff --git a/packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-995.10-disable-alt-tab.patch b/packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-995.10-disable-alt-tab.patch similarity index 100% rename from packages/mediacenter/xbmc/patches/13.alpha-0efa87e/xbmc-995.10-disable-alt-tab.patch rename to packages/mediacenter/xbmc/patches/13.alpha-2435cf3/xbmc-995.10-disable-alt-tab.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-311-fix_rsxs_build-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-311-fix_rsxs_build-0.1.patch deleted file mode 100644 index fe0ee49cab..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-311-fix_rsxs_build-0.1.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur xbmc-dab646e/xbmc/screensavers/rsxs-0.9/lib/argp-namefrob.h xbmc-dab646e.patch/xbmc/screensavers/rsxs-0.9/lib/argp-namefrob.h ---- xbmc-dab646e/xbmc/screensavers/rsxs-0.9/lib/argp-namefrob.h 2011-09-27 15:56:19.000000000 +0200 -+++ xbmc-dab646e.patch/xbmc/screensavers/rsxs-0.9/lib/argp-namefrob.h 2011-10-16 02:13:13.805433847 +0200 -@@ -17,7 +17,7 @@ - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - --#if !_LIBC -+#if 0 - /* This code is written for inclusion in gnu-libc, and uses names in the - namespace reserved for libc. If we're not compiling in libc, define those - names to be the normal ones instead. */ diff --git a/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-03-show-all-removable-disks-mounted-under-media.patch b/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-03-show-all-removable-disks-mounted-under-media.patch new file mode 100644 index 0000000000..17619f8ec2 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-03-show-all-removable-disks-mounted-under-media.patch @@ -0,0 +1,25 @@ +From 6d64d70a46b8f238d2706017a084f30bd681f291 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sat, 31 Aug 2013 13:44:53 +0300 +Subject: [PATCH] show all removable disks mounted under /media + +--- + xbmc/storage/linux/UDevProvider.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/xbmc/storage/linux/UDevProvider.cpp b/xbmc/storage/linux/UDevProvider.cpp +index c20facc..c1044c8 100644 +--- a/xbmc/storage/linux/UDevProvider.cpp ++++ b/xbmc/storage/linux/UDevProvider.cpp +@@ -151,7 +151,7 @@ void CUDevProvider::GetDisks(VECSOURCES& disks, bool removable) + if (removable && + ((bus && strstr(bus, "usb")) || + (cdrom && strstr(cdrom,"1")) || +- (mountpoint && strstr(mountpoint, "usb")))) ++ (mountpoint && strstr(mountpoint, "/media/")))) + { + const char *label = udev_device_get_property_value(device, "ID_FS_LABEL"); + if (!label) +-- +1.7.2.5 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch b/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch new file mode 100644 index 0000000000..bdb266bbd0 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-04-fixed-context-menu-remove-safely-selection.patch @@ -0,0 +1,66 @@ +From 35400b9a93e5c2c9aa6dc389736af293fc623a5b Mon Sep 17 00:00:00 2001 +From: davilla +Date: Thu, 3 Jan 2013 11:20:22 -0500 +Subject: [PATCH] [aml] fixed context menu 'remove safely' selection + +--- + xbmc/linux/PosixMountProvider.cpp | 10 ++++++++++ + xbmc/linux/PosixMountProvider.h | 2 +- + xbmc/storage/linux/UDevProvider.cpp | 7 ++++++- + 3 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/xbmc/linux/PosixMountProvider.cpp b/xbmc/linux/PosixMountProvider.cpp +index 2420491..27d639e 100644 +--- a/xbmc/linux/PosixMountProvider.cpp ++++ b/xbmc/linux/PosixMountProvider.cpp +@@ -127,6 +127,16 @@ void CPosixMountProvider::GetDrives(VECSOURCES &drives) + return result; + } + ++bool CPosixMountProvider::Eject(CStdString mountpath) ++{ ++ // just go ahead and try to umount the disk ++ // if it does umount, life is good, if not, no loss. ++ std::string cmd = "umount " + mountpath; ++ system(cmd.c_str()); ++ ++ return true; ++} ++ + bool CPosixMountProvider::PumpDriveChangeEvents(IStorageEventsCallback *callback) + { + VECSOURCES drives; +diff --git a/xbmc/linux/PosixMountProvider.h b/xbmc/linux/PosixMountProvider.h +index da0506c..02ff302 100644 +--- a/xbmc/linux/PosixMountProvider.h ++++ b/xbmc/linux/PosixMountProvider.h +@@ -34,7 +34,7 @@ class CPosixMountProvider : public IStorageProvider + + virtual std::vector GetDiskUsage(); + +- virtual bool Eject(CStdString mountpath) { return false; } ++ virtual bool Eject(CStdString mountpath); + + virtual bool PumpDriveChangeEvents(IStorageEventsCallback *callback); + private: +diff --git a/xbmc/storage/linux/UDevProvider.cpp b/xbmc/storage/linux/UDevProvider.cpp +index 21b6b50..d9e6a4f 100644 +--- a/xbmc/storage/linux/UDevProvider.cpp ++++ b/xbmc/storage/linux/UDevProvider.cpp +@@ -179,7 +179,12 @@ void CUDevProvider::GetRemovableDrives(VECSOURCES &removableDrives) + + bool CUDevProvider::Eject(CStdString mountpath) + { +- return false; ++ // just go ahead and try to umount the disk ++ // if it does umount, life is good, if not, no loss. ++ std::string cmd = "umount " + mountpath; ++ system(cmd.c_str()); ++ ++ return true; + } + + std::vector CUDevProvider::GetDiskUsage() +-- +1.8.4 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch b/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch new file mode 100644 index 0000000000..6da61a6608 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-AML-XB9295c3f-05-use-udevil-to-umount.-escape-mountpath.patch @@ -0,0 +1,39 @@ +From 023acdbbe7b3766e3e1bf509e92d967903aee680 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sat, 31 Aug 2013 18:19:43 +0300 +Subject: [PATCH] use udevil to umount. escape mountpath + +--- + xbmc/linux/PosixMountProvider.cpp | 2 +- + xbmc/storage/linux/UDevProvider.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/linux/PosixMountProvider.cpp b/xbmc/linux/PosixMountProvider.cpp +index bbf47fa..2004b44 100644 +--- a/xbmc/linux/PosixMountProvider.cpp ++++ b/xbmc/linux/PosixMountProvider.cpp +@@ -130,7 +130,7 @@ bool CPosixMountProvider::Eject(CStdString mountpath) + { + // just go ahead and try to umount the disk + // if it does umount, life is good, if not, no loss. +- std::string cmd = "umount " + mountpath; ++ std::string cmd = "udevil umount \"" + mountpath + "\""; + system(cmd.c_str()); + + return true; +diff --git a/xbmc/storage/linux/UDevProvider.cpp b/xbmc/storage/linux/UDevProvider.cpp +index e9c86ab..2f3a5ea 100644 +--- a/xbmc/storage/linux/UDevProvider.cpp ++++ b/xbmc/storage/linux/UDevProvider.cpp +@@ -183,7 +183,7 @@ bool CUDevProvider::Eject(CStdString mountpath) + { + // just go ahead and try to umount the disk + // if it does umount, life is good, if not, no loss. +- std::string cmd = "umount " + mountpath; ++ std::string cmd = "udevil umount \"" + mountpath + "\""; + system(cmd.c_str()); + + return true; +-- +1.7.2.5 + diff --git a/packages/network/bluez/package.mk b/packages/network/bluez/package.mk index 9a23f3ca51..3b46f4bc2e 100644 --- a/packages/network/bluez/package.mk +++ b/packages/network/bluez/package.mk @@ -42,15 +42,15 @@ else fi if [ "$DEVTOOLS" = "yes" ]; then - BLUEZ_CONFIG="$BLUEZ_CONFIG --enable-monitor --enable-test --enable-tools" + BLUEZ_CONFIG="$BLUEZ_CONFIG --enable-monitor --enable-test" else - BLUEZ_CONFIG="$BLUEZ_CONFIG --disable-monitor --disable-test --disable-tools" + BLUEZ_CONFIG="$BLUEZ_CONFIG --disable-monitor --disable-test" fi PKG_CONFIGURE_OPTS_TARGET="--disable-dependency-tracking \ --disable-silent-rules \ - --disable-shared \ - --enable-static \ + --enable-shared \ + --disable-static \ --enable-library \ --enable-usb \ --enable-udev \ @@ -58,6 +58,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-dependency-tracking \ --disable-obex \ --enable-client \ --disable-systemd \ + --enable-tools \ --enable-datafiles \ --disable-experimental \ --with-gnu-ld \ diff --git a/packages/network/connman/package.mk b/packages/network/connman/package.mk index 11f3d875d3..d50df86684 100644 --- a/packages/network/connman/package.mk +++ b/packages/network/connman/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="connman" -PKG_VERSION="1.17" +PKG_VERSION="1.18" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/network/iptables/package.mk b/packages/network/iptables/package.mk index 69e78419c1..7cfdafe5c8 100644 --- a/packages/network/iptables/package.mk +++ b/packages/network/iptables/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="iptables" -PKG_VERSION="1.4.19.1" +PKG_VERSION="1.4.20" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/network/iptables/patches/iptables-1.4.20-buildfix.patch b/packages/network/iptables/patches/iptables-1.4.20-buildfix.patch new file mode 100644 index 0000000000..51db4f3423 --- /dev/null +++ b/packages/network/iptables/patches/iptables-1.4.20-buildfix.patch @@ -0,0 +1,12 @@ +diff -Naur iptables-1.4.20/iptables/Makefile.am iptables-1.4.20.patch/iptables/Makefile.am +--- iptables-1.4.20/iptables/Makefile.am 2013-08-06 17:48:43.000000000 +0200 ++++ iptables-1.4.20.patch/iptables/Makefile.am 2013-09-01 05:30:03.118428151 +0200 +@@ -38,7 +38,7 @@ + v6_sbin_links = ip6tables ip6tables-restore ip6tables-save + endif + +-iptables-extensions.8: ${srcdir}/iptables-extensions.8.tmpl ../extensions/matches.man ../extensions/targets.man ++iptables-extensions.8: iptables-extensions.8.tmpl ../extensions/matches.man ../extensions/targets.man + ${AM_VERBOSE_GEN} sed \ + -e '/@MATCH@/ r ../extensions/matches.man' \ + -e '/@TARGET@/ r ../extensions/targets.man' $< >$@; diff --git a/packages/network/ntp/build b/packages/network/ntp/build index 0bf4fab2e6..0038c776cd 100755 --- a/packages/network/ntp/build +++ b/packages/network/ntp/build @@ -33,6 +33,7 @@ cd $PKG_BUILD --enable-ipv6 \ --without-rpath \ --with-gnu-ld \ + --disable-linuxcaps \ --without-crypto make -C sntp/libopts diff --git a/packages/network/ntp/meta b/packages/network/ntp/meta index 326bb29963..67e708a00f 100644 --- a/packages/network/ntp/meta +++ b/packages/network/ntp/meta @@ -26,7 +26,7 @@ PKG_LICENSE="OSS" PKG_SITE="http://www.ntp.org/" PKG_URL="http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/$PKG_NAME-$PKG_VERSION.tar.gz" PKG_DEPENDS="" -PKG_BUILD_DEPENDS="toolchain libcap" +PKG_BUILD_DEPENDS="toolchain" PKG_PRIORITY="optional" PKG_SECTION="network" PKG_SHORTDESC="ntp: Network Time Protocol utilities" diff --git a/packages/network/samba/package.mk b/packages/network/samba/package.mk index eedd0579b7..64d9029eb7 100644 --- a/packages/network/samba/package.mk +++ b/packages/network/samba/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="samba" -PKG_VERSION="3.6.16" +PKG_VERSION="3.6.18" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/toolchain/devel/binutils/meta b/packages/toolchain/devel/binutils/meta index 3e13dac55c..4632f089ee 100644 --- a/packages/toolchain/devel/binutils/meta +++ b/packages/toolchain/devel/binutils/meta @@ -29,7 +29,7 @@ PKG_SITE="http://www.gnu.org/software/binutils/binutils.html" PKG_URL="http://ftp.gnu.org/gnu/binutils/$PKG_NAME-$PKG_VERSION.tar.gz" #PKG_URL="ftp://ftp.kernel.org/pub/linux/devel/binutils/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="" -PKG_BUILD_DEPENDS="ccache bison:host flex linux-headers gmp-host mpfr cloog ppl" +PKG_BUILD_DEPENDS="ccache bison:host flex linux-headers gmp-host mpfr cloog ppl:host" PKG_PRIORITY="optional" PKG_SECTION="toolchain/devel" PKG_SHORTDESC="binutils: A GNU collection of binary utilities" diff --git a/packages/toolchain/lang/gcc-core/meta b/packages/toolchain/lang/gcc-core/meta index e1aea0b6cd..ab2396072e 100644 --- a/packages/toolchain/lang/gcc-core/meta +++ b/packages/toolchain/lang/gcc-core/meta @@ -26,7 +26,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://gcc.gnu.org/" PKG_URL="" PKG_DEPENDS="" -PKG_BUILD_DEPENDS="ccache autoconf-2.64 binutils gmp-host mpfr mpc cloog ppl" +PKG_BUILD_DEPENDS="ccache autoconf-2.64 binutils gmp-host mpfr mpc cloog ppl:host" PKG_PRIORITY="optional" PKG_SECTION="toolchain/lang" PKG_SHORTDESC="gcc: The GNU Compiler Collection Version 4 (aka GNU C Compiler)" diff --git a/packages/toolchain/lang/gcc-final/meta b/packages/toolchain/lang/gcc-final/meta index 1a31f375f0..2cd92a6b54 100644 --- a/packages/toolchain/lang/gcc-final/meta +++ b/packages/toolchain/lang/gcc-final/meta @@ -26,7 +26,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://gcc.gnu.org/" PKG_URL="" PKG_DEPENDS="" -PKG_BUILD_DEPENDS="ccache autoconf-2.64 binutils gmp-host mpfr mpc cloog ppl eglibc" +PKG_BUILD_DEPENDS="ccache autoconf-2.64 binutils gmp-host mpfr mpc cloog ppl:host eglibc" PKG_PRIORITY="optional" PKG_SECTION="toolchain/lang" PKG_SHORTDESC="gcc: The GNU Compiler Collection Version 4 (aka GNU C Compiler)" diff --git a/packages/toolchain/math/ppl/meta b/packages/toolchain/math/ppl/package.mk similarity index 94% rename from packages/toolchain/math/ppl/meta rename to packages/toolchain/math/ppl/package.mk index fc71807973..97e15a305e 100644 --- a/packages/toolchain/math/ppl/meta +++ b/packages/toolchain/math/ppl/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="ppl" -PKG_VERSION="1.1pre9" +PKG_VERSION="1.1pre10" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" @@ -32,6 +32,9 @@ PKG_PRIORITY="optional" PKG_SECTION="toolchain/math" PKG_SHORTDESC="ppl: Parma Polyhedra Library" PKG_LONGDESC="The Parma Polyhedra Library (PPL) provides numerical abstractions especially targeted at applications in the field of analysis and verification of complex systems." -PKG_IS_ADDON="no" +PKG_IS_ADDON="no" PKG_AUTORECONF="no" + +PKG_CONFIGURE_OPTS_HOST="--enable-interfaces=c,cxx --with-gmp=$ROOT/$TOOLCHAIN" + diff --git a/packages/tools/bcm2835-bootloader/files/create_sdcard b/packages/tools/bcm2835-bootloader/files/create_sdcard index a66a3cc5d7..8b6246f1f7 100755 --- a/packages/tools/bcm2835-bootloader/files/create_sdcard +++ b/packages/tools/bcm2835-bootloader/files/create_sdcard @@ -50,18 +50,22 @@ if [ -z "$1" ]; then fi DISK="$1" -if [ "$DISK" = "/dev/mmcblk0" ]; then - PART1="${DISK}p1" - PART2="${DISK}p2" -elif [ "$DISK" = "/dev/loop0" ]; then - PART1="${DISK}p1" - PART2="${DISK}p2" - IMGFILE="$2" - losetup $DISK $IMGFILE -else - PART1="${DISK}1" - PART2="${DISK}2" -fi +case $DISK in + "/dev/mmcblk1"*) + PART1="${DISK}p1" + PART2="${DISK}p2" + ;; + "/dev/loop"*) + PART1="${DISK}p1" + PART2="${DISK}p2" + IMGFILE="$2" + losetup $DISK $IMGFILE + ;; + *) + PART1="${DISK}1" + PART2="${DISK}2" + ;; +esac clear echo "#########################################################" diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index 626d3acc64..883a871ee7 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="3ab17ac" +PKG_VERSION="d4f5315" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree" diff --git a/packages/unofficial b/packages/unofficial index 3f2135d24d..91337e2a39 160000 --- a/packages/unofficial +++ b/packages/unofficial @@ -1 +1 @@ -Subproject commit 3f2135d24d9c65513e387156164aef95958e298d +Subproject commit 91337e2a39c4cd84eaad4b74cf4562aa82e17d7c diff --git a/packages/web/curl/meta b/packages/web/curl/meta index ac5dbc8180..f4b0fb1a5a 100644 --- a/packages/web/curl/meta +++ b/packages/web/curl/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="curl" -PKG_VERSION="7.31.0" +PKG_VERSION="7.32.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MIT" diff --git a/packages/web/libmicrohttpd/meta b/packages/web/libmicrohttpd/meta index 07c043de00..c0a59b7701 100644 --- a/packages/web/libmicrohttpd/meta +++ b/packages/web/libmicrohttpd/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="libmicrohttpd" -PKG_VERSION="0.9.27" +PKG_VERSION="0.9.30" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/x11/data/xkeyboard-config/patches/xkeyboard-config-01_autoconf-macrodir.patch b/packages/x11/data/xkeyboard-config/patches/xkeyboard-config-01_autoconf-macrodir.patch new file mode 100644 index 0000000000..71fe8dea92 --- /dev/null +++ b/packages/x11/data/xkeyboard-config/patches/xkeyboard-config-01_autoconf-macrodir.patch @@ -0,0 +1,9 @@ +diff --git a/configure.ac b/configure.ac +index fb31994..42f9eee 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,3 +1,4 @@ ++AC_CONFIG_MACRO_DIR([m4]) + AC_INIT(xkeyboard-config, 2.9) + AC_CONFIG_SRCDIR(rules/base.xml.in) + AM_INIT_AUTOMAKE([foreign dist-bzip2]) diff --git a/packages/x11/driver/xf86-video-intel/package.mk b/packages/x11/driver/xf86-video-intel/package.mk index 18f8fc58c9..7d577c8b15 100644 --- a/packages/x11/driver/xf86-video-intel/package.mk +++ b/packages/x11/driver/xf86-video-intel/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xf86-video-intel" -PKG_VERSION="2.21.14" +PKG_VERSION="2.99.901" PKG_REV="1" PKG_ARCH="i386 x86_64" PKG_LICENSE="OSS" diff --git a/packages/x11/driver/xf86-video-intel/patches/xf86-video-intel-dri_configure.patch b/packages/x11/driver/xf86-video-intel/patches/xf86-video-intel-dri_configure.patch deleted file mode 100644 index 0af6e60108..0000000000 --- a/packages/x11/driver/xf86-video-intel/patches/xf86-video-intel-dri_configure.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 6004870d53221caf05a330fcfc8a72e68b2b8898 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Tue, 06 Aug 2013 03:03:18 +0000 -Subject: configure.ac: fix dri enabled with kms only picked - -Otherwise we'd fail saying DRI1 wasn't possible, when that -is exactly what we asked for. - -[ickle: The breakage was introduced with - -commit bd6ffd1ad2f903215d2c631252e742a0f6893054 [2.21.14] -Author: Chris Wilson -Date: Sat Jul 27 15:33:19 2013 +0100 - - configure: Print a summary of compilation options - -which modified the search to only take place if UMS was enabled, but -missed mollifying the resulting error.] - -Signed-off-by: Dave Airlie ---- -diff --git a/configure.ac b/configure.ac -index 104113e..88f29cc 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -433,7 +433,7 @@ else - DRI1_CFLAGS="" - DRI1_LIBS="" - -- if test "x$enable_dri" = "xyes"; then -+ if test "x$enable_dri" = "xyes" -a "x$KMS_ONLY" != "xyes"; then - AC_MSG_ERROR([DRI1 requested but prerequisites not found]) - fi - fi --- -cgit v0.9.0.2-2-gbebe diff --git a/packages/x11/other/fontconfig/init.d/35_fontconfig b/packages/x11/other/fontconfig/init.d/35_fontconfig index 8197696a8d..ff8bf2e4c8 100644 --- a/packages/x11/other/fontconfig/init.d/35_fontconfig +++ b/packages/x11/other/fontconfig/init.d/35_fontconfig @@ -24,15 +24,7 @@ FC_CACHE_DIRS="/usr/share/fonts/ /usr/share/xbmc/media/Fonts/" -# hack to support user installed fonts - SUBFONTS="/storage/.xbmc/userdata/fonts" - if [ -d "$SUBFONTS" ]; then - files=$(ls $SUBFONTS/*.[tT][tT][fF] 2>/dev/null | wc -l) - if [ "$files" = "0" ]; then - cp /usr/share/xbmc/media/Fonts/*.[tT][tT][fF] $SUBFONTS/ - fi - mount --bind $SUBFONTS /usr/share/xbmc/media/Fonts/ - fi +# TODO: add /storage/.xbmc/media/Fonts to $FC_CACHE_DIRS ? ( progress "Creating fontconfig cache" diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index a5a5c17b72..caf3372731 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 3.10.7 Kernel Configuration +# Linux/arm 3.10.10 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -139,9 +139,10 @@ CONFIG_PERF_USE_VMALLOC=y # # CONFIG_PERF_EVENTS is not set # CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set -CONFIG_SLAB=y -# CONFIG_SLUB is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y @@ -347,7 +348,8 @@ CONFIG_HAVE_MEMBLOCK=y # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 # CONFIG_KSM is not set @@ -2519,7 +2521,8 @@ CONFIG_PANIC_ON_OOPS_VALUE=0 # CONFIG_SCHEDSTATS is not set # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_SLAB is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_PREEMPT is not set