mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.2
Conflicts: packages/x11/driver/xf86-video-nvidia/meta
This commit is contained in:
commit
a56ebf80e9
14
packages/3rdparty/lib/libdvbcsa/build
vendored
Executable file
14
packages/3rdparty/lib/libdvbcsa/build
vendored
Executable file
@ -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
|
34
packages/toolchain/math/ppl/build → packages/3rdparty/lib/libdvbcsa/meta
vendored
Executable file → Normal file
34
packages/toolchain/math/ppl/build → packages/3rdparty/lib/libdvbcsa/meta
vendored
Executable file → Normal file
@ -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"
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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/"
|
||||
|
@ -1,3 +1,5 @@
|
||||
3.1.3
|
||||
rebuild
|
||||
3.1.2
|
||||
new addon settings option to enable suspend/resume driver actions
|
||||
3.1.1
|
||||
|
@ -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/"
|
||||
|
@ -1,3 +1,6 @@
|
||||
3.1.2
|
||||
- rebuild
|
||||
|
||||
3.1.1
|
||||
- rebuild for OpenELEC-3.2
|
||||
|
||||
|
@ -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"
|
||||
|
@ -1,3 +1,6 @@
|
||||
3.1.4
|
||||
- rebuild
|
||||
|
||||
3.1.3
|
||||
- update to TVHeadend 3.4.27
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3071700"
|
||||
PKG_VERSION="autoconf-3080002"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="strace"
|
||||
PKG_VERSION="4.7"
|
||||
PKG_VERSION="4.8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
@ -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
|
13
packages/debug/strace/patches/strace-4.8-autoreconf.patch
Normal file
13
packages/debug/strace/patches/strace-4.8-autoreconf.patch
Normal file
@ -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])
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="3ab17ac"
|
||||
PKG_VERSION="d4f5315"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -0,0 +1,70 @@
|
||||
From d0929f7068e8025a3d9ccf5dd7bea8dc0d887a49 Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
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 <kafkaesque1978@gmail.com>
|
||||
Reported-by: Peter Frühberger <fritsch@xbmc.org>
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Cc: <stable@vger.kernel.org>
|
||||
---
|
||||
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
|
||||
|
@ -0,0 +1,94 @@
|
||||
From d78a0599d5b5d4da384eae08bf7da316389dfbe5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
|
||||
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:[<ffffffffa092be0c>] [<ffffffffa092be0c>] 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] <IRQ>
|
||||
[ 846.863906]
|
||||
[ 846.863906] [<ffffffffa08c5aa3>] ? smscore_onresponse+0x1d5/0x353 [smsmdtv]
|
||||
[ 846.863906] [<ffffffffa08b642c>] ? smsusb_onresponse+0x146/0x192 [smsusb]
|
||||
[ 846.863906] [<ffffffffa004cb1a>] ? usb_hcd_giveback_urb+0x6c/0xac [usbcore]
|
||||
[ 846.863906] [<ffffffffa0217be1>] ? ehci_urb_done+0x62/0x72 [ehci_hcd]
|
||||
[ 846.863906] [<ffffffffa0217c82>] ? qh_completions+0x91/0x364 [ehci_hcd]
|
||||
[ 846.863906] [<ffffffffa0219bba>] ? ehci_work+0x8a/0x68e [ehci_hcd]
|
||||
[ 846.863906] [<ffffffff8107336c>] ? timekeeping_get_ns.constprop.10+0xd/0x31
|
||||
[ 846.863906] [<ffffffff81064d41>] ? update_cfs_rq_blocked_load+0xde/0xec
|
||||
[ 846.863906] [<ffffffff81058ec2>] ? run_posix_cpu_timers+0x25/0x575
|
||||
[ 846.863906] [<ffffffffa021aa46>] ? ehci_irq+0x211/0x23d [ehci_hcd]
|
||||
[ 846.863906] [<ffffffffa004c0c1>] ? usb_hcd_irq+0x31/0x48 [usbcore]
|
||||
[ 846.863906] [<ffffffff810996fd>] ? handle_irq_event_percpu+0x49/0x1a4
|
||||
[ 846.863906] [<ffffffff8109988a>] ? handle_irq_event+0x32/0x4b
|
||||
[ 846.863906] [<ffffffff8109bd76>] ? handle_fasteoi_irq+0x80/0xb6
|
||||
[ 846.863906] [<ffffffff8100e93e>] ? handle_irq+0x18/0x20
|
||||
[ 846.863906] [<ffffffff8100e657>] ? do_IRQ+0x40/0x95
|
||||
[ 846.863906] [<ffffffff813883ed>] ? common_interrupt+0x6d/0x6d
|
||||
[ 846.863906] <EOI>
|
||||
[ 846.863906]
|
||||
[ 846.863906] [<ffffffff812a011c>] ? arch_local_irq_enable+0x4/0x8
|
||||
[ 846.863906] [<ffffffff812a04f3>] ? cpuidle_enter_state+0x52/0xc1
|
||||
[ 846.863906] [<ffffffff812a0636>] ? cpuidle_idle_call+0xd4/0x143
|
||||
[ 846.863906] [<ffffffff8101398c>] ? arch_cpu_idle+0x5/0x17
|
||||
[ 846.863906] [<ffffffff81072571>] ? cpu_startup_entry+0x10d/0x187
|
||||
[ 846.863906] [<ffffffff816b3d3d>] ? start_kernel+0x3e8/0x3f3
|
||||
[ 846.863906] [<ffffffff816b3777>] ? repair_env_string+0x54/0x54
|
||||
[ 846.863906] [<ffffffff816b3598>] ? 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 [<ffffffffa092be0c>] smsdvb_onresponse+0x264/0xa86 [smsdvb]
|
||||
[ 846.863906] RSP <ffff88013bc03cf0>
|
||||
|
||||
Reported-by: Johannes Rohr <jorohr@gmail.com>
|
||||
Reference: http://bugs.debian.org/719623
|
||||
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
Signed-off-by: Bj?rn Mork <bjorn@mork.no>
|
||||
---
|
||||
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
|
@ -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
|
||||
|
@ -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 \
|
||||
|
@ -1,746 +0,0 @@
|
||||
From 1a93a46fe38c926ccd7658ce6f8c827d0491c117 Mon Sep 17 00:00:00 2001
|
||||
From: stupid-boy <amushatov@gmail.com>
|
||||
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 <amushatov@gmail.com>
|
||||
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
|
||||
|
@ -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
|
File diff suppressed because it is too large
Load Diff
@ -1,34 +0,0 @@
|
||||
commit 7205cbc5abda0a8571170a132bd30fc54a4aa6b6
|
||||
Author: fritsch <peter.fruehberger@gmail.com>
|
||||
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);
|
@ -1,95 +0,0 @@
|
||||
commit 6f1d11cf3e44a37b5d90689bda9fc7df11ae8a52
|
||||
Author: fritsch <peter.fruehberger@gmail.com>
|
||||
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);
|
@ -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);
|
@ -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;
|
||||
};
|
||||
|
@ -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 <stdio.h>
|
||||
#include <algorithm>
|
||||
@@ -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);
|
@ -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
|
@ -0,0 +1,714 @@
|
||||
From 70199b49c92d0ca58b09f948794e637ed1bc963c Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Raue <stephan@openelec.tv>
|
||||
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 <bonzini@gnu.org>
|
||||
+#
|
||||
+# 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 <bonzini@gnu.org>
|
||||
+# 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 <stephan@openelec.tv>
|
||||
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 <stephan@openelec.tv>
|
||||
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 <stephan@openelec.tv>
|
||||
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 <stephan@openelec.tv>
|
||||
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
|
||||
|
@ -0,0 +1,86 @@
|
||||
From 1501e49f96f75d12ef8071f30ca3338ea18f4ff4 Mon Sep 17 00:00:00 2001
|
||||
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
|
||||
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 <stdio.h>
|
||||
#include <algorithm>
|
||||
@@ -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
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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. */
|
@ -0,0 +1,25 @@
|
||||
From 6d64d70a46b8f238d2706017a084f30bd681f291 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
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
|
||||
|
@ -0,0 +1,66 @@
|
||||
From 35400b9a93e5c2c9aa6dc389736af293fc623a5b Mon Sep 17 00:00:00 2001
|
||||
From: davilla <davilla@4pi.com>
|
||||
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<CStdString> 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<CStdString> CUDevProvider::GetDiskUsage()
|
||||
--
|
||||
1.8.4
|
||||
|
@ -0,0 +1,39 @@
|
||||
From 023acdbbe7b3766e3e1bf509e92d967903aee680 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
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
|
||||
|
@ -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 \
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="connman"
|
||||
PKG_VERSION="1.17"
|
||||
PKG_VERSION="1.18"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -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"
|
||||
|
@ -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' $< >$@;
|
@ -33,6 +33,7 @@ cd $PKG_BUILD
|
||||
--enable-ipv6 \
|
||||
--without-rpath \
|
||||
--with-gnu-ld \
|
||||
--disable-linuxcaps \
|
||||
--without-crypto
|
||||
|
||||
make -C sntp/libopts
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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)"
|
||||
|
@ -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)"
|
||||
|
@ -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"
|
||||
|
@ -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 "#########################################################"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="3ab17ac"
|
||||
PKG_VERSION="d4f5315"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 3f2135d24d9c65513e387156164aef95958e298d
|
||||
Subproject commit 91337e2a39c4cd84eaad4b74cf4562aa82e17d7c
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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])
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user