diff --git a/packages/mediacenter/kodi/patches/kodi-995.01-add-dcadec-support.patch b/packages/mediacenter/kodi/patches/kodi-995.01-add-dcadec-support.patch deleted file mode 100644 index e9893f0328..0000000000 --- a/packages/mediacenter/kodi/patches/kodi-995.01-add-dcadec-support.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 448c71da440d4504432ac513e8493e27b1f06915 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 23 Mar 2015 22:33:04 +0000 -Subject: [PATCH] [dcadec] Add settings option to enable libdcadec - ---- - addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ - system/settings/rbp.xml | 5 +++++ - system/settings/rbp2.xml | 3 +++ - xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp | 6 +++++- - xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 10 ++++++++++ - xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 6 +++++- - 7 files changed, 39 insertions(+), 4 deletions(-) - -diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index 1dde154..f641439 100644 ---- a/addons/resource.language.en_gb/resources/strings.po -+++ b/addons/resource.language.en_gb/resources/strings.po -@@ -16689,3 +16689,13 @@ msgstr "" - msgctxt "#38103" - msgid "Extract thumbnails from video files" - msgstr "" -+ -+#: system/settings/rbp.xml -+msgctxt "#38120" -+msgid "Support 8 channel DTS HD audio" -+msgstr "" -+ -+#: system/settings/rbp.xml -+msgctxt "#38121" -+msgid "This option supports 8 channel DTS HD but may use more CPU " -+msgstr "" -diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml ---- a/system/settings/rbp.xml -+++ b/system/settings/rbp.xml -@@ -27,6 +27,13 @@ - - - -+ -+ -+ 2 -+ false -+ -+ -+ - - - -diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml -index 8cc8f19..197e255 100644 ---- a/system/settings/rbp2.xml -+++ b/system/settings/rbp2.xml -@@ -6,6 +6,9 @@ - - false - -+ -+ true -+ - - - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp -index 991449b..135bb43 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp -@@ -33,6 +33,7 @@ extern "C" { - #include "settings/Settings.h" - #include "cores/AudioEngine/Utils/AEUtil.h" - #endif -+#include "settings/Settings.h" - - CDVDAudioCodecFFmpeg::CDVDAudioCodecFFmpeg() : CDVDAudioCodec() - { -@@ -57,7 +58,10 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options - AVCodec* pCodec; - m_bOpenedCodec = false; - -- pCodec = avcodec_find_decoder(hints.codec); -+ if (hints.codec == AV_CODEC_ID_DTS && CSettings::Get().GetBool("videoplayer.supportdtshd")) -+ pCodec = avcodec_find_decoder_by_name("libdcadec"); -+ else -+ pCodec = avcodec_find_decoder(hints.codec); - if (!pCodec) - { - CLog::Log(LOGDEBUG,"CDVDAudioCodecFFmpeg::Open() Unable to find codec %d", hints.codec); -diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -index f9b3232..1f8e15e 100644 ---- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp -@@ -439,6 +439,16 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein - - if (m_streaminfo) - { -+ if (CSettings::Get().GetBool("videoplayer.supportdtshd")) -+ { -+ for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) -+ { -+ AVStream *st = m_pFormatContext->streams[i]; -+ if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && st->codec->codec_id == AV_CODEC_ID_DTS) -+ st->codec->codec = avcodec_find_decoder_by_name("libdcadec"); -+ } -+ } -+ - /* to speed up dvd switches, only analyse very short */ - if(m_pInput->IsStreamType(DVDSTREAM_TYPE_DVD)) - av_opt_set_int(m_pFormatContext, "analyzeduration", 500000, 0); -diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp -index 1a920f7..093864d 100644 ---- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp -+++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp -@@ -26,6 +26,7 @@ - - #include "cores/AudioEngine/Utils/AEUtil.h" - #include "cores/AudioEngine/AEFactory.h" -+#include "settings/Settings.h" - - // the size of the audio_render output port buffers - #define AUDIO_DECODE_OUTPUT_BUFFER (32*1024) -@@ -65,7 +66,10 @@ bool COMXAudioCodecOMX::Open(CDVDStreamInfo &hints) - AVCodec* pCodec; - m_bOpenedCodec = false; - -- pCodec = avcodec_find_decoder(hints.codec); -+ if (hints.codec == AV_CODEC_ID_DTS && CSettings::Get().GetBool("videoplayer.supportdtshd")) -+ pCodec = avcodec_find_decoder_by_name("libdcadec"); -+ else -+ pCodec = avcodec_find_decoder(hints.codec); - if (!pCodec) - { - CLog::Log(LOGDEBUG,"COMXAudioCodecOMX::Open() Unable to find codec %d", hints.codec); diff --git a/packages/mediacenter/kodi/patches/kodi-999.20-PR7102.patch b/packages/mediacenter/kodi/patches/kodi-999.20-PR7102.patch new file mode 100644 index 0000000000..b70e0351bd --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.20-PR7102.patch @@ -0,0 +1,840 @@ +From 17db313334d564b34e00154e6d3d5cf6163c13fb Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 23 Mar 2015 17:12:31 +0000 +Subject: [PATCH 1/6] [ffmpeg] Add support for libdcadec + +--- + Makefile.in | 2 +- + configure.ac | 4 + + tools/depends/target/Makefile | 4 +- + .../0001-avcodec-add-libdcadec-decoder.patch | 280 +++++++++++++++++++++ + .../0002-avcodec-Fix-libdcadec-include-dir.patch | 40 +++ + ...vcodec-add-profile-define-for-DTS-Express.patch | 25 ++ + tools/depends/target/ffmpeg/Makefile | 7 +- + tools/depends/target/libdcadec/Makefile | 38 +++ + 8 files changed, 396 insertions(+), 4 deletions(-) + create mode 100644 tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch + create mode 100644 tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch + create mode 100644 tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch + create mode 100644 tools/depends/target/libdcadec/Makefile + +diff --git a/Makefile.in b/Makefile.in +index 7ed7c37..4a8aeef 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -445,7 +445,7 @@ FFMPEGOBJS = @FFMPEG_LIBDIR@/libavcodec.a \ + @FFMPEG_LIBDIR@/libpostproc.a \ + @FFMPEG_LIBDIR@/libswscale.a + DYNOBJSXBMC+= $(FFMPEGOBJS) +-LIBS+= @GNUTLS_ALL_LIBS@ @VORBISENC_ALL_LIBS@ ++LIBS+= @GNUTLS_ALL_LIBS@ @VORBISENC_ALL_LIBS@ @DCADEC_ALL_LIBS@ + + $(FFMPEGOBJS): dvdpcodecs + endif +diff --git a/configure.ac b/configure.ac +index cf18212..ad9ae6d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1088,6 +1088,7 @@ AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library), + AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library)) ++AC_CHECK_HEADER([libdcadec/dca_context.h],, AC_MSG_ERROR($missing_library)) + + PKG_CHECK_MODULES([LIBCURL], [libcurl],, AC_MSG_ERROR([libcurl not found])) + XB_FIND_SONAME([CURL], [curl]) +@@ -1119,6 +1120,7 @@ PKG_CHECK_MODULES([GNUTLS], [gnutls], [have_gnutls=yes];AC_DEFINE([HAVE_GNUTLS], + AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library)) + AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage + AC_CHECK_LIB([tiff], [main],, AC_MSG_ERROR($missing_library)) ++AC_CHECK_LIB([dcadec], [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], +@@ -1806,6 +1808,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then + FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec) + GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls) + VORBISENC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors vorbisenc) ++ DCADEC_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors dcadec) + + # check if static libs are available + for ff_lib in ${ff_libs}; do +@@ -2630,6 +2633,7 @@ AC_SUBST(FFMPEG_LIBDIR) + AC_SUBST(USE_STATIC_FFMPEG) + AC_SUBST(GNUTLS_ALL_LIBS) + AC_SUBST(VORBISENC_ALL_LIBS) ++AC_SUBST(DCADEC_ALL_LIBS) + AC_SUBST(USE_TOUCH_SKIN) + AC_SUBST(USE_LIBAV_HACKS) + AC_SUBST(PYTHON_VERSION) +diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile +index 915de85..5d85ca8 100644 +--- a/tools/depends/target/Makefile ++++ b/tools/depends/target/Makefile +@@ -15,7 +15,7 @@ DEPENDS = \ + python26 libshairplay \ + libplist libcec libbluray boost tinyxml dummy-libxbmc \ + libamplayer libssh taglib libusb libnfs libmp3lame \ +- pythonmodule-pil libxslt ffmpeg platform ++ pythonmodule-pil libxslt ffmpeg platform libdcadec + + FFMPEG_DEPENDS = gnutls + +@@ -96,7 +96,7 @@ nettle: gmp + pythonmodule-pil: $(ZLIB) libjpeg-turbo libpng freetype2 python26 + libsdl2: $(LINUX_SYSTEM_LIBS) + libxslt: libgcrypt +-ffmpeg: $(ICONV) $(ZLIB) bzip2 libvorbis $(FFMPEG_DEPENDS) ++ffmpeg: $(ICONV) $(ZLIB) bzip2 libvorbis libdcadec $(FFMPEG_DEPENDS) + libcec: platform + + .installed-$(PLATFORM): $(DEPENDS) +diff --git a/tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch b/tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch +new file mode 100644 +index 0000000..c0c2ac1 +--- /dev/null ++++ b/tools/depends/target/ffmpeg/0001-avcodec-add-libdcadec-decoder.patch +@@ -0,0 +1,280 @@ ++From 519868de7d9c99876efcaf57d6a9683c22732cde Mon Sep 17 00:00:00 2001 ++From: Hendrik Leppkes ++Date: Thu, 19 Mar 2015 23:56:22 +0100 ++Subject: [PATCH] avcodec: add libdcadec decoder ++ ++Signed-off-by: Michael Niedermayer ++--- ++ configure | 4 + ++ libavcodec/Makefile | 1 + ++ libavcodec/allcodecs.c | 1 + ++ libavcodec/libdcadec.c | 197 +++++++++++++++++++++++++++++++++++++++++++++++++ ++ 4 files changed, 203 insertions(+) ++ create mode 100644 libavcodec/libdcadec.c ++ ++diff --git a/configure b/configure ++index 1bf8f80..a449bc7 100755 ++--- a/configure +++++ b/configure ++@@ -210,6 +210,7 @@ External library support: ++ --enable-libcdio enable audio CD grabbing with libcdio [no] ++ --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 ++ and libraw1394 [no] +++ --enable-libdcadec enable DCA decoding via libdcadec [no] ++ --enable-libfaac enable AAC encoding via libfaac [no] ++ --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] ++ --enable-libflite enable flite (voice synthesis) support via libflite [no] ++@@ -1353,6 +1354,7 @@ EXTERNAL_LIBRARY_LIST=" ++ libcdio ++ libcelt ++ libdc1394 +++ libdcadec ++ libfaac ++ libfdk_aac ++ libflite ++@@ -2359,6 +2361,7 @@ vc1_parser_select="mpegvideo startcode vc1_decoder" ++ # external libraries ++ libaacplus_encoder_deps="libaacplus" ++ libcelt_decoder_deps="libcelt" +++libdcadec_decoder_deps="libdcadec" ++ libfaac_encoder_deps="libfaac" ++ libfaac_encoder_select="audio_frame_queue" ++ libfdk_aac_decoder_deps="libfdk_aac" ++@@ -4922,6 +4925,7 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && ++ { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || ++ die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } ++ enabled libcaca && require_pkg_config caca caca.h caca_create_canvas +++enabled libdcadec && require libdcadec dca_context.h dcadec_context_create -ldcadec ++ enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac ++ enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac ++ flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" ++diff --git a/libavcodec/Makefile b/libavcodec/Makefile ++index 4173f88..1a0c734 100644 ++--- a/libavcodec/Makefile +++++ b/libavcodec/Makefile ++@@ -732,6 +732,7 @@ OBJS-$(CONFIG_ELBG_FILTER) += elbg.o ++ # external codec libraries ++ OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o ++ OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o +++OBJS-$(CONFIG_LIBDCADEC_DECODER) += libdcadec.o ++ OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o ++ OBJS-$(CONFIG_LIBFDK_AAC_DECODER) += libfdk-aacdec.o ++ OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o ++diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c ++index 5194e74..bbf70a6 100644 ++--- a/libavcodec/allcodecs.c +++++ b/libavcodec/allcodecs.c ++@@ -512,6 +512,7 @@ void avcodec_register_all(void) ++ ++ /* external libraries */ ++ REGISTER_DECODER(LIBCELT, libcelt); +++ REGISTER_DECODER(LIBDCADEC, libdcadec) ++ REGISTER_ENCODER(LIBFAAC, libfaac); ++ REGISTER_ENCDEC (LIBFDK_AAC, libfdk_aac); ++ REGISTER_ENCDEC (LIBGSM, libgsm); ++diff --git a/libavcodec/libdcadec.c b/libavcodec/libdcadec.c ++new file mode 100644 ++index 0000000..d060db5 ++--- /dev/null +++++ b/libavcodec/libdcadec.c ++@@ -0,0 +1,197 @@ +++/* +++ * libdcadec decoder wrapper +++ * Copyright (C) 2015 Hendrik Leppkes +++ * +++ * This file is part of FFmpeg. +++ * +++ * FFmpeg is free software; you can redistribute it and/or +++ * modify it under the terms of the GNU Lesser General Public +++ * License as published by the Free Software Foundation; either +++ * version 2.1 of the License, or (at your option) any later version. +++ * +++ * FFmpeg 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 +++ * Lesser General Public License for more details. +++ * +++ * You should have received a copy of the GNU Lesser General Public +++ * License along with FFmpeg; if not, write to the Free Software +++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +++ */ +++ +++#include +++ +++#include "libavutil/avassert.h" +++#include "libavutil/channel_layout.h" +++#include "libavutil/common.h" +++#include "libavutil/opt.h" +++#include "avcodec.h" +++#include "dca.h" +++#include "dca_syncwords.h" +++#include "internal.h" +++ +++typedef struct DCADecContext { +++ struct dcadec_context *ctx; +++ uint8_t *buffer; +++ int buffer_size; +++} DCADecContext; +++ +++static int dcadec_decode_frame(AVCodecContext *avctx, void *data, +++ int *got_frame_ptr, AVPacket *avpkt) +++{ +++ DCADecContext *s = avctx->priv_data; +++ AVFrame *frame = data; +++ int ret, i, k; +++ int **samples, nsamples, channel_mask, sample_rate, bits_per_sample, profile; +++ uint32_t mrk; +++ uint8_t *input = avpkt->data; +++ int input_size = avpkt->size; +++ +++ /* convert bytestream syntax to RAW BE format if required */ +++ mrk = AV_RB32(input); +++ if (mrk != DCA_SYNCWORD_CORE_BE && mrk != DCA_SYNCWORD_SUBSTREAM) { +++ s->buffer = av_fast_realloc(s->buffer, &s->buffer_size, avpkt->size + FF_INPUT_BUFFER_PADDING_SIZE); +++ if (!s->buffer) +++ return AVERROR(ENOMEM); +++ +++ if ((ret = avpriv_dca_convert_bitstream(avpkt->data, avpkt->size, s->buffer, s->buffer_size)) < 0) +++ return ret; +++ +++ input = s->buffer; +++ input_size = ret; +++ } +++ +++ if ((ret = dcadec_context_parse(s->ctx, input, input_size)) < 0) { +++ av_log(avctx, AV_LOG_ERROR, "dcadec_context_parse() failed: %d (%s)\n", -ret, dcadec_strerror(ret)); +++ return AVERROR_EXTERNAL; +++ } +++ if ((ret = dcadec_context_filter(s->ctx, &samples, &nsamples, &channel_mask, +++ &sample_rate, &bits_per_sample, &profile)) < 0) { +++ av_log(avctx, AV_LOG_ERROR, "dcadec_context_filter() failed: %d (%s)\n", -ret, dcadec_strerror(ret)); +++ return AVERROR_EXTERNAL; +++ } +++ +++ avctx->channels = av_get_channel_layout_nb_channels(channel_mask); +++ avctx->channel_layout = channel_mask; +++ avctx->sample_rate = sample_rate; +++ +++ av_assert0(bits_per_sample >= 16 && bits_per_sample <= 24); +++ if (bits_per_sample == 16) +++ avctx->sample_fmt = AV_SAMPLE_FMT_S16P; +++ else +++ avctx->sample_fmt = AV_SAMPLE_FMT_S32P; +++ +++ avctx->bits_per_raw_sample = bits_per_sample; +++ +++ switch (profile) { +++ case DCADEC_PROFILE_DS: +++ avctx->profile = FF_PROFILE_DTS; +++ break; +++ case DCADEC_PROFILE_DS_96_24: +++ avctx->profile = FF_PROFILE_DTS_96_24; +++ break; +++ case DCADEC_PROFILE_DS_ES: +++ avctx->profile = FF_PROFILE_DTS_ES; +++ break; +++ case DCADEC_PROFILE_HD_HRA: +++ avctx->profile = FF_PROFILE_DTS_HD_HRA; +++ break; +++ case DCADEC_PROFILE_HD_MA: +++ avctx->profile = FF_PROFILE_DTS_HD_MA; +++ break; +++ case DCADEC_PROFILE_EXPRESS: +++ avctx->profile = FF_PROFILE_DTS_EXPRESS; +++ break; +++ case DCADEC_PROFILE_UNKNOWN: +++ default: +++ avctx->profile = FF_PROFILE_UNKNOWN; +++ break; +++ } +++ +++ /* bitrate is only meaningful if there are no HD extensions, as they distort the bitrate */ +++ if (profile == DCADEC_PROFILE_DS || profile == DCADEC_PROFILE_DS_96_24 || profile == DCADEC_PROFILE_DS_ES) { +++ struct dcadec_core_info *info = dcadec_context_get_core_info(s->ctx); +++ avctx->bit_rate = info->bit_rate; +++ dcadec_context_free_core_info(info); +++ } else +++ avctx->bit_rate = 0; +++ +++ frame->nb_samples = nsamples; +++ if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) +++ return ret; +++ +++ for (i = 0; i < avctx->channels; i++) { +++ if (frame->format == AV_SAMPLE_FMT_S16P) { +++ int16_t *plane = (int16_t *)frame->extended_data[i]; +++ for (k = 0; k < nsamples; k++) +++ plane[k] = samples[i][k]; +++ } else { +++ int32_t *plane = (int32_t *)frame->extended_data[i]; +++ int shift = 32 - bits_per_sample; +++ for (k = 0; k < nsamples; k++) +++ plane[k] = samples[i][k] << shift; +++ } +++ } +++ +++ *got_frame_ptr = 1; +++ +++ return avpkt->size; +++} +++ +++static av_cold void dcadec_flush(AVCodecContext *avctx) +++{ +++ DCADecContext *s = avctx->priv_data; +++ dcadec_context_clear(s->ctx); +++} +++ +++static av_cold int dcadec_close(AVCodecContext *avctx) +++{ +++ DCADecContext *s = avctx->priv_data; +++ +++ dcadec_context_destroy(s->ctx); +++ s->ctx = NULL; +++ +++ av_freep(&s->buffer); +++ +++ return 0; +++} +++ +++static av_cold int dcadec_init(AVCodecContext *avctx) +++{ +++ DCADecContext *s = avctx->priv_data; +++ +++ s->ctx = dcadec_context_create(0); +++ if (!s->ctx) +++ return AVERROR(ENOMEM); +++ +++ avctx->sample_fmt = AV_SAMPLE_FMT_S32P; +++ avctx->bits_per_raw_sample = 24; +++ +++ return 0; +++} +++ +++static const AVProfile profiles[] = { +++ { FF_PROFILE_DTS, "DTS" }, +++ { FF_PROFILE_DTS_ES, "DTS-ES" }, +++ { FF_PROFILE_DTS_96_24, "DTS 96/24" }, +++ { FF_PROFILE_DTS_HD_HRA, "DTS-HD HRA" }, +++ { FF_PROFILE_DTS_HD_MA, "DTS-HD MA" }, +++ { FF_PROFILE_DTS_EXPRESS, "DTS Express" }, +++ { FF_PROFILE_UNKNOWN }, +++}; +++ +++AVCodec ff_libdcadec_decoder = { +++ .name = "libdcadec", +++ .long_name = NULL_IF_CONFIG_SMALL("dcadec DCA decoder"), +++ .type = AVMEDIA_TYPE_AUDIO, +++ .id = AV_CODEC_ID_DTS, +++ .priv_data_size = sizeof(DCADecContext), +++ .init = dcadec_init, +++ .decode = dcadec_decode_frame, +++ .close = dcadec_close, +++ .flush = dcadec_flush, +++ .capabilities = CODEC_CAP_DR1 | CODEC_CAP_CHANNEL_CONF, +++ .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_S16P, +++ AV_SAMPLE_FMT_NONE }, +++ .profiles = NULL_IF_CONFIG_SMALL(profiles), +++}; ++-- ++1.9.1 ++ +diff --git a/tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch b/tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch +new file mode 100644 +index 0000000..b4db15d +--- /dev/null ++++ b/tools/depends/target/ffmpeg/0002-avcodec-Fix-libdcadec-include-dir.patch +@@ -0,0 +1,40 @@ ++From 4f3c31df3f569c7171ee9e651ddf479690367b9b Mon Sep 17 00:00:00 2001 ++From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= ++Date: Fri, 20 Mar 2015 01:58:25 +0100 ++Subject: [PATCH] avcodec: Fix libdcadec include dir ++ ++Signed-off-by: Michael Niedermayer ++--- ++ configure | 2 +- ++ libavcodec/libdcadec.c | 2 +- ++ 2 files changed, 2 insertions(+), 2 deletions(-) ++ ++diff --git a/configure b/configure ++index a449bc7..1ef83e3 100755 ++--- a/configure +++++ b/configure ++@@ -4925,7 +4925,7 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && ++ { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || ++ die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } ++ enabled libcaca && require_pkg_config caca caca.h caca_create_canvas ++-enabled libdcadec && require libdcadec dca_context.h dcadec_context_create -ldcadec +++enabled libdcadec && require libdcadec libdcadec/dca_context.h dcadec_context_create -ldcadec ++ enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac ++ enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac ++ flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" ++diff --git a/libavcodec/libdcadec.c b/libavcodec/libdcadec.c ++index d060db5..a28b983 100644 ++--- a/libavcodec/libdcadec.c +++++ b/libavcodec/libdcadec.c ++@@ -19,7 +19,7 @@ ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++-#include +++#include ++ ++ #include "libavutil/avassert.h" ++ #include "libavutil/channel_layout.h" ++-- ++1.9.1 ++ +diff --git a/tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch b/tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch +new file mode 100644 +index 0000000..1550538 +--- /dev/null ++++ b/tools/depends/target/ffmpeg/0003-avcodec-add-profile-define-for-DTS-Express.patch +@@ -0,0 +1,25 @@ ++From 11fe56c8bbf39cd0c3edbf0cd404dea400ff7e0c Mon Sep 17 00:00:00 2001 ++From: Hendrik Leppkes ++Date: Thu, 19 Mar 2015 23:45:39 +0100 ++Subject: [PATCH] avcodec: add profile define for DTS Express ++ ++Signed-off-by: Michael Niedermayer ++--- ++ libavcodec/avcodec.h | 1 + ++ 1 file changed, 1 insertion(+) ++ ++diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h ++index cdc8aa1..48e212f 100644 ++--- a/libavcodec/avcodec.h +++++ b/libavcodec/avcodec.h ++@@ -2851,6 +2851,7 @@ typedef struct AVCodecContext { ++ #define FF_PROFILE_DTS_96_24 40 ++ #define FF_PROFILE_DTS_HD_HRA 50 ++ #define FF_PROFILE_DTS_HD_MA 60 +++#define FF_PROFILE_DTS_EXPRESS 70 ++ ++ #define FF_PROFILE_MPEG2_422 0 ++ #define FF_PROFILE_MPEG2_HIGH 1 ++-- ++1.9.1 ++ +diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile +index 711182f..24480b2 100644 +--- a/tools/depends/target/ffmpeg/Makefile ++++ b/tools/depends/target/ffmpeg/Makefile +@@ -1,6 +1,7 @@ + include ../../Makefile.include + include FFMPEG-VERSION +-DEPS= ../../Makefile.include FFMPEG-VERSION Makefile ++DEPS= ../../Makefile.include FFMPEG-VERSION Makefile \ ++ 0001-avcodec-add-libdcadec-decoder.patch 0002-avcodec-Fix-libdcadec-include-dir.patch 0003-avcodec-add-profile-define-for-DTS-Express.patch + + # set to "yes" to enable patching + # we don't apply patches until we move to a vanilla ffmpeg tarball +@@ -55,6 +56,7 @@ endif + ifeq ($(Configuration), Release) + ffmpg_config += --disable-debug + endif ++ffmpg_config += --enable-libdcadec --disable-decoder=dca + + + CLEAN_FILES=$(ARCHIVE) $(PLATFORM) +@@ -68,6 +70,9 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) + rm -rf $(PLATFORM); mkdir -p $(PLATFORM) + cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) + cd $(PLATFORM); sed -i".bak" -e "s%pkg_config_default=pkg-config%export PKG_CONFIG_LIBDIR=$(PREFIX)/lib/pkgconfig \&\& pkg_config_default=$(NATIVEPREFIX)/bin/pkg-config%" configure ++ cd $(PLATFORM); patch -p1 < ../0001-avcodec-add-libdcadec-decoder.patch ++ cd $(PLATFORM); patch -p1 < ../0002-avcodec-Fix-libdcadec-include-dir.patch ++ cd $(PLATFORM); patch -p1 < ../0003-avcodec-add-profile-define-for-DTS-Express.patch + cd $(PLATFORM);\ + CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \ + ./configure $(ffmpg_config) +diff --git a/tools/depends/target/libdcadec/Makefile b/tools/depends/target/libdcadec/Makefile +new file mode 100644 +index 0000000..e68ec46 +--- /dev/null ++++ b/tools/depends/target/libdcadec/Makefile +@@ -0,0 +1,38 @@ ++include ../../Makefile.include ++DEPS= ../../Makefile.include Makefile ++ ++# lib name, version ++LIBNAME=dcadec ++ARCHIVE=master.tar.gz ++BASE_URL=https://github.com/foo86/dcadec/archive ++ ++# configuration settings ++ ++LIBDYLIB=$(PLATFORM)/.libs/lib$(LIBNAME).a ++ ++CLEAN_FILES=$(ARCHIVE) $(PLATFORM) ++ ++CFLAGS += -std=gnu99 ++ ++all: $(LIBDYLIB) .installed-$(PLATFORM) ++ ++$(TARBALLS_LOCATION)/$(ARCHIVE): ++ cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE) ++ ++$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS) ++ rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM) ++ cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE) ++ ++$(LIBDYLIB): $(PLATFORM) ++ $(MAKE) -C $(PLATFORM) PREFIX=$(PREFIX) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AR="$(AR)" ++ ++.installed-$(PLATFORM): $(LIBDYLIB) ++ $(MAKE) -C $(PLATFORM) PREFIX=$(PREFIX) CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AR="$(AR)" install ++ touch $@ ++ ++clean: ++ $(MAKE) -C $(PLATFORM) clean ++ rm -f .installed-$(PLATFORM) ++ ++distclean:: ++ rm -rf $(PLATFORM) .installed-$(PLATFORM) + +From bdf128de10eb980a68d8382df8f8621a61e020d1 Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Mon, 23 Mar 2015 22:33:04 +0000 +Subject: [PATCH 2/6] [dcadec] Add settings option to enable libdcadec + +--- + addons/resource.language.en_gb/resources/strings.po | 10 ++++++++++ + system/settings/imx6.xml | 20 ++++++++++++++++++++ + system/settings/rbp.xml | 5 +++++ + system/settings/rbp2.xml | 5 +++++ + tools/depends/target/ffmpeg/Makefile | 2 +- + .../DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp | 14 ++++++++++++-- + xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 15 +++++++++++++++ + xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp | 10 ++++++++-- + 8 files changed, 76 insertions(+), 5 deletions(-) + +diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po +index 6a6f0a3..3ab966d 100644 +--- a/addons/resource.language.en_gb/resources/strings.po ++++ b/addons/resource.language.en_gb/resources/strings.po +@@ -16541,3 +16541,13 @@ msgstr "" + msgctxt "#38016" + msgid "%d fps" + msgstr "" ++ ++#: system/settings/rbp.xml system/settings/imx6.xml ++msgctxt "#38120" ++msgid "Support 8 channel DTS-HD audio decoding" ++msgstr "" ++ ++#: system/settings/rbp.xml system/settings/imx6.xml ++msgctxt "#38121" ++msgid "Enables decoding of high quality DTS-HD audio streams. Note: This increases CPU load and is only available when DTS and DTS-HD audio passthrough are disabled." ++msgstr "" +diff --git a/system/settings/imx6.xml b/system/settings/imx6.xml +index d8b17c3..bdb5eb8 100644 +--- a/system/settings/imx6.xml ++++ b/system/settings/imx6.xml +@@ -13,6 +13,26 @@ + + + ++ ++ ++ ++ 2 ++ false ++ ++ ++ ++ ++ false ++ ++ false ++ false ++ ++ ++ ++ ++ ++ ++ + +
+ +diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml +index 50fe36a..52703e9 100644 +--- a/system/settings/rbp.xml ++++ b/system/settings/rbp.xml +@@ -76,6 +76,11 @@ + + 101 + ++ ++ 2 ++ false ++ ++ + + + +diff --git a/system/settings/rbp2.xml b/system/settings/rbp2.xml +index 8cc8f19..b29a428 100644 +--- a/system/settings/rbp2.xml ++++ b/system/settings/rbp2.xml +@@ -19,6 +19,11 @@ + + + ++ ++ ++ true ++ ++ + + + +diff --git a/tools/depends/target/ffmpeg/Makefile b/tools/depends/target/ffmpeg/Makefile +index 24480b2..1e20602 100644 +--- a/tools/depends/target/ffmpeg/Makefile ++++ b/tools/depends/target/ffmpeg/Makefile +@@ -56,7 +56,7 @@ endif + ifeq ($(Configuration), Release) + ffmpg_config += --disable-debug + endif +-ffmpg_config += --enable-libdcadec --disable-decoder=dca ++ffmpg_config += --enable-libdcadec + + + CLEAN_FILES=$(ARCHIVE) $(PLATFORM) +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp +index 991449b..e6553dd 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp +@@ -33,6 +33,7 @@ extern "C" { + #include "settings/Settings.h" + #include "cores/AudioEngine/Utils/AEUtil.h" + #endif ++#include "settings/Settings.h" + + CDVDAudioCodecFFmpeg::CDVDAudioCodecFFmpeg() : CDVDAudioCodec() + { +@@ -54,10 +55,19 @@ CDVDAudioCodecFFmpeg::~CDVDAudioCodecFFmpeg() + + bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) + { +- AVCodec* pCodec; ++ AVCodec* pCodec = NULL; + m_bOpenedCodec = false; + +- pCodec = avcodec_find_decoder(hints.codec); ++ bool allow_dtshd_decoding = true; ++#if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) || defined(HAS_LIBAMCODEC) ++ allow_dtshd_decoding = CSettings::Get().GetBool("audiooutput.supportdtshdcpudecoding"); ++#endif ++ if (hints.codec == AV_CODEC_ID_DTS && allow_dtshd_decoding) ++ pCodec = avcodec_find_decoder_by_name("libdcadec"); ++ ++ if (!pCodec) ++ pCodec = avcodec_find_decoder(hints.codec); ++ + if (!pCodec) + { + CLog::Log(LOGDEBUG,"CDVDAudioCodecFFmpeg::Open() Unable to find codec %d", hints.codec); +diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +index 74ff31f..6a97135 100644 +--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +@@ -439,6 +439,21 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput, bool streaminfo, bool filein + + if (m_streaminfo) + { ++#if defined(TARGET_RASPBERRY_PI) || defined(HAS_IMXVPU) || defined(HAS_LIBAMCODEC) ++ if (CSettings::Get().GetBool("audiooutput.supportdtshdcpudecoding")) ++#endif ++ { ++ for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) ++ { ++ AVStream *st = m_pFormatContext->streams[i]; ++ if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && st->codec->codec_id == AV_CODEC_ID_DTS) ++ { ++ AVCodec* pCodec = avcodec_find_decoder_by_name("libdcadec"); ++ if (pCodec) ++ st->codec->codec = pCodec; ++ } ++ } ++ } + /* to speed up dvd switches, only analyse very short */ + if(m_pInput->IsStreamType(DVDSTREAM_TYPE_DVD)) + av_opt_set_int(m_pFormatContext, "analyzeduration", 500000, 0); +diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +index 1a920f7..075f728 100644 +--- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp ++++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +@@ -26,6 +26,7 @@ + + #include "cores/AudioEngine/Utils/AEUtil.h" + #include "cores/AudioEngine/AEFactory.h" ++#include "settings/Settings.h" + + // the size of the audio_render output port buffers + #define AUDIO_DECODE_OUTPUT_BUFFER (32*1024) +@@ -62,10 +63,15 @@ COMXAudioCodecOMX::~COMXAudioCodecOMX() + + bool COMXAudioCodecOMX::Open(CDVDStreamInfo &hints) + { +- AVCodec* pCodec; ++ AVCodec* pCodec = NULL; + m_bOpenedCodec = false; + +- pCodec = avcodec_find_decoder(hints.codec); ++ if (hints.codec == AV_CODEC_ID_DTS && CSettings::Get().GetBool("audiooutput.supportdtshdcpudecoding")) ++ pCodec = avcodec_find_decoder_by_name("libdcadec"); ++ ++ if (!pCodec) ++ pCodec = avcodec_find_decoder(hints.codec); ++ + if (!pCodec) + { + CLog::Log(LOGDEBUG,"COMXAudioCodecOMX::Open() Unable to find codec %d", hints.codec); + +From 61fac1c7999532e4595ef9101c83074937dddabb Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:00:31 +0200 +Subject: [PATCH 3/6] [configure] use pkg-config to detect dcadec + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ad9ae6d..600325a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1088,7 +1088,7 @@ AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library), + AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([ogg/ogg.h],, AC_MSG_ERROR($missing_library)) + AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library)) +-AC_CHECK_HEADER([libdcadec/dca_context.h],, AC_MSG_ERROR($missing_library)) ++PKG_CHECK_MODULES([LIBDCADEC], [dcadec],, AC_MSG_ERROR([libdcadec not found])) + + PKG_CHECK_MODULES([LIBCURL], [libcurl],, AC_MSG_ERROR([libcurl not found])) + XB_FIND_SONAME([CURL], [curl]) + +From 035084e5c09555005aa045f67a282cecceb98900 Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:02:38 +0200 +Subject: [PATCH 4/6] [ffmpeg] enabled dcadec for linux standalone builds + +--- + tools/depends/target/ffmpeg/autobuild.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh +index 196c347..b9bfd57 100755 +--- a/tools/depends/target/ffmpeg/autobuild.sh ++++ b/tools/depends/target/ffmpeg/autobuild.sh +@@ -159,6 +159,7 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \ + --disable-mips32r2 \ + --disable-mipsdspr1 \ + --disable-mipsdspr2 \ ++ --enable-libdcadec \ + ${FLAGS} + + make -j ${BUILDTHREADS} + +From d89c29002ab09708540055f214823836e2c74c00 Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:12:31 +0200 +Subject: [PATCH 5/6] [depends] use a tarball from mirrors for dcadec + +--- + tools/depends/target/libdcadec/Makefile | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/tools/depends/target/libdcadec/Makefile b/tools/depends/target/libdcadec/Makefile +index e68ec46..4c98063 100644 +--- a/tools/depends/target/libdcadec/Makefile ++++ b/tools/depends/target/libdcadec/Makefile +@@ -2,9 +2,10 @@ include ../../Makefile.include + DEPS= ../../Makefile.include Makefile + + # lib name, version +-LIBNAME=dcadec +-ARCHIVE=master.tar.gz +-BASE_URL=https://github.com/foo86/dcadec/archive ++LIBNAME=libdcadec ++VERSION=git-396e75652 ++SOURCE=$(LIBNAME)-$(VERSION) ++ARCHIVE=$(SOURCE).tar.gz + + # configuration settings + + +From faceb91945a9064e26c55c83d9944d20f538da0d Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Wed, 13 May 2015 20:18:09 +0200 +Subject: [PATCH 6/6] [docs] add dcadec to linux README + +--- + docs/README.linux | 2 +- + docs/README.ubuntu | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/docs/README.linux b/docs/README.linux +index ee64baf..732d606 100644 +--- a/docs/README.linux ++++ b/docs/README.linux +@@ -44,7 +44,7 @@ that are used to build Kodi packages on Debian/Ubuntu (with all supported + external libraries enabled). + + Build-Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl, +- debhelper (>= 7.0.50~), default-jre, gawk, gperf, libao-dev, libasound2-dev, ++ dcadec-dev, default-jre, gawk, gperf, libao-dev, libasound2-dev, + libass-dev (>= 0.9.8), libavahi-client-dev, libavahi-common-dev, libbluetooth-dev, + libbluray-dev, libboost-dev, libboost-thread-dev, libbz2-dev, libcap-dev, libcdio-dev, + libcec-dev, libcurl4-gnutls-dev | libcurl4-openssl-dev | libcurl-dev, libcwiid-dev, +diff --git a/docs/README.ubuntu b/docs/README.ubuntu +index 10f1611..0369f83 100644 +--- a/docs/README.ubuntu ++++ b/docs/README.ubuntu +@@ -82,7 +82,7 @@ Tip: For those with multiple computers at home is to try out distcc + + For Ubuntu (all versions >= 7.04): + +- $ sudo apt-get install automake bison build-essential cmake curl cvs default-jre fp-compiler gawk gdc gettext git-core gperf libasound2-dev libass-dev libboost-dev libboost-thread-dev libbz2-dev libcap-dev libcdio-dev libcurl3 libcurl4-gnutls-dev libdbus-1-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libgif-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev liblzo2-dev libmicrohttpd-dev libmodplug-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libsdl2-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libva-dev libvdpau-dev libvorbis-dev libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount python-dev python-imaging python-sqlite swig unzip yasm zip zlib1g-dev ++ $ sudo apt-get install automake bison build-essential cmake curl cvs dcadec-dev default-jre fp-compiler gawk gdc gettext git-core gperf libasound2-dev libass-dev libboost-dev libboost-thread-dev libbz2-dev libcap-dev libcdio-dev libcurl3 libcurl4-gnutls-dev libdbus-1-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libgif-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev liblzo2-dev libmicrohttpd-dev libmodplug-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libsdl2-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libva-dev libvdpau-dev libvorbis-dev libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount python-dev python-imaging python-sqlite swig unzip yasm zip zlib1g-dev + + For >= 10.10: + $ sudo apt-get install autopoint libltdl-dev