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:
Stephan Raue 2013-09-06 22:12:38 +02:00
commit a56ebf80e9
104 changed files with 1766 additions and 4364 deletions

14
packages/3rdparty/lib/libdvbcsa/build vendored Executable file
View 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

View 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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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/"

View File

@ -1,3 +1,5 @@
3.1.3
rebuild
3.1.2
new addon settings option to enable suspend/resume driver actions
3.1.1

View File

@ -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/"

View File

@ -1,3 +1,6 @@
3.1.2
- rebuild
3.1.1
- rebuild for OpenELEC-3.2

View File

@ -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"

View File

@ -1,3 +1,6 @@
3.1.4
- rebuild
3.1.3
- update to TVHeadend 3.4.27

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="sqlite"
PKG_VERSION="autoconf-3071700"
PKG_VERSION="autoconf-3080002"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="PublicDomain"

View File

@ -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
}

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="strace"
PKG_VERSION="4.7"
PKG_VERSION="4.8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="BSD"

View File

@ -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

View 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])

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="3ab17ac"
PKG_VERSION="d4f5315"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 \

View File

@ -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, &param);
+ // 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, &param);
+
+ 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, &param);
+
+ 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

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;
};

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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. */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 \

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="connman"
PKG_VERSION="1.17"
PKG_VERSION="1.18"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -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"

View File

@ -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' $< >$@;

View File

@ -33,6 +33,7 @@ cd $PKG_BUILD
--enable-ipv6 \
--without-rpath \
--with-gnu-ld \
--disable-linuxcaps \
--without-crypto
make -C sntp/libopts

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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)"

View File

@ -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)"

View File

@ -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"

View File

@ -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 "#########################################################"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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