summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-tv')
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-TexturePacker-parallel-build.patch13
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-external-python.patch22
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-jpeg-speedup.patch18
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-libdca.patch746
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-libpng14.patch92
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-shader-upscalers.patch887
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch129
-rw-r--r--media-tv/xbmc/files/xbmc-9.11-wavpack.patch44
-rw-r--r--media-tv/xbmc/xbmc-10.0.ebuild202
9 files changed, 0 insertions, 2153 deletions
diff --git a/media-tv/xbmc/files/xbmc-9.11-TexturePacker-parallel-build.patch b/media-tv/xbmc/files/xbmc-9.11-TexturePacker-parallel-build.patch
deleted file mode 100644
index f6bc030ee368..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-TexturePacker-parallel-build.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-http://trac.xbmc.org/ticket/9275
-
---- xbmc/Makefile.in
-+++ xbmc/Makefile.in
-@@ -501,7 +501,7 @@ else
- $(MAKE) -C tools/XBMCTex/
- endif
-
--tools/TexturePacker/TexturePacker:
-+tools/TexturePacker/TexturePacker: guilib/guilib.a xbmc/lib/libsquish/libsquish-@ARCH@.a
- $(MAKE) -C tools/TexturePacker/
-
- install-bin: xbmc.bin # developement convenience target
diff --git a/media-tv/xbmc/files/xbmc-9.11-external-python.patch b/media-tv/xbmc/files/xbmc-9.11-external-python.patch
deleted file mode 100644
index 4691dc2c1d11..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-external-python.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-let --disable-external-python work with --enable-external-libraries
-
---- a/configure.in
-+++ b/configure.in
-@@ -235,7 +235,7 @@
- [AS_HELP_STRING([--enable-external-python],
- [enable use of external python library (default is no) 'Linux only'])],
- [use_external_python=$enableval],
-- [use_external_python=no])
-+ [use_external_python=$use_external_libraries])
-
- ### End of external library options
-
-@@ -620,7 +620,7 @@
- fi
-
- # External Python
--if test "$use_external_libraries" = "yes" || test "$use_external_python" = "yes"; then
-+if test "$use_external_python" = "yes"; then
- AC_CHECK_LIB([python2.6], [main],,
- [AC_CHECK_LIB([python2.5], [main],,
- [AC_CHECK_LIB([python2.4], [main],,
diff --git a/media-tv/xbmc/files/xbmc-9.11-jpeg-speedup.patch b/media-tv/xbmc/files/xbmc-9.11-jpeg-speedup.patch
deleted file mode 100644
index 63cadbf51a56..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-jpeg-speedup.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-fix from upstream
-http://bugs.gentoo.org/300909
-
-r26689 | jmarshallnz | 2010-01-11 14:30:08 -0500 (Mon, 11 Jan 2010) | 2 lines
-fixed: Ticket #7810 - high cpu load during loading of images with libjpeg7, thanks to akawaka.
-
-Index: xbmc/lib/cximage-6.0/CxImage/ximajpg.cpp
-===================================================================
---- xbmc/lib/cximage-6.0/CxImage/ximajpg.cpp (revision 26688)
-+++ xbmc/lib/cximage-6.0/CxImage/ximajpg.cpp (revision 26689)
-@@ -220,6 +220,7 @@ bool CxImageJPG::Decode(CxFile * hFile)
-
- // Set the scale <ignacio>
- cinfo.scale_denom = GetJpegScale();
-+ cinfo.scale_num = 1;
-
- // Borrowed the idea from GIF implementation <ignacio>
- if (info.nEscape == -1) {
diff --git a/media-tv/xbmc/files/xbmc-9.11-libdca.patch b/media-tv/xbmc/files/xbmc-9.11-libdca.patch
deleted file mode 100644
index 59b3a64347c9..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-libdca.patch
+++ /dev/null
@@ -1,746 +0,0 @@
-http://bugs.gentoo.org/330201
-
-link against libdca and not libdts
-
---- a/configure.in
-+++ b/configure.in
-@@ -51,8 +51,8 @@
- external_ffmpeg_disabled="== Use of external ffmpeg disabled. =="
- external_liba52_enabled="== Use of external liba52 enabled. =="
- external_liba52_disabled="== Use of external liba52 disabled. =="
--external_libdts_enabled="== Use of external libdts enabled. =="
--external_libdts_disabled="== Use of external libdts disabled. =="
-+external_libdca_enabled="== Use of external libdca enabled. =="
-+external_libdca_disabled="== Use of external libdca disabled. =="
- external_libmpeg2_enabled="== Use of external libmpeg2 enabled. =="
- external_libmpeg2_disabled="== Use of external libmpeg2 disabled. =="
- external_libass_enabled="== Use of external libass enabled. =="
-@@ -201,11 +201,11 @@
- [use_external_liba52=$enableval],
- [use_external_liba52=no])
-
--AC_ARG_ENABLE([external-libdts],
-- [AS_HELP_STRING([--enable-external-libdts],
-- [enable use of external libdts library (default is no) 'Linux only'])],
-- [use_external_libdts=$enableval],
-- [use_external_libdts=no])
-+AC_ARG_ENABLE([external-libdca],
-+ [AS_HELP_STRING([--enable-external-libdca],
-+ [enable use of external libdca library (default is no) 'Linux only'])],
-+ [use_external_libdca=$enableval],
-+ [use_external_libdca=no])
-
- AC_ARG_ENABLE([external-libmpeg2],
- [AS_HELP_STRING([--enable-external-libmpeg2],
-@@ -557,16 +557,16 @@
- USE_EXTERNAL_LIBA52=0
- fi
-
--# External libdts
--if test "$use_external_libraries" = "yes" || test "$use_external_libdts" = "yes"; then
-- AC_CHECK_LIB([dts], [main],, AC_MSG_ERROR($missing_library))
-+# External libdca
-+if test "$use_external_libraries" = "yes" || test "$use_external_libdca" = "yes"; then
-+ AC_CHECK_LIB([dca], [main],, AC_MSG_ERROR($missing_library))
-
-- AC_MSG_NOTICE($external_libdts_enabled)
-- USE_EXTERNAL_LIBDTS=1
-- AC_DEFINE([USE_EXTERNAL_LIBDTS], [1], [Whether to use external libdts library.])
-+ AC_MSG_NOTICE($external_libdca_enabled)
-+ USE_EXTERNAL_LIBDCA=1
-+ AC_DEFINE([USE_EXTERNAL_LIBDCA], [1], [Whether to use external libdca library.])
- else
-- AC_MSG_NOTICE($external_libdts_disabled)
-- USE_EXTERNAL_LIBDTS=0
-+ AC_MSG_NOTICE($external_libdca_disabled)
-+ USE_EXTERNAL_LIBDCA=0
- fi
-
- # External libmpeg2
-@@ -933,10 +933,10 @@
- else
- final_message="$final_message\n External liba52:\tNo"
- fi
-- if test "$use_external_libdts" = "yes"; then
-- final_message="$final_message\n External libdts:\tYes"
-+ if test "$use_external_libdca" = "yes"; then
-+ final_message="$final_message\n External libdca:\tYes"
- else
-- final_message="$final_message\n External libdts:\tNo"
-+ final_message="$final_message\n External libdca:\tNo"
- fi
- if test "$use_external_libmpeg2" = "yes"; then
- final_message="$final_message\n External libmpeg2:\tYes"
-@@ -1027,7 +1027,7 @@
- AC_SUBST(USE_EXTERNAL_LIBRARIES)
- AC_SUBST(USE_EXTERNAL_FFMPEG)
- AC_SUBST(USE_EXTERNAL_LIBA52)
--AC_SUBST(USE_EXTERNAL_LIBDTS)
-+AC_SUBST(USE_EXTERNAL_LIBDCA)
- AC_SUBST(USE_EXTERNAL_LIBMPEG2)
- AC_SUBST(USE_EXTERNAL_LIBASS)
- AC_SUBST(USE_EXTERNAL_LIBVORBIS)
-@@ -1188,7 +1188,7 @@
- fi
- ], [$USE_EXTERNAL_FFMPEG])
-
--XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdts], [
-+XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdca], [
- if test "$host_vendor" = "apple" ; then
- CFLAGS="-fPIC -fno-common -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" \
- LDFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" \
-@@ -1205,7 +1205,7 @@
- --disable-win \
- CFLAGS="-fPIC"
- fi
--], [$USE_EXTERNAL_LIBDTS])
-+], [$USE_EXTERNAL_LIBDCA])
-
- XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libdvd/libdvdcss], [
- if test "$host_vendor" = "apple" ; then
---- a/xbmc/cores/dvdplayer/Codecs/Makefile.in
-+++ b/xbmc/cores/dvdplayer/Codecs/Makefile.in
-@@ -13,5 +13,5 @@
- DIRS+=liba52
- endif
--ifneq (@USE_EXTERNAL_LIBDTS@,1)
-+ifneq (@USE_EXTERNAL_LIBDCA@,1)
- DIRS+=libdts
- endif
-@@ -32,5 +32,5 @@
- libao-$(ARCH).so
- endif
--ifneq (@USE_EXTERNAL_LIBDTS@,1)
-+ifneq (@USE_EXTERNAL_LIBDCA@,1)
- LIBS+=libdts-$(ARCH).so
- endif
---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DllLibDts.h
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DllLibDts.h
-@@ -25,6 +25,6 @@
- #endif
- extern "C" {
--#if (defined USE_EXTERNAL_LIBDTS)
-- #include <dts.h>
-+#if (defined USE_EXTERNAL_LIBDCA)
-+ #include <dca.h>
- #else
- #include "libdts/dts.h"
-@@ -40,5 +40,5 @@
- typedef __int16 int16_t;
- #endif
--#ifdef LIBDTS_DOUBLE
-+#ifdef LIBDCA_DOUBLE
- typedef float convert_t;
- #else
-@@ -51,36 +51,36 @@
- public:
- virtual ~DllLibDtsInterface() {}
-- virtual dts_state_t * dts_init (uint32_t mm_accel)=0;
-- virtual int dts_syncinfo (dts_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)=0;
-- virtual int dts_frame (dts_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)=0;
-- virtual void dts_dynrng (dts_state_t * state, level_t (* call) (level_t, void *), void * data)=0;
-- virtual int dts_blocks_num (dts_state_t * state)=0;
-- virtual int dts_block (dts_state_t * state)=0;
-- virtual sample_t * dts_samples (dts_state_t * state)=0;
-- virtual void dts_free (dts_state_t * state)=0;
-+ virtual dca_state_t * dca_init (uint32_t mm_accel)=0;
-+ virtual int dca_syncinfo (dca_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)=0;
-+ virtual int dca_frame (dca_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)=0;
-+ virtual void dca_dynrng (dca_state_t * state, level_t (* call) (level_t, void *), void * data)=0;
-+ virtual int dca_blocks_num (dca_state_t * state)=0;
-+ virtual int dca_block (dca_state_t * state)=0;
-+ virtual sample_t * dca_samples (dca_state_t * state)=0;
-+ virtual void dca_free (dca_state_t * state)=0;
- };
-
--#if (defined USE_EXTERNAL_LIBDTS)
-+#if (defined USE_EXTERNAL_LIBDCA)
-
- class DllLibDts : public DllDynamic, DllLibDtsInterface
- {
- public:
- virtual ~DllLibDts() {}
-- virtual dts_state_t * dts_init (uint32_t mm_accel)
-- { return ::dts_init (mm_accel); }
-- virtual int dts_syncinfo (dts_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)
-- { return ::dts_syncinfo (state, buf, flags, sample_rate, bit_rate, frame_length); }
-- virtual int dts_frame (dts_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)
-- { return ::dts_frame (state, buf, flags, level, bias); }
-- virtual void dts_dynrng (dts_state_t * state, level_t (* call) (level_t, void *), void * data)
-- { return ::dts_dynrng (state, call, data); }
-- virtual int dts_blocks_num (dts_state_t * state)
-- { return ::dts_blocks_num (state); }
-- virtual int dts_block (dts_state_t * state)
-- { return ::dts_block (state); }
-- virtual sample_t * dts_samples (dts_state_t * state)
-- { return ::dts_samples (state); }
-- virtual void dts_free (dts_state_t * state)
-- { return ::dts_free (state); }
-+ virtual dca_state_t * dca_init (uint32_t mm_accel)
-+ { return ::dca_init (mm_accel); }
-+ virtual int dca_syncinfo (dca_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)
-+ { return ::dca_syncinfo (state, buf, flags, sample_rate, bit_rate, frame_length); }
-+ virtual int dca_frame (dca_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)
-+ { return ::dca_frame (state, buf, flags, level, bias); }
-+ virtual void dca_dynrng (dca_state_t * state, level_t (* call) (level_t, void *), void * data)
-+ { return ::dca_dynrng (state, call, data); }
-+ virtual int dca_blocks_num (dca_state_t * state)
-+ { return ::dca_blocks_num (state); }
-+ virtual int dca_block (dca_state_t * state)
-+ { return ::dca_block (state); }
-+ virtual sample_t * dca_samples (dca_state_t * state)
-+ { return ::dca_samples (state); }
-+ virtual void dca_free (dca_state_t * state)
-+ { return ::dca_free (state); }
-
- // DLL faking.
---- a/xbmc/cores/paplayer/DllDCACodec.h
-+++ b/xbmc/cores/paplayer/DllDCACodec.h
-@@ -25,6 +25,6 @@
- #endif
- extern "C" {
--#if (defined USE_EXTERNAL_LIBDTS)
-- #include <dts.h>
-+#if (defined USE_EXTERNAL_LIBDCA)
-+ #include <dca.h>
- #else
- #include "../dvdplayer/DVDCodecs/Audio/libdts/dts.h"
-@@ -43,52 +43,52 @@
- #endif
-
--#ifdef LIBDTS_DOUBLE
-+#ifdef LIBDCA_DOUBLE
- typedef float convert_t;
- #else
- typedef sample_t convert_t;
- #endif
-
-
- class DllDCACodecInterface
- {
- public:
- virtual ~DllDCACodecInterface() {}
-- virtual dts_state_t * dts_init (uint32_t mm_accel)=0;
-- virtual int dts_syncinfo (dts_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)=0;
-- virtual int dts_frame (dts_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)=0;
-- virtual void dts_dynrng (dts_state_t * state, level_t (* call) (level_t, void *), void * data)=0;
-- virtual int dts_blocks_num (dts_state_t * state)=0;
-- virtual int dts_block (dts_state_t * state)=0;
-- virtual sample_t * dts_samples (dts_state_t * state)=0;
-- virtual void dts_free (dts_state_t * state)=0;
-+ virtual dca_state_t * dca_init (uint32_t mm_accel)=0;
-+ virtual int dca_syncinfo (dca_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)=0;
-+ virtual int dca_frame (dca_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)=0;
-+ virtual void dca_dynrng (dca_state_t * state, level_t (* call) (level_t, void *), void * data)=0;
-+ virtual int dca_blocks_num (dca_state_t * state)=0;
-+ virtual int dca_block (dca_state_t * state)=0;
-+ virtual sample_t * dca_samples (dca_state_t * state)=0;
-+ virtual void dca_free (dca_state_t * state)=0;
- };
-
--#if (defined USE_EXTERNAL_LIBDTS)
-+#if (defined USE_EXTERNAL_LIBDCA)
-
- class DllDCACodec : public DllDynamic, DllDCACodecInterface
- {
- public:
- virtual ~DllDCACodec() {}
-- virtual dts_state_t * dts_init (uint32_t mm_accel)
-- { return ::dts_init (mm_accel); }
-- virtual int dts_syncinfo (dts_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)
-- { return ::dts_syncinfo (state, buf, flags, sample_rate, bit_rate, frame_length); }
-- virtual int dts_frame (dts_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)
-- { return ::dts_frame (state, buf, flags, level, bias); }
-- virtual void dts_dynrng (dts_state_t * state, level_t (* call) (level_t, void *), void * data)
-- { return ::dts_dynrng (state, call, data); }
-- virtual int dts_blocks_num (dts_state_t * state)
-- { return ::dts_blocks_num (state); }
-- virtual int dts_block (dts_state_t * state)
-- { return ::dts_block (state); }
-- virtual sample_t * dts_samples (dts_state_t * state)
-- { return ::dts_samples (state); }
-- virtual void dts_free (dts_state_t * state)
-- { return ::dts_free (state); }
-+ virtual dca_state_t * dca_init (uint32_t mm_accel)
-+ { return ::dca_init (mm_accel); }
-+ virtual int dca_syncinfo (dca_state_t *state, uint8_t * buf, int * flags, int * sample_rate, int * bit_rate, int *frame_length)
-+ { return ::dca_syncinfo (state, buf, flags, sample_rate, bit_rate, frame_length); }
-+ virtual int dca_frame (dca_state_t * state, uint8_t * buf, int * flags, level_t * level, sample_t bias)
-+ { return ::dca_frame (state, buf, flags, level, bias); }
-+ virtual void dca_dynrng (dca_state_t * state, level_t (* call) (level_t, void *), void * data)
-+ { return ::dca_dynrng (state, call, data); }
-+ virtual int dca_blocks_num (dca_state_t * state)
-+ { return ::dca_blocks_num (state); }
-+ virtual int dca_block (dca_state_t * state)
-+ { return ::dca_block (state); }
-+ virtual sample_t * dca_samples (dca_state_t * state)
-+ { return ::dca_samples (state); }
-+ virtual void dca_free (dca_state_t * state)
-+ { return ::dca_free (state); }
-
- // DLL faking.
- virtual bool ResolveExports() { return true; }
- virtual bool Load() {
-- CLog::Log(LOGDEBUG, "DllDCACodec: Using libdts system library");
-+ CLog::Log(LOGDEBUG, "DllDCACodec: Using libdca system library");
- return true;
- }
---- a/xbmc/cores/paplayer/DTSCodec.h
-+++ a/xbmc/cores/paplayer/DTSCodec.h
-@@ -57,5 +57,5 @@
- static void convert2s16_multi(convert_t * _f, int16_t * s16, int flags);
-
-- dts_state_t* m_pState;
-+ dca_state_t* m_pState;
-
- BYTE m_inputBuffer[12288];
---- a/xbmc/cores/paplayer/DTSCodec.cpp
-+++ a/xbmc/cores/paplayer/DTSCodec.cpp
-@@ -82,23 +82,23 @@
- switch (flags)
- {
-- case DTS_MONO: //MON 2
-+ case DCA_MONO: //MON 2
- for (i = 0; i < 256; i++)
- {
- s16[2*i] = s16[2*i+1] = convert (f[i]);
- }
- break;
-- case DTS_CHANNEL: //L R 2
-- case DTS_STEREO:
-- case DTS_STEREO_TOTAL:
-+ case DCA_CHANNEL: //L R 2
-+ case DCA_STEREO:
-+ case DCA_STEREO_TOTAL:
- convert2s16_2 (_f, s16);
- break;
-- case DTS_STEREO_SUMDIFF: //L+R L-R 2
-+ case DCA_STEREO_SUMDIFF: //L+R L-R 2
- for (i = 0; i < 256; i++)
- {
- s16[2*i] = convert (f[i])/2 + convert (f[i+256])/2;
- s16[2*i+1] = convert (f[i])/2 - convert (f[i+256])/2;
- }
- break;
-- case DTS_3F: //C L R 5
-+ case DCA_3F: //C L R 5
- for (i = 0; i < 256; i++)
- {
-@@ -109,5 +109,5 @@
- }
- break;
-- case DTS_2F1R: //L R S 4
-+ case DCA_2F1R: //L R S 4
- for (i = 0; i < 256; i++)
- {
-@@ -117,5 +117,5 @@
- }
- break;
-- case DTS_3F1R: //C L R S 5
-+ case DCA_3F1R: //C L R S 5
- for (i = 0; i < 256; i++)
- {
-@@ -126,11 +126,11 @@
- }
- break;
-- case DTS_2F2R: //L R SL SR 4
-+ case DCA_2F2R: //L R SL SR 4
- convert2s16_4 (_f, s16);
- break;
-- case DTS_3F2R: //C L R SL SR 5
-+ case DCA_3F2R: //C L R SL SR 5
- convert2s16_5 (_f, s16);
- break;
-- case DTS_MONO | DTS_LFE: //MON LFE 6
-+ case DCA_MONO | DCA_LFE: //MON LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -140,7 +140,7 @@
- }
- break;
-- case DTS_CHANNEL | DTS_LFE:
-- case DTS_STEREO | DTS_LFE:
-- case DTS_STEREO_TOTAL | DTS_LFE: //L R LFE 6
-+ case DCA_CHANNEL | DCA_LFE:
-+ case DCA_STEREO | DCA_LFE:
-+ case DCA_STEREO_TOTAL | DCA_LFE: //L R LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -151,5 +151,5 @@
- }
- break;
-- case DTS_STEREO_SUMDIFF | DTS_LFE: //L+R L-R LFE 6
-+ case DCA_STEREO_SUMDIFF | DCA_LFE: //L+R L-R LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -160,5 +160,5 @@
- }
- break;
-- case DTS_3F | DTS_LFE: //C L R LFE 6
-+ case DCA_3F | DCA_LFE: //C L R LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -170,5 +170,5 @@
- }
- break;
-- case DTS_2F1R | DTS_LFE: //L R S LFE 6
-+ case DCA_2F1R | DCA_LFE: //L R S LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -180,5 +180,5 @@
- }
- break;
-- case DTS_3F1R | DTS_LFE: //C L R S LFE 6
-+ case DCA_3F1R | DCA_LFE: //C L R S LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -190,5 +190,5 @@
- }
- break;
-- case DTS_2F2R | DTS_LFE: //L R SL SR LFE 6
-+ case DCA_2F2R | DCA_LFE: //L R SL SR LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -201,5 +201,5 @@
- }
- break;
-- case DTS_3F2R | DTS_LFE: //C L R SL SR LFE 6
-+ case DCA_3F2R | DCA_LFE: //C L R SL SR LFE 6
- for (i = 0; i < 256; i++)
- {
-@@ -241,5 +241,5 @@
- {
- m_IsInitialized = false;
-- if (m_pState) m_dll.dts_free(m_pState);
-+ if (m_pState) m_dll.dca_free(m_pState);
- m_pState = NULL;
-
-@@ -306,5 +306,5 @@
- SetDefault();
-
-- m_pState = m_dll.dts_init(0);
-+ m_pState = m_dll.dca_init(0);
- if (!m_pState)
- return false;
-@@ -351,20 +351,20 @@
- int iChannels = 0;
-
-- switch (iFlags & DTS_CHANNEL_MASK)
-+ switch (iFlags & DCA_CHANNEL_MASK)
- {
-- case DTS_MONO: iChannels = 1; break;
-- case DTS_CHANNEL: iChannels = 1; break; // ???
-- case DTS_STEREO: iChannels = 2; break;
-- case DTS_STEREO_SUMDIFF: iChannels = 2; break;
-- case DTS_STEREO_TOTAL: iChannels = 2; break;
-- case DTS_3F: iChannels = 3; break;
-- case DTS_2F1R: iChannels = 3; break;
-- case DTS_3F1R: iChannels = 4; break;
-- case DTS_2F2R: iChannels = 4; break;
-- case DTS_3F2R: iChannels = 5; break;
-- case DTS_4F2R: iChannels = 6; break;
-+ case DCA_MONO: iChannels = 1; break;
-+ case DCA_CHANNEL: iChannels = 1; break; // ???
-+ case DCA_STEREO: iChannels = 2; break;
-+ case DCA_STEREO_SUMDIFF: iChannels = 2; break;
-+ case DCA_STEREO_TOTAL: iChannels = 2; break;
-+ case DCA_3F: iChannels = 3; break;
-+ case DCA_2F1R: iChannels = 3; break;
-+ case DCA_3F1R: iChannels = 4; break;
-+ case DCA_2F2R: iChannels = 4; break;
-+ case DCA_3F2R: iChannels = 5; break;
-+ case DCA_4F2R: iChannels = 6; break;
- default: iChannels = 0; break;
- }
-- if (iFlags & DTS_LFE) iChannels++;
-+ if (iFlags & DCA_LFE) iChannels++;
-
- return iChannels;
-@@ -447,8 +447,8 @@
- {
- // it's possible that m_inputBuffer already contains 6 bits from our previous run
-- // so use m_pInputBuffer to copy the rest of the data. We must rest it after dts_syncinfo though!!
-+ // so use m_pInputBuffer to copy the rest of the data. We must rest it after dca_syncinfo though!!
- for (int u = 0; u < HEADER_SIZE; u++) m_pInputBuffer[u] = pData[u];
-
-- iLen = m_dll.dts_syncinfo(m_pState, m_inputBuffer, &m_iFlags, &m_iSourceSampleRate, &m_iSourceBitrate, &m_iFrameSize);
-+ iLen = m_dll.dca_syncinfo(m_pState, m_inputBuffer, &m_iFlags, &m_iSourceSampleRate, &m_iSourceBitrate, &m_iFrameSize);
- if (iLen > 0)
- {
-@@ -505,19 +505,19 @@
- //m_iOutputChannels = 2;
- int iFlags = m_iFlags;
-- if (m_iOutputChannels == 1) iFlags = DTS_MONO;
-- else if (m_iOutputChannels == 2) iFlags = DTS_STEREO;
-+ if (m_iOutputChannels == 1) iFlags = DCA_MONO;
-+ else if (m_iOutputChannels == 2) iFlags = DCA_STEREO;
- else
- {
- m_iOutputChannels = m_iSourceChannels;
-- iFlags |= DTS_ADJUST_LEVEL;
-+ iFlags |= DCA_ADJUST_LEVEL;
- }
-
-- m_dll.dts_frame(m_pState, m_inputBuffer, &iFlags, &level, bias);
-+ m_dll.dca_frame(m_pState, m_inputBuffer, &iFlags, &level, bias);
-
-- // [dts_dynrng (state, ...); this is only optional]
-- int iNrOfBlocks = m_dll.dts_blocks_num(m_pState);
-+ // [dca_dynrng (state, ...); this is only optional]
-+ int iNrOfBlocks = m_dll.dca_blocks_num(m_pState);
- for (int i = 0; i < iNrOfBlocks; i++)
- {
-- if (m_dll.dts_block(m_pState) != 0)
-+ if (m_dll.dca_block(m_pState) != 0)
- {
- CLog::Log(LOGDEBUG, "Not a valid DTS frame");
-@@ -527,6 +527,6 @@
- return (pData - pOldDataPointer);
- }
-- m_fSamples = m_dll.dts_samples(m_pState);
-- convert2s16_multi(m_fSamples, (short*)(m_decodedData + m_decodedDataSize), iFlags & (DTS_CHANNEL_MASK | DTS_LFE));
-+ m_fSamples = m_dll.dca_samples(m_pState);
-+ convert2s16_multi(m_fSamples, (short*)(m_decodedData + m_decodedDataSize), iFlags & (DCA_CHANNEL_MASK | DCA_LFE));
- m_decodedDataSize += 256 * sizeof(short) * m_iOutputChannels;
- }
---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibDts.h
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibDts.h
-@@ -49,5 +49,5 @@
- static void convert2s16_multi(convert_t * _f, int16_t * s16, int flags);
-
-- dts_state_t* m_pState;
-+ dca_state_t* m_pState;
-
- int m_iFrameSize;
---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.h
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.h
-@@ -69,5 +69,5 @@
- DllLiba52 m_dllA52;
-
-- dts_state_t* m_pStateDTS;
-+ dca_state_t* m_pStateDTS;
- a52_state_t* m_pStateA52;
- };
---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibDts.cpp
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibDts.cpp
-@@ -29,5 +29,5 @@
- static inline int16_t convert(int32_t i)
- {
--#ifdef LIBDTS_FIXED
-+#ifdef LIBDCA_FIXED
- i >>= 15;
- #else
-@@ -44,21 +44,21 @@
- switch (flags)
- {
-- case DTS_MONO:
-+ case DCA_MONO:
- for (i = 0; i < 256; i++)
- {
- s16[2*i ] = convert (f[i]);
- s16[2*i+1] = convert (f[i]);
- }
- break;
-- case DTS_CHANNEL:
-- case DTS_STEREO:
-- case DTS_DOLBY:
-+ case DCA_CHANNEL:
-+ case DCA_STEREO:
-+ case DCA_DOLBY:
- for (i = 0; i < 256; i++)
- {
- s16[2*i ] = convert (f[i]);
- s16[2*i+1] = convert (f[i+256]);
- }
- break;
-- case DTS_3F:
-+ case DCA_3F:
- for (i = 0; i < 256; i++)
- {
-@@ -71,5 +71,5 @@
- }
- break;
-- case DTS_2F2R:
-+ case DCA_2F2R:
- for (i = 0; i < 256; i++)
- {
-@@ -80,5 +80,5 @@
- }
- break;
-- case DTS_3F2R:
-+ case DCA_3F2R:
- for (i = 0; i < 256; i++)
- {
-@@ -91,5 +91,5 @@
- }
- break;
-- case DTS_MONO | DTS_LFE:
-+ case DCA_MONO | DCA_LFE:
- for (i = 0; i < 256; i++)
- {
-@@ -99,7 +99,7 @@
- }
- break;
-- case DTS_CHANNEL | DTS_LFE:
-- case DTS_STEREO | DTS_LFE:
-- case DTS_DOLBY | DTS_LFE:
-+ case DCA_CHANNEL | DCA_LFE:
-+ case DCA_STEREO | DCA_LFE:
-+ case DCA_DOLBY | DCA_LFE:
- for (i = 0; i < 256; i++)
- {
-@@ -110,5 +110,5 @@
- }
- break;
-- case DTS_3F | DTS_LFE:
-+ case DCA_3F | DCA_LFE:
- for (i = 0; i < 256; i++)
- {
-@@ -120,5 +120,5 @@
- }
- break;
-- case DTS_2F2R | DTS_LFE:
-+ case DCA_2F2R | DCA_LFE:
- for (i = 0; i < 256; i++)
- {
-@@ -131,5 +131,5 @@
- }
- break;
-- case DTS_3F2R | DTS_LFE:
-+ case DCA_3F2R | DCA_LFE:
- for (i = 0; i < 256; i++)
- {
-@@ -163,12 +163,12 @@
- SetDefault();
-
-- m_pState = m_dll.dts_init(0);
-+ m_pState = m_dll.dca_init(0);
- if (!m_pState)
- {
- Dispose();
- return false;
- }
-
-- m_fSamples = m_dll.dts_samples(m_pState);
-+ m_fSamples = m_dll.dca_samples(m_pState);
-
- // Output will be decided once we query the stream.
-@@ -180,15 +180,15 @@
- void CDVDAudioCodecLibDts::Dispose()
- {
-- if (m_pState) m_dll.dts_free(m_pState);
-+ if (m_pState) m_dll.dca_free(m_pState);
- m_pState = NULL;
- }
-
- int CDVDAudioCodecLibDts::GetNrOfChannels(int iFlags)
- {
-- if(iFlags & DTS_LFE)
-+ if(iFlags & DCA_LFE)
- return 6;
-- if(iFlags & DTS_CHANNEL)
-+ if(iFlags & DCA_CHANNEL)
- return 6;
-- else if ((iFlags & DTS_CHANNEL_MASK) == DTS_2F2R)
-+ else if ((iFlags & DCA_CHANNEL_MASK) == DCA_2F2R)
- return 4;
- else
-@@ -206,11 +206,11 @@
-
- if (m_iOutputChannels == 1)
-- m_iOutputFlags = DTS_MONO;
-+ m_iOutputFlags = DCA_MONO;
- else if (m_iOutputChannels == 2)
-- m_iOutputFlags = DTS_STEREO;
-+ m_iOutputFlags = DCA_STEREO;
- else
- m_iOutputFlags = m_iSourceFlags;
-
-- m_iOutputFlags |= DTS_ADJUST_LEVEL;
-+ m_iOutputFlags |= DCA_ADJUST_LEVEL;
- }
-
-@@ -226,5 +226,5 @@
- {
- // try to sync directly in packet
-- m_iFrameSize = m_dll.dts_syncinfo(m_pState, data, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &framelen);
-+ m_iFrameSize = m_dll.dca_syncinfo(m_pState, data, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &framelen);
-
- if(m_iFrameSize > 0)
-@@ -267,5 +267,5 @@
- while(true)
- {
-- m_iFrameSize = m_dll.dts_syncinfo(m_pState, m_inputBuffer, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &framelen);
-+ m_iFrameSize = m_dll.dca_syncinfo(m_pState, m_inputBuffer, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &framelen);
- if(m_iFrameSize > 0)
- break;
-@@ -317,18 +317,18 @@
- int flags = m_iOutputFlags;
-
-- m_dll.dts_frame(m_pState, frame, &flags, &level, bias);
-+ m_dll.dca_frame(m_pState, frame, &flags, &level, bias);
-
- if (!g_advancedSettings.m_audioApplyDrc)
-- m_dll.dts_dynrng(m_pState, NULL, NULL);
-+ m_dll.dca_dynrng(m_pState, NULL, NULL);
-
-- int blocks = m_dll.dts_blocks_num(m_pState);
-+ int blocks = m_dll.dca_blocks_num(m_pState);
- for (int i = 0; i < blocks; i++)
- {
-- if (m_dll.dts_block(m_pState) != 0)
-+ if (m_dll.dca_block(m_pState) != 0)
- {
-- CLog::Log(LOGERROR, "CDVDAudioCodecLibDts::Decode : dts_block != 0");
-+ CLog::Log(LOGERROR, "CDVDAudioCodecLibDts::Decode : dca_block != 0");
- break;
- }
-- convert2s16_multi(m_fSamples, (int16_t*)(m_decodedData + m_decodedSize), flags & (DTS_CHANNEL_MASK | DTS_LFE));
-+ convert2s16_multi(m_fSamples, (int16_t*)(m_decodedData + m_decodedSize), flags & (DCA_CHANNEL_MASK | DCA_LFE));
- m_decodedSize += 2 * 256 * m_iOutputChannels;
- }
-@@ -358,10 +358,10 @@
- void CDVDAudioCodecLibDts::Reset()
- {
-- if (m_pState) m_dll.dts_free(m_pState);
-+ if (m_pState) m_dll.dca_free(m_pState);
-
- SetDefault();
-
-- m_pState = m_dll.dts_init(0);
-- m_fSamples = m_dll.dts_samples(m_pState);
-+ m_pState = m_dll.dca_init(0);
-+ m_fSamples = m_dll.dca_samples(m_pState);
- }
-
---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
-+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
-@@ -204,5 +204,5 @@
- if (!m_dllDTS.Load())
- return false;
-- m_pStateDTS = m_dllDTS.dts_init(0);
-+ m_pStateDTS = m_dllDTS.dca_init(0);
- if(m_pStateDTS == NULL)
- return false;
-@@ -224,5 +224,5 @@
- if( m_pStateDTS )
- {
-- m_dllDTS.dts_free(m_pStateDTS);
-+ m_dllDTS.dca_free(m_pStateDTS);
- m_pStateDTS = NULL;
- }
-@@ -243,5 +243,5 @@
- m_iFrameSize = m_dllA52.a52_syncinfo(data, &flags, &m_iSourceSampleRate, &m_iSourceBitrate);
- else if(m_Codec == CODEC_ID_DTS)
-- m_iFrameSize = m_dllDTS.dts_syncinfo(m_pStateDTS, data, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &m_iSamplesPerFrame);
-+ m_iFrameSize = m_dllDTS.dca_syncinfo(m_pStateDTS, data, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &m_iSamplesPerFrame);
-
- if(m_iFrameSize > 0)
-@@ -290,6 +290,6 @@
- m_iFrameSize = m_dllA52.a52_syncinfo(m_InputBuffer, &flags, &m_iSourceSampleRate, &m_iSourceBitrate);
- else if(m_Codec == CODEC_ID_DTS)
-- m_iFrameSize = m_dllDTS.dts_syncinfo(m_pStateDTS, m_InputBuffer, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &m_iSamplesPerFrame);
-+ m_iFrameSize = m_dllDTS.dca_syncinfo(m_pStateDTS, m_InputBuffer, &flags, &m_iSourceSampleRate, &m_iSourceBitrate, &m_iSamplesPerFrame);
- if(m_iFrameSize > 0)
- break;
-
diff --git a/media-tv/xbmc/files/xbmc-9.11-libpng14.patch b/media-tv/xbmc/files/xbmc-9.11-libpng14.patch
deleted file mode 100644
index b5af087eb4b4..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-libpng14.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-http://bugs.gentoo.org/319113
-http://repos.archlinux.org/wsvn/community/xbmc/trunk/libpng14.patch
-
-diff -Nur xbmc-9.11.orig/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp xbmc-9.11/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp
---- xbmc-9.11.orig/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2008-07-18 23:40:53.000000000 +0300
-+++ xbmc-9.11/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2010-01-20 21:55:11.000000000 +0200
-@@ -142,9 +142,9 @@
- if (info_ptr->num_trans!=0){ //palette transparency
- if (info_ptr->num_trans==1){
- if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE){
-- info.nBkgndIndex = info_ptr->trans_values.index;
-+ info.nBkgndIndex = info_ptr->trans_color.index;
- } else{
-- info.nBkgndIndex = info_ptr->trans_values.gray>>nshift;
-+ info.nBkgndIndex = info_ptr->trans_color.gray>>nshift;
- }
- }
- if (info_ptr->num_trans>1){
-@@ -152,7 +152,7 @@
- if (pal){
- DWORD ip;
- for (ip=0;ip<min(head.biClrUsed,(unsigned long)info_ptr->num_trans);ip++)
-- pal[ip].rgbReserved=info_ptr->trans[ip];
-+ pal[ip].rgbReserved=info_ptr->trans_alpha[ip];
- for (ip=info_ptr->num_trans;ip<head.biClrUsed;ip++){
- pal[ip].rgbReserved=255;
- }
-@@ -166,9 +166,9 @@
- int num_trans;
- png_color_16 *image_background;
- if (png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, &image_background)){
-- info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_values.red>>nshift);
-- info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_values.green>>nshift);
-- info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_values.blue>>nshift);
-+ info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_color.red>>nshift);
-+ info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_color.green>>nshift);
-+ info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_color.blue>>nshift);
- info.nBkgndColor.rgbReserved = 0;
- info.nBkgndIndex = 0;
- }
-@@ -417,12 +417,12 @@
- if (info.nBkgndIndex >= 0){
- info_ptr->num_trans = 1;
- info_ptr->valid |= PNG_INFO_tRNS;
-- info_ptr->trans = trans;
-- info_ptr->trans_values.index = (BYTE)info.nBkgndIndex;
-- info_ptr->trans_values.red = tc.rgbRed;
-- info_ptr->trans_values.green = tc.rgbGreen;
-- info_ptr->trans_values.blue = tc.rgbBlue;
-- info_ptr->trans_values.gray = info_ptr->trans_values.index;
-+ info_ptr->trans_alpha = trans;
-+ info_ptr->trans_color.index = (BYTE)info.nBkgndIndex;
-+ info_ptr->trans_color.red = tc.rgbRed;
-+ info_ptr->trans_color.green = tc.rgbGreen;
-+ info_ptr->trans_color.blue = tc.rgbBlue;
-+ info_ptr->trans_color.gray = info_ptr->trans_color.index;
-
- // the transparency indexes start from 0 for non grayscale palette
- if (!bGrayScale && head.biClrUsed && info.nBkgndIndex)
-@@ -443,7 +443,7 @@
- trans[ip]=GetPaletteColor((BYTE)ip).rgbReserved;
- info_ptr->num_trans = (WORD)nc;
- info_ptr->valid |= PNG_INFO_tRNS;
-- info_ptr->trans = trans;
-+ info_ptr->trans_alpha = trans;
- }
-
- // copy the palette colors
-diff -Nur xbmc-9.11.orig/xbmc/screensavers/rsxs-0.9/src/pngimage.cc xbmc-9.11/xbmc/screensavers/rsxs-0.9/src/pngimage.cc
---- xbmc-9.11.orig/xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2008-07-30 23:35:38.000000000 +0300
-+++ xbmc-9.11/xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2010-01-20 22:21:01.000000000 +0200
-@@ -65,7 +65,7 @@
- (png_get_color_type(png, pngInfo) == PNG_COLOR_TYPE_GRAY) &&
- png_get_bit_depth(png, pngInfo) < 8
- )
-- png_set_gray_1_2_4_to_8(png);
-+ png_set_expand_gray_1_2_4_to_8(png);
- if (png_get_valid(png, pngInfo, PNG_INFO_tRNS))
- png_set_tRNS_to_alpha(png);
- if (fullColor)
-diff -Nur xbmc-9.11.orig/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c xbmc-9.11/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c
---- xbmc-9.11.orig/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2008-08-04 05:05:51.000000000 +0300
-+++ xbmc-9.11/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2010-01-20 22:16:23.000000000 +0200
-@@ -94,7 +94,7 @@
- png_set_palette_to_rgb (png_ptr);
-
- if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
-- png_set_gray_1_2_4_to_8 (png_ptr);
-+ png_set_expand_gray_1_2_4_to_8 (png_ptr);
- else if (color_type == PNG_COLOR_TYPE_GRAY ||
- color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
- png_set_gray_to_rgb (png_ptr);
diff --git a/media-tv/xbmc/files/xbmc-9.11-shader-upscalers.patch b/media-tv/xbmc/files/xbmc-9.11-shader-upscalers.patch
deleted file mode 100644
index d4feaa47f705..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-shader-upscalers.patch
+++ /dev/null
@@ -1,887 +0,0 @@
-http://bugs.gentoo.org/306661
-
-backport shader based upscalers from svn trunk
-
---- language/English/strings.xml
-+++ language/English/strings.xml
-@@ -1554,16 +1554,17 @@
- <string id="16304">Lanczos2</string>
- <string id="16305">Lanczos3</string>
- <string id="16306">Sinc8</string>
--
- <string id="16307">Bicubic (software)</string>
- <string id="16308">Lanczos (software)</string>
- <string id="16309">Sinc (software)</string>
--
- <string id="16310">(VDPAU)Temporal</string>
- <string id="16311">(VDPAU)Temporal/Spatial</string>
- <string id="16312">(VDPAU)Noise Reduction</string>
- <string id="16313">(VDPAU)Sharpness</string>
- <string id="16314">Inverse Telecine</string>
-+ <string id="16315">Lanczos3 optimized</string>
-+ <string id="16316">Auto</string>
-+
- <string id="17500">Display sleep timeout</string>
-
- <string id="19000">Switch to channel</string>
---- system/shaders/convolution-6x6.glsl
-+++ system/shaders/convolution-6x6.glsl
-@@ -0,0 +1,69 @@
-+uniform sampler2D img;
-+uniform float stepx;
-+uniform float stepy;
-+
-+#if (HAS_FLOAT_TEXTURE)
-+uniform sampler1D kernelTex;
-+
-+vec3 weight(float pos)
-+{
-+ return texture1D(kernelTex, pos).rgb;
-+}
-+#else
-+uniform sampler2D kernelTex;
-+
-+vec3 weight(float pos)
-+{
-+ //row 0 contains the high byte, row 1 contains the low byte
-+ return ((texture2D(kernelTex, vec2(pos, 0.0)) * 256.0 + texture2D(kernelTex, vec2(pos, 1.0)))).rgb / 128.5 - 1.0;
-+}
-+#endif
-+
-+vec3 pixel(float xpos, float ypos)
-+{
-+ return texture2D(img, vec2(xpos, ypos)).rgb;
-+}
-+
-+vec3 line (float ypos, vec3 xpos1, vec3 xpos2, vec3 linetaps1, vec3 linetaps2)
-+{
-+ vec3 pixels;
-+
-+ pixels = pixel(xpos1.r, ypos) * linetaps1.r;
-+ pixels += pixel(xpos1.g, ypos) * linetaps2.r;
-+ pixels += pixel(xpos1.b, ypos) * linetaps1.g;
-+ pixels += pixel(xpos2.r, ypos) * linetaps2.g;
-+ pixels += pixel(xpos2.g, ypos) * linetaps1.b;
-+ pixels += pixel(xpos2.b, ypos) * linetaps2.b;
-+
-+ return pixels;
-+}
-+
-+void main()
-+{
-+ float xf = fract(gl_TexCoord[0].x / stepx);
-+ float yf = fract(gl_TexCoord[0].y / stepy);
-+
-+ vec3 linetaps1 = weight((1.0 - xf) / 2.0);
-+ vec3 linetaps2 = weight((1.0 - xf) / 2.0 + 0.5);
-+ vec3 columntaps1 = weight((1.0 - yf) / 2.0);
-+ vec3 columntaps2 = weight((1.0 - yf) / 2.0 + 0.5);
-+
-+ vec3 xpos1 = vec3(
-+ (-1.5 - xf) * stepx + gl_TexCoord[0].x,
-+ (-0.5 - xf) * stepx + gl_TexCoord[0].x,
-+ ( 0.5 - xf) * stepx + gl_TexCoord[0].x);
-+ vec3 xpos2 = vec3(
-+ ( 1.5 - xf) * stepx + gl_TexCoord[0].x,
-+ ( 2.5 - xf) * stepx + gl_TexCoord[0].x,
-+ ( 3.5 - xf) * stepx + gl_TexCoord[0].x);
-+
-+ gl_FragColor.rgb = line((-1.5 - yf) * stepy + gl_TexCoord[0].y, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.r;
-+ gl_FragColor.rgb += line((-0.5 - yf) * stepy + gl_TexCoord[0].y, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.r;
-+ gl_FragColor.rgb += line(( 0.5 - yf) * stepy + gl_TexCoord[0].y, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.g;
-+ gl_FragColor.rgb += line(( 1.5 - yf) * stepy + gl_TexCoord[0].y, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.g;
-+ gl_FragColor.rgb += line(( 2.5 - yf) * stepy + gl_TexCoord[0].y, xpos1, xpos2, linetaps1, linetaps2) * columntaps1.b;
-+ gl_FragColor.rgb += line(( 3.5 - yf) * stepy + gl_TexCoord[0].y, xpos1, xpos2, linetaps1, linetaps2) * columntaps2.b;
-+
-+ gl_FragColor.a = gl_Color.a;
-+}
-+
---- system/shaders/bicubic.glsl
-+++ system/shaders/bicubic.glsl
-@@ -0,0 +1,47 @@
-+uniform sampler2D img;
-+uniform float stepx;
-+uniform float stepy;
-+uniform sampler2D kernelTex;
-+
-+vec4 cubicFilter(float xValue, vec4 c0, vec4 c1, vec4 c2, vec4 c3)
-+{
-+ vec4 h = texture2D(kernelTex, vec2(xValue, 0.5));
-+ vec4 r = c0 * h.r;
-+ r += c1 * h.g;
-+ r += c2 * h.b;
-+ r += c3 * h.a;
-+ return r;
-+}
-+
-+void main()
-+{
-+ vec2 f = vec2(gl_TexCoord[0].x / stepx , gl_TexCoord[0].y / stepy);
-+ f = fract(f);
-+ vec4 t0 = cubicFilter(f.x,
-+ texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, -stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(0.0, -stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(stepx, -stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, -stepy)));
-+
-+ vec4 t1 = cubicFilter(f.x,
-+ texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, 0.0)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(0.0, 0.0)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(stepx, 0.0)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, 0.0)));
-+
-+ vec4 t2 = cubicFilter(f.x,
-+ texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(0.0, stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(stepx, stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, stepy)));
-+
-+ vec4 t3 = cubicFilter(f.x,
-+ texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, 2.0*stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(0, 2.0*stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(stepx, 2.0*stepy)),
-+ texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, 2.0*stepy)));
-+
-+ gl_FragColor = cubicFilter(f.y, t0, t1, t2, t3);
-+ gl_FragColor.a = gl_Color.a;
-+}
-+
---- system/shaders/convolution-4x4.glsl
-+++ system/shaders/convolution-4x4.glsl
-@@ -0,0 +1,60 @@
-+uniform sampler2D img;
-+uniform float stepx;
-+uniform float stepy;
-+
-+#if (HAS_FLOAT_TEXTURE)
-+uniform sampler1D kernelTex;
-+
-+vec4 weight(float pos)
-+{
-+ return texture1D(kernelTex, pos);
-+}
-+#else
-+uniform sampler2D kernelTex;
-+
-+vec4 weight(float pos)
-+{
-+ //row 0 contains the high byte, row 1 contains the low byte
-+ return (texture2D(kernelTex, vec2(pos, 0.0)) * 256.0 + texture2D(kernelTex, vec2(pos, 1.0))) / 128.5 - 1.0;
-+}
-+#endif
-+
-+vec3 pixel(float xpos, float ypos)
-+{
-+ return texture2D(img, vec2(xpos, ypos)).rgb;
-+}
-+
-+vec3 line (float ypos, vec4 xpos, vec4 linetaps)
-+{
-+ vec3 pixels;
-+
-+ pixels = pixel(xpos.r, ypos) * linetaps.r;
-+ pixels += pixel(xpos.g, ypos) * linetaps.g;
-+ pixels += pixel(xpos.b, ypos) * linetaps.b;
-+ pixels += pixel(xpos.a, ypos) * linetaps.a;
-+
-+ return pixels;
-+}
-+
-+void main()
-+{
-+ float xf = fract(gl_TexCoord[0].x / stepx);
-+ float yf = fract(gl_TexCoord[0].y / stepy);
-+
-+ vec4 linetaps = weight(1.0 - xf);
-+ vec4 columntaps = weight(1.0 - yf);
-+
-+ vec4 xpos = vec4(
-+ (-0.5 - xf) * stepx + gl_TexCoord[0].x,
-+ ( 0.5 - xf) * stepx + gl_TexCoord[0].x,
-+ ( 1.5 - xf) * stepx + gl_TexCoord[0].x,
-+ ( 2.5 - xf) * stepx + gl_TexCoord[0].x);
-+
-+ gl_FragColor.rgb = line((-0.5 - yf) * stepy + gl_TexCoord[0].y, xpos, linetaps) * columntaps.r;
-+ gl_FragColor.rgb += line(( 0.5 - yf) * stepy + gl_TexCoord[0].y, xpos, linetaps) * columntaps.g;
-+ gl_FragColor.rgb += line(( 1.5 - yf) * stepy + gl_TexCoord[0].y, xpos, linetaps) * columntaps.b;
-+ gl_FragColor.rgb += line(( 2.5 - yf) * stepy + gl_TexCoord[0].y, xpos, linetaps) * columntaps.a;
-+
-+ gl_FragColor.a = gl_Color.a;
-+}
-+
---- xbmc/settings/VideoSettings.h
-+++ xbmc/settings/VideoSettings.h
-@@ -51,9 +51,10 @@
- {
- VS_SCALINGMETHOD_NEAREST=0,
- VS_SCALINGMETHOD_LINEAR,
--
-+
- VS_SCALINGMETHOD_CUBIC,
- VS_SCALINGMETHOD_LANCZOS2,
-+ VS_SCALINGMETHOD_LANCZOS3_FAST,
- VS_SCALINGMETHOD_LANCZOS3,
- VS_SCALINGMETHOD_SINC8,
- VS_SCALINGMETHOD_NEDI,
-@@ -61,7 +62,9 @@
- VS_SCALINGMETHOD_BICUBIC_SOFTWARE,
- VS_SCALINGMETHOD_LANCZOS_SOFTWARE,
- VS_SCALINGMETHOD_SINC_SOFTWARE,
-- VS_SCALINGMETHOD_VDPAU_HARDWARE
-+ VS_SCALINGMETHOD_VDPAU_HARDWARE,
-+
-+ VS_SCALINGMETHOD_AUTO
- };
-
- class CVideoSettings
---- xbmc/cores/VideoRenderers/VideoShaders/VideoFilterShader.cpp
-+++ xbmc/cores/VideoRenderers/VideoShaders/VideoFilterShader.cpp
-@@ -21,6 +21,7 @@
- #include "system.h"
- #include "VideoFilterShader.h"
- #include "utils/log.h"
-+#include "ConvolutionKernels.h"
-
- #include <string>
- #include <math.h>
-@@ -63,60 +64,13 @@
-
- BicubicFilterShader::BicubicFilterShader(float B, float C)
- {
-- string shaderf =
-- "uniform sampler2D img;"
-- "uniform float stepx;"
-- "uniform float stepy;"
-- "uniform sampler2D kernelTex;"
--
-- "vec4 cubicFilter(float xValue, vec4 c0, vec4 c1, vec4 c2, vec4 c3)"
-- "{"
-- " vec4 h = texture2D(kernelTex, vec2(xValue, 0.5));"
-- " vec4 r = c0 * h.r;"
-- " r += c1 * h.g;"
-- " r += c2 * h.b;"
-- " r += c3 * h.a;"
-- " return r;"
-- "}"
-- ""
-- "void main()"
-- "{"
-- "vec2 f = vec2(gl_TexCoord[0].x / stepx , gl_TexCoord[0].y / stepy);"
-- "f = fract(f);"
-- "vec4 t0 = cubicFilter(f.x,"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, -stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(0.0, -stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(stepx, -stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, -stepy)));"
-- ""
-- "vec4 t1 = cubicFilter(f.x,"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, 0.0)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(0.0, 0.0)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(stepx, 0.0)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, 0.0)));"
-- ""
-- "vec4 t2 = cubicFilter(f.x,"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(0.0, stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(stepx, stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, stepy)));"
-- ""
-- "vec4 t3 = cubicFilter(f.x,"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(-stepx, 2.0*stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(0, 2.0*stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(stepx, 2.0*stepy)),"
-- "texture2D(img, gl_TexCoord[0].xy + vec2(2.0*stepx, 2.0*stepy)));"
--
-- "gl_FragColor = cubicFilter(f.y, t0, t1, t2, t3) ;"
-- "gl_FragColor.a = gl_Color.a;"
-- "}";
-- PixelShader()->SetSource(shaderf);
-+ PixelShader()->LoadSource("bicubic.glsl");
- m_kernelTex1 = 0;
- m_B = B;
- m_C = C;
-- if (B<=0)
-+ if (B<0)
- m_B=1.0f/3.0f;
-- if (C<=0)
-+ if (C<0)
- m_C=1.0f/3.0f;
- }
-
-@@ -209,8 +163,8 @@
- glBindTexture(GL_TEXTURE_2D, m_kernelTex1);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
-+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, size, 1, 0, GL_RGBA, GL_FLOAT, img);
-
- glActiveTexture(GL_TEXTURE0);
-@@ -254,4 +208,110 @@
- return val;
- }
-
-+ConvolutionFilterShader::ConvolutionFilterShader(ESCALINGMETHOD method)
-+{
-+ m_method = method;
-+ m_kernelTex1 = 0;
-+
-+ string shadername;
-+ string defines;
-+
-+ if (m_method == VS_SCALINGMETHOD_CUBIC ||
-+ m_method == VS_SCALINGMETHOD_LANCZOS2 ||
-+ m_method == VS_SCALINGMETHOD_LANCZOS3_FAST)
-+ shadername = "convolution-4x4.glsl";
-+ else if (m_method == VS_SCALINGMETHOD_LANCZOS3)
-+ shadername = "convolution-6x6.glsl";
-+
-+ m_floattex = glewIsSupported("GL_ARB_texture_float");
-+
-+ if (m_floattex)
-+ defines = "#define HAS_FLOAT_TEXTURE 1\n";
-+ else
-+ defines = "#define HAS_FLOAT_TEXTURE 0\n";
-+
-+ CLog::Log(LOGDEBUG, "GL: ConvolutionFilterShader: using %s defines: %s", shadername.c_str(), defines.c_str());
-+ PixelShader()->LoadSource(shadername, defines);
-+}
-+
-+void ConvolutionFilterShader::OnCompiledAndLinked()
-+{
-+ // obtain shader attribute handles on successfull compilation
-+ m_hSourceTex = glGetUniformLocation(ProgramHandle(), "img");
-+ m_hStepX = glGetUniformLocation(ProgramHandle(), "stepx");
-+ m_hStepY = glGetUniformLocation(ProgramHandle(), "stepy");
-+ m_hKernTex = glGetUniformLocation(ProgramHandle(), "kernelTex");
-+
-+ CConvolutionKernel kernel(m_method, 256);
-+
-+ if (m_kernelTex1)
-+ {
-+ glDeleteTextures(1, &m_kernelTex1);
-+ m_kernelTex1 = 0;
-+ }
-+
-+ glGenTextures(1, &m_kernelTex1);
-+
-+ if ((m_kernelTex1<=0))
-+ {
-+ CLog::Log(LOGERROR, "GL: ConvolutionFilterShader: Error creating kernel texture");
-+ return;
-+ }
-+
-+ glActiveTexture(GL_TEXTURE2);
-+
-+ //if float textures are supported, we can load the kernel as a 1d float texture
-+ //if not, we load it as a 2d texture with 2 rows, where row 0 contains the high byte
-+ //and row 1 contains the low byte, which can be converted in the shader
-+ if (m_floattex)
-+ {
-+ glBindTexture(GL_TEXTURE_1D, m_kernelTex1);
-+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-+ glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-+ glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA16F_ARB, kernel.GetSize(), 0, GL_RGBA, GL_FLOAT, kernel.GetFloatPixels());
-+ }
-+ else
-+ {
-+ glBindTexture(GL_TEXTURE_2D, m_kernelTex1);
-+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, kernel.GetSize(), 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, kernel.GetIntFractPixels());
-+ }
-+
-+ glActiveTexture(GL_TEXTURE0);
-+
-+ VerifyGLState();
-+}
-+
-+bool ConvolutionFilterShader::OnEnabled()
-+{
-+ // set shader attributes once enabled
-+ glActiveTexture(GL_TEXTURE2);
-+
-+ if (m_floattex)
-+ glBindTexture(GL_TEXTURE_1D, m_kernelTex1);
-+ else
-+ glBindTexture(GL_TEXTURE_2D, m_kernelTex1);
-+
-+ glActiveTexture(GL_TEXTURE0);
-+ glUniform1i(m_hSourceTex, m_sourceTexUnit);
-+ glUniform1i(m_hKernTex, 2);
-+ glUniform1f(m_hStepX, m_stepX);
-+ glUniform1f(m_hStepY, m_stepY);
-+ VerifyGLState();
-+ return true;
-+}
-+
-+void ConvolutionFilterShader::Free()
-+{
-+ if (m_kernelTex1)
-+ glDeleteTextures(1, &m_kernelTex1);
-+ m_kernelTex1 = 0;
-+ BaseVideoFilterShader::Free();
-+}
-+
- #endif
---- xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.cpp
-+++ xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.cpp
-@@ -0,0 +1,226 @@
-+/*
-+ * Copyright (C) 2005-2008 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, write to
-+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * http://www.gnu.org/copyleft/gpl.html
-+ *
-+ */
-+#ifdef _WIN32
-+ #define _USE_MATH_DEFINES
-+#endif
-+
-+#include "ConvolutionKernels.h"
-+#include "MathUtils.h"
-+
-+#define SINC(x) (sin(M_PI * (x)) / (M_PI * (x)))
-+
-+CConvolutionKernel::CConvolutionKernel(ESCALINGMETHOD method, int size)
-+{
-+ m_size = size;
-+ m_floatpixels = new float[m_size * 4];
-+
-+ if (method == VS_SCALINGMETHOD_LANCZOS2)
-+ Lanczos2();
-+ else if (method == VS_SCALINGMETHOD_LANCZOS3_FAST)
-+ Lanczos3Fast();
-+ else if (method == VS_SCALINGMETHOD_LANCZOS3)
-+ Lanczos3();
-+ else if (method == VS_SCALINGMETHOD_CUBIC)
-+ Bicubic(1.0 / 3.0, 1.0 / 3.0);
-+
-+ ToIntFract();
-+}
-+
-+CConvolutionKernel::~CConvolutionKernel()
-+{
-+ delete [] m_floatpixels;
-+ delete [] m_intfractpixels;
-+}
-+
-+//generate a lanczos2 kernel which can be loaded with RGBA format
-+//each value of RGBA has one tap, so a shader can load 4 taps with a single pixel lookup
-+void CConvolutionKernel::Lanczos2()
-+{
-+ for (int i = 0; i < m_size; i++)
-+ {
-+ double x = (double)i / (double)m_size;
-+
-+ //generate taps
-+ for (int j = 0; j < 4; j++)
-+ m_floatpixels[i * 4 + j] = (float)LanczosWeight(x + (double)(j - 2), 2.0);
-+
-+ //any collection of 4 taps added together needs to be exactly 1.0
-+ //for lanczos this is not always the case, so we take each collection of 4 taps
-+ //and divide those taps by the sum of the taps
-+ float weight = 0.0;
-+ for (int j = 0; j < 4; j++)
-+ weight += m_floatpixels[i * 4 + j];
-+
-+ for (int j = 0; j < 4; j++)
-+ m_floatpixels[i * 4 + j] /= weight;
-+ }
-+}
-+
-+//generate a lanczos3 kernel which can be loaded with RGBA format
-+//each value of RGBA has one tap, so a shader can load 4 taps with a single pixel lookup
-+//the two outer lobes of the lanczos3 kernel are added to the two lobes one step to the middle
-+//this basically looks the same as lanczos3, but the kernel only has 4 taps,
-+//so it can use the 4x4 convolution shader which is twice as fast as the 6x6 one
-+void CConvolutionKernel::Lanczos3Fast()
-+{
-+ for (int i = 0; i < m_size; i++)
-+ {
-+ double a = 3.0;
-+ double x = (double)i / (double)m_size;
-+
-+ //generate taps
-+ m_floatpixels[i * 4 + 0] = (float)(LanczosWeight(x - 2.0, a) + LanczosWeight(x - 3.0, a));
-+ m_floatpixels[i * 4 + 1] = (float) LanczosWeight(x - 1.0, a);
-+ m_floatpixels[i * 4 + 2] = (float) LanczosWeight(x , a);
-+ m_floatpixels[i * 4 + 3] = (float)(LanczosWeight(x + 1.0, a) + LanczosWeight(x + 2.0, a));
-+
-+ //any collection of 4 taps added together needs to be exactly 1.0
-+ //for lanczos this is not always the case, so we take each collection of 4 taps
-+ //and divide those taps by the sum of the taps
-+ float weight = 0.0;
-+ for (int j = 0; j < 4; j++)
-+ weight += m_floatpixels[i * 4 + j];
-+
-+ for (int j = 0; j < 4; j++)
-+ m_floatpixels[i * 4 + j] /= weight;
-+ }
-+}
-+
-+//generate a lanczos3 kernel which can be loaded with RGBA format
-+//each value of RGB has one tap, so a shader can load 3 taps with a single pixel lookup
-+void CConvolutionKernel::Lanczos3()
-+{
-+ for (int i = 0; i < m_size; i++)
-+ {
-+ double x = (double)i / (double)m_size;
-+
-+ //generate taps
-+ for (int j = 0; j < 3; j++)
-+ m_floatpixels[i * 4 + j] = (float)LanczosWeight(x * 2.0 + (double)(j * 2 - 3), 3.0);
-+
-+ m_floatpixels[i * 4 + 3] = 0.0;
-+ }
-+
-+ //any collection of 6 taps added together needs to be exactly 1.0
-+ //for lanczos this is not always the case, so we take each collection of 6 taps
-+ //and divide those taps by the sum of the taps
-+ for (int i = 0; i < m_size / 2; i++)
-+ {
-+ float weight = 0.0;
-+ for (int j = 0; j < 3; j++)
-+ {
-+ weight += m_floatpixels[i * 4 + j];
-+ weight += m_floatpixels[(i + m_size / 2) * 4 + j];
-+ }
-+ for (int j = 0; j < 3; j++)
-+ {
-+ m_floatpixels[i * 4 + j] /= weight;
-+ m_floatpixels[(i + m_size / 2) * 4 + j] /= weight;
-+ }
-+ }
-+}
-+
-+//generate a bicubic kernel which can be loaded with RGBA format
-+//each value of RGBA has one tap, so a shader can load 4 taps with a single pixel lookup
-+void CConvolutionKernel::Bicubic(double B, double C)
-+{
-+ for (int i = 0; i < m_size; i++)
-+ {
-+ double x = (double)i / (double)m_size;
-+
-+ //generate taps
-+ for (int j = 0; j < 4; j++)
-+ m_floatpixels[i * 4 + j] = (float)BicubicWeight(x + (double)(j - 2), B, C);
-+ }
-+}
-+
-+double CConvolutionKernel::LanczosWeight(double x, double radius)
-+{
-+ double ax = fabs(x);
-+
-+ if (ax == 0.0)
-+ return 1.0;
-+ else if (ax < radius)
-+ return SINC(ax) * SINC(ax / radius);
-+ else
-+ return 0.0;
-+}
-+
-+double CConvolutionKernel::BicubicWeight(double x, double B, double C)
-+{
-+ double ax = fabs(x);
-+
-+ if (ax<1.0)
-+ {
-+ return ((12 - 9*B - 6*C) * ax * ax * ax +
-+ (-18 + 12*B + 6*C) * ax * ax +
-+ (6 - 2*B))/6;
-+ }
-+ else if (ax<2.0)
-+ {
-+ return ((-B - 6*C) * ax * ax * ax +
-+ (6*B + 30*C) * ax * ax + (-12*B - 48*C) *
-+ ax + (8*B + 24*C)) / 6;
-+ }
-+ else
-+ {
-+ return 0.0;
-+ }
-+}
-+
-+
-+//convert float to high byte/low byte, so the kernel can be loaded into an 8 bit texture
-+//with height 2 and converted back to real float in the shader
-+//it only works when the kernel texture uses nearest neighbour, but there's almost no difference
-+//between that and linear interpolation
-+void CConvolutionKernel::ToIntFract()
-+{
-+ m_intfractpixels = new uint8_t[m_size * 8];
-+
-+ for (int i = 0; i < m_size * 4; i++)
-+ {
-+ int value = MathUtils::round_int((m_floatpixels[i] + 1.0) / 2.0 * 65535.0);
-+ if (value < 0)
-+ value = 0;
-+ else if (value > 65535)
-+ value = 65535;
-+
-+ int integer = value / 256;
-+ int fract = value % 256;
-+
-+ m_intfractpixels[i] = (uint8_t)integer;
-+ m_intfractpixels[i + m_size * 4] = (uint8_t)fract;
-+ }
-+
-+#if 0
-+ for (int i = 0; i < 4; i++)
-+ {
-+ for (int j = 0; j < m_size; j++)
-+ {
-+ printf("%i %f %f\n",
-+ i * m_size + j,
-+ ((double)m_intfractpixels[j * 4 + i] + (double)m_intfractpixels[j * 4 + i + m_size * 4] / 255.0) / 255.0 * 2.0 - 1.0,
-+ m_floatpixels[j * 4 + i]);
-+ }
-+ }
-+#endif
-+}
-+
---- xbmc/cores/VideoRenderers/VideoShaders/VideoFilterShader.h
-+++ xbmc/cores/VideoRenderers/VideoShaders/VideoFilterShader.h
-@@ -4,6 +4,7 @@
- #ifdef HAS_GL
-
- #include "../../../../guilib/Shader.h"
-+#include "../../../settings/VideoSettings.h"
-
- using namespace Shaders;
-
-@@ -35,7 +36,7 @@
- class BicubicFilterShader : public BaseVideoFilterShader
- {
- public:
-- BicubicFilterShader(float B=0.0f, float C=0.0f);
-+ BicubicFilterShader(float B=-1.0f, float C=-1.0f);
- void OnCompiledAndLinked();
- bool OnEnabled();
- void Free();
-@@ -55,6 +56,25 @@
- float m_C;
- };
-
-+ class ConvolutionFilterShader : public BaseVideoFilterShader
-+ {
-+ public:
-+ ConvolutionFilterShader(ESCALINGMETHOD method);
-+ void OnCompiledAndLinked();
-+ bool OnEnabled();
-+ void Free();
-+
-+ protected:
-+ // kernel textures
-+ GLuint m_kernelTex1;
-+
-+ // shader handles to kernel textures
-+ GLint m_hKernTex;
-+
-+ ESCALINGMETHOD m_method;
-+ bool m_floattex; //if float textures are supported
-+ };
-+
- } // end namespace
-
- #endif
---- xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.h
-+++ xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.h
-@@ -0,0 +1,55 @@
-+/*
-+ * Copyright (C) 2005-2008 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, write to
-+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-+ * http://www.gnu.org/copyleft/gpl.html
-+ *
-+ */
-+
-+#ifndef CONVOLUTIONKERNELS
-+#define CONVOLUTIONKERNELS
-+
-+#include "system.h"
-+#include "../../../settings/VideoSettings.h"
-+
-+class CConvolutionKernel
-+{
-+ public:
-+ CConvolutionKernel(ESCALINGMETHOD method, int size);
-+ ~CConvolutionKernel();
-+
-+ int GetSize() { return m_size; }
-+ float* GetFloatPixels() { return m_floatpixels; }
-+ uint8_t* GetIntFractPixels() { return m_intfractpixels; }
-+
-+ private:
-+
-+ void Lanczos2();
-+ void Lanczos3Fast();
-+ void Lanczos3();
-+ void Bicubic(double B, double C);
-+
-+ double LanczosWeight(double x, double radius);
-+ double BicubicWeight(double x, double B, double C);
-+
-+ void ToIntFract();
-+
-+ int m_size;
-+ float* m_floatpixels;
-+ uint8_t* m_intfractpixels;
-+};
-+
-+#endif //CONVOLUTIONKERNELS
---- xbmc/cores/VideoRenderers/VideoShaders/Makefile
-+++ xbmc/cores/VideoRenderers/VideoShaders/Makefile
-@@ -1,5 +1,5 @@
- INCLUDES=-I. -I.. -I../../ -I../../../ -I../../../linux -I../../../../guilib
--SRCS=YUV2RGBShader.cpp VideoFilterShader.cpp
-+SRCS=YUV2RGBShader.cpp VideoFilterShader.cpp ConvolutionKernels.cpp
-
- LIB=VideoShaders.a
-
---- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
-+++ xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
-@@ -886,6 +886,19 @@
-
- VerifyGLState();
-
-+ if (m_scalingMethod == VS_SCALINGMETHOD_AUTO)
-+ {
-+ bool scaleSD = (int)m_sourceWidth < m_upscalingWidth && (int)m_sourceHeight < m_upscalingHeight &&
-+ m_sourceHeight < 720 && m_sourceWidth < 1280;
-+
-+ if (Supports(VS_SCALINGMETHOD_VDPAU_HARDWARE))
-+ m_scalingMethod = VS_SCALINGMETHOD_VDPAU_HARDWARE;
-+ else if (Supports(VS_SCALINGMETHOD_LANCZOS3_FAST) && scaleSD)
-+ m_scalingMethod = VS_SCALINGMETHOD_LANCZOS3_FAST;
-+ else
-+ m_scalingMethod = VS_SCALINGMETHOD_LINEAR;
-+ }
-+
- switch (m_scalingMethod)
- {
- case VS_SCALINGMETHOD_NEAREST:
-@@ -898,13 +911,10 @@
- m_renderQuality = RQ_SINGLEPASS;
- return;
-
-+ case VS_SCALINGMETHOD_LANCZOS2:
-+ case VS_SCALINGMETHOD_LANCZOS3_FAST:
-+ case VS_SCALINGMETHOD_LANCZOS3:
- case VS_SCALINGMETHOD_CUBIC:
-- if(!glewIsSupported("GL_ARB_texture_float"))
-- {
-- CLog::Log(LOGERROR, "GL: hardware doesn't support GL_ARB_texture_float");
-- break;
-- }
--
- if (!m_fbo.Initialize())
- {
- CLog::Log(LOGERROR, "GL: Error initializing FBO");
-@@ -917,7 +927,7 @@
- break;
- }
-
-- m_pVideoFilterShader = new BicubicFilterShader(0.3f, 0.3f);
-+ m_pVideoFilterShader = new ConvolutionFilterShader(m_scalingMethod);
- if (!m_pVideoFilterShader->CompileAndLink())
- {
- CLog::Log(LOGERROR, "GL: Error compiling and linking video filter shader");
-@@ -928,8 +938,6 @@
- m_renderQuality = RQ_MULTIPASS;
- return;
-
-- case VS_SCALINGMETHOD_LANCZOS2:
-- case VS_SCALINGMETHOD_LANCZOS3:
- case VS_SCALINGMETHOD_SINC8:
- case VS_SCALINGMETHOD_NEDI:
- CLog::Log(LOGERROR, "GL: TODO: This scaler has not yet been implemented");
-@@ -1895,16 +1903,19 @@
- bool CLinuxRendererGL::Supports(ESCALINGMETHOD method)
- {
- if(method == VS_SCALINGMETHOD_NEAREST
-- || method == VS_SCALINGMETHOD_LINEAR)
-+ || method == VS_SCALINGMETHOD_LINEAR
-+ || method == VS_SCALINGMETHOD_AUTO)
- return true;
-
--
-- if(method == VS_SCALINGMETHOD_CUBIC
-- && glewIsSupported("GL_ARB_texture_float")
-- && glewIsSupported("GL_EXT_framebuffer_object")
-- && m_renderMethod == RENDER_GLSL)
-- return true;
--
-+ if(method == VS_SCALINGMETHOD_CUBIC
-+ || method == VS_SCALINGMETHOD_LANCZOS2
-+ || method == VS_SCALINGMETHOD_LANCZOS3_FAST
-+ || method == VS_SCALINGMETHOD_LANCZOS3)
-+ {
-+ if (glewIsSupported("GL_EXT_framebuffer_object") && (m_renderMethod & RENDER_GLSL))
-+ return true;
-+ }
-+
- if (g_advancedSettings.m_videoHighQualityScaling != SOFTWARE_UPSCALING_DISABLED)
- {
- if(method == VS_SCALINGMETHOD_BICUBIC_SOFTWARE
---- xbmc/GUIDialogVideoSettings.cpp
-+++ xbmc/GUIDialogVideoSettings.cpp
-@@ -103,6 +103,7 @@
- entries.push_back(make_pair(VS_SCALINGMETHOD_LINEAR , 16302));
- entries.push_back(make_pair(VS_SCALINGMETHOD_CUBIC , 16303));
- entries.push_back(make_pair(VS_SCALINGMETHOD_LANCZOS2 , 16304));
-+ entries.push_back(make_pair(VS_SCALINGMETHOD_LANCZOS3_FAST , 16315));
- entries.push_back(make_pair(VS_SCALINGMETHOD_LANCZOS3 , 16305));
- entries.push_back(make_pair(VS_SCALINGMETHOD_SINC8 , 16306));
- // entries.push_back(make_pair(VS_SCALINGMETHOD_NEDI , ?????));
-@@ -110,6 +111,7 @@
- entries.push_back(make_pair(VS_SCALINGMETHOD_LANCZOS_SOFTWARE , 16308));
- entries.push_back(make_pair(VS_SCALINGMETHOD_SINC_SOFTWARE , 16309));
- entries.push_back(make_pair(VS_SCALINGMETHOD_VDPAU_HARDWARE , 13120));
-+ entries.push_back(make_pair(VS_SCALINGMETHOD_AUTO , 16316));
-
- /* remove unsupported methods */
- for(vector<pair<int, int> >::iterator it = entries.begin(); it != entries.end();)
---- xbmc/Settings.cpp
-+++ xbmc/Settings.cpp
-@@ -772,7 +772,7 @@
- GetInteger(pElement, "interlacemethod", interlaceMethod, VS_INTERLACEMETHOD_NONE, VS_INTERLACEMETHOD_NONE, VS_INTERLACEMETHOD_INVERSE_TELECINE);
- m_stSettings.m_defaultVideoSettings.m_InterlaceMethod = (EINTERLACEMETHOD)interlaceMethod;
- int scalingMethod;
-- GetInteger(pElement, "scalingmethod", scalingMethod, VS_SCALINGMETHOD_LINEAR, VS_SCALINGMETHOD_NEAREST, VS_SCALINGMETHOD_CUBIC);
-+ GetInteger(pElement, "scalingmethod", scalingMethod, VS_SCALINGMETHOD_LINEAR, VS_SCALINGMETHOD_NEAREST, VS_SCALINGMETHOD_AUTO);
- m_stSettings.m_defaultVideoSettings.m_ScalingMethod = (ESCALINGMETHOD)scalingMethod;
-
- GetInteger(pElement, "viewmode", m_stSettings.m_defaultVideoSettings.m_ViewMode, VIEW_MODE_NORMAL, VIEW_MODE_NORMAL, VIEW_MODE_CUSTOM);
diff --git a/media-tv/xbmc/files/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch b/media-tv/xbmc/files/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch
deleted file mode 100644
index 345d91159b43..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
-index 9097519..9b6418d 100644
---- a/xbmc/Application.cpp
-+++ b/xbmc/Application.cpp
-@@ -236,7 +236,11 @@
- #endif
-
- #ifdef HAS_DVD_DRIVE
-+#ifdef _WIN32
- #include "lib/libcdio/logging.h"
-+#else
-+#include <cdio/logging.h>
-+#endif
- #endif
-
- #ifdef HAS_HAL
-diff --git a/xbmc/FileSystem/Makefile b/xbmc/FileSystem/Makefile
-index 782d57a..1e524ed 100644
---- a/xbmc/FileSystem/Makefile
-+++ b/xbmc/FileSystem/Makefile
-@@ -1,5 +1,4 @@
- INCLUDES=-I. -I../ -I../cores -I../linux -I../../guilib -I../lib/UnrarXLib -I../utils -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
--INCLUDES+=-I../lib/libcdio/libcdio/include
-
- CXXFLAGS+=-D__STDC_FORMAT_MACROS \
-
-diff --git a/xbmc/FileSystem/cdioSupport.cpp b/xbmc/FileSystem/cdioSupport.cpp
-index 00e5fdd..21a0b67 100644
---- a/xbmc/FileSystem/cdioSupport.cpp
-+++ b/xbmc/FileSystem/cdioSupport.cpp
-@@ -26,7 +26,7 @@
- #include "cdioSupport.h"
- #include "utils/SingleLock.h"
- #include "utils/log.h"
--#ifndef _LINUX
-+#ifdef _WIN32
- #include "lib/libcdio/logging.h"
- #include "lib/libcdio/util.h"
- #include "lib/libcdio/mmc.h"
-diff --git a/xbmc/FileSystem/iso9660.cpp b/xbmc/FileSystem/iso9660.cpp
-index 6e1633f..58fbc50 100644
---- a/xbmc/FileSystem/iso9660.cpp
-+++ b/xbmc/FileSystem/iso9660.cpp
-@@ -44,7 +44,7 @@ ISO9660
- #include "utils/CharsetConverter.h"
-
- #include "DetectDVDType.h" // for MODE2_DATA_SIZE etc.
--#ifdef _LINUX
-+#ifndef _WIN32
- #include <cdio/bytesex.h>
- #else
- #include "lib/libcdio/bytesex.h" // for from_723 & from_733
-diff --git a/xbmc/Makefile b/xbmc/Makefile
-index abfbdcb..f55381a 100644
---- a/xbmc/Makefile
-+++ b/xbmc/Makefile
-@@ -8,8 +8,6 @@ INCLUDES+=-Ilib/libUPnP/Platinum/Source/Core \
- -Ilib/libUPnP/Neptune/Source/System/Posix \
- -Ilib/libUPnP/Neptune/Source/Core
-
--INCLUDES+=-Ilib/libcdio/libcdio/include
--
- SRCS=Application.cpp \
- CueDocument.cpp \
- GUISettings.cpp \
-diff --git a/xbmc/cdrip/CDDAReader.cpp b/xbmc/cdrip/CDDAReader.cpp
-index c8b37b2..e3e9c0b 100644
---- a/xbmc/cdrip/CDDAReader.cpp
-+++ b/xbmc/cdrip/CDDAReader.cpp
-@@ -24,7 +24,11 @@
- #ifdef HAS_CDDA_RIPPER
-
- #include "CDDAReader.h"
-+#ifdef _WIN32
- #include "lib/libcdio/cdio.h"
-+#else
-+#include <cdio/cdio.h>
-+#endif
- #include "utils/log.h"
-
- #define SECTOR_COUNT 52
-diff --git a/xbmc/cores/paplayer/AC3CDDACodec.cpp b/xbmc/cores/paplayer/AC3CDDACodec.cpp
-index 20cded7..f2a077a 100644
---- a/xbmc/cores/paplayer/AC3CDDACodec.cpp
-+++ b/xbmc/cores/paplayer/AC3CDDACodec.cpp
-@@ -22,7 +22,11 @@
- #include "system.h"
- #include "AC3CDDACodec.h"
- #ifdef HAS_AC3_CDDA_CODEC
-+#ifdef _WIN32
- #include "lib/libcdio/sector.h"
-+#else
-+#include <cdio/sector.h>
-+#endif
-
- AC3CDDACodec::AC3CDDACodec() : AC3Codec()
- {
-diff --git a/xbmc/cores/paplayer/CDDAcodec.cpp b/xbmc/cores/paplayer/CDDAcodec.cpp
-index ca8f1be..42460dc 100644
---- a/xbmc/cores/paplayer/CDDAcodec.cpp
-+++ b/xbmc/cores/paplayer/CDDAcodec.cpp
-@@ -20,7 +20,11 @@
- */
-
- #include "CDDAcodec.h"
-+#ifdef _WIN32
- #include "lib/libcdio/sector.h"
-+#else
-+#include <cdio/sector.h>
-+#endif
-
- #define SECTOR_COUNT 55 // max. sectors that can be read at once
- #define MAX_BUFFER_SIZE 2*SECTOR_COUNT*CDIO_CD_FRAMESIZE_RAW
-diff --git a/xbmc/cores/paplayer/DTSCDDACodec.cpp b/xbmc/cores/paplayer/DTSCDDACodec.cpp
-index e64cc2e..9bc46c6 100644
---- a/xbmc/cores/paplayer/DTSCDDACodec.cpp
-+++ b/xbmc/cores/paplayer/DTSCDDACodec.cpp
-@@ -22,7 +22,11 @@
- #include "system.h"
- #include "DTSCDDACodec.h"
- #ifdef HAS_DTS_CODEC
-+#ifdef _WIN32
- #include "lib/libcdio/sector.h"
-+#else
-+#include <cdio/sector.h>
-+#endif
-
- DTSCDDACodec::DTSCDDACodec() : DTSCodec()
- {
diff --git a/media-tv/xbmc/files/xbmc-9.11-wavpack.patch b/media-tv/xbmc/files/xbmc-9.11-wavpack.patch
deleted file mode 100644
index 4ef0d147f5b9..000000000000
--- a/media-tv/xbmc/files/xbmc-9.11-wavpack.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-fix from upstream trunk
-
-http://xbmc.org/trac/ticket/8185
-
-Index: trunk/xbmc/cores/paplayer/DllWAVPack.h
-===================================================================
---- trunk/xbmc/cores/paplayer/DllWAVPack.h (revision 22927)
-+++ trunk/xbmc/cores/paplayer/DllWAVPack.h (revision 25321)
-@@ -58,7 +58,7 @@
- virtual int WavpackGetReducedChannels (WavpackContext *wpc)=0;
- virtual int WavpackGetFloatNormExp (WavpackContext *wpc)=0;
-- virtual int WavpackGetMD5Sum (WavpackContext *wpc, uchar data [16])=0;
-+ virtual int WavpackGetMD5Sum (WavpackContext *wpc, unsigned char data [16])=0;
- virtual uint32_t WavpackGetWrapperBytes (WavpackContext *wpc)=0;
-- virtual uchar *WavpackGetWrapperData (WavpackContext *wpc)=0;
-+ virtual unsigned char *WavpackGetWrapperData (WavpackContext *wpc)=0;
- virtual void WavpackFreeWrapper (WavpackContext *wpc)=0;
- virtual void WavpackSeekTrailingWrapper (WavpackContext *wpc)=0;
-@@ -77,5 +77,5 @@
- virtual int WavpackSetConfiguration (WavpackContext *wpc, WavpackConfig *config, uint32_t total_samples)=0;
- virtual int WavpackAddWrapper (WavpackContext *wpc, void *data, uint32_t bcount)=0;
-- virtual int WavpackStoreMD5Sum (WavpackContext *wpc, uchar data [16])=0;
-+ virtual int WavpackStoreMD5Sum (WavpackContext *wpc, unsigned char data [16])=0;
- virtual int WavpackPackInit (WavpackContext *wpc)=0;
- virtual int WavpackPackSamples (WavpackContext *wpc, int32_t *sample_buffer, uint32_t sample_count)=0;
-@@ -133,9 +133,9 @@
- virtual int WavpackGetFloatNormExp (WavpackContext *wpc)
- { return ::WavpackGetFloatNormExp (wpc); }
-- virtual int WavpackGetMD5Sum (WavpackContext *wpc, uchar data [16])
-+ virtual int WavpackGetMD5Sum (WavpackContext *wpc, unsigned char data [16])
- { return ::WavpackGetMD5Sum (wpc, data); }
- virtual uint32_t WavpackGetWrapperBytes (WavpackContext *wpc)
- { return ::WavpackGetWrapperBytes (wpc); }
-- virtual uchar *WavpackGetWrapperData (WavpackContext *wpc)
-+ virtual unsigned char *WavpackGetWrapperData (WavpackContext *wpc)
- { return ::WavpackGetWrapperData (wpc); }
- virtual void WavpackFreeWrapper (WavpackContext *wpc)
-@@ -171,5 +171,5 @@
- virtual int WavpackAddWrapper (WavpackContext *wpc, void *data, uint32_t bcount)
- { return ::WavpackAddWrapper (wpc, data, bcount); }
-- virtual int WavpackStoreMD5Sum (WavpackContext *wpc, uchar data [16])
-+ virtual int WavpackStoreMD5Sum (WavpackContext *wpc, unsigned char data [16])
- { return ::WavpackStoreMD5Sum (wpc, data); }
- virtual int WavpackPackInit (WavpackContext *wpc)
diff --git a/media-tv/xbmc/xbmc-10.0.ebuild b/media-tv/xbmc/xbmc-10.0.ebuild
deleted file mode 100644
index 7a6705afaa62..000000000000
--- a/media-tv/xbmc/xbmc-10.0.ebuild
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-10.0.ebuild,v 1.8 2011/02/26 19:16:48 signals Exp $
-
-EAPI="2"
-
-inherit eutils python
-
-# Use XBMC_ESVN_REPO_URI to track a different branch
-ESVN_REPO_URI=${XBMC_ESVN_REPO_URI:-http://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk}
-ESVN_PROJECT=${ESVN_REPO_URI##*/svnroot/}
-ESVN_PROJECT=${ESVN_PROJECT%/*}
-if [[ ${PV} == "9999" ]] ; then
- inherit subversion autotools
- KEYWORDS=""
-else
- inherit autotools
- SRC_URI="http://mirrors.xbmc.org/releases/source/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="XBMC is a free and open source media-player and entertainment hub"
-HOMEPAGE="http://xbmc.org/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="alsa altivec avahi css debug hal joystick midi profile pulseaudio rtmp sse sse2 vaapi vdpau webserver +xrandr"
-
-RDEPEND="virtual/opengl
- app-arch/bzip2
- app-arch/unzip
- app-arch/zip
- app-i18n/enca
- dev-libs/boost
- dev-libs/fribidi
- dev-libs/libcdio[-minimal]
- dev-libs/libpcre[cxx]
- dev-libs/lzo
- >=dev-python/pysqlite-2
- media-libs/alsa-lib
- media-libs/faad2
- media-libs/flac
- media-libs/fontconfig
- media-libs/freetype
- media-libs/glew
- media-libs/jasper
- media-libs/jbigkit
- virtual/jpeg
- >=media-libs/libass-0.9.7
- css? ( media-libs/libdvdcss )
- media-libs/libmad
- media-libs/libmms
- media-libs/libmodplug
- media-libs/libmpeg2
- media-libs/libogg
- media-libs/libsamplerate
- media-libs/libsdl[audio,opengl,video,X]
- alsa? ( media-libs/libsdl[alsa] )
- media-libs/libvorbis
- media-libs/sdl-gfx
- media-libs/sdl-image[gif,jpeg,png]
- media-libs/sdl-mixer
- media-libs/sdl-sound
- media-libs/tiff
- pulseaudio? ( media-sound/pulseaudio )
- media-sound/wavpack
- >=media-video/ffmpeg-0.6
- rtmp? ( media-video/rtmpdump )
- avahi? ( net-dns/avahi )
- webserver? ( net-libs/libmicrohttpd )
- net-misc/curl
- || ( >=net-fs/samba-3.4.6[smbclient] <net-fs/samba-3.3 )
- sys-apps/dbus
- hal? ( sys-apps/hal )
- sys-libs/zlib
- virtual/mysql
- x11-apps/xdpyinfo
- x11-apps/mesa-progs
- vaapi? ( x11-libs/libva )
- vdpau? (
- || ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 )
- media-video/ffmpeg[vdpau]
- )
- x11-libs/libXinerama
- xrandr? ( x11-libs/libXrandr )
- x11-libs/libXrender"
-# The cpluff bundled addon uses gettext which needs CVS ...
-DEPEND="${RDEPEND}
- dev-util/gperf
- dev-vcs/cvs
- x11-proto/xineramaproto
- dev-util/cmake
- x86? ( dev-lang/nasm )"
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- subversion_src_unpack
- cd "${S}"
- rm -f configure
- else
- unpack ${A}
- cd "${S}"
- fi
-
- # Fix case sensitivity
- mv media/Fonts/{a,A}rial.ttf || die
- mv media/{S,s}plash.png || die
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-python-2.7.patch #350098
-
- # some dirs ship generated autotools, some dont
- local d
- for d in . xbmc/cores/dvdplayer/Codecs/{libdts,libdvd/lib*/} lib/cpluff ; do
- [[ -e ${d}/configure ]] && continue
- pushd ${d} >/dev/null
- einfo "Generating autotools in ${d}"
- eautoreconf
- popd >/dev/null
- done
-
- local squish #290564
- use altivec && squish="-DSQUISH_USE_ALTIVEC=1 -maltivec"
- use sse && squish="-DSQUISH_USE_SSE=1 -msse"
- use sse2 && squish="-DSQUISH_USE_SSE=2 -msse2"
- sed -i \
- -e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \
- -e "1iCXXFLAGS += ${squish}" \
- xbmc/lib/libsquish/Makefile.in || die
-
- # Fix XBMC's final version string showing as "exported"
- # instead of the SVN revision number.
- export SVN_REV=${ESVN_WC_REVISION:-exported}
-
- # Avoid lsb-release dependency
- sed -i \
- -e 's:lsb_release -d:cat /etc/gentoo-release:' \
- xbmc/utils/SystemInfo.cpp
-
- # Do not use termcap #262822
- sed -i 's:-ltermcap::' xbmc/lib/libPython/Python/configure
-
- # avoid long delays when powerkit isn't running #348580
- sed -i \
- -e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
- xbmc/linux/*.cpp || die
-
- epatch_user #293109
-
- # Tweak autotool timestamps to avoid regeneration
- find . -type f -print0 | xargs -0 touch -r configure
-}
-
-src_configure() {
- # Disable documentation generation
- export ac_cv_path_LATEX=no
- # Avoid help2man
- export HELP2MAN=$(type -P help2man || echo true)
-
- econf \
- --docdir=/usr/share/doc/${PF} \
- --disable-ccache \
- --disable-optimizations \
- --enable-external-libraries \
- --disable-external-python \
- --enable-goom \
- --enable-gl \
- --disable-liba52 \
- --disable-libdts \
- $(use_enable avahi) \
- $(use_enable css dvdcss) \
- $(use_enable debug) \
- $(use_enable hal) \
- $(use_enable joystick) \
- $(use_enable midi mid) \
- $(use_enable profile profiling) \
- $(use_enable pulseaudio pulse) \
- $(use_enable rtmp) \
- $(use_enable vaapi) \
- $(use_enable vdpau) \
- $(use_enable webserver) \
- $(use_enable xrandr)
-}
-
-src_install() {
- emake install DESTDIR="${D}" || die
- dodoc keymapping.txt README.linux
- rm "${D}"/usr/share/doc/${PF}/{copying.txt,LICENSE.GPL} || die
-
-# insinto /usr/share/applications
-# doins tools/Linux/xbmc.desktop
-# doicon tools/Linux/xbmc.png
-
- insinto "$(python_get_sitedir)" #309885
- doins tools/EventClients/lib/python/xbmcclient.py || die
- newbin "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send || die
-}
-
-pkg_postinst() {
- elog "Visit http://wiki.xbmc.org/?title=XBMC_Online_Manual"
-}