mirror of
https://github.com/libretro/Lakka.git
synced 2025-02-21 08:24:10 +00:00
xbmc-master: update to xbmc-master-14-af2d1b5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
82ec18bcbd
commit
daa90579c0
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-master-theme-Confluence"
|
||||
PKG_VERSION="14-54a2dc7"
|
||||
PKG_VERSION="14-af2d1b5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-master"
|
||||
PKG_VERSION="14-54a2dc7"
|
||||
PKG_VERSION="14-af2d1b5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,62 +0,0 @@
|
||||
From 6a926768eba981c6498f852fe26dfa6644da82ac Mon Sep 17 00:00:00 2001
|
||||
From: "Chris \"Koying\" Browet" <cbro@semperpax.com>
|
||||
Date: Wed, 23 Apr 2014 16:33:19 +0200
|
||||
Subject: [PATCH] FIX: [linux] fix & optimize input device checking
|
||||
|
||||
---
|
||||
xbmc/input/linux/LinuxInputDevices.cpp | 12 +++++++++++-
|
||||
xbmc/input/linux/LinuxInputDevices.h | 1 +
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
index 4b642ae..f11ec01 100644
|
||||
--- a/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
+++ b/xbmc/input/linux/LinuxInputDevices.cpp
|
||||
@@ -936,6 +936,11 @@ char* CLinuxInputDevice::GetDeviceName()
|
||||
return m_deviceName;
|
||||
}
|
||||
|
||||
+std::string CLinuxInputDevice::GetFileName()
|
||||
+{
|
||||
+ return m_fileName;
|
||||
+}
|
||||
+
|
||||
bool CLinuxInputDevice::IsUnplugged()
|
||||
{
|
||||
return m_bUnplugged;
|
||||
@@ -945,6 +950,11 @@ bool CLinuxInputDevices::CheckDevice(const char *device)
|
||||
{
|
||||
int fd;
|
||||
|
||||
+ // Does the device exists?
|
||||
+ struct stat buffer;
|
||||
+ if (stat(device, &buffer) != 0)
|
||||
+ return false;
|
||||
+
|
||||
/* Check if we are able to open the device */
|
||||
fd = open(device, O_RDWR);
|
||||
if (fd < 0)
|
||||
@@ -1016,7 +1026,7 @@ void CLinuxInputDevices::CheckHotplugged()
|
||||
|
||||
for (size_t j = 0; j < m_devices.size(); j++)
|
||||
{
|
||||
- if (strcmp(m_devices[j]->GetDeviceName(),buf) == 0)
|
||||
+ if (m_devices[j]->GetFileName().compare(buf) == 0)
|
||||
{
|
||||
ispresent = true;
|
||||
break;
|
||||
diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h
|
||||
index c385ed7..a406d9c 100644
|
||||
--- a/xbmc/input/linux/LinuxInputDevices.h
|
||||
+++ b/xbmc/input/linux/LinuxInputDevices.h
|
||||
@@ -42,6 +42,7 @@ class CLinuxInputDevice
|
||||
~CLinuxInputDevice();
|
||||
XBMC_Event ReadEvent();
|
||||
char* GetDeviceName();
|
||||
+ std::string GetFileName();
|
||||
bool IsUnplugged();
|
||||
|
||||
private:
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1,732 +0,0 @@
|
||||
From 2dddb20e95a2b1bcfcbf013dcd85444e59c3a6c5 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Thu, 1 May 2014 13:58:35 +0200
|
||||
Subject: [PATCH 1/3] remove libsamplerate and related dead code
|
||||
|
||||
---
|
||||
configure.in | 4 -
|
||||
.../BuildDependencies/scripts/libsamplerate_d.bat | 14 -
|
||||
.../BuildDependencies/scripts/libsamplerate_d.txt | 3 -
|
||||
project/VS2010Express/XBMC.vcxproj | 4 +-
|
||||
project/VS2010Express/XBMC.vcxproj.filters | 8 +-
|
||||
tools/depends/target/Makefile | 2 +-
|
||||
tools/depends/target/libsamplerate/Makefile | 42 ---
|
||||
xbmc/cores/AudioEngine/Utils/AEWAVLoader.cpp | 368 ---------------------
|
||||
xbmc/cores/AudioEngine/Utils/AEWAVLoader.h | 79 -----
|
||||
xbmc/win32/Win32DelayedDllLoad.cpp | 6 -
|
||||
10 files changed, 3 insertions(+), 527 deletions(-)
|
||||
delete mode 100644 project/BuildDependencies/scripts/libsamplerate_d.bat
|
||||
delete mode 100644 project/BuildDependencies/scripts/libsamplerate_d.txt
|
||||
delete mode 100644 tools/depends/target/libsamplerate/Makefile
|
||||
delete mode 100644 xbmc/cores/AudioEngine/Utils/AEWAVLoader.cpp
|
||||
delete mode 100644 xbmc/cores/AudioEngine/Utils/AEWAVLoader.h
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index af674d8..33e7528 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -1037,7 +1037,6 @@ AC_CHECK_HEADER([mpeg2dec/mpeg2convert.h],, AC_MSG_ERROR($missing_library),
|
||||
AC_INCLUDES_DEFAULT()
|
||||
[#include <mpeg2dec/mpeg2.h>])
|
||||
AC_CHECK_HEADER([jpeglib.h],, AC_MSG_ERROR($missing_library))
|
||||
-AC_CHECK_HEADER([samplerate.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([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
|
||||
@@ -1116,9 +1115,6 @@ PKG_CHECK_MODULES([PCRE], [libpcre],
|
||||
[INCLUDES="$INCLUDES $PCRE_CFLAGS"; LIBS="$LIBS $PCRE_LIBS"]; \
|
||||
AC_DEFINE([HAVE_LIBPCRE],[1],["Define to 1 if libpcre is installed"]),
|
||||
AC_MSG_ERROR($missing_library))
|
||||
-PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
|
||||
- [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
|
||||
- AC_MSG_ERROR($missing_library))
|
||||
PKG_CHECK_MODULES([FREETYPE2], [freetype2],
|
||||
[INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
|
||||
AC_MSG_ERROR($missing_library))
|
||||
diff --git a/project/BuildDependencies/scripts/libsamplerate_d.txt b/project/BuildDependencies/scripts/libsamplerate_d.txt
|
||||
deleted file mode 100644
|
||||
index 6a0e2d3..0000000
|
||||
--- a/project/BuildDependencies/scripts/libsamplerate_d.txt
|
||||
+++ /dev/null
|
||||
@@ -1,3 +0,0 @@
|
||||
-; filename mirror of the file source of the file
|
||||
-libsamplerate-vc100-0.1.7-lib.tar.bz2 http://mirrors.xbmc.org/build-deps/win32/ http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/libsamplerate-vc100-0.1.7-lib.tar.bz2
|
||||
-libsamplerate-vc100-0.1.7-bin.tar.bz2 http://mirrors.xbmc.org/build-deps/win32/ http://winkde.org/pub/kde/ports/win32/releases/stable/4.5.4/libsamplerate-vc100-0.1.7-bin.tar.bz2
|
||||
\ No newline at end of file
|
||||
diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj
|
||||
index fecf712..ef455c8 100644
|
||||
--- a/project/VS2010Express/XBMC.vcxproj
|
||||
+++ b/project/VS2010Express/XBMC.vcxproj
|
||||
@@ -316,7 +316,6 @@
|
||||
<ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AERemap.cpp" />
|
||||
<ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEStreamInfo.cpp" />
|
||||
<ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.cpp" />
|
||||
- <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEWAVLoader.cpp" />
|
||||
<ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecPassthrough.cpp" />
|
||||
<ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\CrystalHD.cpp" />
|
||||
<ClCompile Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Video\DVDVideoCodec.cpp" />
|
||||
@@ -993,7 +992,6 @@
|
||||
<ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AERemap.h" />
|
||||
<ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEStreamInfo.h" />
|
||||
<ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.h" />
|
||||
- <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEWAVLoader.h" />
|
||||
<ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDCodecs\Audio\DVDAudioCodecPassthrough.h" />
|
||||
<ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxBXA.h" />
|
||||
<ClInclude Include="..\..\xbmc\cores\dvdplayer\DVDDemuxers\DVDDemuxCDDA.h" />
|
||||
@@ -2997,4 +2995,4 @@
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(SolutionDir)\$(ProjectFileName).targets.user" Condition="Exists('$(SolutionDir)\$(ProjectFileName).targets.user')" />
|
||||
-</Project>
|
||||
+</Project>
|
||||
\ No newline at end of file
|
||||
diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters
|
||||
index c7596ea..fcbe5e7 100644
|
||||
--- a/project/VS2010Express/XBMC.vcxproj.filters
|
||||
+++ b/project/VS2010Express/XBMC.vcxproj.filters
|
||||
@@ -2352,9 +2352,6 @@
|
||||
<ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.cpp">
|
||||
<Filter>cores\AudioEngine\Utils</Filter>
|
||||
</ClCompile>
|
||||
- <ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEWAVLoader.cpp">
|
||||
- <Filter>cores\AudioEngine\Utils</Filter>
|
||||
- </ClCompile>
|
||||
<ClCompile Include="..\..\xbmc\cores\AudioEngine\Utils\AEDeviceInfo.cpp">
|
||||
<Filter>cores\AudioEngine\Utils</Filter>
|
||||
</ClCompile>
|
||||
@@ -5444,9 +5441,6 @@
|
||||
<ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEUtil.h">
|
||||
<Filter>cores\AudioEngine\Utils</Filter>
|
||||
</ClInclude>
|
||||
- <ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEWAVLoader.h">
|
||||
- <Filter>cores\AudioEngine\Utils</Filter>
|
||||
- </ClInclude>
|
||||
<ClInclude Include="..\..\xbmc\cores\AudioEngine\Utils\AEDeviceInfo.h">
|
||||
<Filter>cores\AudioEngine\Utils</Filter>
|
||||
</ClInclude>
|
||||
@@ -6132,4 +6126,4 @@
|
||||
<Filter>interfaces\swig</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
-</Project>
|
||||
+</Project>
|
||||
\ No newline at end of file
|
||||
diff --git a/tools/depends/target/Makefile b/tools/depends/target/Makefile
|
||||
index 8368a24..3e02fc0 100644
|
||||
--- a/tools/depends/target/Makefile
|
||||
+++ b/tools/depends/target/Makefile
|
||||
@@ -10,7 +10,7 @@ DEPENDS = \
|
||||
openssl gmp nettle gnutls libssh2 curl \
|
||||
libjpeg-turbo tiff jasper libpng \
|
||||
libogg libvorbis libflac fribidi libmpeg2 \
|
||||
- libass libsamplerate \
|
||||
+ libass \
|
||||
libmodplug librtmp libxml2 yajl libmicrohttpd mysql libffi \
|
||||
python26 afpfs-ng libshairplay \
|
||||
libplist libcec libbluray boost tinyxml dummy-libxbmc \
|
||||
diff --git a/tools/depends/target/libsamplerate/Makefile b/tools/depends/target/libsamplerate/Makefile
|
||||
deleted file mode 100644
|
||||
index 2f87beb..0000000
|
||||
--- a/tools/depends/target/libsamplerate/Makefile
|
||||
+++ /dev/null
|
||||
@@ -1,42 +0,0 @@
|
||||
-include ../../Makefile.include
|
||||
-DEPS= ../../Makefile.include Makefile
|
||||
-
|
||||
-# lib name, version
|
||||
-LIBNAME=libsamplerate
|
||||
-VERSION=0.1.7
|
||||
-SOURCE=$(LIBNAME)-$(VERSION)
|
||||
-ARCHIVE=$(SOURCE).tar.gz
|
||||
-
|
||||
-# configuration settings
|
||||
-CONFIGURE=cp -f $(CONFIG_SUB) $(CONFIG_GUESS) .; \
|
||||
- cp -f $(CONFIG_SUB) $(CONFIG_GUESS) Cfg; \
|
||||
- ./configure --prefix=$(PREFIX) --disable-sndfile --disable-fftw --disable-shared
|
||||
-
|
||||
-LIBDYLIB=$(PLATFORM)/src/.libs/$(LIBNAME).a
|
||||
-
|
||||
-CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
|
||||
-
|
||||
-all: .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)
|
||||
- cd $(PLATFORM); $(CONFIGURE)
|
||||
-
|
||||
-$(LIBDYLIB): $(PLATFORM)
|
||||
- $(MAKE) -C $(PLATFORM)
|
||||
-
|
||||
-.installed-$(PLATFORM): $(LIBDYLIB)
|
||||
- $(MAKE) -C $(PLATFORM) install
|
||||
- touch $@
|
||||
-
|
||||
-clean:
|
||||
- $(MAKE) -C $(PLATFORM) clean
|
||||
- rm -f .installed-$(PLATFORM)
|
||||
-
|
||||
-distclean::
|
||||
- rm -rf $(PLATFORM) .installed-$(PLATFORM)
|
||||
-
|
||||
diff --git a/xbmc/cores/AudioEngine/Utils/AEWAVLoader.cpp b/xbmc/cores/AudioEngine/Utils/AEWAVLoader.cpp
|
||||
deleted file mode 100644
|
||||
index de9029b..0000000
|
||||
--- a/xbmc/cores/AudioEngine/Utils/AEWAVLoader.cpp
|
||||
+++ /dev/null
|
||||
@@ -1,368 +0,0 @@
|
||||
-/*
|
||||
- * Copyright (C) 2010-2013 Team XBMC
|
||||
- * http://xbmc.org
|
||||
- *
|
||||
- * This Program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 2, or (at your option)
|
||||
- * any later version.
|
||||
- *
|
||||
- * This Program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
- *
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with XBMC; see the file COPYING. If not, see
|
||||
- * <http://www.gnu.org/licenses/>.
|
||||
- *
|
||||
- */
|
||||
-
|
||||
-#include "AEWAVLoader.h"
|
||||
-
|
||||
-
|
||||
-#include "system.h"
|
||||
-#include "utils/log.h"
|
||||
-#include "utils/EndianSwap.h"
|
||||
-#include "filesystem/File.h"
|
||||
-#include "URL.h"
|
||||
-#include <samplerate.h>
|
||||
-
|
||||
-#include "AEConvert.h"
|
||||
-#include "AEUtil.h"
|
||||
-#include "AERemap.h"
|
||||
-
|
||||
-#ifdef TARGET_WINDOWS
|
||||
-#pragma comment(lib, "libsamplerate-0.lib")
|
||||
-#endif
|
||||
-
|
||||
-typedef struct
|
||||
-{
|
||||
- char chunk_id[4];
|
||||
- uint32_t chunksize;
|
||||
-} WAVE_CHUNK;
|
||||
-
|
||||
-CAEWAVLoader::CAEWAVLoader() :
|
||||
- m_valid (false),
|
||||
- m_sampleRate (0 ),
|
||||
- m_outputSampleRate (0 ),
|
||||
- m_frameCount (0 ),
|
||||
- m_outputFrameCount (0 ),
|
||||
- m_sampleCount (0 ),
|
||||
- m_outputSampleCount (0 ),
|
||||
- m_samples (NULL ),
|
||||
- m_outputSamples (NULL )
|
||||
-{
|
||||
-}
|
||||
-
|
||||
-CAEWAVLoader::~CAEWAVLoader()
|
||||
-{
|
||||
- UnLoad();
|
||||
-}
|
||||
-
|
||||
-bool CAEWAVLoader::Load(const std::string &filename)
|
||||
-{
|
||||
- UnLoad();
|
||||
-
|
||||
- m_filename = filename;
|
||||
-
|
||||
- XFILE::CFile file;
|
||||
- if (!file.Open(m_filename))
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - Failed to create loader: %s", m_filename.c_str());
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- struct __stat64 st;
|
||||
- if (file.Stat(&st) < 0)
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - Failed to stat file: %s", m_filename.c_str());
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- bool isRIFF = false;
|
||||
- bool isWAVE = false;
|
||||
- bool isFMT = false;
|
||||
- bool isPCM = false;
|
||||
- bool isDATA = false;
|
||||
-
|
||||
- uint32_t sampleRate;
|
||||
- uint32_t byteRate;
|
||||
- uint16_t blockAlign;
|
||||
- uint16_t bitsPerSample;
|
||||
-
|
||||
- WAVE_CHUNK chunk;
|
||||
- while (file.Read(&chunk, sizeof(chunk)) == sizeof(chunk))
|
||||
- {
|
||||
- chunk.chunksize = Endian_SwapLE32(chunk.chunksize);
|
||||
-
|
||||
- /* if its the RIFF header */
|
||||
- if (!isRIFF && memcmp(chunk.chunk_id, "RIFF", 4) == 0)
|
||||
- {
|
||||
- isRIFF = true;
|
||||
-
|
||||
- /* work around invalid chunksize, I have seen this in one file so far (shutter.wav) */
|
||||
- if (chunk.chunksize == st.st_size)
|
||||
- chunk.chunksize -= 8;
|
||||
-
|
||||
- /* sanity check on the chunksize */
|
||||
- if (chunk.chunksize > st.st_size - 8)
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - Corrupt WAV header: %s", m_filename.c_str());
|
||||
- file.Close();
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- /* we only support WAVE files */
|
||||
- char format[4];
|
||||
- if (file.Read(&format, 4) != 4)
|
||||
- break;
|
||||
- isWAVE = memcmp(format, "WAVE", 4) == 0;
|
||||
- if (!isWAVE)
|
||||
- break;
|
||||
- }
|
||||
- /* if its the fmt section */
|
||||
- else if (!isFMT && memcmp(chunk.chunk_id, "fmt ", 4) == 0)
|
||||
- {
|
||||
- isFMT = true;
|
||||
- if (chunk.chunksize < 16)
|
||||
- break;
|
||||
- uint16_t format;
|
||||
- if (file.Read(&format, sizeof(format)) != sizeof(format))
|
||||
- break;
|
||||
- format = Endian_SwapLE16(format);
|
||||
- if (format != WAVE_FORMAT_PCM)
|
||||
- break;
|
||||
-
|
||||
- uint16_t channelCount;
|
||||
- if (file.Read(&channelCount , 2) != 2)
|
||||
- break;
|
||||
- if (file.Read(&sampleRate , 4) != 4)
|
||||
- break;
|
||||
- if (file.Read(&byteRate , 4) != 4)
|
||||
- break;
|
||||
- if (file.Read(&blockAlign , 2) != 2)
|
||||
- break;
|
||||
- if (file.Read(&bitsPerSample, 2) != 2)
|
||||
- break;
|
||||
-
|
||||
- channelCount = Endian_SwapLE16(channelCount);
|
||||
- /* TODO: support > 2 channel count */
|
||||
- if (channelCount > 2)
|
||||
- break;
|
||||
-
|
||||
- static AEChannel layouts[][3] = {
|
||||
- {AE_CH_FC, AE_CH_NULL},
|
||||
- {AE_CH_FL, AE_CH_FR, AE_CH_NULL}
|
||||
- };
|
||||
-
|
||||
- m_channels = layouts[channelCount - 1];
|
||||
- m_sampleRate = Endian_SwapLE32(sampleRate );
|
||||
- byteRate = Endian_SwapLE32(byteRate );
|
||||
- blockAlign = Endian_SwapLE16(blockAlign );
|
||||
- bitsPerSample = Endian_SwapLE16(bitsPerSample);
|
||||
- isPCM = true;
|
||||
-
|
||||
- if (chunk.chunksize > 16)
|
||||
- file.Seek(chunk.chunksize - 16, SEEK_CUR);
|
||||
- }
|
||||
- /* if we have the PCM info and its the DATA section */
|
||||
- else if (isPCM && !isDATA && memcmp(chunk.chunk_id, "data", 4) == 0)
|
||||
- {
|
||||
- unsigned int bytesPerSample = bitsPerSample >> 3;
|
||||
- m_sampleCount = chunk.chunksize / bytesPerSample;
|
||||
- m_frameCount = m_sampleCount / m_channels.Count();
|
||||
- isDATA = m_frameCount > 0;
|
||||
-
|
||||
- /* get the conversion function */
|
||||
- CAEConvert::AEConvertToFn convertFn;
|
||||
- switch (bitsPerSample)
|
||||
- {
|
||||
- case 8 : convertFn = CAEConvert::ToFloat(AE_FMT_U8 ); break;
|
||||
- case 16: convertFn = CAEConvert::ToFloat(AE_FMT_S16LE); break;
|
||||
- case 32: convertFn = CAEConvert::ToFloat(AE_FMT_S32LE); break;
|
||||
- default:
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - Unsupported data format in wav: %s", m_filename.c_str());
|
||||
- file.Close();
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- /* read in each sample */
|
||||
- unsigned int size = bytesPerSample * m_sampleCount;
|
||||
- m_samples = (float* )_aligned_malloc(sizeof(float) * m_sampleCount, 16);
|
||||
- uint8_t *raw = (uint8_t *)_aligned_malloc(size, 16);
|
||||
- if (file.Read(raw, size) != size)
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - WAV data shorter then expected: %s", m_filename.c_str());
|
||||
- _aligned_free(m_samples);
|
||||
- _aligned_free(raw);
|
||||
- m_samples = NULL;
|
||||
- file.Close();
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- /* convert the samples to float */
|
||||
- convertFn(raw, m_sampleCount, m_samples);
|
||||
- _aligned_free(raw);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- /* skip any unknown sections */
|
||||
- file.Seek(chunk.chunksize, SEEK_CUR);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (!isRIFF || !isWAVE || !isFMT || !isPCM || !isDATA || m_sampleCount == 0)
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - Invalid, or un-supported WAV file: %s", m_filename.c_str());
|
||||
- file.Close();
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- /* close the file as we have the samples now */
|
||||
- file.Close();
|
||||
-
|
||||
- m_outputChannels = m_channels;
|
||||
- m_outputSampleRate = m_sampleRate;
|
||||
- m_outputSamples = m_samples;
|
||||
- m_outputSampleCount = m_sampleCount;
|
||||
- m_outputFrameCount = m_frameCount;
|
||||
-
|
||||
- CLog::Log(LOGINFO, "CAEWAVLoader::Initialize - Sound Loaded: %s", m_filename.c_str());
|
||||
- m_valid = true;
|
||||
- return true;
|
||||
-}
|
||||
-
|
||||
-bool CAEWAVLoader::Initialize(unsigned int resampleRate, CAEChannelInfo channelLayout, enum AEStdChLayout stdChLayout/* = AE_CH_LAYOUT_INVALID */)
|
||||
-{
|
||||
- if (!m_valid)
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - File has not been loaded");
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- DeInitialize();
|
||||
-
|
||||
- /* if the sample rates do not match */
|
||||
- if (m_sampleRate != resampleRate)
|
||||
- {
|
||||
- unsigned int space = (unsigned int)((((float)m_sampleCount / (float)m_sampleRate) * (float)resampleRate) * 2.0f);
|
||||
- SRC_DATA data;
|
||||
- data.data_in = m_samples;
|
||||
- data.input_frames = m_frameCount;
|
||||
- data.data_out = (float*)_aligned_malloc(sizeof(float) * space, 16);
|
||||
- data.output_frames = space / m_channels.Count();
|
||||
- data.src_ratio = (double)resampleRate / (double)m_sampleRate;
|
||||
-#ifdef TARGET_DARWIN_IOS
|
||||
- if (src_simple(&data, SRC_SINC_FASTEST, m_channels.Count()) != 0)
|
||||
-#else
|
||||
- if (src_simple(&data, SRC_SINC_MEDIUM_QUALITY, m_channels.Count()) != 0)
|
||||
-#endif
|
||||
- {
|
||||
- CLog::Log(LOGERROR, "CAEWAVLoader::Initialize - Failed to resample audio: %s", m_filename.c_str());
|
||||
- _aligned_free(data.data_out);
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- if (m_outputSamples != m_samples)
|
||||
- _aligned_free(m_outputSamples);
|
||||
-
|
||||
- m_outputSamples = data.data_out;
|
||||
- m_outputFrameCount = data.output_frames_gen;
|
||||
- m_outputSampleCount = data.output_frames_gen * m_channels.Count();
|
||||
- m_outputSampleRate = resampleRate;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- m_outputSamples = m_samples;
|
||||
- m_outputFrameCount = m_frameCount;
|
||||
- m_outputSampleCount = m_sampleCount;
|
||||
- m_outputSampleRate = m_sampleRate;
|
||||
- }
|
||||
-
|
||||
- /* if the channel layouts do not match */
|
||||
- if (m_channels != channelLayout)
|
||||
- {
|
||||
- CAERemap remap;
|
||||
- if (!remap.Initialize(m_channels, channelLayout, false, false, stdChLayout))
|
||||
- return false;
|
||||
-
|
||||
- /* adjust the output format parameters */
|
||||
- m_outputSampleCount = m_outputFrameCount * channelLayout.Count();
|
||||
- m_outputChannels = channelLayout;
|
||||
-
|
||||
- float *remapped = (float*)_aligned_malloc(sizeof(float) * m_outputSampleCount, 16);
|
||||
- remap.Remap(m_outputSamples, remapped, m_outputFrameCount);
|
||||
-
|
||||
- /* assign the remapped buffer */
|
||||
- if (m_outputSamples != m_samples)
|
||||
- _aligned_free(m_outputSamples);
|
||||
- m_outputSamples = remapped;
|
||||
- }
|
||||
-
|
||||
- return true;
|
||||
-}
|
||||
-
|
||||
-void CAEWAVLoader::UnLoad()
|
||||
-{
|
||||
- DeInitialize();
|
||||
-
|
||||
- _aligned_free(m_samples);
|
||||
- m_samples = NULL;
|
||||
- m_sampleCount = 0;
|
||||
- m_frameCount = 0;
|
||||
- m_channels.Reset();
|
||||
-
|
||||
- m_outputSamples = NULL;
|
||||
- m_outputSampleCount = 0;
|
||||
- m_outputFrameCount = 0;
|
||||
- m_outputChannels.Reset();
|
||||
-}
|
||||
-
|
||||
-void CAEWAVLoader::DeInitialize()
|
||||
-{
|
||||
- /* only free m_outputSamples if it is a seperate buffer */
|
||||
- if (m_outputSamples != m_samples)
|
||||
- _aligned_free(m_outputSamples);
|
||||
-
|
||||
- m_outputSamples = m_samples;
|
||||
- m_outputSampleCount = m_sampleCount;
|
||||
- m_outputFrameCount = m_frameCount;
|
||||
- m_outputChannels = m_channels;
|
||||
-}
|
||||
-
|
||||
-CAEChannelInfo CAEWAVLoader::GetChannelLayout()
|
||||
-{
|
||||
- return m_outputChannels;
|
||||
-}
|
||||
-
|
||||
-unsigned int CAEWAVLoader::GetSampleRate()
|
||||
-{
|
||||
- return m_outputSampleRate;
|
||||
-}
|
||||
-
|
||||
-unsigned int CAEWAVLoader::GetSampleCount()
|
||||
-{
|
||||
- return m_outputSampleCount;
|
||||
-}
|
||||
-
|
||||
-unsigned int CAEWAVLoader::GetFrameCount()
|
||||
-{
|
||||
- return m_outputFrameCount;
|
||||
-}
|
||||
-
|
||||
-float* CAEWAVLoader::GetSamples()
|
||||
-{
|
||||
- if (!m_valid || m_outputSamples == NULL)
|
||||
- return NULL;
|
||||
-
|
||||
- return m_outputSamples;
|
||||
-}
|
||||
-
|
||||
-bool CAEWAVLoader::IsCompatible(const unsigned int sampleRate, const CAEChannelInfo &channelInfo)
|
||||
-{
|
||||
- return (
|
||||
- m_outputSampleRate == sampleRate &&
|
||||
- m_outputChannels == channelInfo
|
||||
- );
|
||||
-}
|
||||
diff --git a/xbmc/cores/AudioEngine/Utils/AEWAVLoader.h b/xbmc/cores/AudioEngine/Utils/AEWAVLoader.h
|
||||
deleted file mode 100644
|
||||
index e96bbba..0000000
|
||||
--- a/xbmc/cores/AudioEngine/Utils/AEWAVLoader.h
|
||||
+++ /dev/null
|
||||
@@ -1,79 +0,0 @@
|
||||
-#pragma once
|
||||
-/*
|
||||
- * Copyright (C) 2010-2013 Team XBMC
|
||||
- * http://xbmc.org
|
||||
- *
|
||||
- * This Program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 2, or (at your option)
|
||||
- * any later version.
|
||||
- *
|
||||
- * This Program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
- *
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with XBMC; see the file COPYING. If not, see
|
||||
- * <http://www.gnu.org/licenses/>.
|
||||
- *
|
||||
- */
|
||||
-
|
||||
-#include "utils/StdString.h"
|
||||
-#include "AEAudioFormat.h"
|
||||
-
|
||||
-class CAEWAVLoader
|
||||
-{
|
||||
-public:
|
||||
- CAEWAVLoader();
|
||||
- ~CAEWAVLoader();
|
||||
-
|
||||
- /**
|
||||
- * Load a WAV file into memory
|
||||
- * @param filename The filename to load
|
||||
- * @return true on success
|
||||
- */
|
||||
- bool Load(const std::string &filename);
|
||||
-
|
||||
- /**
|
||||
- * Unload and release the samples loaded by CAWEAVLoader::Load
|
||||
- */
|
||||
- void UnLoad();
|
||||
-
|
||||
- /**
|
||||
- * Initialize the loaded file for the required output format
|
||||
- * @param sampleRate The desired output sample rate
|
||||
- * @param channelLayout The desired output channel layout
|
||||
- * @param stdChLayout The channels that are actually used in the layout
|
||||
- */
|
||||
- bool Initialize(unsigned int resampleRate, CAEChannelInfo channelLayout, enum AEStdChLayout stdChLayout = AE_CH_LAYOUT_INVALID);
|
||||
-
|
||||
- /**
|
||||
- * DeInitialize the remapped/resampled output
|
||||
- */
|
||||
- void DeInitialize();
|
||||
-
|
||||
- /**
|
||||
- * Returns if the current sample buffer is valid
|
||||
- * @return true if the current sample buffer is valid
|
||||
- */
|
||||
- bool IsValid() { return m_valid; }
|
||||
-
|
||||
- CAEChannelInfo GetChannelLayout();
|
||||
- unsigned int GetSampleRate();
|
||||
- unsigned int GetSampleCount();
|
||||
- unsigned int GetFrameCount();
|
||||
- float* GetSamples();
|
||||
- bool IsCompatible(const unsigned int sampleRate, const CAEChannelInfo &channelInfo);
|
||||
-
|
||||
-private:
|
||||
- std::string m_filename;
|
||||
- bool m_valid;
|
||||
-
|
||||
- CAEChannelInfo m_channels , m_outputChannels;
|
||||
- unsigned int m_sampleRate , m_outputSampleRate;
|
||||
- unsigned int m_frameCount , m_outputFrameCount;
|
||||
- unsigned int m_sampleCount , m_outputSampleCount;
|
||||
- float *m_samples , *m_outputSamples;
|
||||
-};
|
||||
-
|
||||
diff --git a/xbmc/win32/Win32DelayedDllLoad.cpp b/xbmc/win32/Win32DelayedDllLoad.cpp
|
||||
index def089e..61bdbb2 100644
|
||||
--- a/xbmc/win32/Win32DelayedDllLoad.cpp
|
||||
+++ b/xbmc/win32/Win32DelayedDllLoad.cpp
|
||||
@@ -48,12 +48,6 @@ FARPROC WINAPI delayHookNotifyFunc (unsigned dliNotify, PDelayLoadInfo pdli)
|
||||
HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
|
||||
return (FARPROC)hMod;
|
||||
}
|
||||
- if (stricmp(pdli->szDll, "libsamplerate-0.dll") == 0)
|
||||
- {
|
||||
- std::string strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/libsamplerate-0.dll");
|
||||
- HMODULE hMod = LoadLibraryEx(strDll.c_str(), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
|
||||
- return (FARPROC)hMod;
|
||||
- }
|
||||
if (stricmp(pdli->szDll, "dnssd.dll") == 0)
|
||||
{
|
||||
std::string strDll = CSpecialProtocol::TranslatePath("special://xbmcbin/system/dnssd.dll");
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 9f54552f919ee1bbabae2d18e0c0fe393683623f Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Thu, 1 May 2014 16:03:21 +0200
|
||||
Subject: [PATCH 2/3] squash me
|
||||
|
||||
---
|
||||
project/VS2010Express/XBMC.vcxproj | 2 +-
|
||||
xbmc/cores/AudioEngine/Makefile.in | 1 -
|
||||
2 files changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj
|
||||
index ef455c8..d85910b 100644
|
||||
--- a/project/VS2010Express/XBMC.vcxproj
|
||||
+++ b/project/VS2010Express/XBMC.vcxproj
|
||||
@@ -158,7 +158,7 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc;msvcrt;libcmt;msvcrtd;msvcprtd;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ModuleDefinitionFile>
|
||||
</ModuleDefinitionFile>
|
||||
- <DelayLoadDLLs>libxslt.dll;dnssd.dll;dwmapi.dll;libmicrohttpd-5.dll;ssh.dll;sqlite3.dll;libsamplerate-0.dll;avcodec-55.dll;avfilter-4.dll;avformat-55.dll;avutil-52.dll;postproc-52.dll;swresample-0.dll;swscale-2.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
+ <DelayLoadDLLs>libxslt.dll;dnssd.dll;dwmapi.dll;libmicrohttpd-5.dll;ssh.dll;sqlite3.dll;avcodec-55.dll;avfilter-4.dll;avformat-55.dll;avutil-52.dll;postproc-52.dll;swresample-0.dll;swscale-2.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||
<ProgramDatabaseFile>$(OutDir)XBMC.pdb</ProgramDatabaseFile>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
diff --git a/xbmc/cores/AudioEngine/Makefile.in b/xbmc/cores/AudioEngine/Makefile.in
|
||||
index b49c3cc..c219653 100644
|
||||
--- a/xbmc/cores/AudioEngine/Makefile.in
|
||||
+++ b/xbmc/cores/AudioEngine/Makefile.in
|
||||
@@ -60,7 +60,6 @@ SRCS += Utils/AEUtil.cpp
|
||||
SRCS += Utils/AEStreamInfo.cpp
|
||||
SRCS += Utils/AEPackIEC61937.cpp
|
||||
SRCS += Utils/AEBitstreamPacker.cpp
|
||||
-SRCS += Utils/AEWAVLoader.cpp
|
||||
SRCS += Utils/AEELDParser.cpp
|
||||
SRCS += Utils/AEDeviceInfo.cpp
|
||||
SRCS += Utils/AELimiter.cpp
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From ce4a9a5a3217ae2c294dfc1c158dd174bdef126c Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 2 May 2014 08:19:48 +0200
|
||||
Subject: [PATCH 3/3] update docs after removal of libsamplerare
|
||||
|
||||
---
|
||||
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 627aeb1..844d3a3 100644
|
||||
--- a/docs/README.linux
|
||||
+++ b/docs/README.linux
|
||||
@@ -48,7 +48,7 @@ Build-Depends: autoconf, automake, autopoint, autotools-dev, cmake, curl,
|
||||
libhal-storage-dev, libiso9660-dev, libjasper-dev, libjpeg-dev, libltdl-dev, liblzo2-dev,
|
||||
libmad0-dev, libmicrohttpd-dev, libmodplug-dev, libmpcdec-dev, libmpeg2-4-dev, libmysqlclient-dev,
|
||||
libnfs-dev, libogg-dev, libpcre3-dev, libplist-dev, libpng12-dev | libpng-dev, libpostproc-dev,
|
||||
- libpulse-dev, librtmp-dev, libsamplerate-dev, libsdl-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev,
|
||||
+ libpulse-dev, librtmp-dev, libsdl-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev,
|
||||
libshairplay-dev, libsmbclient-dev, libsqlite3-dev, libssh-dev, libssl-dev, libswscale-dev,
|
||||
libtag1-dev (>= 1.8), libtiff-dev, libtinyxml-dev, libtool, libudev-dev, libusb-dev, libva-dev,
|
||||
libvdpau-dev, libvorbis-dev, libxinerama-dev, libxml2-dev, libxmu-dev, libxrandr-dev, libxslt1-dev,
|
||||
diff --git a/docs/README.ubuntu b/docs/README.ubuntu
|
||||
index 1c597d6..fe20abe 100644
|
||||
--- a/docs/README.ubuntu
|
||||
+++ b/docs/README.ubuntu
|
||||
@@ -73,7 +73,7 @@ Here is the magic command to get the build dependencies (used to compile the ver
|
||||
|
||||
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 libenca-dev libflac-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev liblzo2-dev libmad0-dev libmicrohttpd-dev libmodplug-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libsamplerate-dev libsdl-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libvdpau-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 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 libenca-dev libflac-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev liblzo2-dev libmad0-dev libmicrohttpd-dev libmodplug-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libsdl-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libvdpau-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
|
||||
--
|
||||
1.9.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user