diff -ur xbmc.orig/configure.in xbmc/configure.in --- xbmc.orig/configure.in 2010-09-16 02:24:07.000000000 +0300 +++ xbmc/configure.in 2010-09-16 03:07:48.000000000 +0300 @@ -887,16 +887,16 @@ # External libdts if deprecated dts support enabled if test "$use_libdts" = "yes" && "$use_external_libdts" = "yes"; then - AC_CHECK_LIB([dts], [main],, AC_MSG_ERROR($missing_library)) + 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.]) + USE_EXTERNAL_LIBDCA=1 + AC_DEFINE([USE_EXTERNAL_LIBDCA], [1], [Whether to use external libdts library.]) USE_INTERNAL_LIBDTS=0 SKIP_CONFIG_LIBDTS=1 else AC_MSG_NOTICE($external_libdts_disabled) - USE_EXTERNAL_LIBDTS=0 + USE_EXTERNAL_LIBDCA=0 fi # External Python @@ -1323,7 +1323,7 @@ if test "$use_libdts" = "yes"; then USE_LIBDTS_DECODER=1 AC_DEFINE([USE_LIBDTS_DECODER], [1], [Define to 1 to enable deprecated libdts support]) - if ! test "$USE_EXTERNAL_LIBDTS" = "1"; then + if ! test "$USE_EXTERNAL_LIBDCA" = "1"; then USE_INTERNAL_LIBDTS=1 SKIP_CONFIG_LIBDTS=0 fi @@ -1466,7 +1466,7 @@ AC_SUBST(USE_EXTERNAL_LIBA52) AC_SUBST(USE_INTERNAL_LIBA52) AC_SUBST(USE_EXTERNAL_LIBASS) -AC_SUBST(USE_EXTERNAL_LIBDTS) +AC_SUBST(USE_EXTERNAL_LIBDCA) AC_SUBST(USE_INTERNAL_LIBDTS) AC_SUBST(USE_EXTERNAL_LIBMPEG2) AC_SUBST(USE_EXTERNAL_LIBWAVPACK) diff -ur xbmc.orig/xbmc/cores/dvdplayer/DVDCodecs/Audio/DllLibDts.h xbmc/xbmc/cores/dvdplayer/DVDCodecs/Audio/DllLibDts.h --- xbmc.orig/xbmc/cores/dvdplayer/DVDCodecs/Audio/DllLibDts.h 2010-09-16 02:24:12.000000000 +0300 +++ xbmc/xbmc/cores/dvdplayer/DVDCodecs/Audio/DllLibDts.h 2010-09-16 03:08:00.000000000 +0300 @@ -25,8 +25,8 @@ #include "config.h" #endif extern "C" { -#if (defined USE_EXTERNAL_LIBDTS) - #include +#if (defined USE_EXTERNAL_LIBDCA) + #include #else #include "libdts/dts.h" #endif @@ -40,12 +40,13 @@ typedef __int32 int32_t; typedef __int16 int16_t; #endif -#ifdef LIBDTS_DOUBLE +#if (defined LIBDTS_DOUBLE) || (defined LIBDCA_DOUBLE) typedef float convert_t; #else typedef sample_t convert_t; #endif +#if (defined USE_EXTERNAL_LIBDCA) class DllLibDtsInterface { @@ -61,28 +62,26 @@ virtual void dts_free (dts_state_t * state)=0; }; -#if (defined USE_EXTERNAL_LIBDTS) - 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. virtual bool ResolveExports() { return true; } @@ -95,6 +94,21 @@ #else +class DllLibDtsInterface +{ +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; +}; + + class DllLibDts : public DllDynamic, DllLibDtsInterface { DECLARE_DLL_WRAPPER(DllLibDts, DLL_PATH_LIBDTS) diff -ur xbmc.orig/xbmc/cores/paplayer/DllDCACodec.h xbmc/xbmc/cores/paplayer/DllDCACodec.h --- xbmc.orig/xbmc/cores/paplayer/DllDCACodec.h 2010-09-16 02:24:12.000000000 +0300 +++ xbmc/xbmc/cores/paplayer/DllDCACodec.h 2010-09-16 03:08:14.000000000 +0300 @@ -25,8 +25,8 @@ #include "config.h" #endif extern "C" { -#if (defined USE_EXTERNAL_LIBDTS) - #include +#if (defined USE_EXTERNAL_LIBDCA) + #include #else #include "../dvdplayer/DVDCodecs/Audio/libdts/dts.h" #endif @@ -43,29 +43,28 @@ typedef __int16 int16_t; #endif -#ifdef LIBDTS_DOUBLE +#if (defined LIBDTS_DOUBLE) || (defined LIBDCA_DOUBLE) typedef float convert_t; #else typedef sample_t convert_t; #endif +#if (defined USE_EXTERNAL_LIBDCA) 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) - class DllDCACodec : public DllDynamic, DllDCACodecInterface { public: @@ -98,6 +97,20 @@ #else +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; +}; + class DllDCACodec : public DllDynamic, DllDCACodecInterface { DECLARE_DLL_WRAPPER(DllDCACodec, DLL_PATH_LIBDTS ) @@ -121,6 +134,6 @@ END_METHOD_RESOLVE() }; -#endif /* (defined USE_EXTERNAL_LIBDTS) */ +#endif /* (defined USE_EXTERNAL_LIBDCA) */ #endif /* USE_LIBDTS_DECODER */