Compare commits

...

286 Commits

Author SHA1 Message Date
Stephan Raue
795f71cbad config/version: set version to 3.0.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-17 12:52:35 +02:00
Stephan Raue
81635ae19d bcm2835-bootloader: revert to bcm2835-bootloader-baa3ecf
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-17 11:18:46 +02:00
Stephan Raue
5006bd2073 autoupdate: add support for MACH_KERNEL
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-16 21:32:05 +02:00
Stefan Saraev
eca2593537 projects/*/linux/linux.*.conf: enable CONFIG_SATA_SIL24
closes #2161
2013-05-16 17:29:08 +02:00
Daniel Forsberg
b912dd770c RPi: changed gpu_mem to 100mb for 256mb RPis. fixes #1713 2013-05-16 17:28:08 +02:00
Stefan Saraev
8838df80b6 projects/*/linux/linux.*.conf: enable marvell pata
closes #2140
2013-05-16 17:27:32 +02:00
Stefan Saraev
50fd321948 linux: enable parallel build 2013-05-16 17:26:20 +02:00
Stephan Raue
cdd64e47c8 libpng: force linking against libz
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-16 16:42:00 +02:00
Stephan Raue
ea9308930e libpng-host: install manually so libpng-config from target build will not be overwritten
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-16 16:40:54 +02:00
Stephan Raue
bb62afa663 procps-ng: install in release builds too
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-14 23:45:39 +02:00
Stephan Raue
df92530dfb xbmc: add PR2570
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-14 23:45:16 +02:00
Stephan Raue
2b3943fbc2 xbmc: add PR2748
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-14 20:38:30 +02:00
Stephan Raue
311d48675e curl: update to curl-7.30.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-14 19:05:46 +02:00
Stefan Saraev
1d33ed7aa0 projects/*/linux/linux.*.conf: add CONFIG_DVB_DM1105 closes #2126 2013-05-14 19:04:58 +02:00
Stephan Raue
435afa1adb new package: add package 'berryboot-tools'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-14 18:34:39 +02:00
Stephan Raue
535c7f9fba xf86-video-nvidia: update patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 21:56:39 +02:00
Stephan Raue
76794512f4 xf86-video-nvidia-legacy: update patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 21:56:30 +02:00
Stephan Raue
d34ffbf7ea xbmc: update PR2713
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:08 +02:00
Stephan Raue
f27bf3e7e8 bcm2835-bootloader: update to bcm2835-bootloader-f53948f
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:08 +02:00
Stephan Raue
654a08308a bcm2835-driver: update to bcm2835-driver-f53948f
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:08 +02:00
Stephan Raue
67d100e1a2 bcm2835-driver: dont create and install vlls dir
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:08 +02:00
Stephan Raue
620388d307 samba: build libsmbclient as shared lib
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:08 +02:00
Stephan Raue
5dd496de25 samba: update to samba-3.6.15
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:08 +02:00
Stephan Raue
31d8790e15 avahi/samba: When samba is built with avahi support the server name is advertised in UPPERCASE as samba forces this when setting-up avahi via dbus. If we disable avahi support in samba and include a samba.service file with avahi the hostname is correctly advertised as the user entered it; e.g. OpenELEC not OPENELEC ..we can also use a tweaked samba.service so Mac users with an AppleTV see the AppleTV icon in Finder.app instead of a generic server icon. this fixes #2282
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Stefan Saraev
bf38c48586 busybox & busybox-initramfs: clean up fastboot 2013-05-13 14:55:07 +02:00
Sascha Hofmann
b7a9574ea6 libcec: update to libcec-2.1.3.1 2013-05-13 14:55:07 +02:00
Stephan Raue
e4344663a9 xbmc: move patch to set wakeup command to versioned patch folder, set wakeup command for xbmc-gotham
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Christian Hewitt
851fe8b7bc livestick: add banner to osx script
deleted accidentally earlier
2013-05-13 14:55:07 +02:00
Stephan Raue
bc5cf335ff xbmc: add PR2493
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Stephan Raue
8b86f57c74 xbmc: add patch to fix for hang following seek after eos
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Christian Hewitt
6b19a24e64 add create_livestick_osx and files
closes #2278
2013-05-13 14:55:07 +02:00
Stephan Raue
73be075895 xbmc: update PR2713 patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Stephan Raue
859c0415b6 xbmc: add PR2586
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Stefan Saraev
0bf97f0da1 xbmc: revert 799d6ff03 (setwakeup.sh) 2013-05-13 14:55:07 +02:00
Stephan Raue
c0d9bb6e09 xbmc: add PR2712
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Stephan Raue
aa6dd8cd1f xbmc: add PR2713
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:07 +02:00
Stefan Saraev
93bfe834f5 nettle: dont build parallel 2013-05-13 14:55:07 +02:00
Stefan Saraev
0ca38238e8 busybox: add 'ip tunnel' support
fixes #2189
2013-05-13 14:55:07 +02:00
Dag Wieers
fde2bb4da8 Mount /var as tmpfs and limit the use of tmpfs
This commit (apart from the cosmetic change to avoid using 'none') changes the use of ramfs into tmpfs. The reason for this is that ramfs usage can fill 100% of RAM and cannot be swapped out. While tmpfs can be swapped out and can be limited in size.

The size chosen is arbitrary, but taking into account the ATV1 hardware 5% of 256MB means 12MB and 20% means 50MB, considering we have swap this is not too drastic. For any larger system, these sizes are fine as well as we do not expect /var or /dev/shm to be filled completely. So worst case is covered, but not expected.
2013-05-13 14:55:06 +02:00
Stephan Raue
f26d79510e projects/RPi: add own /etc/modules file and load lirc_rpi by default, dont loade coretemp module
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
1bab87b42c projects/RPi/linux: add i2c-dev support
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
ce57af41e9 util-linux: use blocksize=1MB for creating the swapfile
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stefan Saraev
70e55e654f projects/*/linux/linux.*.conf: add ZD1201 wifi support 2013-05-13 14:55:06 +02:00
Stefan Saraev
be38ef930c wlan-firmware: update to wlan-firmware-0.0.12 2013-05-13 14:55:06 +02:00
vpeter4
79b5bff431 create_livestick: changes required for syslinux 5.01 2013-05-13 14:55:06 +02:00
Stephan Raue
ab80a96630 libmicrohttpd: update to libmicrohttpd-0.9.27
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
22b467f01f xf86-video-nvidia: update to xf86-video-nvidia-304.88
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
14cc7b928d xf86-video-nvidia-legacy: update to xf86-video-nvidia-legacy-304.88
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
d87146752e samba: update to samba-3.6.14
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
0d4e0bb4ce ethtool: update to ethtool-3.9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:06 +02:00
Stephan Raue
2ab36dd62f xbmc: add PR2686
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:05 +02:00
Stephan Raue
913f85678f libiconv: update to libiconv-20130504
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:05 +02:00
Stephan Raue
10d81af0f0 gettext: update to gettext-0.18.2.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-13 14:55:05 +02:00
Stefan Saraev
fd79dec84b Revert "xrandr: switch off screen on standby and restart on wakeup to try to avoid audio issues after suspend"
This reverts commit e84cf14798.
2013-05-11 00:10:11 +03:00
Stefan Saraev
252550cd0c Revert "xrandr: switch off only HDMI/DFP/CRT outputs on suspend"
This reverts commit ed466a366a.
2013-05-11 00:10:09 +03:00
Stephan Raue
605e379208 crystalhd: add PW2092521 patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-03 23:32:22 +02:00
Stephan Raue
a0587ea002 syslinux: update to syslinux-5.01
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-03 22:42:53 +02:00
Stephan Raue
baa988b2d5 xbmc-pvr-addons: add PR193
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-03 22:42:34 +02:00
Dag Wieers
b1d5e175fd Put libthread_db.so into the correct location for gdb
Otherwise we get:

    warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
2013-05-03 22:42:13 +02:00
Stephan Raue
216e47043b config/version: set back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-03 22:42:04 +02:00
Stephan Raue
a0147f6a12 config/version: set version to 3.0.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-02 19:58:52 +02:00
Stephan Raue
fc24b8019c xbmc: update to xbmc-12.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-02 17:22:44 +02:00
Stephan Raue
7b32a97b27 xbmc-addon-xvdr: update to xbmc-addon-xvdr-frodo-acd4e14
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 17:43:05 +02:00
Stephan Raue
398df5af31 xbmc-pvr-addons: update to xbmc-pvr-addons-frodo-d37ec1d
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 17:41:13 +02:00
Stephan Raue
54250b65b6 projects/RPi/linux: add SPI device support, this fixes #2251
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 16:58:25 +02:00
Stephan Raue
9de9b5e196 bcm2835-bootloader: update to bcm2835-bootloader-4bec05a
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 16:56:27 +02:00
Stephan Raue
b9d2270148 bcm2835-driver: update to bcm2835-driver-4bec05a
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 16:56:12 +02:00
Stephan Raue
5bef57fd04 xbmc: update to xbmc-12.1.10
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 16:55:45 +02:00
Stephan Raue
a406469e03 nettle: update to nettle-2.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-05-01 16:53:25 +02:00
Stefan Saraev
e65d9950a7 syslog: no no and no. we don't need this 2013-05-01 16:50:52 +02:00
Stephan Raue
9e303b9aa1 installer: make systempartition per default 256MB
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-29 00:58:23 +02:00
Stephan Raue
c9dbfb1a4b linux-3.6: Added DVB adapter Terratec H5 Rev3 to em28xx driver
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-29 00:16:11 +02:00
Stefan Saraev
421e703840 projects/Generic_OSS/options: disable atvclient 2013-04-28 20:13:09 +02:00
Stefan Saraev
5cb0cf883b projects/Generic/options: disable atvclient 2013-04-28 20:12:51 +02:00
Stephan Raue
3e7c7806ab pciutils: update to pciutils-3.2.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-28 20:12:33 +02:00
Stephan Raue
7c01aa5598 libgcrypt: update to libgcrypt-1.5.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-28 20:12:13 +02:00
Stefan Saraev
073cac2232 create_livestick: fix bad subst. works only in bash. thanks fritsch 2013-04-28 20:11:54 +02:00
Stephan Raue
412141f521 wireless_tools: dont build with LTO support, this fails on some systems
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-26 20:39:05 +02:00
Daniel Forsberg
8423ab495e linux: Added DVB adapter Terratec H5 Rev3 to em28xx driver 2013-04-26 01:21:29 +02:00
Stephan Raue
e2ff29aaba xbmc: add patch to let set the buusy delay control and set to 750ms
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-26 01:03:26 +02:00
Stephan Raue
654f7f915e util-linux: show progress if creating swapfile on startup
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-26 01:02:06 +02:00
Stephan Raue
1871b22418 xbmc: remove deprecated and not more needed option
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-26 01:01:45 +02:00
Christian Hewitt
bfd530f8ae dvb-firmware: update to dvb-firmware-0.0.35
add dvb-usb-wt220u-miglia-01.fw
2013-04-25 23:30:34 +02:00
Stephan Raue
c0c146e966 dvb-firmware: update to dvb-firmware-0.0.34
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-25 19:16:50 +02:00
Stephan Raue
adcfc51319 projects/*/linux: add support for DVB_USB_CXUSB
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-25 18:52:03 +02:00
Stephan Raue
8bed71f6bd xbmc: update to xbmc-12.1.8
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-25 00:48:25 +02:00
Stephan Raue
4f38d9317a tools/mkpkg: update mkpkg_xbmc-frodo script
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-24 20:24:16 +02:00
Stephan Raue
1c9e03a7ae xbmc: update to xbmc-2.1.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-24 20:12:29 +02:00
Dag Wieers
75b3c30417 Fix slow syslogd remote syslog startup and klogd interaction
Because syslogd is not properly started its remote syslog support when klogd dumps its kernel ring buffer content to it, most of the kernel boot output is missing on the remote syslog server. By adding a small delay between syslogd and klogd, we are sure the messages are properly send to the remote syslog by syslogd.
2013-04-23 01:18:45 +02:00
Dag Wieers
bc28e915ea AppleTV: Make sure loop devices are allocated dynamically
CONFIG_BLK_DEV_LOOP_MIN_COUNT: Number of loop devices to pre-create at init time

Static number of loop devices to be unconditionally pre-created at init time.

This default value can be overwritten on the kernel command line or with module-parameter loop.max_loop.

The historic default is 8. If a late 2011 version of losetup(8) is used, it can be set to 0, since needed loop devices can be dynamically allocated with the /dev/loop-control interface.
2013-04-23 01:15:03 +02:00
Dag Wieers
672e2beddb AppleTV: Disable intel_idle support
The AppleTV hardware does not support intel_idle.
2013-04-23 01:10:06 +02:00
Dag Wieers
8d449ea3e9 AppleTV: Enable PCIEAER and PCIEPM support
The AppleTV hardware supports both PCI-Express Advanced Error Reporting and PCI-Express Power Management.
2013-04-23 00:34:57 +02:00
Dag Wieers
802ccf6c06 AppleTV: Disable RDRAND support
The AppleTV hardware does not have RDRAND support.
2013-04-23 00:29:42 +02:00
Dag Wieers
7c53c9ce79 AppleTV: Disable PAT
The AppleTV hardware does not have PAT support.
2013-04-23 00:19:06 +02:00
Dag Wieers
08d1947761 AppleTV: Disable MPPARSE
The AppleTV hardware does not have MPPARSE support (as it does not have SMP capabilities).
2013-04-22 23:49:55 +02:00
Dag Wieers
b587105ecf AppleTV: Enable MSI support for ATV1
Not sure why Message Signaled interrupts was disabled, but the ATV1 hardware *does* support MSI and we specifically enable MSI for the nvidia driver.

Here is a list of hardware that supports and uses MSI on AppleTV 1st Gen :

```
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Exp
ress Root Port (rev 03) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        Memory behind bridge: 20000000-21ffffff
        Prefetchable memory behind bridge: 0000000010000000-000000001fffffff
        Capabilities: [88] Subsystem: Intel Corporation Device 0000
        Capabilities: [80] Power Management version 2
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [a0] Express Root Port (Slot+), MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [140] Root Complex Link
        Kernel driver in use: pcieport

00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
        Subsystem: Realtek Semiconductor Co., Ltd. Device 0885
        Flags: bus master, fast devsel, latency 0, IRQ 42
        Memory at 22a00000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
        Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [130] Root Complex Link
        Kernel driver in use: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        I/O behind bridge: 00003000-00003fff
        Memory behind bridge: 22000000-228fffff
        Prefetchable memory behind bridge: 0000000022b00000-0000000022cfffff
        Capabilities: [40] Express Root Port (Slot+), MSI 00
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [90] Subsystem: Gammagraphx, Inc. (or missing ID) Device 0000
        Capabilities: [a0] Power Management version 2
        Capabilities: [100] Virtual Channel
        Capabilities: [180] Root Complex Link
        Kernel driver in use: pcieport

01:00.0 VGA compatible controller: NVIDIA Corporation G72M [Quadro NVS 110M/GeForce Go 7300] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: Apple Inc. Device 0081
        Flags: bus master, fast devsel, latency 0, IRQ 44
        Memory at 21000000 (32-bit, non-prefetchable) [size=16M]
        Memory at 10000000 (64-bit, prefetchable) [size=256M]
        Memory at 20000000 (64-bit, non-prefetchable) [size=16M]
        Capabilities: [60] Power Management version 2
        Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [78] Express Endpoint, MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [128] Power Budgeting <?>
        Kernel driver in use: nvidia
        Kernel modules: nvidia

02:00.0 Multimedia controller: Broadcom Corporation BCM70015 Video Decoder [Crystal HD]
        Subsystem: Broadcom Corporation BCM70015 Video Decoder [Crystal HD]
        Flags: bus master, fast devsel, latency 0, IRQ 43
        Memory at 22800000 (64-bit, non-prefetchable) [size=64K]
        Memory at 22000000 (64-bit, non-prefetchable) [size=8M]
        Capabilities: [48] Power Management version 3
        Capabilities: [60] Vendor Specific Information: Len=6c <?>
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [cc] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [13c] Virtual Channel
        Kernel driver in use: crystalhd
        Kernel modules: crystalhd
```
2013-04-22 23:21:17 +02:00
Dag Wieers
ca9779eed8 AppleTV: Make in-kernel config modular (but keep it available)
The in-kernel config (/proc/config.gz) is a useful way to understand how your existing kernel has been compiled, however it does use some memory to represent this information inside the kernel. However by making it optional you can still have this information if wanted, but as part of the system ramdisk (as a kernel module) rather than in memory all the time.

For AppleTV this was not (yet) enabled, for other platforms we make it modular.
2013-04-22 20:06:21 +02:00
Dag Wieers
8534be20a7 Fixes for slow channel switching
This fixes and closes #2132.
2013-04-22 17:24:35 +02:00
Stephan Raue
4ef3138874 projects/*/linux: add P54 network driver
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 17:00:18 +02:00
Stephan Raue
a7bcd79166 projects/RPi/xbmc: update advancedsettings.xml
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:58:48 +02:00
Stephan Raue
327474361b busybox: increase min_free_kbytes size
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:58:28 +02:00
Stephan Raue
463dc63cf3 wlan-firmware: update to wlan-firmware-0.0.11
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:58:09 +02:00
Stephan Raue
ea8d106ae5 xbmc: add upstream patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:57:45 +02:00
Dag Wieers
e13e9c0dda Enable DMI module to allow for debugging
While debugging a Zotac ID-80 not having any DMI information at all at your disposal is a drag. Making the DMI module afavilable at least allows me to see whether we need to flash the BIOS etc...
2013-04-22 16:57:23 +02:00
Dag Wieers
9eb0eccb11 Use the host's vesamenu.c32 as well
When using syslinux and C32 modules it's important to use the C32 modules build with the same syslinux. This patch ensures that we use the host OS's vesamenu.c32, rather than the one shipped in the tarball.
2013-04-22 16:57:04 +02:00
Dag Wieers
b2685567c3 Wrong partition name used for devices ending with numbers
On Linux when a block device ends with a number (like my SD card device: **/dev/mmcblk0**) the first partition is called **/dev/mmcblk0p1** (with an added **p**). This snippet makes sure that the correct partition name is used in both cases.
2013-04-22 16:56:48 +02:00
Stephan Raue
dce8242e8f xbmc: add PR2641
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:56:15 +02:00
Stephan Raue
dfe2becd18 xbmc: add PR2593
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:55:45 +02:00
Stephan Raue
1c57a2c647 xbmc-master: add PR2579
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:54:53 +02:00
Stephan Raue
4d4bbf5c5c xbmc: add PR2591
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-22 16:54:23 +02:00
Stephan Raue
fabe07ab99 procps-ng: update to procps-ng-3.3.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-21 00:12:08 +02:00
Stephan Raue
14c9ae2284 procps-ng: enable autoreconf, cleanup
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-21 00:11:52 +02:00
Stephan Raue
c9af0900b4 less: depends on ncurses, run autoreconf, cleanup
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-21 00:11:36 +02:00
Dag Wieers
ff9995e982 Replace busybox free with *real* free from procps-ng
Busybox free reports incorrectly the used and free memory on a system. Which makes it harder to understand and compare information from other sources.

In the same effort we add some other useful procps-ng tools, like pgrep, pkill, pmap, slabtop, vmstat and watch.
2013-04-21 00:11:16 +02:00
Dag Wieers
16442f04bb Add proper less to image (disable busybox less)
The version of less in busybox is quite annoying when working on OpenELEC. It doesn't properly support searching in files or tailing (and interrupting) logfiles. It also doesn't properly handle non-ascii characters. This patch disables busybox less and instead adds the latest stable less release.
2013-04-21 00:10:58 +02:00
Stephan Raue
95c0a28bed xbmc: add PR2637
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-20 21:42:22 +02:00
Stephan Raue
1f6d6dac80 scripts/image: add support to define official builds
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-20 21:41:58 +02:00
Stefan Saraev
ed466a366a xrandr: switch off only HDMI/DFP/CRT outputs on suspend 2013-04-20 21:41:36 +02:00
Stephan Raue
d885625d24 mysql: update to mysql-5.1.68
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-20 21:41:04 +02:00
Stephan Raue
7de221797a Revert "kmod: update to kmod-13"
This reverts commit 2b41b01d1e.
2013-04-18 23:15:20 +02:00
Stephan Raue
e84cf14798 xrandr: switch off screen on standby and restart on wakeup to try to avoid audio issues after suspend
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-18 23:14:58 +02:00
Stephan Raue
77aa1eb581 kmod: update to kmod-13
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-17 04:16:36 +02:00
Stephan Raue
51e8121f67 bison: update to bison-2.7.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-17 04:16:36 +02:00
Stephan Raue
e7db42d3c6 sqlite: update to sqlite-autoconf-3071602
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-17 04:16:36 +02:00
Stephan Raue
05a6bab1ef config/version: set version back to 'devel'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-16 23:17:45 +02:00
Stephan Raue
34251ce19e config/version: set version to 3.0.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-16 21:34:50 +02:00
Stephan Raue
7bec817c62 xbmc: update to xbmc-12.1.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-16 19:06:14 +02:00
Stephan Raue
558aaffd5a bcm2835-bootloader: fill INSTALL file with some infos
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-16 16:20:40 +02:00
Stephan Raue
86724c9b87 pmtools: update to pmtools-20110323
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-16 16:16:10 +02:00
Daniel Forsberg
46a1abc03c lirc_rpi: added vista mce, some Harmonys use this. and changed BACK to EXIT, it is missing in Lircmap.xml 2013-04-15 21:38:39 +02:00
Stephan Raue
6308070ac2 xbmc: update to xbmc-12.1.5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-15 19:52:55 +02:00
Stephan Raue
8c476b3056 boost: update to boost-1_53_0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-15 18:10:26 +02:00
Stephan Raue
30d5dda637 diskdev_cmds: readd fsck udev rule
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-14 21:05:53 +02:00
Roger James
f85652573f Fix for issue #1987 The problem exists in the jmicron 1.0.8.5 source. The problem has been fixed in the vanilla kernel. This patch file appears to be generated by diffing the vanilla kernel source and the jmicron source, thus introducing the problem to the build. This changeset edits the patch file to remove the problem. This is not ideal as this fix will be easily lost if a new patch file is generated. The best solution would be to fix the problem in the original jmicron source. However this dpoes not appear to possible at the moment. 2013-04-14 19:54:01 +02:00
Stephan Raue
1db6430a0c linux: add network related upstream patches, backported from 3.8.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-14 17:16:01 +02:00
Stefan Saraev
5bd4e7e1bb dvb-firmware: update to dvb-firmware-0.0.33 2013-04-14 16:55:06 +02:00
Stephan Raue
10e3f72ede linux: add upstream patches, backported from 3.8.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-14 16:54:10 +02:00
Stephan Raue
6efdba41f7 alsa-lib: update to alsa-lib-1.0.27
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-13 18:28:46 +02:00
Stephan Raue
449394cfd6 alsa-plugins: update to alsa-plugins-1.0.27
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-13 18:28:18 +02:00
Stephan Raue
ff6f06149f alsa-utils: update to alsa-utils-1.0.27
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-13 18:27:59 +02:00
Stephan Raue
919d71078b ffmpeg: move patches in own versioning dir
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-13 10:44:51 +02:00
Stephan Raue
2a2a8cda2c gcc: update to gcc-4.7.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-13 10:43:39 +02:00
Stephan Raue
f55a83afcb xbmc: rename patches, cleanup patch order
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-11 15:01:08 +02:00
Stephan Raue
3ce4418833 xbmc: update XVBA/VDPAU patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-11 15:00:44 +02:00
Stephan Raue
cf2f80badf xbmc: update to xbmc-12.1.4
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-11 15:00:37 +02:00
Stephan Raue
307cf64bfb xbmc: add PR2558
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-10 01:05:31 +02:00
Stephan Raue
0e5e0a9e04 xbmc: add PR2581
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-10 01:04:47 +02:00
Stephan Raue
83688801c7 config/version: set version back to 'devel'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-09 21:52:10 +02:00
Stephan Raue
fcaac62c5f xbmc: update to xbmc-12.1.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-09 19:50:26 +02:00
Stephan Raue
b96a7982ac xbmc: update to xbmc-12.1.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-09 19:47:12 +02:00
Stephan Raue
74881c1fd2 xbmc: readd Hi10p patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:56:55 +02:00
Stephan Raue
593b769300 systemd: update to systemd-200
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:21:52 +02:00
Stephan Raue
477ade7b16 inputproto: update to inputproto-2.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:20:39 +02:00
Stephan Raue
036bcad109 libXi: depends on package 'inputproto'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:20:21 +02:00
Stephan Raue
473b14446a xproto: update to xproto-7.0.24
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:20:02 +02:00
Stephan Raue
ce45d89896 libXi: update to libXi-1.7.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:19:46 +02:00
Stephan Raue
321b9dcd34 xf86-video-intel: update to xf86-video-intel-2.21.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:19:22 +02:00
Stephan Raue
950033c06e xbmc: move 12.1 patches to own dir
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:15:32 +02:00
Stephan Raue
a18834178b xbmc: add PR2539
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:14:34 +02:00
Stephan Raue
14c18a2de5 xbmc: add PR2491
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:14:14 +02:00
Stephan Raue
9553f6c11c xbmc: add PR2459
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-08 16:13:53 +02:00
Stephan Raue
22b62bed59 xbmc: add some upstream fixes
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-07 13:35:33 +02:00
Stephan Raue
d1ff72f766 xbmc: add PR2435
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-07 13:35:13 +02:00
Stephan Raue
32502a5cf6 xbmc: add PR2549
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-07 13:34:54 +02:00
Stephan Raue
6fa2333414 xbmc: add PR2537
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-07 13:34:35 +02:00
Stephan Raue
152ceec969 xbmc: add dvdplayer fixes, sync omxplayer with dvdplayer
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-07 13:34:07 +02:00
vpeter4
6fbb705947 acpica: no need to crosscompile patch 2013-04-07 13:33:17 +02:00
Dag Wieers
0e0a7de92f Add a newline at the end of the file, without it it seems to fail ? 2013-04-07 13:32:58 +02:00
Stephan Raue
f02dead4a7 acpica: update to acpica-unix2-20130328
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-07 13:32:33 +02:00
Stephan Raue
ed1cb4be13 bcm2835-bootloader: update to bcm2835-bootloader-baa3ecf
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 14:46:52 +02:00
Stephan Raue
29092e2ce5 bcm2835-driver: update to bcm2835-driver-baa3ecf
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 14:46:31 +02:00
Stephan Raue
114a9fb370 projects/RPi/patches/linux: update RPi patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 14:45:59 +02:00
Stephan Raue
9d21adb6f3 linux-3.6.11: cleanup not needed patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 14:43:18 +02:00
Stephan Raue
a36921fbe6 xbmc: add various upstream patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 12:05:36 +02:00
Stefan Saraev
c8f3e6708b dvb-firmware: update to dvb-firmware-0.0.32 2013-04-05 12:05:17 +02:00
Stefan Saraev
6256e166aa xbmc: add PR2505 2013-04-05 12:04:44 +02:00
Stephan Raue
a3c3fa5cce ppl: update to ppl-1.1pre7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 12:04:24 +02:00
Stephan Raue
573e184cf5 gmp: update to gmp-5.1.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 12:04:08 +02:00
vpeter4
fe325e7aed gettext: do not use emacs 2013-04-05 12:03:43 +02:00
Stephan Raue
b088522f57 systemd: update to systemd-199
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-04-05 12:02:36 +02:00
Stephan Raue
12f55ac1c6 Revert "binutils: update to binutils-2.23.2"
This reverts commit 2c4bfc4696.

This fixes compiling issues with package 'gmp' for 'arm'
2013-03-28 23:01:20 +01:00
Stefan Saraev
b70a270365 tvheadend: update to tvheadend-3.3.511 2013-03-28 22:59:53 +01:00
vpeter4
a1a9217f8e linux: support for TechniSat SkyStar S2 card with CX24120-13Z frontend this closes #2100, discussion http://openelec.tv/forum/83-dvb-s-s2-support/63061-technisat-skystar-s2-pci-not-supported#66807 patch from Jannis Achstetter http://patchwork.linuxtv.org/patch/10575/ originally made by Sergey Tyurin 2013-03-28 22:58:49 +01:00
Christian Hewitt
91aa5ed603 projects/ATV: add xorg defaults for Component/HDMI
ensures Xorg selects 1080p for HDMI and 720p for Component when available (Component 1080i can be selected within XBMC if the TV can handle it, not all can)
2013-03-28 22:58:11 +01:00
Stephan Raue
f298846adb Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-27 02:02:06 +01:00
Stephan Raue
767ec892e2 config/version: fix last commit
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-03-25 00:48:42 +01:00
Stephan Raue
07063e9a40 config/version: set version to 3.0.0 (OpenELEC-3.0 Final)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-03-25 00:45:54 +01:00
Stephan Raue
0121c1e36b Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-24 23:19:17 +01:00
Stephan Raue
7262ed18e4 CHANGELOG: update CHANGELOG
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-03-24 15:46:49 +01:00
Stephan Raue
3771c8eb3a Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-24 15:45:40 +01:00
Stephan Raue
bc003a1070 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-23 20:38:01 +01:00
Stephan Raue
5c23e3fabc Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-23 16:41:28 +01:00
Stephan Raue
15505f80ca Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-22 22:27:14 +01:00
Stephan Raue
b7852952ba Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-22 20:21:58 +01:00
Stephan Raue
1a97097a30 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-22 12:22:15 +01:00
Stephan Raue
58aaa9f266 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-22 08:00:52 +01:00
Stephan Raue
ffc8962357 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-22 07:12:12 +01:00
Stephan Raue
6069dd14c4 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-21 23:24:47 +01:00
Stephan Raue
7b4edccf81 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-21 22:13:13 +01:00
Stephan Raue
44bc649684 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-21 18:33:40 +01:00
Stephan Raue
c5dbf3d94f Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-21 05:31:54 +01:00
Stephan Raue
fa51bfcf57 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-21 05:10:59 +01:00
Stephan Raue
c546b5979a Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-20 03:37:12 +01:00
Stephan Raue
aa4fbd7ab1 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-20 01:29:41 +01:00
Stephan Raue
82eb3158ae Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-20 00:08:38 +01:00
Stephan Raue
06461b6e7e config/version: set version to 2.99.5 (OpenELEC-3.0 RC 5)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-03-12 20:48:22 +01:00
Stephan Raue
6d16dc9399 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-12 19:24:52 +01:00
Stephan Raue
efa8c1d95a Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-12 18:06:04 +01:00
Stephan Raue
a0c977ddfe Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-12 16:06:37 +01:00
Stephan Raue
945a7f338f Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-11 19:19:19 +01:00
Stephan Raue
0849a34c75 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-11 15:46:20 +01:00
Stephan Raue
77f8e89bfe Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-10 14:04:20 +01:00
Stephan Raue
8db2e6705e config/version: set version to 2.99.4 (OpenELEC-3.0 RC 4)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-03-01 22:22:44 +01:00
Stephan Raue
4448113a7b Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-01 20:07:44 +01:00
Stephan Raue
bb5c5509f1 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-01 18:49:46 +01:00
Stephan Raue
160ce21140 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-01 17:59:52 +01:00
Stephan Raue
792e217186 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-03-01 06:58:01 +01:00
Stephan Raue
4ed7faeba3 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-28 11:38:45 +01:00
Stephan Raue
59c41e76a1 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-27 04:23:55 +01:00
Stephan Raue
3f3e198c9b Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-24 23:38:54 +01:00
Stephan Raue
ccc1b39a15 config/version: set version to 2.99.3 (OpenELEC-3.0 RC 3)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-02-21 16:27:24 +01:00
Stephan Raue
ad1115e98e Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-21 16:26:13 +01:00
Stephan Raue
d9111f52a8 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-20 03:02:36 +01:00
Stephan Raue
9c410eaeef Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-19 01:07:39 +01:00
Stephan Raue
e646610990 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-18 17:56:23 +01:00
Stephan Raue
31001afd23 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-18 17:54:29 +01:00
Stephan Raue
80c6730a0f Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-17 21:42:16 +01:00
Stephan Raue
004a391f18 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-17 07:05:55 +01:00
Stephan Raue
6e9af9e243 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-17 03:26:18 +01:00
Stephan Raue
f7c8509269 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-16 20:49:47 +01:00
Stephan Raue
b768e322ed Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-16 18:28:44 +01:00
Stephan Raue
9029c645b0 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-15 16:16:21 +01:00
Stephan Raue
b14d6da9cb Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-15 15:56:02 +01:00
Stephan Raue
96f52fc97f Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-14 15:37:32 +01:00
Stephan Raue
d4b844a7ed Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-14 15:33:27 +01:00
Stephan Raue
60744990c3 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-13 18:15:10 +01:00
Stephan Raue
ef5d518eb9 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-13 11:43:18 +01:00
Stephan Raue
e61360c9d3 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-13 11:33:43 +01:00
Stephan Raue
2e24540df2 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-12 05:28:25 +01:00
Stephan Raue
caeb39c657 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-08 05:29:00 +01:00
Stephan Raue
a603e3bf18 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-08 01:41:15 +01:00
Stephan Raue
9cb02d21a7 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-02-06 15:23:52 +01:00
Stephan Raue
e5fa75cf69 config/version: set version to 2.99.2 (OpenELEC-3.0 RC 2)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-01-26 03:15:57 +01:00
Stephan Raue
28fe3c1b40 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-25 20:19:10 +01:00
Stephan Raue
7e1f181168 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-25 13:45:15 +01:00
Stephan Raue
708a34555a Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-24 18:12:44 +01:00
Stephan Raue
5e72c74419 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-24 15:10:09 +01:00
Stephan Raue
b3011069c5 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-22 17:49:18 +01:00
Stephan Raue
4f48a19924 config/version: set version to 2.99.1 (OpenELEC-3.0 RC 1)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2013-01-03 22:28:00 +01:00
Stephan Raue
86538ccb74 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-03 14:58:50 +01:00
Stephan Raue
cd452f8288 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2013-01-03 01:19:27 +01:00
Stephan Raue
7c1531f70d Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-30 23:27:21 +01:00
Stephan Raue
70064630d8 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-29 23:10:19 +01:00
Stephan Raue
1405b245ea Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-28 17:11:04 +01:00
Stephan Raue
cf7af733c3 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-21 18:43:07 +01:00
Stephan Raue
105ede1d39 config/version: set version to 2.95.6 (OpenELEC-3.0 Beta 6)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2012-12-21 18:38:12 +01:00
Stephan Raue
917724673c Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-20 16:27:58 +01:00
Stephan Raue
768b7660e0 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-20 11:24:28 +01:00
Stephan Raue
00221bea95 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-19 21:17:12 +01:00
Stephan Raue
2af93e2b15 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-19 02:50:14 +01:00
Stephan Raue
414abbc9e9 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-18 22:45:59 +01:00
Stephan Raue
4d2ca4a68b Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-17 13:57:16 +01:00
Stephan Raue
2bf67bb4b0 config/version: set version to 2.95.5 (OpenELEC-3.0 Beta 5)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2012-12-12 18:20:43 +01:00
Stephan Raue
7bccac2c21 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-12 10:31:54 +01:00
Stephan Raue
991521fbbf Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-11 20:33:16 +01:00
Stephan Raue
20c48e1fe8 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-11 14:24:59 +01:00
Stephan Raue
5a79bc7598 config/version: set version to 2.95.4 (OpenELEC-3.0 Beta 4)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2012-12-11 07:20:36 +01:00
Stephan Raue
ba633c0e65 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-08 07:58:53 +01:00
Stephan Raue
68391a604e Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-08 05:18:05 +01:00
Stephan Raue
b439e9450a Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-07 03:03:49 +01:00
Stephan Raue
e84de340b6 config/version: set version to 2.95.3 (OpenELEC-3.0 Beta 3)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2012-12-04 00:15:24 +01:00
Stephan Raue
bc365bd295 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-04 00:14:39 +01:00
Stephan Raue
21c2e30c78 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-03 22:43:37 +01:00
Stephan Raue
2d59aa423e Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-03 08:36:54 +01:00
Stephan Raue
1e1dad760a Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-03 00:39:22 +01:00
Stephan Raue
80bcd9ba72 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-02 01:24:23 +01:00
Stephan Raue
d0a3988215 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-02 00:55:46 +01:00
Stephan Raue
4db0e6a9e4 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-12-01 18:01:03 +01:00
Stephan Raue
3c1ef9bd37 config/version: set version to 2.95.2 (OpenELEC-3.0 Beta 2)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2012-11-29 14:18:04 +01:00
Stephan Raue
7f01de9350 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-11-29 06:12:01 +01:00
Stephan Raue
a9fd32bf62 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-11-28 17:53:37 +01:00
Stephan Raue
26e29e2ef1 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-11-28 06:27:23 +01:00
Stephan Raue
8e18629276 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-11-28 04:17:48 +01:00
Stephan Raue
63cc19754c Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-11-28 00:55:52 +01:00
Stephan Raue
be0fd9c615 Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0 2012-11-26 23:09:05 +01:00
Stephan Raue
ee042d786f config/version: set version to 2.95.1 (OpenELEC-3.0 Beta 1)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2012-11-25 21:16:18 +01:00
272 changed files with 108206 additions and 27898 deletions

View File

@@ -1,20 +1,5 @@
OpenELEC (Version 2.1)
OpenELEC (Version 3.0)
Changelog OpenELEC-2.0 to OpenELEC-2.1
for a detailed Changelog from OpenELEC-2.0 to OpenELEC-3.0 see:
https://github.com/OpenELEC/OpenELEC.tv/compare/2.0.0...3.0.0
Added packages:
- add package 'ppp'
- add package 'pptp'
Package updates:
- update linux to linux-3.5
- update dialog to dialog-1.1-20120215
- update connman to connman-1.4
Added functions:
- sshd can be enabled via OpenELEC Settings addon
- add PPTP support
Changed functions:
Removed functions:

View File

@@ -233,7 +233,7 @@ dashes="==========================="
show_config() {
dashes="==========================="
config_message="$config_message\n $dashes$dashes$dashes"
config_message="$config_message\n Configuration for $DISTRONAME"
config_message="$config_message\n Configuration for $DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "unofficial"))"
config_message="$config_message\n $dashes$dashes$dashes"
# Build options

View File

@@ -1,5 +1,5 @@
# VERSION: set full version, use "devel" for development version
OPENELEC_VERSION="devel"
OPENELEC_VERSION="3.0.3"
# OS_VERSION: OS Version
OS_VERSION="3.0"

View File

@@ -1,3 +1,6 @@
3.0.7
- update to TVHeadend 3.3.511
3.0.6
- update to TVHeadend 3.3.491
- disable avahi support

View File

@@ -19,8 +19,8 @@
################################################################################
PKG_NAME="tvheadend"
PKG_VERSION="3.3.491"
PKG_REV="6"
PKG_VERSION="3.3.511"
PKG_REV="7"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"

View File

@@ -1,48 +0,0 @@
From 30517cb122d0991f0ba51155c9afff6bdc2d8899 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Wed, 13 Mar 2013 21:30:55 +0200
Subject: [PATCH] cwc: syslog: move some log messages to debug
---
src/capmt.c | 4 ++--
src/cwc.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/capmt.c b/src/capmt.c
index ac507bd..9e12e86 100644
--- a/src/capmt.c
+++ b/src/capmt.c
@@ -547,7 +547,7 @@ handle_ca0(capmt_t* capmt) {
#endif
if(ct->ct_keystate != CT_RESOLVED)
- tvhlog(LOG_INFO, "capmt", "Obtained key for service \"%s\"",t->s_svcname);
+ tvhlog(LOG_DEBUG, "capmt", "Obtained key for service \"%s\"",t->s_svcname);
ct->ct_keystate = CT_RESOLVED;
}
@@ -851,7 +851,7 @@ capmt_table_input(struct th_descrambler *td, struct service *t,
cce->cce_ecmsize = len;
if(ct->ct_keystate != CT_RESOLVED)
- tvhlog(LOG_INFO, "capmt",
+ tvhlog(LOG_DEBUG, "capmt",
"Trying to obtain key for service \"%s\"",t->s_svcname);
buf[9] = pmtversion;
diff --git a/src/cwc.c b/src/cwc.c
index ebafd4f..904213f 100644
--- a/src/cwc.c
+++ b/src/cwc.c
@@ -873,7 +873,7 @@ forbid:
}
if(ct->cs_keystate != CS_RESOLVED)
- tvhlog(LOG_INFO, "cwc",
+ tvhlog(LOG_DEBUG, "cwc",
"Obtained key for service \"%s\" in %"PRId64" ms, from %s:%i",
t->s_svcname, delay, ct->cs_cwc->cwc_hostname,
ct->cs_cwc->cwc_port);
--
1.7.10.4

View File

@@ -1,94 +0,0 @@
From 07cdfdaf6af06ae08a779ccc9082a517757c6fd3 Mon Sep 17 00:00:00 2001
From: Adam Sutton <dev@adamsutton.me.uk>
Date: Tue, 12 Mar 2013 15:35:21 +0000
Subject: [PATCH] Fix #1660 - dvb: stop constant updating of dvb mux
configuration files
---
src/dvb/dvb_multiplex.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/src/dvb/dvb_multiplex.c b/src/dvb/dvb_multiplex.c
index ff61558..692ebf1 100644
--- a/src/dvb/dvb_multiplex.c
+++ b/src/dvb/dvb_multiplex.c
@@ -58,9 +58,6 @@
{ "OK", TDMI_FE_OK },
};
-static void tdmi_set_enable(th_dvb_mux_instance_t *tdmi, int enabled);
-
-
/**
*
*/
@@ -856,6 +853,9 @@ int dvb_mux_str2hier(const char *str)
if (!networkname || !*networkname)
return;
+ if (!strcmp(tdmi->tdmi_network ?: "", networkname))
+ return;
+
free(tdmi->tdmi_network);
tdmi->tdmi_network = strdup(networkname);
dvb_mux_save(tdmi);
@@ -879,8 +879,9 @@ int dvb_mux_str2hier(const char *str)
if (tdmi->tdmi_transport_stream_id != 0xFFFF || tsid == 0xFFFF)
return;
- tdmi->tdmi_transport_stream_id = tsid;
-
+ if (tdmi->tdmi_transport_stream_id == tsid)
+ return;
+
dvb_mux_save(tdmi);
m = htsmsg_create_map();
@@ -900,6 +901,9 @@ int dvb_mux_str2hier(const char *str)
if (force)
if (tdmi->tdmi_network_id != 0 || onid == 0)
return;
+
+ if (tdmi->tdmi_network_id == onid)
+ return;
tdmi->tdmi_network_id = onid;
@@ -915,13 +919,13 @@ int dvb_mux_str2hier(const char *str)
/**
*
*/
-static void
+static int
tdmi_set_enable(th_dvb_mux_instance_t *tdmi, int enabled)
{
th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
if(tdmi->tdmi_enabled == enabled)
- return;
+ return 0;
if(tdmi->tdmi_enabled) {
@@ -940,6 +944,7 @@ int dvb_mux_str2hier(const char *str)
mux_link_initial(tda, tdmi);
subscription_reschedule();
+ return 1;
}
/**
@@ -948,8 +953,8 @@ int dvb_mux_str2hier(const char *str)
void
dvb_mux_set_enable(th_dvb_mux_instance_t *tdmi, int enabled)
{
- tdmi_set_enable(tdmi, enabled);
- dvb_mux_save(tdmi);
+ if (tdmi_set_enable(tdmi, enabled))
+ dvb_mux_save(tdmi);
}
--
1.7.10

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="alsa-lib"
PKG_VERSION="1.0.26"
PKG_VERSION="1.0.27"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,87 +0,0 @@
From: Takashi Iwai <tiwai <at> suse.de>
Subject: [PATCH RFC 1/2] control: Simplify using snd_config_get_bool()
Newsgroups: gmane.linux.alsa.devel
Date: 2012-10-12 15:25:23 GMT (17 weeks, 8 hours and 26 minutes ago)
snd_config_get_bool() was improved to parse also ASCII strings now,
so we don't have to open-code the boolean parser in
src/control/setup.c any longer.
Signed-off-by: Takashi Iwai <tiwai <at> suse.de>
---
src/control/setup.c | 37 ++++++-------------------------------
1 file changed, 6 insertions(+), 31 deletions(-)
diff --git a/src/control/setup.c b/src/control/setup.c
index eecda45..bd3599d 100644
--- a/src/control/setup.c
+++ b/src/control/setup.c
@@ -400,7 +400,6 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
{
snd_config_t *conf;
snd_config_iterator_t i, next;
- char *tmp;
int iface = SND_CTL_ELEM_IFACE_MIXER;
const char *name = NULL;
long index = 0;
@@ -464,33 +463,17 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
continue;
}
if (strcmp(id, "lock") == 0) {
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
- SNDERR("field %s has an invalid type", id);
- goto _err;
- }
- err = snd_config_get_bool_ascii(tmp);
- if (err < 0) {
- SNDERR("field %s is not a boolean", id);
- free(tmp);
+ err = snd_config_get_bool(n);
+ if (err < 0)
goto _err;
- }
lock = err;
- free(tmp);
continue;
}
if (strcmp(id, "preserve") == 0) {
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
- SNDERR("field %s has an invalid type", id);
- goto _err;
- }
- err = snd_config_get_bool_ascii(tmp);
- if (err < 0) {
- SNDERR("field %s is not a boolean", id);
- free(tmp);
+ err = snd_config_get_bool(n);
+ if (err < 0)
goto _err;
- }
preserve = err;
- free(tmp);
continue;
}
if (strcmp(id, "value") == 0) {
@@ -502,18 +485,10 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
continue;
}
if (strcmp(id, "optional") == 0) {
- if ((err = snd_config_get_ascii(n, &tmp)) < 0) {
- SNDERR("field %s has an invalid type", id);
- goto _err;
- }
- err = snd_config_get_bool_ascii(tmp);
- if (err < 0) {
- SNDERR("field %s is not a boolean", id);
- free(tmp);
+ err = snd_config_get_bool(n);
+ if (err < 0)
goto _err;
- }
optional = err;
- free(tmp);
continue;
}
SNDERR("Unknown field %s", id);
--
1.7.12.2

View File

@@ -1,123 +0,0 @@
From 91e42790dd0a9489a94e3784d220d76ad2d98b36 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Sat, 16 Feb 2013 18:29:59 +0200
Subject: [PATCH] Add workaround for conflicting IEC958 controls for HD-audio
When both an SPDIF and an HDMI output are present on HD-audio, both
try to access IEC958 controls with index=0 although one of them must
be wrong. For avoiding this conflict, the recent kernel code (3.9 and
3.8 stable) moves the IEC958 controls of an SPDIF with index=16 once
when the conflict happens.
In this patch, the corresponding support is added in alsa-lib side.
The new "skip_rest" boolean flag is added to the hooked element
definition which indicates that the rest of element array will be
ignored once when this element is present and evaluated. With this
new flag, the HD-audio config takes device=1 primarily, then take
device=0 as fallback.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
src/conf/cards/HDA-Intel.conf | 16 ++++++++++++++++
src/control/setup.c | 19 ++++++++++++++++---
2 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf
index d4f2667..3957c12 100644
--- a/src/conf/cards/HDA-Intel.conf
+++ b/src/conf/cards/HDA-Intel.conf
@@ -113,6 +113,22 @@ HDA-Intel.pcm.iec958.0 {
hook_args [
{
name "IEC958 Playback Default"
+ index 16
+ optional true
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ index 16
+ optional true
+ value true
+ # if this element is present, skip the rest
+ skip_rest true
+ }
+ {
+ name "IEC958 Playback Default"
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
diff --git a/src/control/setup.c b/src/control/setup.c
index eecda45..72facb0 100644
--- a/src/control/setup.c
+++ b/src/control/setup.c
@@ -396,7 +396,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf,
return 0;
}
-static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data)
+static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data, int *quit)
{
snd_config_t *conf;
snd_config_iterator_t i, next;
@@ -409,6 +409,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
int lock = 0;
int preserve = 0;
int optional = 0;
+ int skip_rest = 0;
snd_config_t *value = NULL, *mask = NULL;
snd_sctl_elem_t *elem = NULL;
int err;
@@ -516,6 +517,13 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
free(tmp);
continue;
}
+ if (strcmp(id, "skip_rest") == 0) {
+ err = snd_config_get_bool(n);
+ if (err < 0)
+ goto _err;
+ skip_rest = err;
+ continue;
+ }
SNDERR("Unknown field %s", id);
return -EINVAL;
}
@@ -564,6 +572,9 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
if (! optional)
SNDERR("Cannot obtain info for CTL elem (%s,'%s',%li,%li,%li): %s", snd_ctl_elem_iface_name(iface), name, index, device, subdevice, snd_strerror(err));
goto _err;
+ } else {
+ if (skip_rest)
+ *quit = 1;
}
snd_ctl_elem_value_set_id(elem->val, elem->id);
snd_ctl_elem_value_set_id(elem->old, elem->id);
@@ -619,7 +630,7 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd
{
snd_sctl_t *h;
snd_config_iterator_t i, next;
- int err;
+ int err, quit = 0;
assert(sctl);
assert(handle);
@@ -639,11 +650,13 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd
INIT_LIST_HEAD(&h->elems);
snd_config_for_each(i, next, conf) {
snd_config_t *n = snd_config_iterator_entry(i);
- err = add_elem(h, n, private_data);
+ err = add_elem(h, n, private_data, &quit);
if (err < 0) {
free_elems(h);
return err;
}
+ if (quit)
+ break;
}
*sctl = h;
return 0;
--
1.7.10

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="alsa-plugins"
PKG_VERSION="1.0.26"
PKG_VERSION="1.0.27"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="alsa-utils"
PKG_VERSION="1.0.26"
PKG_VERSION="1.0.27"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,12 +0,0 @@
diff -Naur alsa-utils-1.0.26-old/configure.in alsa-utils-1.0.26-new/configure.in
--- alsa-utils-1.0.26-old/configure.in 2012-09-06 01:45:44.000000000 -0700
+++ alsa-utils-1.0.26-new/configure.in 2012-12-29 08:01:59.000000000 -0800
@@ -290,7 +290,7 @@
TESTSOUND="$dir/test.wav")
AC_SUBST(TESTSOUND)
-AM_CONFIG_HEADER(include/aconfig.h)
+AC_CONFIG_HEADERS(include/aconfig.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="mysql"
PKG_VERSION="5.1.67"
PKG_VERSION="5.1.68"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"

View File

@@ -1,12 +0,0 @@
diff -Naur mysql-5.1.67-old/configure.in mysql-5.1.67-new/configure.in
--- mysql-5.1.67-old/configure.in 2012-12-13 02:05:51.000000000 -0800
+++ mysql-5.1.67-new/configure.in 2012-12-30 08:39:00.000000000 -0800
@@ -22,7 +22,7 @@
AM_INIT_AUTOMAKE([1.9 tar-ustar])
AC_PROG_LIBTOOL
-AM_CONFIG_HEADER([include/config.h])
+AC_CONFIG_HEADERS([include/config.h])
# Request support for automake silent-rules if available.
# Default to verbose output. One can use the configure-time

View File

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

View File

@@ -30,6 +30,9 @@ cd $PKG_BUILD
make PREFIX=/usr \
CC="$TARGET_CC" \
AR="$TARGET_AR" \
HOST=_LINUX \
HARDWARE_NAME=$TARGET_ARCH \
BITS=$ACPICA_BITS \
YACC=$ROOT/$TOOLCHAIN/bin/bison \
CWARNINGFLAGS="-O2 $TARGET_CFLAGS"

View File

@@ -19,12 +19,13 @@
################################################################################
PKG_NAME="acpica-unix2"
PKG_VERSION="20130117"
PKG_VERSION="20130328"
PKG_REV="1"
PKG_ARCH="i386 x86_64"
PKG_LICENSE="GPL"
PKG_SITE="http://www.acpica.org/"
PKG_URL="https://www.acpica.org/download/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_URL="https://acpica.org/sites/acpica/files/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain flex bison"
PKG_PRIORITY="optional"

View File

@@ -1,12 +0,0 @@
diff -uNr acpica-unix2-20130117-orig/generate/unix/Makefile.common acpica-unix2-20130117/generate/unix/Makefile.common
--- acpica-unix2-20130117-orig/generate/unix/Makefile.common 2013-01-17 20:47:44.000000000 +0100
+++ acpica-unix2-20130117/generate/unix/Makefile.common 2013-02-07 15:13:59.000000000 +0100
@@ -6,7 +6,7 @@
# Get the OS machine architecture. Anything with a "64" in the returned
# string will be treated as a 64-bit OS. Otherwise, the default is 32-bit.
#
-HARDWARE_NAME := $(shell uname -m)
+HARDWARE_NAME=$(BITS)
BITS=0
#

View File

@@ -23,8 +23,15 @@
. config/options $1
cd $PKG_BUILD
make PREFIX=/usr \
CC="$TARGET_CC" \
AR="$TARGET_AR" \
make CC="$TARGET_CC" \
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
CPPFLAGS="$TARGET_CPPFLAGS" \
-C acpidump acpidump
make CC="$TARGET_CC" \
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
-C acpixtract acpixtract
make CC="$TARGET_CC" \
CFLAGS="$TARGET_CFLAGS -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Os -s -D_LINUX -DDEFINE_ALTERNATE_TYPES -I../include" \
-C madt madt

View File

@@ -19,12 +19,12 @@
################################################################################
PKG_NAME="pmtools"
PKG_VERSION="20071116"
PKG_VERSION="20110323"
PKG_REV="1"
PKG_ARCH="i386 x86_64"
PKG_LICENSE="GPL"
PKG_SITE="https://lesswatts.org/projects/acpi/utilities.php"
PKG_URL="https://lesswatts.org/patches/linux_acpi/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_URL="http://mirror.linux.org.au/linux/kernel/people/lenb/acpi/utils/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"

View File

@@ -0,0 +1,25 @@
diff -Naur pmtools/madt/Makefile pmtools.patch/madt/Makefile
--- pmtools/madt/Makefile 2005-11-11 18:07:04.000000000 +0100
+++ pmtools.patch/madt/Makefile 2007-11-16 19:48:56.000000000 +0100
@@ -1,6 +1,16 @@
+PROG= madt
+SRCS= madt.c
+
+all: madt
+$(PROG) : $(SRCS)
+ $(CC) $(CFLAGS) $(SRCS) -o $(PROG)
+
test: madt
- ./madt < APIC
-madt: madt.c acpi.h tables.c
- cc -o madt madt.c
-clean:
- rm madt
+ ./madt < example.APIC.dat
+ ./madt < example.APIC.bad.dat
+
+CLEANFILES= $(PROG)
+
+clean :
+ rm -f $(CLEANFILES) $(patsubst %.c,%.o, $(SRCS)) *~
+

25
packages/debug/pmtools/unpack Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mv $BUILD/$PKG_NAME $BUILD/$PKG_NAME-$PKG_VERSION

View File

@@ -22,10 +22,10 @@
. config/options $1
# wireless_tools fails to build on some systems with LTO enabled
strip_lto
cd $PKG_BUILD
make PREFIX=/usr \
CC="$TARGET_CC" \
AR="$TARGET_AR" \
CFLAGS="$TARGET_CFLAGS" \
CPPFLAGS="$TARGET_CPPFLAGS" \
make PREFIX=/usr CC="$CC" AR="$AR" \
CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS"

View File

@@ -19,12 +19,12 @@
################################################################################
PKG_NAME="boost"
PKG_VERSION="1_52_0"
PKG_VERSION="1_53_0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.boost.org/"
PKG_URL="$SOURCEFORGE_SRC/boost/boost/1.52.0/${PKG_NAME}_${PKG_VERSION}.tar.bz2"
PKG_URL="$SOURCEFORGE_SRC/boost/boost/1.53.0/${PKG_NAME}_${PKG_VERSION}.tar.bz2"
PKG_DEPENDS="zlib bzip2"
PKG_BUILD_DEPENDS="toolchain boost-jam Python-host zlib bzip2"
PKG_PRIORITY="optional"

View File

@@ -36,7 +36,6 @@ mkdir -p .objdir-target && cd .objdir-target
--localstatedir=/var \
--disable-static \
--enable-shared \
--disable-mpbsd \
--disable-cxx \
make

View File

@@ -19,12 +19,12 @@
################################################################################
PKG_NAME="gmp"
PKG_VERSION="5.0.5"
PKG_VERSION="5.1.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://gmplib.org/"
PKG_URL="http://ftp.sunet.se/pub/gnu/gmp/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_URL="ftp://ftp.gmplib.org/pub/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"

View File

@@ -1,36 +0,0 @@
diff -Naur gmp-5.0.5/configure.in gmp-5.0.5.patch/configure.in
--- gmp-5.0.5/configure.in 2012-05-06 13:19:49.000000000 +0200
+++ gmp-5.0.5.patch/configure.in 2013-01-12 02:25:31.897257189 +0100
@@ -65,8 +65,8 @@
dnl Note that there's a copy of these options in the top-level Makefile.am,
dnl so update there too if changing anything.
dnl
-AM_INIT_AUTOMAKE([1.8 gnu no-dependencies $(top_builddir)/ansi2knr])
-AM_CONFIG_HEADER(config.h:config.in)
+AM_INIT_AUTOMAKE([1.8 gnu no-dependencies])
+AC_CONFIG_HEADERS(config.h:config.in)
AM_MAINTAINER_MODE
@@ -2228,9 +2228,6 @@
echo " MPN_PATH=\"$path\""
-# Automake ansi2knr support.
-AM_C_PROTOTYPES
-
CL_AS_NOEXECSTACK
GMP_PROG_AR
diff -Naur gmp-5.0.5/Makefile.am gmp-5.0.5.patch/Makefile.am
--- gmp-5.0.5/Makefile.am 2012-05-06 13:19:49.000000000 +0200
+++ gmp-5.0.5.patch/Makefile.am 2013-01-12 02:25:09.603364249 +0100
@@ -25,7 +25,7 @@
# Makefiles in subdirectories, but here we must omit it so automake gives
# the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr".
#
-AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies ansi2knr
+AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies
# Libtool -version-info for libgmp.la and libmp.la. See "Versioning" in the

View File

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

View File

@@ -23,6 +23,8 @@
. config/options $1
cd $PKG_BUILD
chmod +x ./configure ./preload/configure ./libcharset/configure
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \

View File

@@ -19,12 +19,13 @@
################################################################################
PKG_NAME="libiconv"
PKG_VERSION="1.14"
PKG_VERSION="20130504"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.gnu.org/software/libiconv/"
PKG_URL="http://ftp.gnu.org/pub/gnu/libiconv/$PKG_NAME-$PKG_VERSION.tar.gz"
# PKG_URL="http://ftp.gnu.org/pub/gnu/libiconv/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"

File diff suppressed because it is too large Load Diff

View File

@@ -22,11 +22,7 @@
#
# runlevels: openelec
progress "set vll dir and run vcfiled service"
progress "run vcfiled service"
/usr/sbin/vcfiled
mkdir -p /storage/.config/vlls
# seems to still not work
# /usr/bin/vcgencmd set_vll_dir /storage/.config/vlls

View File

@@ -44,5 +44,3 @@ mkdir -p $INSTALL/usr/bin
mkdir -p $INSTALL/opt/vc
ln -sf /usr/lib $INSTALL/opt/vc/lib
mkdir -p $INSTALL/sd
ln -sf /storage/.config/vlls $INSTALL/sd/vlls

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="bcm2835-driver"
PKG_VERSION="2bcb2bc"
PKG_VERSION="f53948f"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="nonfree"

View File

@@ -39,4 +39,19 @@ mkdir -p .build-host && cd .build-host
--enable-shared \
make
make install
mkdir -p $ROOT/$TOOLCHAIN/lib
cp -PR .libs/*.so* $ROOT/$TOOLCHAIN/lib
ln -sf libpng15.so $ROOT/$TOOLCHAIN/lib/libpng.so
mkdir -p $ROOT/$TOOLCHAIN/lib/pkgconfig
cp -PR libpng.pc $ROOT/$TOOLCHAIN/lib/pkgconfig/libpng15.pc
ln -sf libpng15.pc $ROOT/$TOOLCHAIN/lib/pkgconfig/libpng.pc
mkdir -p $ROOT/$TOOLCHAIN/include/libpng15
cp -PR ../png.h $ROOT/$TOOLCHAIN/include/libpng15
cp -PR ../pngconf.h $ROOT/$TOOLCHAIN/include/libpng15
cp -PR pnglibconf.h $ROOT/$TOOLCHAIN/include/libpng15
ln -sf libpng15/png.h $ROOT/$TOOLCHAIN/include/png.h
ln -sf libpng15/pngconf.h $ROOT/$TOOLCHAIN/include/pngconf.h
ln -sf libpng15/pnglibconf.h $ROOT/$TOOLCHAIN/include/pnglibconf.h

View File

@@ -42,4 +42,7 @@ $MAKEINSTALL
$SED "s:\([\"'= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" \
$SYSROOT_PREFIX/usr/bin/libpng*-config
$SED "s:libs=\"-lpng15\":libs=\"-lpng15 -lz\":g" \
$SYSROOT_PREFIX/usr/bin/libpng*-config
cp -P $SYSROOT_PREFIX/usr/bin/libpng*-config $ROOT/$TOOLCHAIN/bin

View File

@@ -23,9 +23,9 @@
################################################################################
# mount all needed special filesystems
/bin/busybox mount -t devtmpfs none /dev
/bin/busybox mount -t proc none /proc
/bin/busybox mount -t sysfs none /sys
/bin/busybox mount -t devtmpfs devtmpfs /dev
/bin/busybox mount -t proc proc /proc
/bin/busybox mount -t sysfs sysfs /sys
# set needed variables
MODULE_DIR=/lib/modules
@@ -88,9 +88,6 @@
progress)
PROGRESS=yes
;;
fastboot)
FASTBOOT=yes
;;
nosplash)
SPLASH=no
;;
@@ -106,10 +103,6 @@
esac
done
if test "$FASTBOOT" = "yes"; then
IONICE="/bin/busybox ionice -c 1 -n 0"
fi
if test "$DEBUG" = "yes"; then
exec 3>&1
else
@@ -164,7 +157,7 @@
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
ERR_ENV=1
$IONICE /bin/busybox mount $MOUNT_OPTIONS $1 $2 >&$SILENT_OUT 2>&1
/bin/busybox mount $MOUNT_OPTIONS $1 $2 >&$SILENT_OUT 2>&1
[ "$?" -eq "0" ] && ERR_ENV=0 && break
/bin/busybox usleep 1000000
@@ -253,7 +246,7 @@
NBD_PORT="${1#*:}"
NBD_DEV="/dev/nbd$NBD_DEVS"
$IONICE /bin/busybox nbd-client $NBD_SERVER $NBD_PORT $NBD_DEV >&$SILENT_OUT 2>&1 || \
/bin/busybox nbd-client $NBD_SERVER $NBD_PORT $NBD_DEV >&$SILENT_OUT 2>&1 || \
error "nbd-client" "Could not connect to NBD server $1"
mount_common "$NBD_DEV" "$2" "$3" "$4"
@@ -307,13 +300,13 @@
update() {
if [ -f "$UPDATE_DIR/$2" -a -f "$3" ]; then
echo "updating $1..."
$IONICE /bin/busybox mount -o remount,rw /flash
$IONICE /bin/busybox mv $UPDATE_DIR/$2 $3
/bin/busybox mount -o remount,rw /flash
/bin/busybox mv $UPDATE_DIR/$2 $3
# loopback file needs writable /flash all the time
if [ "${disk%%=*}" != "FILE" ]; then
$IONICE /bin/busybox mount -o remount,ro /flash
/bin/busybox mount -o remount,ro /flash
fi
$IONICE /bin/busybox sync
/bin/busybox sync
fi
}
@@ -327,8 +320,8 @@
if [ -f $SYSTEM_ROOT/usr/share/bootloader/update.sh ]; then
echo "updating Bootloader..."
$IONICE /bin/busybox sh $SYSTEM_ROOT/usr/share/bootloader/update.sh
$IONICE /bin/busybox sync
/bin/busybox sh $SYSTEM_ROOT/usr/share/bootloader/update.sh
/bin/busybox sync
fi
umount /sysroot
@@ -408,7 +401,7 @@
if [ "${disk%%=*}" = "FILE" ]; then
target="${disk%%,*}"
storage_loop_file="/flash/${target#*=}"
$IONICE /bin/busybox mount -o remount,rw /flash
/bin/busybox mount -o remount,rw /flash
if [ ! -f "$storage_loop_file" ]; then
echo "Creating storage loopback file: $storage_loop_file..."

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="dvb-firmware"
PKG_VERSION="0.0.31"
PKG_VERSION="0.0.35"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="wlan-firmware"
PKG_VERSION="0.0.10"
PKG_VERSION="0.0.12"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -29,9 +29,6 @@ else
KERNEL_IMAGE="bzImage"
fi
# dont build parallel
MAKEFLAGS=-j1
cd $(kernel_path)
rm -rf modules
mkdir -p modules

View File

@@ -1,74 +0,0 @@
diff -Naur linux-3.6.11/drivers/media/rc/ene_ir.c linux-3.6.11.patch/drivers/media/rc/ene_ir.c
--- linux-3.6.11/drivers/media/rc/ene_ir.c 2012-12-17 18:27:45.000000000 +0100
+++ linux-3.6.11.patch/drivers/media/rc/ene_ir.c 2012-12-28 22:52:22.571974437 +0100
@@ -1000,7 +1000,7 @@
dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
rdev = rc_allocate_device();
if (!dev || !rdev)
- goto error1;
+ goto failure;
/* validate resources */
error = -ENODEV;
@@ -1011,10 +1011,10 @@
if (!pnp_port_valid(pnp_dev, 0) ||
pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE)
- goto error;
+ goto failure;
if (!pnp_irq_valid(pnp_dev, 0))
- goto error;
+ goto failure;
spin_lock_init(&dev->hw_lock);
@@ -1030,7 +1030,7 @@
/* detect hardware version and features */
error = ene_hw_detect(dev);
if (error)
- goto error;
+ goto failure;
if (!dev->hw_learning_and_tx_capable && txsim) {
dev->hw_learning_and_tx_capable = true;
@@ -1075,30 +1075,27 @@
/* claim the resources */
error = -EBUSY;
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
- dev->hw_io = -1;
- dev->irq = -1;
- goto error;
+ goto failure;
}
dev->irq = pnp_irq(pnp_dev, 0);
if (request_irq(dev->irq, ene_isr,
IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
- dev->irq = -1;
- goto error;
+ goto failure2;
}
error = rc_register_device(rdev);
if (error < 0)
- goto error;
+ goto failure3;
pr_notice("driver has been successfully loaded\n");
return 0;
-error:
- if (dev && dev->irq >= 0)
- free_irq(dev->irq, dev);
- if (dev && dev->hw_io >= 0)
- release_region(dev->hw_io, ENE_IO_SIZE);
-error1:
+
+failure3:
+ free_irq(dev->irq, dev);
+failure2:
+ release_region(dev->hw_io, ENE_IO_SIZE);
+failure:
rc_free_device(rdev);
kfree(dev);
return error;

View File

@@ -70,141 +70,7 @@ diff -Naur linux-3.6.11/drivers/media/rc/ati_remote.c linux-3.6.11.patch/drivers
return err;
}
diff -Naur linux-3.6.11/drivers/media/rc/ene_ir.c linux-3.6.11.patch/drivers/media/rc/ene_ir.c
--- linux-3.6.11/drivers/media/rc/ene_ir.c 2012-12-28 22:53:15.840572260 +0100
+++ linux-3.6.11.patch/drivers/media/rc/ene_ir.c 2012-12-28 22:53:29.114472156 +0100
@@ -1000,7 +1000,7 @@
dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
rdev = rc_allocate_device();
if (!dev || !rdev)
- goto failure;
+ goto exit_free_dev_rdev;
/* validate resources */
error = -ENODEV;
@@ -1011,10 +1011,10 @@
if (!pnp_port_valid(pnp_dev, 0) ||
pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE)
- goto failure;
+ goto exit_free_dev_rdev;
if (!pnp_irq_valid(pnp_dev, 0))
- goto failure;
+ goto exit_free_dev_rdev;
spin_lock_init(&dev->hw_lock);
@@ -1030,7 +1030,7 @@
/* detect hardware version and features */
error = ene_hw_detect(dev);
if (error)
- goto failure;
+ goto exit_free_dev_rdev;
if (!dev->hw_learning_and_tx_capable && txsim) {
dev->hw_learning_and_tx_capable = true;
@@ -1075,27 +1075,27 @@
/* claim the resources */
error = -EBUSY;
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
- goto failure;
+ goto exit_free_dev_rdev;
}
dev->irq = pnp_irq(pnp_dev, 0);
if (request_irq(dev->irq, ene_isr,
IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
- goto failure2;
+ goto exit_release_hw_io;
}
error = rc_register_device(rdev);
if (error < 0)
- goto failure3;
+ goto exit_free_irq;
pr_notice("driver has been successfully loaded\n");
return 0;
-failure3:
+exit_free_irq:
free_irq(dev->irq, dev);
-failure2:
+exit_release_hw_io:
release_region(dev->hw_io, ENE_IO_SIZE);
-failure:
+exit_free_dev_rdev:
rc_free_device(rdev);
kfree(dev);
return error;
diff -Naur linux-3.6.11/drivers/media/rc/fintek-cir.c linux-3.6.11.patch/drivers/media/rc/fintek-cir.c
--- linux-3.6.11/drivers/media/rc/fintek-cir.c 2012-12-28 22:53:15.839572268 +0100
+++ linux-3.6.11.patch/drivers/media/rc/fintek-cir.c 2012-12-28 22:53:29.115472147 +0100
@@ -495,18 +495,18 @@
/* input device for IR remote (and tx) */
rdev = rc_allocate_device();
if (!rdev)
- goto failure;
+ goto exit_free_dev_rdev;
ret = -ENODEV;
/* validate pnp resources */
if (!pnp_port_valid(pdev, 0)) {
dev_err(&pdev->dev, "IR PNP Port not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
if (!pnp_irq_valid(pdev, 0)) {
dev_err(&pdev->dev, "IR PNP IRQ not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
fintek->cir_addr = pnp_port_start(pdev, 0);
@@ -523,7 +523,7 @@
ret = fintek_hw_detect(fintek);
if (ret)
- goto failure;
+ goto exit_free_dev_rdev;
/* Initialize CIR & CIR Wake Logical Devices */
fintek_config_mode_enable(fintek);
@@ -556,15 +556,15 @@
/* now claim resources */
if (!request_region(fintek->cir_addr,
fintek->cir_port_len, FINTEK_DRIVER_NAME))
- goto failure;
+ goto exit_free_dev_rdev;
if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
FINTEK_DRIVER_NAME, (void *)fintek))
- goto failure2;
+ goto exit_free_cir_addr;
ret = rc_register_device(rdev);
if (ret)
- goto failure3;
+ goto exit_free_irq;
device_init_wakeup(&pdev->dev, true);
fintek->rdev = rdev;
@@ -574,11 +574,11 @@
return 0;
-failure3:
+exit_free_irq:
free_irq(fintek->cir_irq, fintek);
-failure2:
+exit_free_cir_addr:
release_region(fintek->cir_addr, fintek->cir_port_len);
-failure:
+exit_free_dev_rdev:
rc_free_device(rdev);
kfree(fintek);
diff -Naur linux-3.6.11/drivers/media/rc/gpio-ir-recv.c linux-3.6.11.patch/drivers/media/rc/gpio-ir-recv.c
--- linux-3.6.11/drivers/media/rc/gpio-ir-recv.c 2012-12-28 22:53:15.839572268 +0100
+++ linux-3.6.11.patch/drivers/media/rc/gpio-ir-recv.c 2012-12-28 22:53:29.115472147 +0100
@@ -263,154 +129,4 @@ diff -Naur linux-3.6.11/drivers/media/rc/gpio-ir-recv.c linux-3.6.11.patch/drive
return rc;
}
diff -Naur linux-3.6.11/drivers/media/rc/ite-cir.c linux-3.6.11.patch/drivers/media/rc/ite-cir.c
--- linux-3.6.11/drivers/media/rc/ite-cir.c 2012-12-28 22:53:15.840572260 +0100
+++ linux-3.6.11.patch/drivers/media/rc/ite-cir.c 2012-12-28 22:58:06.139364653 +0100
@@ -1472,7 +1472,7 @@
/* input device for IR remote (and tx) */
rdev = rc_allocate_device();
if (!rdev)
- goto failure;
+ goto exit_free_dev_rdev;
itdev->rdev = rdev;
ret = -ENODEV;
@@ -1498,12 +1498,12 @@
if (!pnp_port_valid(pdev, io_rsrc_no) ||
pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
dev_err(&pdev->dev, "IR PNP Port not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
if (!pnp_irq_valid(pdev, 0)) {
dev_err(&pdev->dev, "PNP IRQ not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
/* store resource values */
@@ -1595,25 +1595,26 @@
/* now claim resources */
if (!request_region(itdev->cir_addr,
dev_desc->io_region_size, ITE_DRIVER_NAME))
- goto failure;
+ goto exit_free_dev_rdev;
+
if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
ITE_DRIVER_NAME, (void *)itdev))
- goto failure2;
+ goto exit_release_cir_addr;
ret = rc_register_device(rdev);
if (ret)
- goto failure3;
+ goto exit_free_irq;
ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
return 0;
-failure3:
+exit_free_irq:
free_irq(itdev->cir_irq, itdev);
-failure2:
+exit_release_cir_addr:
release_region(itdev->cir_addr, itdev->params.io_region_size);
-failure:
+exit_free_dev_rdev:
rc_free_device(rdev);
kfree(itdev);
diff -Naur linux-3.6.11/drivers/media/rc/nuvoton-cir.c linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c
--- linux-3.6.11/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:53:15.839572268 +0100
+++ linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:53:29.118472125 +0100
@@ -986,25 +986,25 @@
/* input device for IR remote (and tx) */
rdev = rc_allocate_device();
if (!rdev)
- goto failure;
+ goto exit_free_dev_rdev;
ret = -ENODEV;
/* validate pnp resources */
if (!pnp_port_valid(pdev, 0) ||
pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) {
dev_err(&pdev->dev, "IR PNP Port not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
if (!pnp_irq_valid(pdev, 0)) {
dev_err(&pdev->dev, "PNP IRQ not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
if (!pnp_port_valid(pdev, 1) ||
pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) {
dev_err(&pdev->dev, "Wake PNP Port not valid!\n");
- goto failure;
+ goto exit_free_dev_rdev;
}
nvt->cir_addr = pnp_port_start(pdev, 0);
@@ -1027,7 +1027,7 @@
ret = nvt_hw_detect(nvt);
if (ret)
- goto failure;
+ goto exit_free_dev_rdev;
/* Initialize CIR & CIR Wake Logical Devices */
nvt_efm_enable(nvt);
@@ -1070,23 +1070,23 @@
/* now claim resources */
if (!request_region(nvt->cir_addr,
CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
- goto failure;
+ goto exit_free_dev_rdev;
if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
NVT_DRIVER_NAME, (void *)nvt))
- goto failure2;
+ goto exit_release_cir_addr;
if (!request_region(nvt->cir_wake_addr,
CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
- goto failure3;
+ goto exit_free_irq;
if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED,
NVT_DRIVER_NAME, (void *)nvt))
- goto failure4;
+ goto exit_release_cir_wake_addr;
ret = rc_register_device(rdev);
if (ret)
- goto failure5;
+ goto exit_free_wake_irq;
device_init_wakeup(&pdev->dev, true);
nvt->rdev = rdev;
@@ -1098,15 +1098,15 @@
return 0;
-failure5:
+exit_free_wake_irq:
free_irq(nvt->cir_wake_irq, nvt);
-failure4:
+exit_release_cir_wake_addr:
release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH);
-failure3:
+exit_free_irq:
free_irq(nvt->cir_irq, nvt);
-failure2:
+exit_release_cir_addr:
release_region(nvt->cir_addr, CIR_IOREG_LENGTH);
-failure:
+exit_free_dev_rdev:
rc_free_device(rdev);
kfree(nvt);

View File

@@ -1,53 +0,0 @@
diff -Naur linux-3.6.11/drivers/media/rc/fintek-cir.c linux-3.6.11.patch/drivers/media/rc/fintek-cir.c
--- linux-3.6.11/drivers/media/rc/fintek-cir.c 2012-12-28 22:59:21.808868854 +0100
+++ linux-3.6.11.patch/drivers/media/rc/fintek-cir.c 2012-12-28 22:59:37.532767678 +0100
@@ -552,6 +552,8 @@
/* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */
rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD);
+ fintek->rdev = rdev;
+
ret = -EBUSY;
/* now claim resources */
if (!request_region(fintek->cir_addr,
@@ -567,7 +569,7 @@
goto exit_free_irq;
device_init_wakeup(&pdev->dev, true);
- fintek->rdev = rdev;
+
fit_pr(KERN_NOTICE, "driver has been successfully loaded\n");
if (debug)
cir_dump_regs(fintek);
diff -Naur linux-3.6.11/drivers/media/rc/ite-cir.c linux-3.6.11.patch/drivers/media/rc/ite-cir.c
--- linux-3.6.11/drivers/media/rc/ite-cir.c 2012-12-28 22:59:21.808868854 +0100
+++ linux-3.6.11.patch/drivers/media/rc/ite-cir.c 2012-12-28 22:59:37.533767672 +0100
@@ -1591,6 +1591,8 @@
rdev->driver_name = ITE_DRIVER_NAME;
rdev->map_name = RC_MAP_RC6_MCE;
+ itdev->rdev = rdev;
+
ret = -EBUSY;
/* now claim resources */
if (!request_region(itdev->cir_addr,
diff -Naur linux-3.6.11/drivers/media/rc/nuvoton-cir.c linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c
--- linux-3.6.11/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:59:21.807868860 +0100
+++ linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c 2012-12-28 22:59:37.533767672 +0100
@@ -1065,6 +1065,7 @@
/* tx bits */
rdev->tx_resolution = XYZ;
#endif
+ nvt->rdev = rdev;
ret = -EBUSY;
/* now claim resources */
@@ -1089,7 +1090,7 @@
goto exit_free_wake_irq;
device_init_wakeup(&pdev->dev, true);
- nvt->rdev = rdev;
+
nvt_pr(KERN_NOTICE, "driver has been successfully loaded\n");
if (debug) {
cir_dump_regs(nvt);

View File

@@ -1,174 +0,0 @@
diff -Naur linux-3.6.11/drivers/media/rc/ene_ir.c linux-3.6.11.patch/drivers/media/rc/ene_ir.c
--- linux-3.6.11/drivers/media/rc/ene_ir.c 2012-12-28 23:03:21.859277264 +0100
+++ linux-3.6.11.patch/drivers/media/rc/ene_ir.c 2012-12-28 23:03:33.651196525 +0100
@@ -1072,10 +1072,14 @@
device_set_wakeup_capable(&pnp_dev->dev, true);
device_set_wakeup_enable(&pnp_dev->dev, true);
+ error = rc_register_device(rdev);
+ if (error < 0)
+ goto exit_free_dev_rdev;
+
/* claim the resources */
error = -EBUSY;
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
- goto exit_free_dev_rdev;
+ goto exit_unregister_device;
}
dev->irq = pnp_irq(pnp_dev, 0);
@@ -1084,17 +1088,13 @@
goto exit_release_hw_io;
}
- error = rc_register_device(rdev);
- if (error < 0)
- goto exit_free_irq;
-
pr_notice("driver has been successfully loaded\n");
return 0;
-exit_free_irq:
- free_irq(dev->irq, dev);
exit_release_hw_io:
release_region(dev->hw_io, ENE_IO_SIZE);
+exit_unregister_device:
+ rc_unregister_device(rdev);
exit_free_dev_rdev:
rc_free_device(rdev);
kfree(dev);
diff -Naur linux-3.6.11/drivers/media/rc/ite-cir.c linux-3.6.11.patch/drivers/media/rc/ite-cir.c
--- linux-3.6.11/drivers/media/rc/ite-cir.c 2012-12-28 23:03:21.858277269 +0100
+++ linux-3.6.11.patch/drivers/media/rc/ite-cir.c 2012-12-28 23:06:45.772856073 +0100
@@ -1593,29 +1593,29 @@
itdev->rdev = rdev;
+ ret = rc_register_device(rdev);
+ if (ret)
+ goto exit_free_dev_rdev;
+
ret = -EBUSY;
/* now claim resources */
if (!request_region(itdev->cir_addr,
dev_desc->io_region_size, ITE_DRIVER_NAME))
- goto exit_free_dev_rdev;
+ goto exit_unregister_device;
if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
ITE_DRIVER_NAME, (void *)itdev))
goto exit_release_cir_addr;
- ret = rc_register_device(rdev);
- if (ret)
- goto exit_free_irq;
-
ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
return 0;
-exit_free_irq:
- free_irq(itdev->cir_irq, itdev);
exit_release_cir_addr:
release_region(itdev->cir_addr, itdev->params.io_region_size);
+exit_unregister_device:
+ rc_unregister_device(rdev);
exit_free_dev_rdev:
rc_free_device(rdev);
kfree(itdev);
diff -Naur linux-3.6.11/drivers/media/rc/nuvoton-cir.c linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c
--- linux-3.6.11/drivers/media/rc/nuvoton-cir.c 2012-12-28 23:03:21.858277269 +0100
+++ linux-3.6.11.patch/drivers/media/rc/nuvoton-cir.c 2012-12-28 23:03:33.653196511 +0100
@@ -1067,11 +1067,15 @@
#endif
nvt->rdev = rdev;
+ ret = rc_register_device(rdev);
+ if (ret)
+ goto exit_free_dev_rdev;
+
ret = -EBUSY;
/* now claim resources */
if (!request_region(nvt->cir_addr,
CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
- goto exit_free_dev_rdev;
+ goto exit_unregister_device;
if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
NVT_DRIVER_NAME, (void *)nvt))
@@ -1085,10 +1089,6 @@
NVT_DRIVER_NAME, (void *)nvt))
goto exit_release_cir_wake_addr;
- ret = rc_register_device(rdev);
- if (ret)
- goto exit_free_wake_irq;
-
device_init_wakeup(&pdev->dev, true);
nvt_pr(KERN_NOTICE, "driver has been successfully loaded\n");
@@ -1099,14 +1099,14 @@
return 0;
-exit_free_wake_irq:
- free_irq(nvt->cir_wake_irq, nvt);
exit_release_cir_wake_addr:
release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH);
exit_free_irq:
free_irq(nvt->cir_irq, nvt);
exit_release_cir_addr:
release_region(nvt->cir_addr, CIR_IOREG_LENGTH);
+exit_unregister_device:
+ rc_unregister_device(rdev);
exit_free_dev_rdev:
rc_free_device(rdev);
kfree(nvt);
diff -Naur linux-3.6.11/drivers/media/rc/winbond-cir.c linux-3.6.11.patch/drivers/media/rc/winbond-cir.c
--- linux-3.6.11/drivers/media/rc/winbond-cir.c 2012-12-28 23:03:21.858277269 +0100
+++ linux-3.6.11.patch/drivers/media/rc/winbond-cir.c 2012-12-28 23:03:33.653196511 +0100
@@ -1035,11 +1035,15 @@
data->dev->timeout = MS_TO_NS(100);
data->dev->allowed_protos = RC_TYPE_ALL;
+ err = rc_register_device(data->dev);
+ if (err)
+ goto exit_free_rc;
+
if (!request_region(data->wbase, WAKEUP_IOMEM_LEN, DRVNAME)) {
dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
data->wbase, data->wbase + WAKEUP_IOMEM_LEN - 1);
err = -EBUSY;
- goto exit_free_rc;
+ goto exit_unregister_device;
}
if (!request_region(data->ebase, EHFUNC_IOMEM_LEN, DRVNAME)) {
@@ -1064,24 +1068,20 @@
goto exit_release_sbase;
}
- err = rc_register_device(data->dev);
- if (err)
- goto exit_free_irq;
-
device_init_wakeup(&device->dev, 1);
wbcir_init_hw(data);
return 0;
-exit_free_irq:
- free_irq(data->irq, device);
exit_release_sbase:
release_region(data->sbase, SP_IOMEM_LEN);
exit_release_ebase:
release_region(data->ebase, EHFUNC_IOMEM_LEN);
exit_release_wbase:
release_region(data->wbase, WAKEUP_IOMEM_LEN);
+exit_unregister_device:
+ rc_unregister_device(data->dev);
exit_free_rc:
rc_free_device(data->dev);
exit_unregister_led:

View File

@@ -0,0 +1,13 @@
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 9fd8cc7..1b359ba 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -2066,6 +2066,8 @@ struct usb_device_id em28xx_id_table[] = {
.driver_info = EM2884_BOARD_TERRATEC_H5 },
{ USB_DEVICE(0x0ccd, 0x10ad), /* H5 Rev. 2 */
.driver_info = EM2884_BOARD_TERRATEC_H5 },
+ { USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */
+ .driver_info = EM2884_BOARD_TERRATEC_H5 },
{ USB_DEVICE(0x0ccd, 0x0084),
.driver_info = EM2860_BOARD_TERRATEC_AV350 },
{ USB_DEVICE(0x0ccd, 0x0096),

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,45 +0,0 @@
The array channel_allocations[] is an ordered list, add function to get
correct order by ca_index.
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
---
sound/pci/hda/patch_hdmi.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index d9439c5..6ac21d4 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -469,6 +469,17 @@ static void init_channel_allocations(void)
}
}
+static int get_channel_allocation_order(int ca)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) {
+ if (channel_allocations[i].ca_index == ca)
+ break;
+ }
+ return i;
+}
+
/*
* The transformation takes two steps:
*
@@ -541,9 +552,11 @@ static void hdmi_setup_channel_mapping(struct hda_codec *codec,
{
int i;
int err;
+ int order;
+ order = get_channel_allocation_order(ca);
if (hdmi_channel_mapping[ca][1] == 0) {
- for (i = 0; i < channel_allocations[ca].channels; i++)
+ for (i = 0; i < channel_allocations[order].channels; i++)
hdmi_channel_mapping[ca][i] = i | (i << 4);
for (; i < 8; i++)
hdmi_channel_mapping[ca][i] = 0xf | (i << 4);
--
1.7.9.5

View File

@@ -1,130 +0,0 @@
HDMI channel remapping apparently effects HBR packets on Intel's chips.
For compressed non-PCM audio, use "straight-through" channel mapping.
For uncompressed multi-channel pcm audio, use normal channel mapping.
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
---
sound/pci/hda/patch_hdmi.c | 36 ++++++++++++++++++++++++++++++++----
1 file changed, 32 insertions(+), 4 deletions(-)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 6ac21d4..a87f8b2 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -34,6 +34,7 @@
#include <linux/module.h>
#include <sound/core.h>
#include <sound/jack.h>
+#include <sound/asoundef.h>
#include "hda_codec.h"
#include "hda_local.h"
#include "hda_jack.h"
@@ -60,6 +61,7 @@ struct hdmi_spec_per_cvt {
u32 rates;
u64 formats;
unsigned int maxbps;
+ bool non_pcm;
};
struct hdmi_spec_per_pin {
@@ -548,13 +550,17 @@ static void hdmi_debug_channel_mapping(struct hda_codec *codec,
static void hdmi_setup_channel_mapping(struct hda_codec *codec,
hda_nid_t pin_nid,
+ hda_nid_t cvt_nid,
+ bool non_pcm,
int ca)
{
int i;
int err;
int order;
+ int non_pcm_mapping[8];
order = get_channel_allocation_order(ca);
+
if (hdmi_channel_mapping[ca][1] == 0) {
for (i = 0; i < channel_allocations[order].channels; i++)
hdmi_channel_mapping[ca][i] = i | (i << 4);
@@ -562,10 +568,17 @@ static void hdmi_setup_channel_mapping(struct hda_codec *codec,
hdmi_channel_mapping[ca][i] = 0xf | (i << 4);
}
+ if (non_pcm) {
+ for (i = 0; i < channel_allocations[order].channels; i++)
+ non_pcm_mapping[i] = i | (i << 4);
+ for (; i < 8; i++)
+ non_pcm_mapping[i] = 0xf | (i << 4);
+ }
+
for (i = 0; i < 8; i++) {
err = snd_hda_codec_write(codec, pin_nid, 0,
AC_VERB_SET_HDMI_CHAN_SLOT,
- hdmi_channel_mapping[ca][i]);
+ non_pcm ? non_pcm_mapping[i] : hdmi_channel_mapping[ca][i]);
if (err) {
snd_printdd(KERN_NOTICE
"HDMI: channel mapping failed\n");
@@ -699,15 +712,27 @@ static bool hdmi_infoframe_uptodate(struct hda_codec *codec, hda_nid_t pin_nid,
}
static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
- struct snd_pcm_substream *substream)
+ hda_nid_t cvt_nid, struct snd_pcm_substream *substream)
{
struct hdmi_spec *spec = codec->spec;
struct hdmi_spec_per_pin *per_pin = &spec->pins[pin_idx];
+ struct hdmi_spec_per_cvt *per_cvt;
+ struct hda_spdif_out *spdif;
hda_nid_t pin_nid = per_pin->pin_nid;
int channels = substream->runtime->channels;
struct hdmi_eld *eld;
int ca;
+ int cvt_idx;
union audio_infoframe ai;
+ bool non_pcm = false;
+
+ cvt_idx = cvt_nid_to_cvt_index(spec, cvt_nid);
+ per_cvt = &spec->cvts[cvt_idx];
+
+ mutex_lock(&codec->spdif_mutex);
+ spdif = snd_hda_spdif_out_of_nid(codec, cvt_nid);
+ non_pcm = !!(spdif->status & IEC958_AES0_NONAUDIO);
+ mutex_unlock(&codec->spdif_mutex);
eld = &spec->pins[pin_idx].sink_eld;
if (!eld->monitor_present)
@@ -750,12 +775,14 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
"pin=%d channels=%d\n",
pin_nid,
channels);
- hdmi_setup_channel_mapping(codec, pin_nid, ca);
+ hdmi_setup_channel_mapping(codec, pin_nid, cvt_nid, non_pcm, ca);
hdmi_stop_infoframe_trans(codec, pin_nid);
hdmi_fill_audio_infoframe(codec, pin_nid,
ai.bytes, sizeof(ai));
hdmi_start_infoframe_trans(codec, pin_nid);
}
+
+ per_cvt->non_pcm = non_pcm;
}
@@ -1077,6 +1104,7 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
per_cvt->cvt_nid = cvt_nid;
per_cvt->channels_min = 2;
+ per_cvt->non_pcm = false;
if (chans <= 16)
per_cvt->channels_max = chans;
@@ -1164,7 +1192,7 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
hdmi_set_channel_count(codec, cvt_nid, substream->runtime->channels);
- hdmi_setup_audio_infoframe(codec, pin_idx, substream);
+ hdmi_setup_audio_infoframe(codec, pin_idx, cvt_nid, substream);
pinctl = snd_hda_codec_read(codec, pin_nid, 0,
AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
--
1.7.9.5

View File

@@ -1,27 +0,0 @@
For HBR stream test, use straight channel mapping way.
when switched back to "speaker-test -c8", even the audio
infoframe is up-to-date, there should be correct channel mapping setup.
Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
---
sound/pci/hda/patch_hdmi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index a87f8b2..bcb0939 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -780,6 +780,11 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
hdmi_fill_audio_infoframe(codec, pin_nid,
ai.bytes, sizeof(ai));
hdmi_start_infoframe_trans(codec, pin_nid);
+ } else {
+ /* For non-pcm audio switch, setup new channel mapping
+ * accordingly */
+ if (per_cvt->non_pcm != non_pcm)
+ hdmi_setup_channel_mapping(codec, pin_nid, cvt_nid, non_pcm, ca);
}
per_cvt->non_pcm = non_pcm;
--
1.7.9.5

View File

@@ -1,29 +0,0 @@
From: Francois Romieu <romieu@fr.zoreil.com>
Date: Fri, 31 Aug 2012 21:06:17 +0000 (+0200)
Subject: r8169: add D-Link DGE-560T identifiers.
X-Git-Tag: v3.7-rc1~145^2~236
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fstable%2Flinux-stable.git;a=commitdiff_plain;h=2a35cfa591ac63f17815c2d9432b799e37527980;hp=da210f559019ba1cd4ebee2a28ad158bfb95bab2
r8169: add D-Link DGE-560T identifiers.
This one includes a 8168. Not to be confused with the sky2 driven
one whose PCI vendor and device ID are the same.
Reported-by: Neyuki Inaya <in@joblog.ru>
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index b47d5b3..0c96604 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -287,6 +287,8 @@ static DEFINE_PCI_DEVICE_TABLE(rtl8169_pci_tbl) = {
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), 0, 0, RTL_CFG_1 },
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
+ { PCI_VENDOR_ID_DLINK, 0x4300,
+ PCI_VENDOR_ID_DLINK, 0x4b10, 0, 0, RTL_CFG_1 },
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302), 0, 0, RTL_CFG_0 },
{ PCI_DEVICE(PCI_VENDOR_ID_AT, 0xc107), 0, 0, RTL_CFG_0 },

View File

@@ -0,0 +1,11 @@
--- a/drivers/media/usb/em28xx/em28xx-cards.c 2013-04-25 19:43:52.636526510 +0200
+++ b/drivers/media/usb/em28xx/em28xx-cards.c 2013-04-25 19:44:08.784390961 +0200
@@ -2073,6 +2073,8 @@
.driver_info = EM2884_BOARD_TERRATEC_H5 },
{ USB_DEVICE(0x0ccd, 0x10ad), /* H5 Rev. 2 */
.driver_info = EM2884_BOARD_TERRATEC_H5 },
+ { USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */
+ .driver_info = EM2884_BOARD_TERRATEC_H5 },
{ USB_DEVICE(0x0ccd, 0x0084),
.driver_info = EM2860_BOARD_TERRATEC_AV350 },
{ USB_DEVICE(0x0ccd, 0x0096),

View File

@@ -979,9 +979,9 @@ diff -Naur linux-3.7.2/drivers/net/ethernet/jme.c linux-3.7.2.patch/drivers/net/
.ndo_start_xmit = jme_start_xmit,
.ndo_set_mac_address = jme_set_macaddr,
- .ndo_set_rx_mode = jme_set_multi,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
+ .ndo_set_multicast_list = jme_set_multi,
+#endif
+ .ndo_set_rx_mode = jme_set_multi,
+
+
.ndo_change_mtu = jme_change_mtu,
.ndo_tx_timeout = jme_tx_timeout,
- .ndo_fix_features = jme_fix_features,

View File

@@ -0,0 +1,33 @@
From 083e2330c09b7a5f905020c10e9f52b5c1e17979 Mon Sep 17 00:00:00 2001
From: Mengdong Lin <mengdong.lin@intel.com>
Date: Thu, 28 Mar 2013 09:20:22 +0000
Subject: ALSA: hda - bug fix on return value when getting HDMI ELD info
commit 2ef5692efad330b67a234e2c49edad38538751e7 upstream.
In function snd_hdmi_get_eld(), the variable 'ret' should be initialized to 0.
Otherwise it will be returned uninitialized as non-zero after ELD info is got
successfully. Thus hdmi_present_sense() will always assume ELD info is invalid
by mistake, and /proc file system cannot show the proper ELD info.
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Acked-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
index 4c054f4..86f6468 100644
--- a/sound/pci/hda/hda_eld.c
+++ b/sound/pci/hda/hda_eld.c
@@ -322,7 +322,7 @@ int snd_hdmi_get_eld(struct hdmi_eld *eld,
struct hda_codec *codec, hda_nid_t nid)
{
int i;
- int ret;
+ int ret = 0;
int size;
unsigned char *buf;
--
cgit v0.9.1

View File

@@ -0,0 +1,40 @@
From 0187ab6184b36cc1f01424ef534648c198578dbe Mon Sep 17 00:00:00 2001
From: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
Date: Thu, 04 Apr 2013 06:40:38 +0000
Subject: ALSA: hda - Enabling Realtek ALC 671 codec
commit 1d87caa69c04008e09f5ff47b5e6acb6116febc7 upstream.
* Added the device ID to the modalias list and assinged ALC662 patches
for it
* Added 4 port support for the device ID 0671 in alc662_parse_auto_config
Signed-off-by: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 47fb18d..ee975a2 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6720,7 +6720,8 @@ static int alc662_parse_auto_config(struct hda_codec *codec)
const hda_nid_t *ssids;
if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 ||
- codec->vendor_id == 0x10ec0665 || codec->vendor_id == 0x10ec0670)
+ codec->vendor_id == 0x10ec0665 || codec->vendor_id == 0x10ec0670 ||
+ codec->vendor_id == 0x10ec0671)
ssids = alc663_ssids;
else
ssids = alc662_ssids;
@@ -7173,6 +7174,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
{ .id = 0x10ec0665, .name = "ALC665", .patch = patch_alc662 },
{ .id = 0x10ec0668, .name = "ALC668", .patch = patch_alc662 },
{ .id = 0x10ec0670, .name = "ALC670", .patch = patch_alc662 },
+ { .id = 0x10ec0671, .name = "ALC671", .patch = patch_alc662 },
{ .id = 0x10ec0680, .name = "ALC680", .patch = patch_alc680 },
{ .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 },
{ .id = 0x10ec0882, .name = "ALC882", .patch = patch_alc882 },
--
cgit v0.9.1

View File

@@ -0,0 +1,30 @@
From 05c05ef21a1cf71d16189cd4d8060b47f504db2b Mon Sep 17 00:00:00 2001
From: David Henningsson <david.henningsson@canonical.com>
Date: Thu, 04 Apr 2013 09:47:13 +0000
Subject: ALSA: hda - fix typo in proc output
commit aeb3a97222832e5457c4b72d72235098ce4bfe8d upstream.
Rename "Digitial In" to "Digital In". This function is only used for
proc output, so should not cause any problems to change.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index e46b6a3..622f726 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -173,7 +173,7 @@ const char *snd_hda_get_jack_type(u32 cfg)
"Line Out", "Speaker", "HP Out", "CD",
"SPDIF Out", "Digital Out", "Modem Line", "Modem Hand",
"Line In", "Aux", "Mic", "Telephony",
- "SPDIF In", "Digitial In", "Reserved", "Other"
+ "SPDIF In", "Digital In", "Reserved", "Other"
};
return jack_types[(cfg & AC_DEFCFG_DEVICE)
--
cgit v0.9.1

View File

@@ -0,0 +1,69 @@
From 77e2cc382c06a8be48f80e769991e9a4b36a03ce Mon Sep 17 00:00:00 2001
From: hayeswang <hayeswang@realtek.com>
Date: Sun, 31 Mar 2013 17:02:04 +0000
Subject: r8169: fix auto speed down issue
commit e2409d83434d77874b461b78af6a19cd6e6a1280 upstream.
It would cause no link after suspending or shutdowning when the
nic changes the speed to 10M and connects to a link partner which
forces the speed to 100M.
Check the link partner ability to determine which speed to set.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 998974f..2d849da 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -3819,6 +3819,30 @@ static void rtl_init_mdio_ops(struct rtl8169_private *tp)
}
}
+static void rtl_speed_down(struct rtl8169_private *tp)
+{
+ u32 adv;
+ int lpa;
+
+ rtl_writephy(tp, 0x1f, 0x0000);
+ lpa = rtl_readphy(tp, MII_LPA);
+
+ if (lpa & (LPA_10HALF | LPA_10FULL))
+ adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full;
+ else if (lpa & (LPA_100HALF | LPA_100FULL))
+ adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full |
+ ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full;
+ else
+ adv = ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full |
+ ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full |
+ (tp->mii.supports_gmii ?
+ ADVERTISED_1000baseT_Half |
+ ADVERTISED_1000baseT_Full : 0);
+
+ rtl8169_set_speed(tp->dev, AUTONEG_ENABLE, SPEED_1000, DUPLEX_FULL,
+ adv);
+}
+
static void rtl_wol_suspend_quirk(struct rtl8169_private *tp)
{
void __iomem *ioaddr = tp->mmio_addr;
@@ -3849,9 +3873,7 @@ static bool rtl_wol_pll_power_down(struct rtl8169_private *tp)
if (!(__rtl8169_get_wol(tp) & WAKE_ANY))
return false;
- rtl_writephy(tp, 0x1f, 0x0000);
- rtl_writephy(tp, MII_BMCR, 0x0000);
-
+ rtl_speed_down(tp);
rtl_wol_suspend_quirk(tp);
return true;
--
cgit v0.9.1

View File

@@ -0,0 +1,42 @@
From 19a993879bb86c801995f55702ab6beaa5485f5e Mon Sep 17 00:00:00 2001
From: Tim Gardner <tim.gardner@canonical.com>
Date: Mon, 18 Feb 2013 19:56:28 +0000
Subject: rt2x00: rt2x00pci_regbusy_read() - only print register access failure once
commit 83589b30f1e1dc9898986293c9336b8ce1705dec upstream.
BugLink: http://bugs.launchpad.net/bugs/1128840
It appears that when this register read fails it never recovers, so
I think there is no need to repeat the same error message ad infinitum.
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Cc: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Gertjan van Wingerde <gwingerde@gmail.com>
Cc: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: users@rt2x00.serialmonkey.com
Cc: netdev@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
index a0c8cae..b1c673e 100644
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -52,8 +52,8 @@ int rt2x00pci_regbusy_read(struct rt2x00_dev *rt2x00dev,
udelay(REGISTER_BUSY_DELAY);
}
- ERROR(rt2x00dev, "Indirect register access failed: "
- "offset=0x%.08x, value=0x%.08x\n", offset, *reg);
+ printk_once(KERN_ERR "%s() Indirect register access failed: "
+ "offset=0x%.08x, value=0x%.08x\n", __func__, offset, *reg);
*reg = ~0;
return 0;
--
cgit v0.9.1

File diff suppressed because it is too large Load Diff

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc-addon-xvdr"
PKG_VERSION="34070b5"
PKG_VERSION="frodo-acd4e14"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

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

View File

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

View File

@@ -181,7 +181,6 @@ fi
if [ "$SAMBA_CLIENT" = yes ]; then
XBMC_SAMBA="--enable-samba"
export LIBS="$LIBS -ltalloc -ltdb -lwbclient"
else
XBMC_SAMBA="--disable-samba"
fi

View File

@@ -12,6 +12,7 @@
<delay>175</delay>
</refresh>
</latency>
<busydialogdelayms>750</busydialogdelayms>
</video>
<samba>
<clienttimeout>30</clienttimeout>

View File

@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="12.1"
PKG_VERSION="12.2.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -0,0 +1,107 @@
From ca0ddf0673dea966af5bf0bc562f9ff69a551cd9 Mon Sep 17 00:00:00 2001
From: fritsch <peter.fruehberger@gmail.com>
Date: Sat, 12 Jan 2013 13:03:50 +0100
Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content by
default
This allows decoding of some hi10p material on e.g. AMD Fusion with
both cores at the max. This introduces a new advancedsetting named
disablehi10pmultithreading to disable hi10p decoded multithreaded.
---
.../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++--
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 +
xbmc/settings/AdvancedSettings.cpp | 2 ++
xbmc/settings/AdvancedSettings.h | 1 +
4 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
index 8f81637..77ac6b1 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
m_iScreenHeight = 0;
m_iOrientation = 0;
m_bSoftware = false;
+ m_isHi10p = false;
m_pHardware = NULL;
m_iLastKeyframe = 0;
m_dts = DVD_NOPTS_VALUE;
@@ -187,7 +188,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
case FF_PROFILE_H264_HIGH_444_INTRA:
case FF_PROFILE_H264_CAVLC_444:
+ // this is needed to not open the decoders
m_bSoftware = true;
+ // this we need to enable multithreading for hi10p via advancedsettings
+ m_isHi10p = true;
break;
}
}
@@ -247,8 +251,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
m_pCodecContext->codec_tag = hints.codec_tag;
/* Only allow slice threading, since frame threading is more
* sensitive to changes in frame sizes, and it causes crashes
- * during HW accell */
- m_pCodecContext->thread_type = FF_THREAD_SLICE;
+ * during HW accell - so we unset it in this case.
+ *
+ * When we detect Hi10p and user did not disable hi10pmultithreading
+ * via advancedsettings.xml we keep the ffmpeg default thread type.
+ * */
+ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading)
+ {
+ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d",
+ m_pCodecContext->thread_type);
+ }
+ else
+ m_pCodecContext->thread_type = FF_THREAD_SLICE;
#if defined(TARGET_DARWIN_IOS)
// ffmpeg with enabled neon will crash and burn if this is enabled
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
index 61d0305..827b2d9 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
@@ -114,6 +114,7 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec
std::string m_name;
bool m_bSoftware;
+ bool m_isHi10p;
IHardwareDecoder *m_pHardware;
int m_iLastKeyframe;
double m_dts;
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 16800b7..1e0f3e0 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize()
m_DXVANoDeintProcForProgressive = false;
m_videoFpsDetect = 1;
m_videoDefaultLatency = 0.0;
+ m_videoDisableHi10pMultithreading = false;
m_musicUseTimeSeeking = true;
m_musicTimeSeekForward = 10;
@@ -498,6 +499,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU);
+ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading);
XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI);
XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
index 27887d4..fc05e41 100644
--- a/xbmc/settings/AdvancedSettings.h
+++ b/xbmc/settings/AdvancedSettings.h
@@ -164,6 +164,7 @@ class CAdvancedSettings
bool m_DXVAForceProcessorRenderer;
bool m_DXVANoDeintProcForProgressive;
int m_videoFpsDetect;
+ bool m_videoDisableHi10pMultithreading;
CStdString m_videoDefaultPlayer;
CStdString m_videoDefaultDVDPlayer;
--
1.7.10

View File

@@ -0,0 +1,57 @@
diff -Naur xbmc-12.1.8/xbmc/cores/dvdplayer/DVDPlayer.cpp xbmc-12.1.8.patch/xbmc/cores/dvdplayer/DVDPlayer.cpp
--- xbmc-12.1.8/xbmc/cores/dvdplayer/DVDPlayer.cpp 2013-04-24 23:38:36.000000000 +0200
+++ xbmc-12.1.8.patch/xbmc/cores/dvdplayer/DVDPlayer.cpp 2013-04-26 00:49:07.732011721 +0200
@@ -470,7 +470,7 @@
#endif
Create();
- if(!m_ready.WaitMSec(100))
+ if(!m_ready.WaitMSec(g_advancedSettings.m_videoBusyDialogDelay_ms))
{
CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
if(dialog)
diff -Naur xbmc-12.1.8/xbmc/cores/omxplayer/OMXPlayer.cpp xbmc-12.1.8.patch/xbmc/cores/omxplayer/OMXPlayer.cpp
--- xbmc-12.1.8/xbmc/cores/omxplayer/OMXPlayer.cpp 2013-04-24 23:38:36.000000000 +0200
+++ xbmc-12.1.8.patch/xbmc/cores/omxplayer/OMXPlayer.cpp 2013-04-26 00:50:56.974691417 +0200
@@ -474,7 +474,7 @@
g_renderManager.PreInit();
Create();
- if(!m_ready.WaitMSec(100))
+ if(!m_ready.WaitMSec(g_advancedSettings.m_videoBusyDialogDelay_ms))
{
CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
if(dialog)
diff -Naur xbmc-12.1.8/xbmc/settings/AdvancedSettings.cpp xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.cpp
--- xbmc-12.1.8/xbmc/settings/AdvancedSettings.cpp 2013-04-26 00:48:59.375036542 +0200
+++ xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.cpp 2013-04-26 00:49:07.732011721 +0200
@@ -111,6 +111,7 @@
m_DXVAForceProcessorRenderer = true;
m_DXVANoDeintProcForProgressive = false;
m_videoFpsDetect = 1;
+ m_videoBusyDialogDelay_ms = 100;
m_videoDefaultLatency = 0.0;
m_videoDisableHi10pMultithreading = false;
@@ -592,6 +593,10 @@
//0 = disable fps detect, 1 = only detect on timestamps with uniform spacing, 2 detect on all timestamps
XMLUtils::GetInt(pElement, "fpsdetect", m_videoFpsDetect, 0, 2);
+ // controls the delay, in milliseconds, until
+ // the busy dialog is shown when starting video playback.
+ XMLUtils::GetInt(pElement, "busydialogdelayms", m_videoBusyDialogDelay_ms, 0, 1000);
+
// Store global display latency settings
TiXmlElement* pVideoLatency = pElement->FirstChildElement("latency");
if (pVideoLatency)
diff -Naur xbmc-12.1.8/xbmc/settings/AdvancedSettings.h xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.h
--- xbmc-12.1.8/xbmc/settings/AdvancedSettings.h 2013-04-26 00:48:59.383036518 +0200
+++ xbmc-12.1.8.patch/xbmc/settings/AdvancedSettings.h 2013-04-26 00:49:07.732011721 +0200
@@ -165,6 +165,7 @@
bool m_DXVANoDeintProcForProgressive;
int m_videoFpsDetect;
bool m_videoDisableHi10pMultithreading;
+ int m_videoBusyDialogDelay_ms;
CStdString m_videoDefaultPlayer;
CStdString m_videoDefaultDVDPlayer;

View File

@@ -0,0 +1,184 @@
From 2da77839fbf972e8c6f09c56d25f8c7bf999f3fa Mon Sep 17 00:00:00 2001
From: dezi <dezi@kappa-mm.de>
Date: Mon, 18 Mar 2013 12:29:27 +0000
Subject: [PATCH] Added hotplug support for Linux input devices.
---
xbmc/input/linux/LinuxInputDevices.cpp | 80 ++++++++++++++++++++++++++++++++++
xbmc/input/linux/LinuxInputDevices.h | 6 +++
2 files changed, 86 insertions(+)
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
index 9d253bb..1d3d315 100644
--- a/xbmc/input/linux/LinuxInputDevices.cpp
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
@@ -338,6 +338,7 @@
m_deviceMinKeyCode = 0;
m_deviceMaxKeyCode = 0;
m_deviceMaxAxis = 0;
+ m_bUnplugged = false;
Open();
}
@@ -744,7 +745,15 @@ XBMC_Event CLinuxInputDevice::ReadEvent()
readlen = read(m_fd, &levt, sizeof(levt));
if (readlen <= 0)
+ {
+ if (errno == ENODEV)
+ {
+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName);
+ m_bUnplugged = true;
+ }
+
break;
+ }
//printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
@@ -963,6 +972,16 @@ void CLinuxInputDevice::GetInfo(int fd)
//printf("pref: %d\n", m_devicePreferredId);
}
+char* CLinuxInputDevice::GetDeviceName()
+{
+ return m_deviceName;
+}
+
+bool CLinuxInputDevice::IsUnplugged()
+{
+ return m_bUnplugged;
+}
+
bool CLinuxInputDevices::CheckDevice(const char *device)
{
int fd;
@@ -1021,6 +1040,41 @@ void CLinuxInputDevices::InitAvailable()
}
/*
+ * Check for hot plugged devices.
+ */
+void CLinuxInputDevices::CheckHotplugged()
+{
+ CSingleLock lock(m_devicesListLock);
+
+ int deviceId = m_devices.size();
+
+ /* No devices specified. Try to guess some. */
+ for (int i = 0; i < MAX_LINUX_INPUT_DEVICES; i++)
+ {
+ char buf[32];
+ bool ispresent = false;
+
+ snprintf(buf, 32, "/dev/input/event%d", i);
+
+ for (size_t j = 0; j < m_devices.size(); j++)
+ {
+ if (strcmp(m_devices[j]->GetDeviceName(),buf) == 0)
+ {
+ ispresent = true;
+ break;
+ }
+ }
+
+ if (!ispresent && CheckDevice(buf))
+ {
+ CLog::Log(LOGINFO, "Found input device %s", buf);
+ m_devices.push_back(new CLinuxInputDevice(buf, deviceId));
+ ++deviceId;
+ }
+ }
+}
+
+/*
* Open the device, fill out information about it,
* allocate and fill private data, start input thread.
*/
@@ -1076,6 +1130,9 @@ bool CLinuxInputDevice::Open()
{
if (m_vt_fd < 0)
m_vt_fd = open("/dev/tty0", O_RDWR | O_NOCTTY);
+
+ if (m_vt_fd < 0)
+ m_vt_fd = open("/dev/tty1", O_RDWR | O_NOCTTY);
if (m_vt_fd < 0)
CLog::Log(LOGWARNING, "no keymap support (requires /dev/tty0 - CONFIG_VT)");
@@ -1195,6 +1252,23 @@ void CLinuxInputDevice::Close()
XBMC_Event CLinuxInputDevices::ReadEvent()
{
+ if (m_bReInitialize)
+ {
+ InitAvailable();
+ m_bReInitialize = false;
+ }
+ else
+ {
+ time_t now;
+ time(&now);
+
+ if ((now - m_lastHotplugCheck) >= 10)
+ {
+ CheckHotplugged();
+ m_lastHotplugCheck = now;
+ }
+ }
+
CSingleLock lock(m_devicesListLock);
XBMC_Event event;
@@ -1207,6 +1281,12 @@ XBMC_Event CLinuxInputDevices::ReadEvent()
{
break;
}
+
+ if (m_devices[i]->IsUnplugged())
+ {
+ m_bReInitialize = true;
+ break;
+ }
}
return event;
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
index 18224a9..b7626f4 100644
--- a/xbmc/input/linux/LinuxInputDevices.h
+++ b/xbmc/input/linux/LinuxInputDevices.h
@@ -41,6 +41,8 @@ class CLinuxInputDevice
CLinuxInputDevice(const std::string fileName, int index);
~CLinuxInputDevice();
XBMC_Event ReadEvent();
+ char* GetDeviceName();
+ bool IsUnplugged();
private:
void SetupKeyboardAutoRepeat(int fd);
@@ -76,12 +78,14 @@ class CLinuxInputDevice
int m_deviceMaxKeyCode;
int m_deviceMaxAxis;
bool m_bSkipNonKeyEvents;
+ bool m_bUnplugged;
};
class CLinuxInputDevices
{
public:
void InitAvailable();
+ void CheckHotplugged();
XBMC_Event ReadEvent();
bool IsRemoteLowBattery();
bool IsRemoteNotPaired();
@@ -89,6 +93,8 @@ class CLinuxInputDevices
CCriticalSection m_devicesListLock;
bool CheckDevice(const char *device);
std::vector<CLinuxInputDevice*> m_devices;
+ bool m_bReInitialize;
+ time_t m_lastHotplugCheck;
};
#endif /* LINUXINPUTDEVICES_H_ */
--
1.8.1.5

View File

@@ -0,0 +1,60 @@
From d4c34400b9bdebbb1a943603a54fdf207034ddd1 Mon Sep 17 00:00:00 2001
From: Dag Wieers <dag@wieers.com>
Date: Sat, 20 Apr 2013 02:59:47 +0200
Subject: [PATCH] Increase USB and CEC rescan interval to 5 seconds
In one of my investigations to see why XBMC performance is so bad (even when idle) I found one of the threads (in my case PeripheralBusCEC) scan a big sysfs tree recursively. On the 1Ghz AppleTV 1 device this would be about 2% of the CPU *every* second. For the USB thread we luckily have Udev events, but for CEC it is using sysfs polling which is quite expensive. It would be better to make use of Udev as well for CEC (where available) however 5 seconds should be fine for everyone.
In my own builds I even brought it down to 30 seconds. Which means 29 seconds of reduced CPU usage.
The CEC polling probably should be more restricted to specific sysfs sections, or preferably use Udev as well, when available.
PS XBMC needs a special idle-state where it can turn down these expensive threads to make sure hardware can go into deeper sleep states. Especially for devices that doesn't do suspend for various reasons this is a requirement. (The ATV1 device for instance gets warm even when idle) If we can combine display-sleep with low-power states and a less expensive main-loop, that would be already quite an improvement without needing a complete refactoring of the code.
---
xbmc/peripherals/bus/PeripheralBus.cpp | 2 +-
xbmc/peripherals/bus/PeripheralBus.h | 2 +-
xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/xbmc/peripherals/bus/PeripheralBus.cpp b/xbmc/peripherals/bus/PeripheralBus.cpp
index 0e673ee..f0219f1 100644
--- a/xbmc/peripherals/bus/PeripheralBus.cpp
+++ b/xbmc/peripherals/bus/PeripheralBus.cpp
@@ -27,7 +27,7 @@
using namespace std;
using namespace PERIPHERALS;
-#define PERIPHERAL_DEFAULT_RESCAN_INTERVAL 1000
+#define PERIPHERAL_DEFAULT_RESCAN_INTERVAL 5000
CPeripheralBus::CPeripheralBus(CPeripherals *manager, PeripheralBusType type) :
CThread("PeripheralBus"),
diff --git a/xbmc/peripherals/bus/PeripheralBus.h b/xbmc/peripherals/bus/PeripheralBus.h
index cc368ac..24e1524 100644
--- a/xbmc/peripherals/bus/PeripheralBus.h
+++ b/xbmc/peripherals/bus/PeripheralBus.h
@@ -33,7 +33,7 @@
/*!
* @class CPeripheralBus
- * This represents a bus on the system. By default, this bus instance will scan for changes every second.
+ * This represents a bus on the system. By default, this bus instance will scan for changes every 5 seconds.
* If this bus only has to be updated after a notification sent by the system, set m_bNeedsPolling to false
* in the constructor, and implement the OnDeviceAdded(), OnDeviceChanged() and OnDeviceRemoved() methods.
*
diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
index da169c1..0db7423 100644
--- a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
+++ b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp
@@ -57,7 +57,7 @@ class PERIPHERALS::DllLibCEC : public DllDynamic, DllLibCECInterface
m_dll(new DllLibCEC),
m_cecAdapter(NULL)
{
- m_iRescanTime = 1000;
+ m_iRescanTime = 5000;
if (!m_dll->Load() || !m_dll->IsLoaded())
{
delete m_dll;
--
1.8.1.6

View File

@@ -0,0 +1,32 @@
From 7ee7e59e858c7f1901c6879e39b30480c42ef126 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 29 Apr 2013 22:50:08 +0100
Subject: [PATCH] [rbp] Remove unnecessary gl ifdef
I'm not sure why this was originally added.
I couldn't think of a reason why the Pi would want things done differently here,
so I tried without the ifdef. I can't see any difference in behaviour,
so I think we're better off removing it.
---
xbmc/rendering/gles/RenderSystemGLES.cpp | 4 ----
1 file changed, 4 deletions(-)
diff --git a/xbmc/rendering/gles/RenderSystemGLES.cpp b/xbmc/rendering/gles/RenderSystemGLES.cpp
index e7795fb..472f441 100644
--- a/xbmc/rendering/gles/RenderSystemGLES.cpp
+++ b/xbmc/rendering/gles/RenderSystemGLES.cpp
@@ -138,11 +138,7 @@ bool CRenderSystemGLES::ResetRenderSystem(int width, int height, bool fullScreen
g_matrices.MatrixMode(MM_PROJECTION);
g_matrices.LoadIdentity();
-#ifdef TARGET_RASPBERRY_PI
- g_matrices.Ortho(0.0f, width-1, height-1, 0.0f, +1.0f, 1.0f);
-#else
g_matrices.Ortho(0.0f, width-1, height-1, 0.0f, -1.0f, 1.0f);
-#endif
g_matrices.MatrixMode(MM_MODELVIEW);
g_matrices.LoadIdentity();
--
1.8.1.6

View File

@@ -0,0 +1,331 @@
From 1c12a2f021cceee0d7eee2de5df993d73d790aa5 Mon Sep 17 00:00:00 2001
From: Cory Fields <theuni-nospam-@xbmc.org>
Date: Thu, 9 May 2013 19:27:14 -0400
Subject: [PATCH 1/2] texture: combine Load() and GetTexture() since they must
be used together
---
xbmc/guilib/GUITexture.cpp | 19 ++++++++--------
xbmc/guilib/TextureManager.cpp | 51 ++++++++++++++++++++----------------------
xbmc/guilib/TextureManager.h | 3 +--
3 files changed, 34 insertions(+), 39 deletions(-)
diff --git a/xbmc/guilib/GUITexture.cpp b/xbmc/guilib/GUITexture.cpp
index 9da2030..5896606 100644
--- a/xbmc/guilib/GUITexture.cpp
+++ b/xbmc/guilib/GUITexture.cpp
@@ -301,11 +301,12 @@ bool CGUITextureBase::AllocResources()
{ // we want to use the large image loader, but we first check for bundled textures
if (!IsAllocated())
{
- int images = g_TextureManager.Load(m_info.filename, true);
- if (images)
+ CTextureArray texture;
+ texture = g_TextureManager.Load(m_info.filename, true);
+ if (texture.size())
{
m_isAllocated = NORMAL;
- m_texture = g_TextureManager.GetTexture(m_info.filename);
+ m_texture = texture;
changed = true;
}
}
@@ -329,15 +330,14 @@ bool CGUITextureBase::AllocResources()
}
else if (!IsAllocated())
{
- int images = g_TextureManager.Load(m_info.filename);
+ CTextureArray texture = g_TextureManager.Load(m_info.filename);
// set allocated to true even if we couldn't load the image to save
// us hitting the disk every frame
- m_isAllocated = images ? NORMAL : NORMAL_FAILED;
- if (!images)
+ m_isAllocated = texture.size() ? NORMAL : NORMAL_FAILED;
+ if (!texture.size())
return false;
-
- m_texture = g_TextureManager.GetTexture(m_info.filename);
+ m_texture = texture;
changed = true;
}
m_frameWidth = (float)m_texture.m_width;
@@ -346,8 +346,7 @@ bool CGUITextureBase::AllocResources()
// load the diffuse texture (if necessary)
if (!m_info.diffuse.IsEmpty())
{
- g_TextureManager.Load(m_info.diffuse);
- m_diffuse = g_TextureManager.GetTexture(m_info.diffuse);
+ m_diffuse = g_TextureManager.Load(m_info.diffuse);
}
CalculateSize();
diff --git a/xbmc/guilib/TextureManager.cpp b/xbmc/guilib/TextureManager.cpp
index 93fdcd1..6d6c4d9 100644
--- a/xbmc/guilib/TextureManager.cpp
+++ b/xbmc/guilib/TextureManager.cpp
@@ -221,22 +221,6 @@ void CTextureMap::Add(CBaseTexture* texture, int delay)
Cleanup();
}
-const CTextureArray& CGUITextureManager::GetTexture(const CStdString& strTextureName)
-{
- static CTextureArray emptyTexture;
- // CLog::Log(LOGINFO, " refcount++ for GetTexture(%s)\n", strTextureName.c_str());
- for (int i = 0; i < (int)m_vecTextures.size(); ++i)
- {
- CTextureMap *pMap = m_vecTextures[i];
- if (pMap->GetName() == strTextureName)
- {
- //CLog::Log(LOGDEBUG, "Total memusage %u", GetMemoryUsage());
- return pMap->GetTexture();
- }
- }
- return emptyTexture;
-}
-
/************************************************************************/
/* */
/************************************************************************/
@@ -290,19 +274,32 @@ bool CGUITextureManager::HasTexture(const CStdString &textureName, CStdString *p
return !fullPath.IsEmpty();
}
-int CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleOnly /*= false */)
+const CTextureArray& CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleOnly /*= false */)
{
CStdString strPath;
+ static CTextureArray emptyTexture;
int bundle = -1;
int size = 0;
if (!HasTexture(strTextureName, &strPath, &bundle, &size))
- return 0;
+ return emptyTexture;
if (size) // we found the texture
- return size;
+ {
+ for (int i = 0; i < (int)m_vecTextures.size(); ++i)
+ {
+ CTextureMap *pMap = m_vecTextures[i];
+ if (pMap->GetName() == strTextureName)
+ {
+ //CLog::Log(LOGDEBUG, "Total memusage %u", GetMemoryUsage());
+ return pMap->GetTexture();
+ }
+ }
+ // Whoops, not there.
+ return emptyTexture;
+ }
if (checkBundleOnly && bundle == -1)
- return 0;
+ return emptyTexture;
//Lock here, we will do stuff that could break rendering
CSingleLock lock(g_graphicsContext);
@@ -327,7 +324,7 @@ int CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleO
CLog::Log(LOGERROR, "Texture manager unable to load bundled file: %s", strTextureName.c_str());
delete [] pTextures;
delete [] Delay;
- return 0;
+ return emptyTexture;
}
pMap = new CTextureMap(strTextureName, width, height, nLoops);
@@ -348,7 +345,7 @@ int CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleO
CStdString rootPath = strPath.Left(g_SkinInfo->Path().GetLength());
if (0 == rootPath.CompareNoCase(g_SkinInfo->Path()))
CLog::Log(LOGERROR, "Texture manager unable to load file: %s", strPath.c_str());
- return 0;
+ return emptyTexture;
}
int iWidth = AnimatedGifSet.FrameWidth;
int iHeight = AnimatedGifSet.FrameHeight;
@@ -386,7 +383,7 @@ int CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleO
#endif
m_vecTextures.push_back(pMap);
- return 1;
+ return pMap->GetTexture();
} // of if (strPath.Right(4).ToLower()==".gif")
CBaseTexture *pTexture = NULL;
@@ -396,19 +393,19 @@ int CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleO
if (!m_TexBundle[bundle].LoadTexture(strTextureName, &pTexture, width, height))
{
CLog::Log(LOGERROR, "Texture manager unable to load bundled file: %s", strTextureName.c_str());
- return 0;
+ return emptyTexture;
}
}
else
{
pTexture = CBaseTexture::LoadFromFile(strPath);
if (!pTexture)
- return 0;
+ return emptyTexture;
width = pTexture->GetWidth();
height = pTexture->GetHeight();
}
- if (!pTexture) return 0;
+ if (!pTexture) return emptyTexture;
CTextureMap* pMap = new CTextureMap(strTextureName, width, height, 0);
pMap->Add(pTexture, 100);
@@ -423,7 +420,7 @@ int CGUITextureManager::Load(const CStdString& strTextureName, bool checkBundleO
OutputDebugString(temp);
#endif
- return 1;
+ return pMap->GetTexture();
}
diff --git a/xbmc/guilib/TextureManager.h b/xbmc/guilib/TextureManager.h
index c982e6a..22fc192 100644
--- a/xbmc/guilib/TextureManager.h
+++ b/xbmc/guilib/TextureManager.h
@@ -108,8 +108,7 @@ class CGUITextureManager
bool HasTexture(const CStdString &textureName, CStdString *path = NULL, int *bundle = NULL, int *size = NULL);
bool CanLoad(const CStdString &texturePath) const; ///< Returns true if the texture manager can load this texture
- int Load(const CStdString& strTextureName, bool checkBundleOnly = false);
- const CTextureArray& GetTexture(const CStdString& strTextureName);
+ const CTextureArray& Load(const CStdString& strTextureName, bool checkBundleOnly = false);
void ReleaseTexture(const CStdString& strTextureName);
void Cleanup();
void Dump() const;
--
1.8.1.6
From ece7ac520231ff144d7bc4d8393d1ca36f227927 Mon Sep 17 00:00:00 2001
From: Cory Fields <theuni-nospam-@xbmc.org>
Date: Tue, 30 Apr 2013 23:01:57 -0400
Subject: [PATCH 2/2] texture: two texture speedups
1. Check to see if we have a texture loaded already before opening/uploading
another instance of it.
2. Set a time-out for deleting textures. If they are needed again before the
time-out expires, they are re-added to the loaded textures array and ready
for use again. Otherwise, they are deleted after X msec. This helps to avoid
doing _really_ nasty things, like re-loading the background image when
moving from home to settings.
---
xbmc/Application.cpp | 2 +-
xbmc/guilib/TextureManager.cpp | 30 +++++++++++++++++++++++++-----
xbmc/guilib/TextureManager.h | 6 ++++--
3 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 37d17e3..df456ec 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -4953,7 +4953,7 @@ void CApplication::ProcessSlow()
if (!IsPlayingVideo())
g_largeTextureManager.CleanupUnusedImages();
- g_TextureManager.FreeUnusedTextures();
+ g_TextureManager.FreeUnusedTextures(5000);
#ifdef HAS_DVD_DRIVE
// checks whats in the DVD drive and tries to autostart the content (xbox games, dvd, cdda, avi files...)
diff --git a/xbmc/guilib/TextureManager.cpp b/xbmc/guilib/TextureManager.cpp
index 6d6c4d9..f214489 100644
--- a/xbmc/guilib/TextureManager.cpp
+++ b/xbmc/guilib/TextureManager.cpp
@@ -29,6 +29,7 @@
#ifdef _DEBUG
#include "utils/TimeUtils.h"
#endif
+#include "threads/SystemClock.h"
#include "filesystem/File.h"
#include "filesystem/Directory.h"
#include "URL.h"
@@ -298,6 +299,17 @@ bool CGUITextureManager::HasTexture(const CStdString &textureName, CStdString *p
return emptyTexture;
}
+ for (ilistUnused i = m_unusedTextures.begin(); i != m_unusedTextures.end(); i++)
+ {
+ CTextureMap* pMap = i->first;
+ if (pMap->GetName() == strTextureName)
+ {
+ m_vecTextures.push_back(pMap);
+ m_unusedTextures.erase(i);
+ return pMap->GetTexture();
+ }
+ }
+
if (checkBundleOnly && bundle == -1)
return emptyTexture;
@@ -439,7 +451,7 @@ void CGUITextureManager::ReleaseTexture(const CStdString& strTextureName)
{
//CLog::Log(LOGINFO, " cleanup:%s", strTextureName.c_str());
// add to our textures to free
- m_unusedTextures.push_back(pMap);
+ m_unusedTextures.push_back(make_pair(pMap, XbmcThreads::SystemClockMillis()));
i = m_vecTextures.erase(i);
}
return;
@@ -449,12 +461,20 @@ void CGUITextureManager::ReleaseTexture(const CStdString& strTextureName)
CLog::Log(LOGWARNING, "%s: Unable to release texture %s", __FUNCTION__, strTextureName.c_str());
}
-void CGUITextureManager::FreeUnusedTextures()
+void CGUITextureManager::FreeUnusedTextures(unsigned int timeDelay)
{
+ unsigned int currFrameTime = XbmcThreads::SystemClockMillis();
CSingleLock lock(g_graphicsContext);
- for (ivecTextures i = m_unusedTextures.begin(); i != m_unusedTextures.end(); ++i)
- delete *i;
- m_unusedTextures.clear();
+ for (ilistUnused i = m_unusedTextures.begin(); i != m_unusedTextures.end();)
+ {
+ if (currFrameTime - i->second >= timeDelay)
+ {
+ delete i->first;
+ i = m_unusedTextures.erase(i);
+ }
+ else
+ i++;
+ }
#if defined(HAS_GL) || defined(HAS_GLES)
for (unsigned int i = 0; i < m_unusedHwTextures.size(); ++i)
diff --git a/xbmc/guilib/TextureManager.h b/xbmc/guilib/TextureManager.h
index 22fc192..2633c39d 100644
--- a/xbmc/guilib/TextureManager.h
+++ b/xbmc/guilib/TextureManager.h
@@ -27,6 +27,7 @@
#define GUILIB_TEXTUREMANAGER_H
#include <vector>
+#include <list>
#include "TextureBundle.h"
#include "threads/CriticalSection.h"
@@ -121,13 +122,14 @@ class CGUITextureManager
void SetTexturePath(const CStdString &texturePath); ///< Set a single path as the path to check when loading media (clear then add)
void RemoveTexturePath(const CStdString &texturePath); ///< Remove a path from the paths to check when loading media
- void FreeUnusedTextures(); ///< Free textures (called from app thread only)
+ void FreeUnusedTextures(unsigned int timeDelay = 0); ///< Free textures (called from app thread only)
void ReleaseHwTexture(unsigned int texture);
protected:
std::vector<CTextureMap*> m_vecTextures;
- std::vector<CTextureMap*> m_unusedTextures;
+ std::list<std::pair<CTextureMap*, unsigned int> > m_unusedTextures;
std::vector<unsigned int> m_unusedHwTextures;
typedef std::vector<CTextureMap*>::iterator ivecTextures;
+ typedef std::list<std::pair<CTextureMap*, unsigned int> >::iterator ilistUnused;
// we have 2 texture bundles (one for the base textures, one for the theme)
CTextureBundle m_TexBundle[2];
--
1.8.1.6

View File

@@ -0,0 +1,77 @@
From 101fbc2d6869d6f02c4345a232854dbbb3f1a855 Mon Sep 17 00:00:00 2001
From: Cory Fields <theuni-nospam-@xbmc.org>
Date: Thu, 2 May 2013 16:45:41 -0400
Subject: [PATCH] build: stop using whole-archive for our final binary
This nasty hack has been around for ages. By changing, we get the following
benefits:
- We don't link in _every_ object in _every_ archive!
- Builds will no longer fail if a source file has been removed but its object
still exists in the archive
- Filesize reduction
- Ability to use lto, garbage collection, dead-code stripping, etc in a
useful manner
This is achieved by specifying a main object on the link line, and using
start-group/end-group to search through the archives multiple times until each
symbol is found.
---
Makefile.in | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 3cbe1a2..f0827f2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -92,6 +92,9 @@ DIRECTORY_ARCHIVES=$(DVDPLAYER_ARCHIVES) \
xbmc/windows/windows.a \
xbmc/xbmc.a \
+ifneq (@USE_LIBXBMC@,1)
+DIRECTORY_ARCHIVES +=xbmc/main/main.a
+endif
NWAOBJSXBMC= xbmc/threads/threads.a \
xbmc/commons/commons.a
@@ -425,24 +428,29 @@ endif
OBJSXBMC:=$(filter-out $(DYNOBJSXBMC), $(OBJSXBMC))
-libxbmc.so: $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC)
+MAINOBJS=xbmc/xbmc.o
+ifeq (@USE_ANDROID@,1)
+MAINOBJS+=xbmc/android/activity/android_main.o
+endif
+ifneq (@USE_LIBXBMC@,1)
+MAINOBJS+=xbmc/main/main.o
+endif
+
+libxbmc.so: $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(MAINOBJS)
ifeq ($(findstring osx,@ARCH@), osx)
$(SILENT_LD) $(CXX) $(LDFLAGS) -bundle -o $@ -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS)
else
- $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ -Wl,--whole-archive $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--no-whole-archive -Wl,--no-undefined $(NWAOBJSXBMC) $(LIBS)
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(MAINOBJS) -Wl,--start-group $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group -Wl,--no-undefined $(NWAOBJSXBMC) $(LIBS)
endif
-xbmc.bin: xbmc/main/main.a $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC)
+xbmc.bin: $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(MAINOBJS)
ifeq ($(findstring osx,@ARCH@), osx)
- $(SILENT_LD) $(CXX) $(LDFLAGS) -o xbmc.bin -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) xbmc/main/main.a $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(LDFLAGS) -o xbmc.bin -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS) -rdynamic
else
- $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o xbmc.bin -Wl,--whole-archive $(DYNOBJSXBMC) $(OBJSXBMC) xbmc/main/main.a -Wl,--no-whole-archive $(NWAOBJSXBMC) $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o xbmc.bin $(MAINOBJS) -Wl,--start-group $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group $(NWAOBJSXBMC) $(LIBS) -rdynamic
endif
-xbmc/main/main.a: force
- $(MAKE) -C xbmc/main
-
xbmc-xrandr: xbmc-xrandr.c
ifneq (1,@USE_XRANDR@)
# xbmc-xrandr.c gets picked up by the default make rules
--
1.8.1.6

View File

@@ -0,0 +1,89 @@
From 0aaeb72ed3d76134f11b80a4d17e50b40d6459be Mon Sep 17 00:00:00 2001
From: hmis <hubert.mis@gmail.com>
Date: Mon, 8 Apr 2013 21:35:35 +0300
Subject: [PATCH] Read CD audio USB drive bug fixed
libcdio seems to allow read no more than about 10 audio sectors at once when CD audio device is connected via USB.
This patch makes XBMC read small number of sectors if default one fails. It uses more CPU but allows to use USB CD devices.
Tested on GNU/Linux x86 and RPi. (On Rpi OMXPlayer does not play CD, but I can rip tracks).
---
xbmc/filesystem/CDDAFile.cpp | 34 +++++++++++++++++++++++++++-------
xbmc/filesystem/CDDAFile.h | 1 +
2 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/xbmc/filesystem/CDDAFile.cpp b/xbmc/filesystem/CDDAFile.cpp
index 5342629..f5eaf37 100644
--- a/xbmc/filesystem/CDDAFile.cpp
+++ b/xbmc/filesystem/CDDAFile.cpp
@@ -40,6 +40,7 @@
m_lsnCurrent = CDIO_INVALID_LSN;
m_lsnEnd = CDIO_INVALID_LSN;
m_cdio = CLibcdio::GetInstance();
+ m_iSectorCount = 52;
}
CFileCDDA::~CFileCDDA(void)
@@ -120,7 +121,8 @@ unsigned int CFileCDDA::Read(void* lpBuf, int64_t uiBufSize)
if (!m_pCdIo || !g_mediaManager.IsDiscInDrive())
return 0;
- int iSectorCount = (int)uiBufSize / CDIO_CD_FRAMESIZE_RAW;
+ // limit number of sectors that fits in buffer by m_iSectorCount
+ int iSectorCount = std::min((int)uiBufSize / CDIO_CD_FRAMESIZE_RAW, m_iSectorCount);
if (iSectorCount <= 0)
return 0;
@@ -129,14 +131,32 @@ unsigned int CFileCDDA::Read(void* lpBuf, int64_t uiBufSize)
if (m_lsnCurrent + iSectorCount > m_lsnEnd)
iSectorCount = m_lsnEnd - m_lsnCurrent;
- int iret = m_cdio->cdio_read_audio_sectors(m_pCdIo, lpBuf, m_lsnCurrent, iSectorCount);
-
- if ( iret != DRIVER_OP_SUCCESS)
+ // The loop tries to solve read error problem by lowering number of sectors to read (iSectorCount).
+ // When problem is solved the proper number of sectors is stored in m_iSectorCount
+ int big_iSectorCount = iSectorCount;
+ while (iSectorCount > 0)
{
- CLog::Log(LOGERROR, "file cdda: Reading %d sectors of audio data starting at lsn %d failed with error code %i", iSectorCount, m_lsnCurrent, iret);
- return 0;
+ int iret = m_cdio->cdio_read_audio_sectors(m_pCdIo, lpBuf, m_lsnCurrent, iSectorCount);
+
+ if (iret == DRIVER_OP_SUCCESS)
+ {
+ // If lower iSectorCount solved the problem limit it's value
+ if (iSectorCount < big_iSectorCount)
+ {
+ m_iSectorCount = iSectorCount;
+ }
+ break;
+ }
+
+ // iSectorCount is low so it cannot solve read problem
+ if (iSectorCount <= 10)
+ {
+ CLog::Log(LOGERROR, "file cdda: Reading %d sectors of audio data starting at lsn %d failed with error code %i", iSectorCount, m_lsnCurrent, iret);
+ return 0;
+ }
+
+ iSectorCount = 10;
}
-
m_lsnCurrent += iSectorCount;
return iSectorCount*CDIO_CD_FRAMESIZE_RAW;
diff --git a/xbmc/filesystem/CDDAFile.h b/xbmc/filesystem/CDDAFile.h
index f041e0b..72b8d5b 100644
--- a/xbmc/filesystem/CDDAFile.h
+++ b/xbmc/filesystem/CDDAFile.h
@@ -53,6 +53,7 @@ class CFileCDDA : public IFile
lsn_t m_lsnStart; // Start of m_iTrack in logical sector number
lsn_t m_lsnCurrent; // Position inside the track in logical sector number
lsn_t m_lsnEnd; // End of m_iTrack in logical sector number
+ int m_iSectorCount; // max number of sectors to read at once
boost::shared_ptr<MEDIA_DETECT::CLibcdio> m_cdio;
};
}
--
1.8.1.6

View File

@@ -0,0 +1,555 @@
diff -Naur xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.cpp xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.cpp
--- xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.cpp 1970-01-01 01:00:00.000000000 +0100
+++ xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.cpp 2013-05-10 07:16:56.061904946 +0200
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2013 Team XBMC
+ * http://www.xbmc.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XBMC; see the file COPYING. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "DVDInputStreams/DVDInputStream.h"
+#include "DVDDemuxCDDA.h"
+#include "DVDDemuxUtils.h"
+#include "utils/log.h"
+#include "../DVDClock.h"
+
+// CDDA audio demuxer based on AirTunes audio Demuxer.
+
+using namespace std;
+
+class CDemuxStreamAudioCDDA
+ : public CDemuxStreamAudio
+{
+public:
+ void GetStreamInfo(string& strInfo)
+ {
+ strInfo = "pcm";
+ }
+};
+
+CDVDDemuxCDDA::CDVDDemuxCDDA() : CDVDDemux()
+{
+ m_pInput = NULL;
+ m_stream = NULL;
+ m_bytes = 0;
+}
+
+CDVDDemuxCDDA::~CDVDDemuxCDDA()
+{
+ Dispose();
+}
+
+bool CDVDDemuxCDDA::Open(CDVDInputStream* pInput)
+{
+ Abort();
+
+ Dispose();
+
+ if(!pInput || !pInput->IsStreamType(DVDSTREAM_TYPE_FILE))
+ return false;
+
+ m_pInput = pInput;
+
+ m_stream = new CDemuxStreamAudioCDDA();
+
+ if(!m_stream)
+ return false;
+
+ m_stream->iSampleRate = 44100;
+ m_stream->iBitsPerSample = 16;
+ m_stream->iBitRate = 44100 * 2 * 16;
+ m_stream->iChannels = 2;
+ m_stream->type = STREAM_AUDIO;
+ m_stream->codec = CODEC_ID_PCM_S16LE;
+
+ return true;
+}
+
+void CDVDDemuxCDDA::Dispose()
+{
+ delete m_stream;
+ m_stream = NULL;
+
+ m_pInput = NULL;
+ m_bytes = 0;
+}
+
+void CDVDDemuxCDDA::Reset()
+{
+ CDVDInputStream* pInputStream = m_pInput;
+ Dispose();
+ Open(pInputStream);
+}
+
+void CDVDDemuxCDDA::Abort()
+{
+ if(m_pInput)
+ return m_pInput->Abort();
+}
+
+void CDVDDemuxCDDA::Flush()
+{
+}
+
+#define CDDA_READ_SIZE 4096
+DemuxPacket* CDVDDemuxCDDA::Read()
+{
+ if(!m_pInput)
+ return NULL;
+
+ DemuxPacket* pPacket = CDVDDemuxUtils::AllocateDemuxPacket(CDDA_READ_SIZE);
+
+ if (!pPacket)
+ {
+ if (m_pInput)
+ m_pInput->Close();
+ return NULL;
+ }
+
+ pPacket->iSize = m_pInput->Read(pPacket->pData, CDDA_READ_SIZE);
+ pPacket->iStreamId = 0;
+
+ if(pPacket->iSize < 1)
+ {
+ delete pPacket;
+ pPacket = NULL;
+ }
+ else
+ {
+ int n = m_stream->iBitRate>>3;
+ if (n > 0)
+ {
+ m_bytes += pPacket->iSize;
+ pPacket->dts = (double)m_bytes * DVD_TIME_BASE / n;
+ pPacket->pts = pPacket->dts;
+ }
+ else
+ {
+ pPacket->dts = DVD_NOPTS_VALUE;
+ pPacket->pts = DVD_NOPTS_VALUE;
+ }
+ }
+
+ return pPacket;
+}
+
+int CDVDDemuxCDDA::GetStreamLength()
+{
+ int64_t num_track_bytes = m_pInput->GetLength();
+ int bytes_per_second = (m_stream->iBitRate>>3);
+ int64_t track_mseconds = num_track_bytes*1000 / bytes_per_second;
+ return (int)track_mseconds;
+}
+
+CDemuxStream* CDVDDemuxCDDA::GetStream(int iStreamId)
+{
+ if(iStreamId != 0)
+ return NULL;
+
+ return m_stream;
+}
+
+int CDVDDemuxCDDA::GetNrOfStreams()
+{
+ return (m_stream == NULL ? 0 : 1);
+}
+
+std::string CDVDDemuxCDDA::GetFileName()
+{
+ if(m_pInput)
+ return m_pInput->GetFileName();
+ else
+ return "";
+}
+
+void CDVDDemuxCDDA::GetStreamCodecName(int iStreamId, CStdString &strName)
+{
+ if (m_stream && iStreamId == 0)
+ strName = "pcm";
+}
diff -Naur xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.h xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.h
--- xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.h 1970-01-01 01:00:00.000000000 +0100
+++ xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxCDDA.h 2013-05-10 07:16:56.061904946 +0200
@@ -0,0 +1,59 @@
+#pragma once
+/*
+ * Copyright (C) 2013 Team XBMC
+ * http://www.xbmc.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XBMC; see the file COPYING. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "DVDDemux.h"
+
+#ifdef _WIN32
+#define __attribute__(dummy_val)
+#else
+#include <config.h>
+#endif
+
+class CDemuxStreamAudioCDDA;
+
+class CDVDDemuxCDDA : public CDVDDemux
+{
+public:
+
+ CDVDDemuxCDDA();
+ ~CDVDDemuxCDDA();
+
+ bool Open(CDVDInputStream* pInput);
+ void Dispose();
+ void Reset();
+ void Abort();
+ void Flush();
+ DemuxPacket* Read();
+ bool SeekTime(int time, bool backwords = false, double* startpts = NULL) { return false; };
+ void SetSpeed(int iSpeed) {};
+ int GetStreamLength() ;
+ CDemuxStream* GetStream(int iStreamId);
+ int GetNrOfStreams();
+ std::string GetFileName();
+ virtual void GetStreamCodecName(int iStreamId, CStdString &strName);
+
+protected:
+ friend class CDemuxStreamAudioCDDA;
+ CDVDInputStream* m_pInput;
+ int64_t m_bytes;
+
+ CDemuxStreamAudioCDDA *m_stream;
+};
diff -Naur xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp
--- xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp 2013-05-02 17:00:07.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp 2013-05-10 07:16:56.061904946 +0200
@@ -31,6 +31,7 @@
#include "DVDDemuxHTSP.h"
#endif
#include "DVDDemuxBXA.h"
+#include "DVDDemuxCDDA.h"
#include "DVDDemuxPVRClient.h"
#include "pvr/PVRManager.h"
#include "pvr/addons/PVRClients.h"
@@ -51,6 +52,22 @@
else
return NULL;
}
+
+ // Try to open CDDA demuxer
+ if (pInputStream->IsStreamType(DVDSTREAM_TYPE_FILE) && pInputStream->GetContent().compare("application/octet-stream") == 0)
+ {
+ std::string filename = pInputStream->GetFileName();
+ if (filename.substr(0, 7) == "cdda://")
+ {
+ CLog::Log(LOGDEBUG, "DVDFactoryDemuxer: Stream is probably CD audio. Creating CDDA demuxer.");
+
+ auto_ptr<CDVDDemuxCDDA> demuxer(new CDVDDemuxCDDA());
+ if (demuxer->Open(pInputStream))
+ {
+ return demuxer.release();
+ }
+ }
+ }
if (pInputStream->IsStreamType(DVDSTREAM_TYPE_HTTP))
{
diff -Naur xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp.orig xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp.orig
diff -Naur xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/Makefile.in xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/Makefile.in
--- xbmc-12.2.0/xbmc/cores/dvdplayer/DVDDemuxers/Makefile.in 2013-05-02 17:00:07.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/cores/dvdplayer/DVDDemuxers/Makefile.in 2013-05-10 07:16:56.061904946 +0200
@@ -2,6 +2,7 @@
SRCS = DVDDemux.cpp
SRCS += DVDDemuxBXA.cpp
+SRCS += DVDDemuxCDDA.cpp
SRCS += DVDDemuxFFmpeg.cpp
SRCS += DVDDemuxHTSP.cpp
SRCS += DVDDemuxPVRClient.cpp
diff -Naur xbmc-12.2.0/xbmc/cores/paplayer/CDDAcodec.cpp xbmc-12.2.0.patch/xbmc/cores/paplayer/CDDAcodec.cpp
--- xbmc-12.2.0/xbmc/cores/paplayer/CDDAcodec.cpp 2013-05-02 17:00:08.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/cores/paplayer/CDDAcodec.cpp 1970-01-01 01:00:00.000000000 +0100
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2005-2012 Team XBMC
- * http://www.xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "CDDAcodec.h"
-#if !defined(TARGET_DARWIN_IOS)
-#include <cdio/sector.h>
-#else
-typedef int32_t lsn_t;
-#define CDIO_CD_FRAMESIZE_RAW 2352
-#define CDIO_CD_FRAMES_PER_SEC 75
-#endif
-#include "cores/AudioEngine/Utils/AEUtil.h"
-
-#define SECTOR_COUNT 55 // max. sectors that can be read at once
-#define MAX_BUFFER_SIZE 2*SECTOR_COUNT*CDIO_CD_FRAMESIZE_RAW
-
-CDDACodec::CDDACodec()
-{
- m_SampleRate = 44100;
- m_Channels = 2;
- m_BitsPerSample = 16;
- m_DataFormat = AE_FMT_S16NE;
- m_TotalTime = 0;
- m_Bitrate = 0;
- m_CodecName = "cdda";
-
- m_BufferSize=0;
- m_Buffer = new BYTE[MAX_BUFFER_SIZE];
- m_BufferPos = 0;
-}
-
-CDDACodec::~CDDACodec()
-{
- DeInit();
-
- if (m_Buffer)
- {
- delete[] m_Buffer;
- m_Buffer = NULL;
- }
-}
-
-bool CDDACodec::Init(const CStdString &strFile, unsigned int filecache)
-{
- if (!m_file.Open(strFile, READ_CACHED))
- return false;
-
- // Calculate total time of the track
- m_TotalTime=(m_file.GetLength()/CDIO_CD_FRAMESIZE_RAW)/CDIO_CD_FRAMES_PER_SEC;
- if (m_TotalTime > 0)
- m_Bitrate = (int)((m_file.GetLength() * 8) / m_TotalTime);
- else
- m_Bitrate = 0;
- m_TotalTime*=1000; // ms
- return true;
-}
-
-void CDDACodec::DeInit()
-{
- m_file.Close();
-}
-
-int64_t CDDACodec::Seek(int64_t iSeekTime)
-{
- // Calculate the next full second...
- int iSeekTimeFullSec=(int)(iSeekTime+(1000-(iSeekTime%1000)))/1000;
-
- // ...and the logical sector on the cd...
- lsn_t lsnSeek=iSeekTimeFullSec*CDIO_CD_FRAMES_PER_SEC;
-
- // ... then seek to its position...
- int iNewOffset=(int)m_file.Seek(lsnSeek*CDIO_CD_FRAMESIZE_RAW, SEEK_SET);
- m_BufferSize=m_BufferPos=0;
-
- // ... and look if we really got there.
- int iNewSeekTime=(iNewOffset/CDIO_CD_FRAMESIZE_RAW)/CDIO_CD_FRAMES_PER_SEC;
- return iNewSeekTime*(int64_t)1000; // ms
-}
-
-int CDDACodec::ReadPCM(BYTE *pBuffer, int size, int *actualsize)
-{
- *actualsize=0;
-
- bool bEof=false;
- // Reached end of track?
- if (m_file.GetLength()==m_file.GetPosition())
- bEof=true;
-
- // Do we have to refill our audio buffer?
- if (m_BufferSize-m_BufferPos<MAX_BUFFER_SIZE/2 && !bEof)
- {
- // Move the remaining audio data to the beginning of the buffer
- memmove(m_Buffer, m_Buffer + m_BufferPos, m_BufferSize-m_BufferPos);
- m_BufferSize=m_BufferSize-m_BufferPos;
- m_BufferPos = 0;
-
- // Fill our buffer with a chunk of audio data
- int iAmountRead=m_file.Read(m_Buffer+m_BufferSize, MAX_BUFFER_SIZE/2);
- if (iAmountRead<=0)
- return READ_ERROR;
-
- m_BufferSize+=iAmountRead;
- }
-
- // Our buffer is empty and no data left to read from the cd
- if (m_BufferSize-m_BufferPos==0 && bEof)
- return READ_EOF;
-
- // Try to give the player the amount of audio data he wants
- if (m_BufferSize-m_BufferPos>=size)
- { // we have enough data in our buffer
- memcpy(pBuffer, m_Buffer + m_BufferPos, size);
- m_BufferPos+=size;
- *actualsize=size;
- }
- else
- { // Only a smaller amount of data left as the player wants
- memcpy(pBuffer, m_Buffer + m_BufferPos, m_BufferSize-m_BufferPos);
- *actualsize=m_BufferSize-m_BufferPos;
- m_BufferPos+=m_BufferSize-m_BufferPos;
- }
-
- return READ_SUCCESS;
-}
-
-bool CDDACodec::CanInit()
-{
- return true;
-}
-
-CAEChannelInfo CDDACodec::GetChannelInfo()
-{
- static enum AEChannel map[2][3] = {
- {AE_CH_FC, AE_CH_NULL},
- {AE_CH_FL, AE_CH_FR , AE_CH_NULL}
- };
-
- if (m_Channels > 2)
- return CAEUtil::GuessChLayout(m_Channels);
-
- return CAEChannelInfo(map[m_Channels - 1]);
-}
diff -Naur xbmc-12.2.0/xbmc/cores/paplayer/CDDAcodec.h xbmc-12.2.0.patch/xbmc/cores/paplayer/CDDAcodec.h
--- xbmc-12.2.0/xbmc/cores/paplayer/CDDAcodec.h 2013-05-02 17:00:08.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/cores/paplayer/CDDAcodec.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-#pragma once
-
-/*
- * Copyright (C) 2005-2012 Team XBMC
- * http://www.xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "CachingCodec.h"
-
-class CDDACodec : public CachingCodec
-{
-public:
- CDDACodec();
- virtual ~CDDACodec();
-
- virtual bool Init(const CStdString &strFile, unsigned int filecache);
- virtual void DeInit();
- virtual int64_t Seek(int64_t iSeekTime);
- virtual int ReadPCM(BYTE *pBuffer, int size, int *actualsize);
- virtual bool CanInit();
- virtual CAEChannelInfo GetChannelInfo();
-
-private:
- // Input buffer to read our cdda data into
- BYTE* m_Buffer;
- int m_BufferSize;
- int m_BufferPos;
-};
diff -Naur xbmc-12.2.0/xbmc/cores/paplayer/CodecFactory.cpp xbmc-12.2.0.patch/xbmc/cores/paplayer/CodecFactory.cpp
--- xbmc-12.2.0/xbmc/cores/paplayer/CodecFactory.cpp 2013-05-02 17:00:08.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/cores/paplayer/CodecFactory.cpp 2013-05-10 07:16:56.061904946 +0200
@@ -21,7 +21,6 @@
#include "system.h"
#include "CodecFactory.h"
#include "MP3codec.h"
-#include "CDDAcodec.h"
#include "OGGcodec.h"
#include "FLACcodec.h"
#include "WAVcodec.h"
@@ -51,7 +50,7 @@
else if (strFileType.Equals("ape") || strFileType.Equals("mac"))
return new DVDPlayerCodec();
else if (strFileType.Equals("cdda"))
- return new CDDACodec();
+ return new DVDPlayerCodec();
else if (strFileType.Equals("mpc") || strFileType.Equals("mp+") || strFileType.Equals("mpp"))
return new DVDPlayerCodec();
else if (strFileType.Equals("shn"))
@@ -183,20 +182,6 @@
}
delete codec;
}
- if (urlFile.GetFileType().Equals("cdda"))
- {
- //lets see what it contains...
- //this kinda sucks 'cause if it's plain cdda the file
- //will be opened, sniffed and closed before it is opened *again* for cdda
- //would be better if the papcodecs could work with bitstreams instead of filenames.
- DVDPlayerCodec *dvdcodec = new DVDPlayerCodec();
- dvdcodec->SetContentType("audio/x-spdif-compressed");
- if (dvdcodec->Init(strFile, filecache))
- {
- return dvdcodec;
- }
- delete dvdcodec;
- }
else if (urlFile.GetFileType().Equals("ogg") || urlFile.GetFileType().Equals("oggstream") || urlFile.GetFileType().Equals("oga"))
return CreateOGGCodec(strFile,filecache);
diff -Naur xbmc-12.2.0/xbmc/cores/paplayer/Makefile.in xbmc-12.2.0.patch/xbmc/cores/paplayer/Makefile.in
--- xbmc-12.2.0/xbmc/cores/paplayer/Makefile.in 2013-05-02 17:00:08.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/cores/paplayer/Makefile.in 2013-05-10 07:16:56.062904942 +0200
@@ -9,7 +9,6 @@
SRCS = ADPCMCodec.cpp
SRCS += AudioDecoder.cpp
-SRCS += CDDAcodec.cpp
SRCS += CodecFactory.cpp
SRCS += DVDPlayerCodec.cpp
SRCS += FLACcodec.cpp

View File

@@ -0,0 +1,29 @@
From ff283b0861afd35410d20c52fee8ba0542e91f8a Mon Sep 17 00:00:00 2001
From: ulion <ulion2002@gmail.com>
Date: Sun, 24 Mar 2013 13:19:39 +0800
Subject: [PATCH] Check exists before listing dir, to avoid produce error log,
fix #14210
---
xbmc/video/VideoInfoScanner.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp
index 170b5a9..fbe7913 100644
--- a/xbmc/video/VideoInfoScanner.cpp
+++ b/xbmc/video/VideoInfoScanner.cpp
@@ -1771,7 +1771,10 @@
void CVideoInfoScanner::FetchActorThumbs(vector<SActorInfo>& actors, const CStdString& strPath)
{
CFileItemList items;
- CDirectory::GetDirectory(URIUtils::AddFileToFolder(strPath, ".actors"), items, ".png|.jpg|.tbn", DIR_FLAG_NO_FILE_DIRS | DIR_FLAG_NO_FILE_INFO);
+ CStdString actorsDir = URIUtils::AddFileToFolder(strPath, ".actors");
+ if (CDirectory::Exists(actorsDir))
+ CDirectory::GetDirectory(actorsDir, items, ".png|.jpg|.tbn", DIR_FLAG_NO_FILE_DIRS |
+ DIR_FLAG_NO_FILE_INFO);
for (vector<SActorInfo>::iterator i = actors.begin(); i != actors.end(); ++i)
{
if (i->thumb.IsEmpty())
--
1.8.1.6

View File

@@ -0,0 +1,32 @@
From 5b75f44b448bcefb9b802a3a28d0e6846284d22e Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Mon, 6 May 2013 14:20:05 +0100
Subject: [PATCH] [rbp/omxplayer] Fix for hang following seek after eos
If you seek after the demuxer eof, the eof state is cleared, but we are not clearing the flags relating to sending eos stream to audio/video players
---
xbmc/cores/omxplayer/OMXPlayer.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp
index 156a3ad..82d0024 100644
--- a/xbmc/cores/omxplayer/OMXPlayer.cpp
+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp
@@ -1178,7 +1178,13 @@ void COMXPlayer::Process()
CDVDDemuxUtils::FreeDemuxPacket(pPacket);
continue;
}
-
+ if (pPacket)
+ {
+ // reset eos state when we get a packet (e.g. for case of seek after eos)
+ bOmxWaitVideo = false;
+ bOmxWaitAudio = false;
+ bOmxSentEOFs = false;
+ }
if (!pPacket)
{
// when paused, demuxer could be be returning empty
--
1.8.1.6

View File

@@ -0,0 +1,295 @@
From 4a61baea4a936089b589f0b7a834aa180a1017ea Mon Sep 17 00:00:00 2001
From: Bob van Loosen <bob.loosen@gmail.com>
Date: Tue, 14 May 2013 12:28:45 +0200
Subject: [PATCH 1/2] fixed: when doing a format conversion from float to 32
bit int, multiply with INT32_MAX - 127, since this is the maximum value that
can be stored in 32 bit float and int, if INT32_MAX gets converted to float,
it gets rounded to INT32_MAX + 1 which can cause wrap around distortion
---
xbmc/cores/AudioEngine/Utils/AEConvert.cpp | 32 +++++++++++++++++-------------
1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
index 97ec87b..5f0af63 100644
--- a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
+++ b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
@@ -922,17 +922,21 @@ unsigned int CAEConvert::Float_S24NE3(float *data, const unsigned int samples, u
return samples * 3;
}
+//float can't store INT32_MAX, it gets rounded up to INT32_MAX + 1
+//INT32_MAX - 127 is the maximum value that can exactly be stored in both 32 bit float and int
+#define MUL32 ((float)(INT32_MAX - 127))
+
unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, uint8_t *dest)
{
int32_t *dst = (int32_t*)dest;
#ifdef __SSE__
- const __m128 mul = _mm_set_ps1((float)INT32_MAX);
+ const __m128 mul = _mm_set_ps1(MUL32);
unsigned int count = samples;
/* work around invalid alignment */
while ((((uintptr_t)data & 0xF) || ((uintptr_t)dest & 0xF)) && count > 0)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
++data;
++dst;
--count;
@@ -955,7 +959,7 @@ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, ui
const uint32_t odd = samples - even;
if (odd == 1)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
dst[0] = Endian_SwapLE32(dst[0]);
}
else
@@ -988,7 +992,7 @@ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, ui
/* no SIMD */
for (uint32_t i = 0; i < samples; ++i, ++data, ++dst)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
dst[0] = Endian_SwapLE32(dst[0]);
}
#endif
@@ -1002,7 +1006,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
int32_t *dst = (int32_t*)dest;
for (float *end = data + (samples & ~0x3); data < end; data += 4, dst += 4)
{
- float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), INT32_MAX);
+ float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), MUL32);
int32x4_t ret = vcvtq_s32_f32(val);
#ifdef __BIG_ENDIAN__
ret = vrev64q_s32(ret);
@@ -1012,7 +1016,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
if (samples & 0x2)
{
- float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), INT32_MAX);
+ float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), MUL32);
int32x2_t ret = vcvt_s32_f32(val);
#ifdef __BIG_ENDIAN__
ret = vrev64_s32(ret);
@@ -1024,7 +1028,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
if (samples & 0x1)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
dst[0] = Endian_SwapLE32(dst[0]);
}
#endif
@@ -1035,13 +1039,13 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
{
int32_t *dst = (int32_t*)dest;
#ifdef __SSE__
- const __m128 mul = _mm_set_ps1((float)INT32_MAX);
+ const __m128 mul = _mm_set_ps1(MUL32);
unsigned int count = samples;
/* work around invalid alignment */
while ((((uintptr_t)data & 0xF) || ((uintptr_t)dest & 0xF)) && count > 0)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
++data;
++dst;
--count;
@@ -1064,7 +1068,7 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
const uint32_t odd = samples - even;
if (odd == 1)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
dst[0] = Endian_SwapBE32(dst[0]);
}
else
@@ -1096,7 +1100,7 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
/* no SIMD */
for (uint32_t i = 0; i < samples; ++i, ++data, ++dst)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
dst[0] = Endian_SwapBE32(dst[0]);
}
#endif
@@ -1110,7 +1114,7 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample
int32_t *dst = (int32_t*)dest;
for (float *end = data + (samples & ~0x3); data < end; data += 4, dst += 4)
{
- float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), INT32_MAX);
+ float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), MUL32);
int32x4_t ret = vcvtq_s32_f32(val);
#ifndef __BIG_ENDIAN__
ret = vrev64q_s32(ret);
@@ -1120,7 +1124,7 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample
if (samples & 0x2)
{
- float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), INT32_MAX);
+ float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), MUL32);
int32x2_t ret = vcvt_s32_f32(val);
#ifndef __BIG_ENDIAN__
ret = vrev64_s32(ret);
@@ -1132,7 +1136,7 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample
if (samples & 0x1)
{
- dst[0] = safeRound(data[0] * (float)INT32_MAX);
+ dst[0] = safeRound(data[0] * MUL32);
dst[0] = Endian_SwapBE32(dst[0]);
}
#endif
--
1.8.1.6
From edf2e3d3c9b124446961a9b66aaf401cf1770500 Mon Sep 17 00:00:00 2001
From: Bob van Loosen <bob.loosen@gmail.com>
Date: Tue, 14 May 2013 18:43:01 +0200
Subject: [PATCH 2/2] rename: MUL32 -> AE_MUL32
---
xbmc/cores/AudioEngine/Utils/AEConvert.cpp | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
index 5f0af63..0b0b646 100644
--- a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
+++ b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp
@@ -924,19 +924,19 @@ unsigned int CAEConvert::Float_S24NE3(float *data, const unsigned int samples, u
//float can't store INT32_MAX, it gets rounded up to INT32_MAX + 1
//INT32_MAX - 127 is the maximum value that can exactly be stored in both 32 bit float and int
-#define MUL32 ((float)(INT32_MAX - 127))
+#define AE_MUL32 ((float)(INT32_MAX - 127))
unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, uint8_t *dest)
{
int32_t *dst = (int32_t*)dest;
#ifdef __SSE__
- const __m128 mul = _mm_set_ps1(MUL32);
+ const __m128 mul = _mm_set_ps1(AE_MUL32);
unsigned int count = samples;
/* work around invalid alignment */
while ((((uintptr_t)data & 0xF) || ((uintptr_t)dest & 0xF)) && count > 0)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
++data;
++dst;
--count;
@@ -959,7 +959,7 @@ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, ui
const uint32_t odd = samples - even;
if (odd == 1)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
dst[0] = Endian_SwapLE32(dst[0]);
}
else
@@ -992,7 +992,7 @@ unsigned int CAEConvert::Float_S32LE(float *data, const unsigned int samples, ui
/* no SIMD */
for (uint32_t i = 0; i < samples; ++i, ++data, ++dst)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
dst[0] = Endian_SwapLE32(dst[0]);
}
#endif
@@ -1006,7 +1006,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
int32_t *dst = (int32_t*)dest;
for (float *end = data + (samples & ~0x3); data < end; data += 4, dst += 4)
{
- float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), MUL32);
+ float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), AE_MUL32);
int32x4_t ret = vcvtq_s32_f32(val);
#ifdef __BIG_ENDIAN__
ret = vrev64q_s32(ret);
@@ -1016,7 +1016,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
if (samples & 0x2)
{
- float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), MUL32);
+ float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), AE_MUL32);
int32x2_t ret = vcvt_s32_f32(val);
#ifdef __BIG_ENDIAN__
ret = vrev64_s32(ret);
@@ -1028,7 +1028,7 @@ unsigned int CAEConvert::Float_S32LE_Neon(float *data, const unsigned int sample
if (samples & 0x1)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
dst[0] = Endian_SwapLE32(dst[0]);
}
#endif
@@ -1039,13 +1039,13 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
{
int32_t *dst = (int32_t*)dest;
#ifdef __SSE__
- const __m128 mul = _mm_set_ps1(MUL32);
+ const __m128 mul = _mm_set_ps1(AE_MUL32);
unsigned int count = samples;
/* work around invalid alignment */
while ((((uintptr_t)data & 0xF) || ((uintptr_t)dest & 0xF)) && count > 0)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
++data;
++dst;
--count;
@@ -1068,7 +1068,7 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
const uint32_t odd = samples - even;
if (odd == 1)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
dst[0] = Endian_SwapBE32(dst[0]);
}
else
@@ -1100,7 +1100,7 @@ unsigned int CAEConvert::Float_S32BE(float *data, const unsigned int samples, ui
/* no SIMD */
for (uint32_t i = 0; i < samples; ++i, ++data, ++dst)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
dst[0] = Endian_SwapBE32(dst[0]);
}
#endif
@@ -1114,7 +1114,7 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample
int32_t *dst = (int32_t*)dest;
for (float *end = data + (samples & ~0x3); data < end; data += 4, dst += 4)
{
- float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), MUL32);
+ float32x4_t val = vmulq_n_f32(vld1q_f32((const float32_t *)data), AE_MUL32);
int32x4_t ret = vcvtq_s32_f32(val);
#ifndef __BIG_ENDIAN__
ret = vrev64q_s32(ret);
@@ -1124,7 +1124,7 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample
if (samples & 0x2)
{
- float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), MUL32);
+ float32x2_t val = vmul_n_f32(vld1_f32((const float32_t *)data), AE_MUL32);
int32x2_t ret = vcvt_s32_f32(val);
#ifndef __BIG_ENDIAN__
ret = vrev64_s32(ret);
@@ -1136,7 +1136,7 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample
if (samples & 0x1)
{
- dst[0] = safeRound(data[0] * MUL32);
+ dst[0] = safeRound(data[0] * AE_MUL32);
dst[0] = Endian_SwapBE32(dst[0]);
}
#endif
--
1.8.1.6

View File

@@ -0,0 +1,99 @@
diff -Naur xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.cpp xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
--- xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.cpp 2013-04-07 22:10:57.264461705 +0200
+++ xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.cpp 2013-04-07 22:18:08.064718783 +0200
@@ -80,6 +80,7 @@
m_send_eos = false;
m_bad_state = false;
m_hints_current.Clear();
+ m_output_stalled = false;
m_av_clock->SetMasterClock(false);
@@ -154,6 +155,7 @@
m_stalled = m_messageQueue.GetPacketCount(CDVDMsg::DEMUXER_PACKET) == 0;
m_use_passthrough = (g_guiSettings.GetInt("audiooutput.mode") == AUDIO_HDMI) ? true : false ;
m_use_hw_decode = g_advancedSettings.m_omxHWAudioDecode;
+ m_output_stalled = m_stalled;
}
bool OMXPlayerAudio::CloseStream(bool bWaitForBuffers)
@@ -442,11 +444,11 @@
}
if(bDropPacket)
- m_stalled = false;
+ m_stalled = m_output_stalled = false;
if(m_omxAudio.GetCacheTime() < 0.1 /*&& min(99,m_messageQueue.GetLevel() + MathUtils::round_int(100.0/8.0*GetCacheTime())) > 10*/)
{
- m_stalled = true;
+ m_stalled = m_output_stalled = true;
if(!m_av_clock->OMXAudioBuffer() && m_av_clock->HasVideo() && m_speed == DVD_PLAYSPEED_NORMAL)
{
clock_gettime(CLOCK_REALTIME, &m_starttime);
@@ -454,6 +456,9 @@
}
}
+ if (m_stalled && m_omxAudio.GetCacheTime() > 0.0)
+ m_stalled = false;
+
// signal to our parent that we have initialized
if(m_started == false)
{
@@ -478,6 +483,7 @@
if (ret == MSGQ_TIMEOUT)
{
+ m_stalled = true;
Sleep(10);
continue;
}
@@ -497,12 +503,14 @@
CLog::Log(LOGINFO, "Audio: dts:%.0f pts:%.0f size:%d (s:%d f:%d d:%d l:%d) s:%d %d/%d late:%d,%d", pPacket->dts, pPacket->pts,
(int)pPacket->iSize, m_started, m_flush, bPacketDrop, m_stalled, m_speed, 0, 0, (int)m_omxAudio.GetAudioRenderingLatency(), (int)m_hints_current.samplerate);
#endif
+
+ m_stalled = false;
if(Decode(pPacket, m_speed > DVD_PLAYSPEED_NORMAL || m_speed < 0 || bPacketDrop))
{
- if (m_stalled && (m_omxAudio.GetCacheTime() > (AUDIO_BUFFER_SECONDS * 0.75f)))
+ if (m_output_stalled && (m_omxAudio.GetCacheTime() > (AUDIO_BUFFER_SECONDS * 0.75f)))
{
CLog::Log(LOGINFO, "COMXPlayerAudio - Switching to normal playback");
- m_stalled = false;
+ m_stalled = m_output_stalled = false;
if(m_av_clock->HasVideo() && m_av_clock->OMXAudioBuffer())
m_av_clock->OMXAudioBufferStop();
}
@@ -510,9 +518,9 @@
// hard unlock audio out buffering
clock_gettime(CLOCK_REALTIME, &m_endtime);
//int iLevel = min(99,m_messageQueue.GetLevel() + MathUtils::round_int(100.0/8.0*GetCacheTime()));
- if(/*iLevel < 10 &&*/ m_stalled && m_av_clock->OMXAudioBuffer() && (m_endtime.tv_sec - m_starttime.tv_sec) > 1)
+ if(/*iLevel < 10 &&*/ m_output_stalled && m_av_clock->OMXAudioBuffer() && (m_endtime.tv_sec - m_starttime.tv_sec) > 1)
{
- m_stalled = false;
+ m_stalled = m_output_stalled = false;
if(m_av_clock->HasVideo() && m_av_clock->OMXAudioBuffer())
m_av_clock->OMXAudioBufferStop();
}
@@ -563,6 +571,7 @@
m_av_clock->UnLock();
m_syncclock = true;
m_stalled = true;
+ m_output_stalled = true;
m_started = false;
if (m_pAudioCodec)
diff -Naur xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.h xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.h
--- xbmc-12.1/xbmc/cores/omxplayer/OMXPlayerAudio.h 2013-04-07 22:10:57.262461708 +0200
+++ xbmc-12.1.patch/xbmc/cores/omxplayer/OMXPlayerAudio.h 2013-04-07 22:13:15.931280700 +0200
@@ -76,6 +76,7 @@
bool m_stalled;
bool m_started;
+ bool m_output_stalled;
BitstreamStats m_audioStats;

View File

@@ -0,0 +1,69 @@
From eacf9a512d118e50a9777ae05460a2a344a408e6 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Thu, 28 Mar 2013 15:18:53 +0100
Subject: [PATCH] OMXPlayer: some caching fixes for pvr
---
xbmc/cores/omxplayer/OMXPlayer.cpp | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp
index 28addd3..34f3acb 100644
--- a/xbmc/cores/omxplayer/OMXPlayer.cpp
+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp
@@ -1243,13 +1243,13 @@ void COMXPlayer::Process()
if (!IsValidStream(m_CurrentAudio) && m_player_audio.IsStalled()) CloseAudioStream(true);
if (!IsValidStream(m_CurrentVideo) && m_player_video.IsStalled()) CloseVideoStream(true);
if (!IsValidStream(m_CurrentSubtitle) && m_player_subtitle.IsStalled()) CloseSubtitleStream(true);
- if (!IsValidStream(m_CurrentTeletext)) CloseTeletextStream(true);
+// if (!IsValidStream(m_CurrentTeletext)) CloseTeletextStream(true);
// see if we can find something better to play
if (IsBetterStream(m_CurrentAudio, pStream)) OpenAudioStream (pStream->iId, pStream->source);
if (IsBetterStream(m_CurrentVideo, pStream)) OpenVideoStream (pStream->iId, pStream->source);
if (IsBetterStream(m_CurrentSubtitle, pStream)) OpenSubtitleStream(pStream->iId, pStream->source);
- if (IsBetterStream(m_CurrentTeletext, pStream)) OpenTeletextStream(pStream->iId, pStream->source);
+// if (IsBetterStream(m_CurrentTeletext, pStream)) OpenTeletextStream(pStream->iId, pStream->source);
if(m_change_volume)
{
@@ -2233,7 +2233,8 @@ void COMXPlayer::HandleMessages()
// 1. disable audio
// 2. skip frames and adjust their pts or the clock
m_playSpeed = speed;
- m_caching = CACHESTATE_DONE;
+ if (m_caching != CACHESTATE_PVR && m_playSpeed != DVD_PLAYSPEED_NORMAL)
+ SetCaching(CACHESTATE_DONE);
m_av_clock.SetSpeed(speed);
m_av_clock.OMXSetSpeed(speed);
m_player_audio.SetSpeed(speed);
@@ -3106,7 +3107,7 @@ bool COMXPlayer::CloseAudioStream(bool bWaitForBuffers)
CLog::Log(LOGNOTICE, "Closing audio stream");
- if(bWaitForBuffers)
+ if(bWaitForBuffers && m_caching != CACHESTATE_PVR)
SetCaching(CACHESTATE_DONE);
m_player_audio.CloseStream(bWaitForBuffers);
@@ -3122,7 +3123,7 @@ bool COMXPlayer::CloseVideoStream(bool bWaitForBuffers)
CLog::Log(LOGNOTICE, "Closing video stream");
- if(bWaitForBuffers)
+ if(bWaitForBuffers && m_caching != CACHESTATE_PVR)
SetCaching(CACHESTATE_DONE);
m_player_video.CloseStream(bWaitForBuffers);
@@ -3151,7 +3152,7 @@ bool COMXPlayer::CloseTeletextStream(bool bWaitForBuffers)
CLog::Log(LOGNOTICE, "Closing teletext stream");
- if(bWaitForBuffers)
+ if(bWaitForBuffers && m_caching != CACHESTATE_PVR)
SetCaching(CACHESTATE_DONE);
m_player_teletext.CloseStream(bWaitForBuffers);
--
1.8.1.5

View File

@@ -0,0 +1,27 @@
From 7abb1f31a53cc0147ba6f5ed5fc796e2ac8584ff Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Thu, 9 May 2013 21:11:47 +0300
Subject: [PATCH] xbmc: revert 799d6ff03 (setwakeup.sh)
this reverts upstream commit 799d6ff03
https://github.com/xbmc/xbmc/commit/799d6ff03
---
xbmc/settings/GUISettings.cpp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp
index 67aeec9..96f738c 100644
--- a/xbmc/settings/GUISettings.cpp
+++ b/xbmc/settings/GUISettings.cpp
@@ -1001,7 +1001,7 @@ void CGUISettings::Initialize()
AddBool(pvrpwr, "pvrpowermanagement.enabled", 305, false);
AddSeparator(pvrpwr, "pvrpowermanagement.sep1");
AddInt(pvrpwr, "pvrpowermanagement.backendidletime", 19244, 15, 0, 5, 360, SPIN_CONTROL_INT_PLUS, MASK_MINS, TEXT_OFF);
- AddString(pvrpwr, "pvrpowermanagement.setwakeupcmd", 19245, "", EDIT_CONTROL_INPUT, true);
+ AddString(pvrpwr, "pvrpowermanagement.setwakeupcmd", 19245, "/usr/bin/setwakeup.sh", EDIT_CONTROL_INPUT, true);
AddInt(pvrpwr, "pvrpowermanagement.prewakeup", 19246, 15, 0, 1, 60, SPIN_CONTROL_INT_PLUS, MASK_MINS, TEXT_OFF);
AddSeparator(pvrpwr, "pvrpowermanagement.sep2");
AddBool(pvrpwr, "pvrpowermanagement.dailywakeup", 19247, false);
--
1.7.2.5

View File

@@ -1,91 +0,0 @@
From 5016973c68567e0691c9dc6c14d78de9e7d4558c Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Fri, 25 Jan 2013 23:00:13 +0000
Subject: [PATCH] [rbp] Add support for new video codecs Latest firmware has a
start_x.elf with support for additional codecs. These are
MJPEG, VP6, VP8 and Ogg Theora. They are software GPU
accelerated and should be good for SD resolutions. This
update should be harmless with firmware that doesn't
support the new codecs - they will fail to open and behave
as before.
---
xbmc/cores/omxplayer/OMXVideo.cpp | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp
index 9215fd9..45e10fe 100644
--- a/xbmc/cores/omxplayer/OMXVideo.cpp
+++ b/xbmc/cores/omxplayer/OMXVideo.cpp
@@ -69,7 +69,10 @@
#define OMX_MPEG2V_DECODER OMX_VIDEO_DECODER
#define OMX_VC1_DECODER OMX_VIDEO_DECODER
#define OMX_WMV3_DECODER OMX_VIDEO_DECODER
+#define OMX_VP6_DECODER OMX_VIDEO_DECODER
#define OMX_VP8_DECODER OMX_VIDEO_DECODER
+#define OMX_THEORA_DECODER OMX_VIDEO_DECODER
+#define OMX_MJPEG_DECODER OMX_VIDEO_DECODER
#define MAX_TEXT_LENGTH 1024
@@ -145,6 +148,7 @@ bool COMXVideo::NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata,
bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, bool hdmi_clock_sync)
{
+ bool vflip = false;
Close();
OMX_ERRORTYPE omx_err = OMX_ErrorNone;
@@ -248,6 +252,18 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
m_codingType = OMX_VIDEO_CodingMPEG4;
m_video_codec_name = "omx-h263";
break;
+ case CODEC_ID_VP6:
+ // this form is encoded upside down
+ vflip = true;
+ // fall through
+ case CODEC_ID_VP6F:
+ case CODEC_ID_VP6A:
+ // (role name) video_decoder.vp6
+ // VP6
+ decoder_name = OMX_VP6_DECODER;
+ m_codingType = OMX_VIDEO_CodingVP6;
+ m_video_codec_name = "omx-vp6";
+ break;
case CODEC_ID_VP8:
// (role name) video_decoder.vp8
// VP8
@@ -255,6 +271,21 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
m_codingType = OMX_VIDEO_CodingVP8;
m_video_codec_name = "omx-vp8";
break;
+ case CODEC_ID_THEORA:
+ // (role name) video_decoder.theora
+ // theora
+ decoder_name = OMX_THEORA_DECODER;
+ m_codingType = OMX_VIDEO_CodingTheora;
+ m_video_codec_name = "omx-theora";
+ break;
+ case CODEC_ID_MJPEG:
+ case CODEC_ID_MJPEGB:
+ // (role name) video_decoder.mjpg
+ // mjpg
+ decoder_name = OMX_MJPEG_DECODER;
+ m_codingType = OMX_VIDEO_CodingMJPEG;
+ m_video_codec_name = "omx-mjpeg";
+ break;
case CODEC_ID_VC1:
case CODEC_ID_WMV3:
// (role name) video_decoder.vc1
@@ -594,6 +625,8 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b
configDisplay.transform = OMX_DISPLAY_ROT0;
break;
}
+ if (vflip)
+ configDisplay.transform = OMX_DISPLAY_MIRROR_ROT180;
omx_err = m_omx_render.SetConfig(OMX_IndexConfigDisplayRegion, &configDisplay);
if(omx_err != OMX_ErrorNone)
--
1.7.10

View File

@@ -1,26 +0,0 @@
From 2c915ea56abd68cf2310eb9d01936d19a2f118ab Mon Sep 17 00:00:00 2001
From: davilla <davilla@4pi.com>
Date: Tue, 19 Mar 2013 13:41:53 -0400
Subject: [PATCH] changed, assert(0) is nasty, this could just be a bad audio
packet
---
xbmc/cores/dvdplayer/DVDPlayerAudio.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
index 03ba5ea..e075cd6 100644
--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
@@ -284,7 +284,7 @@ int CDVDPlayerAudio::DecodeFrame(DVDAudioFrame &audioframe, bool bDropPacket)
CLog::Log(LOGERROR, "CDVDPlayerAudio:DecodeFrame - Codec tried to consume more data than available. Potential memory corruption");
m_decode.Release();
m_pAudioCodec->Reset();
- assert(0);
+ return DECODE_FLAG_ERROR;
}
m_decode.data += len;
--
1.8.1.5

View File

@@ -1,25 +0,0 @@
From befdcfad8d2b14c9d935c3662a56853d617f884d Mon Sep 17 00:00:00 2001
From: Voyager1 <voyager@xbmc.org>
Date: Sat, 23 Mar 2013 07:19:46 +0100
Subject: [PATCH] [dvdplayer] fix deadlock when trying to go to disc menu
---
xbmc/cores/dvdplayer/DVDPlayer.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp
index 3d2ca03..22c89dc 100644
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp
@@ -3511,7 +3511,7 @@ bool CDVDPlayer::OnAction(const CAction &action)
pMenus->OnMenu();
// send a message to everyone that we've gone to the menu
CGUIMessage msg(GUI_MSG_VIDEO_MENU_STARTED, 0, 0);
- g_windowManager.SendMessage(msg);
+ g_windowManager.SendThreadMessage(msg);
return true;
}
break;
--
1.8.1.5

View File

@@ -1,47 +0,0 @@
--- xbmc-12.0.3/configure.in.orig 2013-03-01 13:21:58.791312360 +0100
+++ xbmc-12.0.3/configure.in 2013-03-01 13:38:41.138311757 +0100
@@ -990,9 +990,15 @@
AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library))
if echo "$ARCH" | grep -q freebsd; then
AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
+AC_CHECK_LIB([pthread], [pthread_set_name_np],
+ AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP],[1],["Define to 1 if pthread has pthread_set_name_np"]),
+ AC_MSG_RESULT([Could not find pthread_set_name_np in pthread]))
else
if test "$target_platform" != "target_android" ; then
AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([pthread], [pthread_setname_np],
+ AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],["Define to 1 if pthread has pthread_setname_np"]),
+ AC_MSG_RESULT([Could not find pthread_setname_np in pthread]))
fi
fi
AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
--- xbmc-12.0.3/xbmc/threads/platform/pthreads/ThreadImpl.cpp.orig 2013-03-01 14:40:50.080309513 +0100
+++ xbmc-12.0.3/xbmc/threads/platform/pthreads/ThreadImpl.cpp 2013-03-01 14:40:20.548309531 +0100
@@ -18,6 +18,9 @@
*
*/
+#if (defined HAVE_CONFIG_H) && (!defined WIN32)
+ #include "config.h"
+#endif
#include <limits.h>
#if defined(TARGET_ANDROID)
#include <unistd.h>
@@ -71,10 +74,16 @@
m_ThreadOpaque.LwpId = syscall(SYS_gettid);
#endif
+#if defined(HAVE_PTHREAD_SETNAME_NP)
#ifdef TARGET_DARWIN
#if(__MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200)
pthread_setname_np(m_ThreadName.c_str());
#endif
+#else
+ pthread_setname_np(m_ThreadId, m_ThreadName.c_str());
+#endif
+#elif defined(HAVE_PTHREAD_SET_NAME_NP)
+ pthread_set_name_np(m_ThreadId, m_ThreadName.c_str());
#endif
#ifdef RLIMIT_NICE

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