Jay Moore 16 hours ago
commit 4f9f30b2ef

@ -0,0 +1,357 @@
# This is the CMakeCache file.
# For build in directory: /home/dewdude/musepack/musepack_src_r475
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//C compiler
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Path to a program.
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/dewdude/musepack/musepack_src_r475/CMakeFiles/pkgRedirects
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=libmpc
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Path to a program.
CMAKE_READELF:FILEPATH=/usr/bin/readelf
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the archiver during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the archiver during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the archiver during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//Path to a program.
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Path to a file.
CUEFILE_INCLUDE_DIR:PATH=CUEFILE_INCLUDE_DIR-NOTFOUND
//Path to a library.
CUEFILE_LIBRARY:FILEPATH=CUEFILE_LIBRARY-NOTFOUND
//Path to a file.
REPLAY_GAIN_INCLUDE_DIR:PATH=REPLAY_GAIN_INCLUDE_DIR-NOTFOUND
//Path to a library.
REPLAY_GAIN_LIBRARY:FILEPATH=REPLAY_GAIN_LIBRARY-NOTFOUND
//Use shared libmpcdec
SHARED:BOOL=ON
//Value Computed by CMake
libmpc_BINARY_DIR:STATIC=/home/dewdude/musepack/musepack_src_r475
//Value Computed by CMake
libmpc_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
libmpc_SOURCE_DIR:STATIC=/home/dewdude/musepack/musepack_src_r475
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/dewdude/musepack/musepack_src_r475
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=1
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/dewdude/musepack/musepack_src_r475
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//Name of CMakeLists files to read
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=13
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_TAPI
CMAKE_TAPI-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1

@ -0,0 +1,84 @@
set(CMAKE_C_COMPILER "/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "15.2.1")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "23")
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_C_STANDARD_LATEST "23")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_C_COMPILER_APPLE_SYSROOT "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_C_COMPILER_ARCHITECTURE_ID "x86_64")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_LINKER_LINK "")
set(CMAKE_LINKER_LLD "")
set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld")
set(CMAKE_C_COMPILER_LINKER_ID "GNU")
set(CMAKE_C_COMPILER_LINKER_VERSION 2.45.1)
set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU)
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_C_COMPILER_ENV_VAR "CC")
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE)
set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
set(CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include-fixed;/usr/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1;/usr/lib;/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-6.17.7-5-cachyos")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "6.17.7-5-cachyos")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-6.17.7-5-cachyos")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "6.17.7-5-cachyos")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

@ -0,0 +1,934 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
#if !defined(__has_include)
/* If the compiler does not have __has_include, pretend the answer is
always no. */
# define __has_include(x) 0
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
except that a few beta releases use the old format with V=2021. */
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
/* The third version component from --version is an update index,
but no macro is provided for it. */
# define COMPILER_VERSION_PATCH DEC(0)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
# define COMPILER_ID "IntelLLVM"
#if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
#endif
#if defined(__GNUC__)
# define SIMULATE_ID "GNU"
#endif
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
* VVVV is no smaller than the current year when a version is released.
*/
#if __INTEL_LLVM_COMPILER < 1000000L
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
#else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
#endif
#if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
#endif
#if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
#elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
#endif
#if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
#endif
#if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
#endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__open_xl__) && defined(__clang__)
# define COMPILER_ID "IBMClang"
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__NVCOMPILER)
# define COMPILER_ID "NVHPC"
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
# if defined(__NVCOMPILER_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(__clang__) && defined(__cray__)
# define COMPILER_ID "CrayClang"
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__CLANG_FUJITSU)
# define COMPILER_ID "FujitsuClang"
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__FUJITSU)
# define COMPILER_ID "Fujitsu"
# if defined(__FCC_version__)
# define COMPILER_VERSION __FCC_version__
# elif defined(__FCC_major__)
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# endif
# if defined(__fcc_version)
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
# elif defined(__FCC_VERSION)
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
# endif
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TASKING__)
# define COMPILER_ID "Tasking"
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
#elif defined(__ORANGEC__)
# define COMPILER_ID "OrangeC"
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
#elif defined(__RENESAS__)
# define COMPILER_ID "Renesas"
/* __RENESAS_VERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__) && defined(__ti__)
# define COMPILER_ID "TIClang"
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
# define COMPILER_ID "LCC"
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
# if defined(__LCC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
# endif
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
# define SIMULATE_ID "GNU"
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
# endif
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(_ADI_COMPILER)
# define COMPILER_ID "ADSP"
#if defined(__VERSIONNUM__)
/* __VERSIONNUM__ = 0xVVRRPPTT */
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__DCC__) && defined(_DIAB_TOOL)
# define COMPILER_ID "Diab"
# define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
# define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
# define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
# define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__MSYS__)
# define PLATFORM_ID "MSYS"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# elif defined(__VXWORKS__)
# define PLATFORM_ID "VxWorks"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
# elif defined(_ADI_COMPILER)
# define PLATFORM_ID "ADSP"
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_ARM64EC)
# define ARCHITECTURE_ID "ARM64EC"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__ICCV850__)
# define ARCHITECTURE_ID "V850"
# elif defined(__ICC8051__)
# define ARCHITECTURE_ID "8051"
# elif defined(__ICCSTM8__)
# define ARCHITECTURE_ID "STM8"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__clang__) && defined(__ti__)
# if defined(__ARM_ARCH)
# define ARCHITECTURE_ID "ARM"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__TI_COMPILER_VERSION__)
# if defined(__TI_ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__MSP430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__TMS320C28XX__)
# define ARCHITECTURE_ID "TMS320C28x"
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
# define ARCHITECTURE_ID "TMS320C6x"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
# elif defined(__ADSPSHARC__)
# define ARCHITECTURE_ID "SHARC"
# elif defined(__ADSPBLACKFIN__)
# define ARCHITECTURE_ID "Blackfin"
#elif defined(__TASKING__)
# if defined(__CTC__) || defined(__CPTC__)
# define ARCHITECTURE_ID "TriCore"
# elif defined(__CMCS__)
# define ARCHITECTURE_ID "MCS"
# elif defined(__CARM__) || defined(__CPARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__CARC__)
# define ARCHITECTURE_ID "ARC"
# elif defined(__C51__)
# define ARCHITECTURE_ID "8051"
# elif defined(__CPCP__)
# define ARCHITECTURE_ID "PCP"
# else
# define ARCHITECTURE_ID ""
# endif
#elif defined(__RENESAS__)
# if defined(__CCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__CCRL__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__CCRH__)
# define ARCHITECTURE_ID "RH850"
# else
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number. */
#ifdef COMPILER_VERSION
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
/* Construct a string literal encoding the version number components. */
#elif defined(COMPILER_VERSION_MAJOR)
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#elif defined(COMPILER_VERSION_INTERNAL_STR)
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#define C_STD_99 199901L
#define C_STD_11 201112L
#define C_STD_17 201710L
#define C_STD_23 202311L
#ifdef __STDC_VERSION__
# define C_STD __STDC_VERSION__
#endif
#if !defined(__STDC__) && !defined(__clang__) && !defined(__RENESAS__)
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
# define C_VERSION "90"
# else
# define C_VERSION
# endif
#elif C_STD > C_STD_17
# define C_VERSION "23"
#elif C_STD > C_STD_11
# define C_VERSION "17"
#elif C_STD > C_STD_99
# define C_VERSION "11"
#elif C_STD >= C_STD_99
# define C_VERSION "99"
#else
# define C_VERSION "90"
#endif
const char* info_language_standard_default =
"INFO" ":" "standard_default[" C_VERSION "]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
require += info_cray[argc];
#endif
require += info_language_standard_default[argc];
require += info_language_extensions_default[argc];
(void)argv;
return require;
}
#endif

File diff suppressed because it is too large Load Diff

@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/dewdude/musepack/musepack_src_r475")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/dewdude/musepack/musepack_src_r475")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

@ -0,0 +1,19 @@
{
"InstallScripts" :
[
"/home/dewdude/musepack/musepack_src_r475/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/libmpcpsy/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/libmpcenc/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/libwavformat/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/mpcgain/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/mpcdec/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/mpcenc/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/mpc2sv8/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/mpccut/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/mpcchap/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/wavcmp/cmake_install.cmake",
"/home/dewdude/musepack/musepack_src_r475/include/cmake_install.cmake"
],
"Parallel" : false
}

@ -0,0 +1,156 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"CMakeFiles/4.1.2/CMakeCCompiler.cmake"
"CMakeFiles/4.1.2/CMakeSystem.cmake"
"CMakeLists.txt"
"include/CMakeLists.txt"
"libmpcdec/CMakeLists.txt"
"libmpcenc/CMakeLists.txt"
"libmpcpsy/CMakeLists.txt"
"libwavformat/CMakeLists.txt"
"mpc2sv8/CMakeLists.txt"
"mpcchap/CMakeLists.txt"
"mpccut/CMakeLists.txt"
"mpcdec/CMakeLists.txt"
"mpcenc/CMakeLists.txt"
"mpcgain/CMakeLists.txt"
"wavcmp/CMakeLists.txt"
"/usr/share/cmake/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake/Modules/CMakeCInformation.cmake"
"/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake"
"/usr/share/cmake/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake"
"/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake"
"/usr/share/cmake/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake/Modules/CheckIncludeFile.cmake"
"/usr/share/cmake/Modules/CheckIncludeFileCXX.cmake"
"/usr/share/cmake/Modules/CheckTypeSize.cmake"
"/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Diab-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake"
"/usr/share/cmake/Modules/Compiler/GNU.cmake"
"/usr/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Renesas-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake"
"/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake"
"/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake"
"/usr/share/cmake/Modules/Internal/CMakeInspectCLinker.cmake"
"/usr/share/cmake/Modules/Internal/FeatureTesting.cmake"
"/usr/share/cmake/Modules/Linker/GNU-C.cmake"
"/usr/share/cmake/Modules/Linker/GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linker/GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake"
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake"
"/usr/share/cmake/Modules/Platform/Linux.cmake"
"/usr/share/cmake/Modules/Platform/UnixPaths.cmake"
"/usr/share/cmake/Modules/TestBigEndian.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/4.1.2/CMakeSystem.cmake"
"CMakeFiles/4.1.2/CMakeCCompiler.cmake"
"CMakeFiles/4.1.2/CMakeCCompiler.cmake"
"CMakeFiles/4.1.2/CMakeCCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
"libmpcdec/CMakeFiles/CMakeDirectoryInformation.cmake"
"libmpcpsy/CMakeFiles/CMakeDirectoryInformation.cmake"
"libmpcenc/CMakeFiles/CMakeDirectoryInformation.cmake"
"libwavformat/CMakeFiles/CMakeDirectoryInformation.cmake"
"mpcgain/CMakeFiles/CMakeDirectoryInformation.cmake"
"mpcdec/CMakeFiles/CMakeDirectoryInformation.cmake"
"mpcenc/CMakeFiles/CMakeDirectoryInformation.cmake"
"mpc2sv8/CMakeFiles/CMakeDirectoryInformation.cmake"
"mpccut/CMakeFiles/CMakeDirectoryInformation.cmake"
"mpcchap/CMakeFiles/CMakeDirectoryInformation.cmake"
"wavcmp/CMakeFiles/CMakeDirectoryInformation.cmake"
"include/CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"libmpcdec/CMakeFiles/mpcdec.dir/DependInfo.cmake"
"libmpcpsy/CMakeFiles/mpcpsy_static.dir/DependInfo.cmake"
"libmpcenc/CMakeFiles/mpcenc_static.dir/DependInfo.cmake"
"libwavformat/CMakeFiles/wavformat_static.dir/DependInfo.cmake"
"mpcdec/CMakeFiles/mpcdec_cmd.dir/DependInfo.cmake"
"mpcenc/CMakeFiles/mpcenc.dir/DependInfo.cmake"
"mpc2sv8/CMakeFiles/mpc2sv8.dir/DependInfo.cmake"
"mpccut/CMakeFiles/mpccut.dir/DependInfo.cmake"
"wavcmp/CMakeFiles/wavcmp.dir/DependInfo.cmake"
)

@ -0,0 +1,654 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/dewdude/musepack/musepack_src_r475
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/dewdude/musepack/musepack_src_r475
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: libmpcdec/all
all: libmpcpsy/all
all: libmpcenc/all
all: libwavformat/all
all: mpcgain/all
all: mpcdec/all
all: mpcenc/all
all: mpc2sv8/all
all: mpccut/all
all: mpcchap/all
all: wavcmp/all
all: include/all
.PHONY : all
# The main recursive "codegen" target.
codegen: libmpcdec/codegen
codegen: libmpcpsy/codegen
codegen: libmpcenc/codegen
codegen: libwavformat/codegen
codegen: mpcgain/codegen
codegen: mpcdec/codegen
codegen: mpcenc/codegen
codegen: mpc2sv8/codegen
codegen: mpccut/codegen
codegen: mpcchap/codegen
codegen: wavcmp/codegen
codegen: include/codegen
.PHONY : codegen
# The main recursive "preinstall" target.
preinstall: libmpcdec/preinstall
preinstall: libmpcpsy/preinstall
preinstall: libmpcenc/preinstall
preinstall: libwavformat/preinstall
preinstall: mpcgain/preinstall
preinstall: mpcdec/preinstall
preinstall: mpcenc/preinstall
preinstall: mpc2sv8/preinstall
preinstall: mpccut/preinstall
preinstall: mpcchap/preinstall
preinstall: wavcmp/preinstall
preinstall: include/preinstall
.PHONY : preinstall
# The main recursive "clean" target.
clean: libmpcdec/clean
clean: libmpcpsy/clean
clean: libmpcenc/clean
clean: libwavformat/clean
clean: mpcgain/clean
clean: mpcdec/clean
clean: mpcenc/clean
clean: mpc2sv8/clean
clean: mpccut/clean
clean: mpcchap/clean
clean: wavcmp/clean
clean: include/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory include
# Recursive "all" directory target.
include/all:
.PHONY : include/all
# Recursive "codegen" directory target.
include/codegen:
.PHONY : include/codegen
# Recursive "preinstall" directory target.
include/preinstall:
.PHONY : include/preinstall
# Recursive "clean" directory target.
include/clean:
.PHONY : include/clean
#=============================================================================
# Directory level rules for directory libmpcdec
# Recursive "all" directory target.
libmpcdec/all: libmpcdec/CMakeFiles/mpcdec.dir/all
.PHONY : libmpcdec/all
# Recursive "codegen" directory target.
libmpcdec/codegen: libmpcdec/CMakeFiles/mpcdec.dir/codegen
.PHONY : libmpcdec/codegen
# Recursive "preinstall" directory target.
libmpcdec/preinstall:
.PHONY : libmpcdec/preinstall
# Recursive "clean" directory target.
libmpcdec/clean: libmpcdec/CMakeFiles/mpcdec.dir/clean
.PHONY : libmpcdec/clean
#=============================================================================
# Directory level rules for directory libmpcenc
# Recursive "all" directory target.
libmpcenc/all: libmpcenc/CMakeFiles/mpcenc_static.dir/all
.PHONY : libmpcenc/all
# Recursive "codegen" directory target.
libmpcenc/codegen: libmpcenc/CMakeFiles/mpcenc_static.dir/codegen
.PHONY : libmpcenc/codegen
# Recursive "preinstall" directory target.
libmpcenc/preinstall:
.PHONY : libmpcenc/preinstall
# Recursive "clean" directory target.
libmpcenc/clean: libmpcenc/CMakeFiles/mpcenc_static.dir/clean
.PHONY : libmpcenc/clean
#=============================================================================
# Directory level rules for directory libmpcpsy
# Recursive "all" directory target.
libmpcpsy/all: libmpcpsy/CMakeFiles/mpcpsy_static.dir/all
.PHONY : libmpcpsy/all
# Recursive "codegen" directory target.
libmpcpsy/codegen: libmpcpsy/CMakeFiles/mpcpsy_static.dir/codegen
.PHONY : libmpcpsy/codegen
# Recursive "preinstall" directory target.
libmpcpsy/preinstall:
.PHONY : libmpcpsy/preinstall
# Recursive "clean" directory target.
libmpcpsy/clean: libmpcpsy/CMakeFiles/mpcpsy_static.dir/clean
.PHONY : libmpcpsy/clean
#=============================================================================
# Directory level rules for directory libwavformat
# Recursive "all" directory target.
libwavformat/all: libwavformat/CMakeFiles/wavformat_static.dir/all
.PHONY : libwavformat/all
# Recursive "codegen" directory target.
libwavformat/codegen: libwavformat/CMakeFiles/wavformat_static.dir/codegen
.PHONY : libwavformat/codegen
# Recursive "preinstall" directory target.
libwavformat/preinstall:
.PHONY : libwavformat/preinstall
# Recursive "clean" directory target.
libwavformat/clean: libwavformat/CMakeFiles/wavformat_static.dir/clean
.PHONY : libwavformat/clean
#=============================================================================
# Directory level rules for directory mpc2sv8
# Recursive "all" directory target.
mpc2sv8/all: mpc2sv8/CMakeFiles/mpc2sv8.dir/all
.PHONY : mpc2sv8/all
# Recursive "codegen" directory target.
mpc2sv8/codegen: mpc2sv8/CMakeFiles/mpc2sv8.dir/codegen
.PHONY : mpc2sv8/codegen
# Recursive "preinstall" directory target.
mpc2sv8/preinstall:
.PHONY : mpc2sv8/preinstall
# Recursive "clean" directory target.
mpc2sv8/clean: mpc2sv8/CMakeFiles/mpc2sv8.dir/clean
.PHONY : mpc2sv8/clean
#=============================================================================
# Directory level rules for directory mpcchap
# Recursive "all" directory target.
mpcchap/all:
.PHONY : mpcchap/all
# Recursive "codegen" directory target.
mpcchap/codegen:
.PHONY : mpcchap/codegen
# Recursive "preinstall" directory target.
mpcchap/preinstall:
.PHONY : mpcchap/preinstall
# Recursive "clean" directory target.
mpcchap/clean:
.PHONY : mpcchap/clean
#=============================================================================
# Directory level rules for directory mpccut
# Recursive "all" directory target.
mpccut/all: mpccut/CMakeFiles/mpccut.dir/all
.PHONY : mpccut/all
# Recursive "codegen" directory target.
mpccut/codegen: mpccut/CMakeFiles/mpccut.dir/codegen
.PHONY : mpccut/codegen
# Recursive "preinstall" directory target.
mpccut/preinstall:
.PHONY : mpccut/preinstall
# Recursive "clean" directory target.
mpccut/clean: mpccut/CMakeFiles/mpccut.dir/clean
.PHONY : mpccut/clean
#=============================================================================
# Directory level rules for directory mpcdec
# Recursive "all" directory target.
mpcdec/all: mpcdec/CMakeFiles/mpcdec_cmd.dir/all
.PHONY : mpcdec/all
# Recursive "codegen" directory target.
mpcdec/codegen: mpcdec/CMakeFiles/mpcdec_cmd.dir/codegen
.PHONY : mpcdec/codegen
# Recursive "preinstall" directory target.
mpcdec/preinstall:
.PHONY : mpcdec/preinstall
# Recursive "clean" directory target.
mpcdec/clean: mpcdec/CMakeFiles/mpcdec_cmd.dir/clean
.PHONY : mpcdec/clean
#=============================================================================
# Directory level rules for directory mpcenc
# Recursive "all" directory target.
mpcenc/all: mpcenc/CMakeFiles/mpcenc.dir/all
.PHONY : mpcenc/all
# Recursive "codegen" directory target.
mpcenc/codegen: mpcenc/CMakeFiles/mpcenc.dir/codegen
.PHONY : mpcenc/codegen
# Recursive "preinstall" directory target.
mpcenc/preinstall:
.PHONY : mpcenc/preinstall
# Recursive "clean" directory target.
mpcenc/clean: mpcenc/CMakeFiles/mpcenc.dir/clean
.PHONY : mpcenc/clean
#=============================================================================
# Directory level rules for directory mpcgain
# Recursive "all" directory target.
mpcgain/all:
.PHONY : mpcgain/all
# Recursive "codegen" directory target.
mpcgain/codegen:
.PHONY : mpcgain/codegen
# Recursive "preinstall" directory target.
mpcgain/preinstall:
.PHONY : mpcgain/preinstall
# Recursive "clean" directory target.
mpcgain/clean:
.PHONY : mpcgain/clean
#=============================================================================
# Directory level rules for directory wavcmp
# Recursive "all" directory target.
wavcmp/all: wavcmp/CMakeFiles/wavcmp.dir/all
.PHONY : wavcmp/all
# Recursive "codegen" directory target.
wavcmp/codegen: wavcmp/CMakeFiles/wavcmp.dir/codegen
.PHONY : wavcmp/codegen
# Recursive "preinstall" directory target.
wavcmp/preinstall:
.PHONY : wavcmp/preinstall
# Recursive "clean" directory target.
wavcmp/clean: wavcmp/CMakeFiles/wavcmp.dir/clean
.PHONY : wavcmp/clean
#=============================================================================
# Target rules for target libmpcdec/CMakeFiles/mpcdec.dir
# All Build rule for target.
libmpcdec/CMakeFiles/mpcdec.dir/all:
$(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/depend
$(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=5,6,7,8,9,10,11,12,13,14 "Built target mpcdec"
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/all
# Build rule for subdir invocation for target.
libmpcdec/CMakeFiles/mpcdec.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 10
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcdec/CMakeFiles/mpcdec.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/rule
# Convenience name for target.
mpcdec: libmpcdec/CMakeFiles/mpcdec.dir/rule
.PHONY : mpcdec
# codegen rule for target.
libmpcdec/CMakeFiles/mpcdec.dir/codegen:
$(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=5,6,7,8,9,10,11,12,13,14 "Finished codegen for target mpcdec"
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/codegen
# clean rule for target.
libmpcdec/CMakeFiles/mpcdec.dir/clean:
$(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/clean
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/clean
#=============================================================================
# Target rules for target libmpcpsy/CMakeFiles/mpcpsy_static.dir
# All Build rule for target.
libmpcpsy/CMakeFiles/mpcpsy_static.dir/all:
$(MAKE) $(MAKESILENT) -f libmpcpsy/CMakeFiles/mpcpsy_static.dir/build.make libmpcpsy/CMakeFiles/mpcpsy_static.dir/depend
$(MAKE) $(MAKESILENT) -f libmpcpsy/CMakeFiles/mpcpsy_static.dir/build.make libmpcpsy/CMakeFiles/mpcpsy_static.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=32,33,34,35,36,37,38,39,40 "Built target mpcpsy_static"
.PHONY : libmpcpsy/CMakeFiles/mpcpsy_static.dir/all
# Build rule for subdir invocation for target.
libmpcpsy/CMakeFiles/mpcpsy_static.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 9
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcpsy/CMakeFiles/mpcpsy_static.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : libmpcpsy/CMakeFiles/mpcpsy_static.dir/rule
# Convenience name for target.
mpcpsy_static: libmpcpsy/CMakeFiles/mpcpsy_static.dir/rule
.PHONY : mpcpsy_static
# codegen rule for target.
libmpcpsy/CMakeFiles/mpcpsy_static.dir/codegen:
$(MAKE) $(MAKESILENT) -f libmpcpsy/CMakeFiles/mpcpsy_static.dir/build.make libmpcpsy/CMakeFiles/mpcpsy_static.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=32,33,34,35,36,37,38,39,40 "Finished codegen for target mpcpsy_static"
.PHONY : libmpcpsy/CMakeFiles/mpcpsy_static.dir/codegen
# clean rule for target.
libmpcpsy/CMakeFiles/mpcpsy_static.dir/clean:
$(MAKE) $(MAKESILENT) -f libmpcpsy/CMakeFiles/mpcpsy_static.dir/build.make libmpcpsy/CMakeFiles/mpcpsy_static.dir/clean
.PHONY : libmpcpsy/CMakeFiles/mpcpsy_static.dir/clean
#=============================================================================
# Target rules for target libmpcenc/CMakeFiles/mpcenc_static.dir
# All Build rule for target.
libmpcenc/CMakeFiles/mpcenc_static.dir/all:
$(MAKE) $(MAKESILENT) -f libmpcenc/CMakeFiles/mpcenc_static.dir/build.make libmpcenc/CMakeFiles/mpcenc_static.dir/depend
$(MAKE) $(MAKESILENT) -f libmpcenc/CMakeFiles/mpcenc_static.dir/build.make libmpcenc/CMakeFiles/mpcenc_static.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=25,26,27,28,29,30,31 "Built target mpcenc_static"
.PHONY : libmpcenc/CMakeFiles/mpcenc_static.dir/all
# Build rule for subdir invocation for target.
libmpcenc/CMakeFiles/mpcenc_static.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 7
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcenc/CMakeFiles/mpcenc_static.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : libmpcenc/CMakeFiles/mpcenc_static.dir/rule
# Convenience name for target.
mpcenc_static: libmpcenc/CMakeFiles/mpcenc_static.dir/rule
.PHONY : mpcenc_static
# codegen rule for target.
libmpcenc/CMakeFiles/mpcenc_static.dir/codegen:
$(MAKE) $(MAKESILENT) -f libmpcenc/CMakeFiles/mpcenc_static.dir/build.make libmpcenc/CMakeFiles/mpcenc_static.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=25,26,27,28,29,30,31 "Finished codegen for target mpcenc_static"
.PHONY : libmpcenc/CMakeFiles/mpcenc_static.dir/codegen
# clean rule for target.
libmpcenc/CMakeFiles/mpcenc_static.dir/clean:
$(MAKE) $(MAKESILENT) -f libmpcenc/CMakeFiles/mpcenc_static.dir/build.make libmpcenc/CMakeFiles/mpcenc_static.dir/clean
.PHONY : libmpcenc/CMakeFiles/mpcenc_static.dir/clean
#=============================================================================
# Target rules for target libwavformat/CMakeFiles/wavformat_static.dir
# All Build rule for target.
libwavformat/CMakeFiles/wavformat_static.dir/all:
$(MAKE) $(MAKESILENT) -f libwavformat/CMakeFiles/wavformat_static.dir/build.make libwavformat/CMakeFiles/wavformat_static.dir/depend
$(MAKE) $(MAKESILENT) -f libwavformat/CMakeFiles/wavformat_static.dir/build.make libwavformat/CMakeFiles/wavformat_static.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=43,44,45 "Built target wavformat_static"
.PHONY : libwavformat/CMakeFiles/wavformat_static.dir/all
# Build rule for subdir invocation for target.
libwavformat/CMakeFiles/wavformat_static.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 3
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libwavformat/CMakeFiles/wavformat_static.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : libwavformat/CMakeFiles/wavformat_static.dir/rule
# Convenience name for target.
wavformat_static: libwavformat/CMakeFiles/wavformat_static.dir/rule
.PHONY : wavformat_static
# codegen rule for target.
libwavformat/CMakeFiles/wavformat_static.dir/codegen:
$(MAKE) $(MAKESILENT) -f libwavformat/CMakeFiles/wavformat_static.dir/build.make libwavformat/CMakeFiles/wavformat_static.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=43,44,45 "Finished codegen for target wavformat_static"
.PHONY : libwavformat/CMakeFiles/wavformat_static.dir/codegen
# clean rule for target.
libwavformat/CMakeFiles/wavformat_static.dir/clean:
$(MAKE) $(MAKESILENT) -f libwavformat/CMakeFiles/wavformat_static.dir/build.make libwavformat/CMakeFiles/wavformat_static.dir/clean
.PHONY : libwavformat/CMakeFiles/wavformat_static.dir/clean
#=============================================================================
# Target rules for target mpcdec/CMakeFiles/mpcdec_cmd.dir
# All Build rule for target.
mpcdec/CMakeFiles/mpcdec_cmd.dir/all: libmpcdec/CMakeFiles/mpcdec.dir/all
mpcdec/CMakeFiles/mpcdec_cmd.dir/all: libwavformat/CMakeFiles/wavformat_static.dir/all
$(MAKE) $(MAKESILENT) -f mpcdec/CMakeFiles/mpcdec_cmd.dir/build.make mpcdec/CMakeFiles/mpcdec_cmd.dir/depend
$(MAKE) $(MAKESILENT) -f mpcdec/CMakeFiles/mpcdec_cmd.dir/build.make mpcdec/CMakeFiles/mpcdec_cmd.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=15,16 "Built target mpcdec_cmd"
.PHONY : mpcdec/CMakeFiles/mpcdec_cmd.dir/all
# Build rule for subdir invocation for target.
mpcdec/CMakeFiles/mpcdec_cmd.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 15
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcdec/CMakeFiles/mpcdec_cmd.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : mpcdec/CMakeFiles/mpcdec_cmd.dir/rule
# Convenience name for target.
mpcdec_cmd: mpcdec/CMakeFiles/mpcdec_cmd.dir/rule
.PHONY : mpcdec_cmd
# codegen rule for target.
mpcdec/CMakeFiles/mpcdec_cmd.dir/codegen:
$(MAKE) $(MAKESILENT) -f mpcdec/CMakeFiles/mpcdec_cmd.dir/build.make mpcdec/CMakeFiles/mpcdec_cmd.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=15,16 "Finished codegen for target mpcdec_cmd"
.PHONY : mpcdec/CMakeFiles/mpcdec_cmd.dir/codegen
# clean rule for target.
mpcdec/CMakeFiles/mpcdec_cmd.dir/clean:
$(MAKE) $(MAKESILENT) -f mpcdec/CMakeFiles/mpcdec_cmd.dir/build.make mpcdec/CMakeFiles/mpcdec_cmd.dir/clean
.PHONY : mpcdec/CMakeFiles/mpcdec_cmd.dir/clean
#=============================================================================
# Target rules for target mpcenc/CMakeFiles/mpcenc.dir
# All Build rule for target.
mpcenc/CMakeFiles/mpcenc.dir/all: libmpcpsy/CMakeFiles/mpcpsy_static.dir/all
mpcenc/CMakeFiles/mpcenc.dir/all: libmpcenc/CMakeFiles/mpcenc_static.dir/all
$(MAKE) $(MAKESILENT) -f mpcenc/CMakeFiles/mpcenc.dir/build.make mpcenc/CMakeFiles/mpcenc.dir/depend
$(MAKE) $(MAKESILENT) -f mpcenc/CMakeFiles/mpcenc.dir/build.make mpcenc/CMakeFiles/mpcenc.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=17,18,19,20,21,22,23,24 "Built target mpcenc"
.PHONY : mpcenc/CMakeFiles/mpcenc.dir/all
# Build rule for subdir invocation for target.
mpcenc/CMakeFiles/mpcenc.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 24
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcenc/CMakeFiles/mpcenc.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : mpcenc/CMakeFiles/mpcenc.dir/rule
# Convenience name for target.
mpcenc: mpcenc/CMakeFiles/mpcenc.dir/rule
.PHONY : mpcenc
# codegen rule for target.
mpcenc/CMakeFiles/mpcenc.dir/codegen:
$(MAKE) $(MAKESILENT) -f mpcenc/CMakeFiles/mpcenc.dir/build.make mpcenc/CMakeFiles/mpcenc.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=17,18,19,20,21,22,23,24 "Finished codegen for target mpcenc"
.PHONY : mpcenc/CMakeFiles/mpcenc.dir/codegen
# clean rule for target.
mpcenc/CMakeFiles/mpcenc.dir/clean:
$(MAKE) $(MAKESILENT) -f mpcenc/CMakeFiles/mpcenc.dir/build.make mpcenc/CMakeFiles/mpcenc.dir/clean
.PHONY : mpcenc/CMakeFiles/mpcenc.dir/clean
#=============================================================================
# Target rules for target mpc2sv8/CMakeFiles/mpc2sv8.dir
# All Build rule for target.
mpc2sv8/CMakeFiles/mpc2sv8.dir/all: libmpcdec/CMakeFiles/mpcdec.dir/all
mpc2sv8/CMakeFiles/mpc2sv8.dir/all: libmpcenc/CMakeFiles/mpcenc_static.dir/all
$(MAKE) $(MAKESILENT) -f mpc2sv8/CMakeFiles/mpc2sv8.dir/build.make mpc2sv8/CMakeFiles/mpc2sv8.dir/depend
$(MAKE) $(MAKESILENT) -f mpc2sv8/CMakeFiles/mpc2sv8.dir/build.make mpc2sv8/CMakeFiles/mpc2sv8.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=1,2 "Built target mpc2sv8"
.PHONY : mpc2sv8/CMakeFiles/mpc2sv8.dir/all
# Build rule for subdir invocation for target.
mpc2sv8/CMakeFiles/mpc2sv8.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 19
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpc2sv8/CMakeFiles/mpc2sv8.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : mpc2sv8/CMakeFiles/mpc2sv8.dir/rule
# Convenience name for target.
mpc2sv8: mpc2sv8/CMakeFiles/mpc2sv8.dir/rule
.PHONY : mpc2sv8
# codegen rule for target.
mpc2sv8/CMakeFiles/mpc2sv8.dir/codegen:
$(MAKE) $(MAKESILENT) -f mpc2sv8/CMakeFiles/mpc2sv8.dir/build.make mpc2sv8/CMakeFiles/mpc2sv8.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=1,2 "Finished codegen for target mpc2sv8"
.PHONY : mpc2sv8/CMakeFiles/mpc2sv8.dir/codegen
# clean rule for target.
mpc2sv8/CMakeFiles/mpc2sv8.dir/clean:
$(MAKE) $(MAKESILENT) -f mpc2sv8/CMakeFiles/mpc2sv8.dir/build.make mpc2sv8/CMakeFiles/mpc2sv8.dir/clean
.PHONY : mpc2sv8/CMakeFiles/mpc2sv8.dir/clean
#=============================================================================
# Target rules for target mpccut/CMakeFiles/mpccut.dir
# All Build rule for target.
mpccut/CMakeFiles/mpccut.dir/all: libmpcdec/CMakeFiles/mpcdec.dir/all
mpccut/CMakeFiles/mpccut.dir/all: libmpcenc/CMakeFiles/mpcenc_static.dir/all
$(MAKE) $(MAKESILENT) -f mpccut/CMakeFiles/mpccut.dir/build.make mpccut/CMakeFiles/mpccut.dir/depend
$(MAKE) $(MAKESILENT) -f mpccut/CMakeFiles/mpccut.dir/build.make mpccut/CMakeFiles/mpccut.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=3,4 "Built target mpccut"
.PHONY : mpccut/CMakeFiles/mpccut.dir/all
# Build rule for subdir invocation for target.
mpccut/CMakeFiles/mpccut.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 19
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpccut/CMakeFiles/mpccut.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : mpccut/CMakeFiles/mpccut.dir/rule
# Convenience name for target.
mpccut: mpccut/CMakeFiles/mpccut.dir/rule
.PHONY : mpccut
# codegen rule for target.
mpccut/CMakeFiles/mpccut.dir/codegen:
$(MAKE) $(MAKESILENT) -f mpccut/CMakeFiles/mpccut.dir/build.make mpccut/CMakeFiles/mpccut.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=3,4 "Finished codegen for target mpccut"
.PHONY : mpccut/CMakeFiles/mpccut.dir/codegen
# clean rule for target.
mpccut/CMakeFiles/mpccut.dir/clean:
$(MAKE) $(MAKESILENT) -f mpccut/CMakeFiles/mpccut.dir/build.make mpccut/CMakeFiles/mpccut.dir/clean
.PHONY : mpccut/CMakeFiles/mpccut.dir/clean
#=============================================================================
# Target rules for target wavcmp/CMakeFiles/wavcmp.dir
# All Build rule for target.
wavcmp/CMakeFiles/wavcmp.dir/all: libwavformat/CMakeFiles/wavformat_static.dir/all
$(MAKE) $(MAKESILENT) -f wavcmp/CMakeFiles/wavcmp.dir/build.make wavcmp/CMakeFiles/wavcmp.dir/depend
$(MAKE) $(MAKESILENT) -f wavcmp/CMakeFiles/wavcmp.dir/build.make wavcmp/CMakeFiles/wavcmp.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=41,42 "Built target wavcmp"
.PHONY : wavcmp/CMakeFiles/wavcmp.dir/all
# Build rule for subdir invocation for target.
wavcmp/CMakeFiles/wavcmp.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 5
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 wavcmp/CMakeFiles/wavcmp.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : wavcmp/CMakeFiles/wavcmp.dir/rule
# Convenience name for target.
wavcmp: wavcmp/CMakeFiles/wavcmp.dir/rule
.PHONY : wavcmp
# codegen rule for target.
wavcmp/CMakeFiles/wavcmp.dir/codegen:
$(MAKE) $(MAKESILENT) -f wavcmp/CMakeFiles/wavcmp.dir/build.make wavcmp/CMakeFiles/wavcmp.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=41,42 "Finished codegen for target wavcmp"
.PHONY : wavcmp/CMakeFiles/wavcmp.dir/codegen
# clean rule for target.
wavcmp/CMakeFiles/wavcmp.dir/clean:
$(MAKE) $(MAKESILENT) -f wavcmp/CMakeFiles/wavcmp.dir/build.make wavcmp/CMakeFiles/wavcmp.dir/clean
.PHONY : wavcmp/CMakeFiles/wavcmp.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

@ -0,0 +1,87 @@
/home/dewdude/musepack/musepack_src_r475/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/mpcpsy_static.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/libmpcpsy/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/mpcenc_static.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/libmpcenc/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/wavformat_static.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/libwavformat/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/mpcgain/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcgain/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcgain/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/mpcgain/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/mpcgain/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/mpcgain/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/mpcdec_cmd.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/mpcdec/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/mpcenc.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/mpcenc/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/mpc2sv8.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/mpc2sv8/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/mpccut.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/mpccut/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/mpcchap/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcchap/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/mpcchap/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/mpcchap/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/mpcchap/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/mpcchap/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/wavcmp.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/wavcmp/CMakeFiles/install/strip.dir
/home/dewdude/musepack/musepack_src_r475/include/CMakeFiles/edit_cache.dir
/home/dewdude/musepack/musepack_src_r475/include/CMakeFiles/rebuild_cache.dir
/home/dewdude/musepack/musepack_src_r475/include/CMakeFiles/list_install_components.dir
/home/dewdude/musepack/musepack_src_r475/include/CMakeFiles/install.dir
/home/dewdude/musepack/musepack_src_r475/include/CMakeFiles/install/local.dir
/home/dewdude/musepack/musepack_src_r475/include/CMakeFiles/install/strip.dir

@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

@ -0,0 +1,32 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
include(TestBigEndian)
project(libmpc C)
set(CMAKE_VERBOSE_MAKEFILE false)
TEST_BIG_ENDIAN(MPC_ENDIANNESS)
if(WIN32)
option(SHARED "Use shared libmpcdec" OFF)
else()
option(SHARED "Use shared libmpcdec" ON)
endif()
add_definitions(-DFAST_MATH -DCVD_FASTLOG)
if(NOT MSVC)
set(CMAKE_C_FLAGS "-O3 -Wall -fomit-frame-pointer -pipe")
endif()
add_subdirectory(libmpcdec)
add_subdirectory(libmpcpsy)
add_subdirectory(libmpcenc)
add_subdirectory(libwavformat)
add_subdirectory(mpcgain)
add_subdirectory(mpcdec)
add_subdirectory(mpcenc)
add_subdirectory(mpc2sv8)
add_subdirectory(mpccut)
add_subdirectory(mpcchap)
add_subdirectory(wavcmp)
add_subdirectory(include)

@ -0,0 +1,315 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/dewdude/musepack/musepack_src_r475
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/dewdude/musepack/musepack_src_r475
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles /home/dewdude/musepack/musepack_src_r475//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named mpcdec
# Build rule for target.
mpcdec: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcdec
.PHONY : mpcdec
# fast build rule for target.
mpcdec/fast:
$(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/build
.PHONY : mpcdec/fast
#=============================================================================
# Target rules for targets named mpcpsy_static
# Build rule for target.
mpcpsy_static: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcpsy_static
.PHONY : mpcpsy_static
# fast build rule for target.
mpcpsy_static/fast:
$(MAKE) $(MAKESILENT) -f libmpcpsy/CMakeFiles/mpcpsy_static.dir/build.make libmpcpsy/CMakeFiles/mpcpsy_static.dir/build
.PHONY : mpcpsy_static/fast
#=============================================================================
# Target rules for targets named mpcenc_static
# Build rule for target.
mpcenc_static: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcenc_static
.PHONY : mpcenc_static
# fast build rule for target.
mpcenc_static/fast:
$(MAKE) $(MAKESILENT) -f libmpcenc/CMakeFiles/mpcenc_static.dir/build.make libmpcenc/CMakeFiles/mpcenc_static.dir/build
.PHONY : mpcenc_static/fast
#=============================================================================
# Target rules for targets named wavformat_static
# Build rule for target.
wavformat_static: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 wavformat_static
.PHONY : wavformat_static
# fast build rule for target.
wavformat_static/fast:
$(MAKE) $(MAKESILENT) -f libwavformat/CMakeFiles/wavformat_static.dir/build.make libwavformat/CMakeFiles/wavformat_static.dir/build
.PHONY : wavformat_static/fast
#=============================================================================
# Target rules for targets named mpcdec_cmd
# Build rule for target.
mpcdec_cmd: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcdec_cmd
.PHONY : mpcdec_cmd
# fast build rule for target.
mpcdec_cmd/fast:
$(MAKE) $(MAKESILENT) -f mpcdec/CMakeFiles/mpcdec_cmd.dir/build.make mpcdec/CMakeFiles/mpcdec_cmd.dir/build
.PHONY : mpcdec_cmd/fast
#=============================================================================
# Target rules for targets named mpcenc
# Build rule for target.
mpcenc: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpcenc
.PHONY : mpcenc
# fast build rule for target.
mpcenc/fast:
$(MAKE) $(MAKESILENT) -f mpcenc/CMakeFiles/mpcenc.dir/build.make mpcenc/CMakeFiles/mpcenc.dir/build
.PHONY : mpcenc/fast
#=============================================================================
# Target rules for targets named mpc2sv8
# Build rule for target.
mpc2sv8: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpc2sv8
.PHONY : mpc2sv8
# fast build rule for target.
mpc2sv8/fast:
$(MAKE) $(MAKESILENT) -f mpc2sv8/CMakeFiles/mpc2sv8.dir/build.make mpc2sv8/CMakeFiles/mpc2sv8.dir/build
.PHONY : mpc2sv8/fast
#=============================================================================
# Target rules for targets named mpccut
# Build rule for target.
mpccut: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mpccut
.PHONY : mpccut
# fast build rule for target.
mpccut/fast:
$(MAKE) $(MAKESILENT) -f mpccut/CMakeFiles/mpccut.dir/build.make mpccut/CMakeFiles/mpccut.dir/build
.PHONY : mpccut/fast
#=============================================================================
# Target rules for targets named wavcmp
# Build rule for target.
wavcmp: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 wavcmp
.PHONY : wavcmp
# fast build rule for target.
wavcmp/fast:
$(MAKE) $(MAKESILENT) -f wavcmp/CMakeFiles/wavcmp.dir/build.make wavcmp/CMakeFiles/wavcmp.dir/build
.PHONY : wavcmp/fast
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... mpc2sv8"
@echo "... mpccut"
@echo "... mpcdec"
@echo "... mpcdec_cmd"
@echo "... mpcenc"
@echo "... mpcenc_static"
@echo "... mpcpsy_static"
@echo "... wavcmp"
@echo "... wavformat_static"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

@ -0,0 +1,27 @@
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = CMakeLists.txt libmpc.kdevelop docs win32
if MPC_CHAP
MPCCHAP_DIR = mpcchap
endif
if MPC_GAIN
MPCGAIN_DIR = mpcgain
endif
SUBDIRS = \
include \
libmpcdec \
libmpcenc \
libmpcpsy \
libwavformat \
mpcenc \
mpc2sv8 \
mpccut \
mpcdec \
wavcmp \
$(MPCCHAP_DIR) \
$(MPCGAIN_DIR)

@ -0,0 +1,4 @@
default: all
all:
autoreconf -vif

@ -0,0 +1,3 @@
This is just the musepack src r475 patched to compile on modern systems.
It was done as part of the project to make a fully static mpd-dbcreate binary.

@ -0,0 +1,83 @@
# Install script for directory: /home/dewdude/musepack/musepack_src_r475
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "0")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set path to fallback-tool for dependency-resolution.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/objdump")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
# Include the install script for each subdirectory.
include("/home/dewdude/musepack/musepack_src_r475/libmpcdec/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/libmpcpsy/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/libmpcenc/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/libwavformat/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/mpcgain/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/mpcdec/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/mpcenc/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/mpc2sv8/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/mpccut/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/mpcchap/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/wavcmp/cmake_install.cmake")
include("/home/dewdude/musepack/musepack_src_r475/include/cmake_install.cmake")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/dewdude/musepack/musepack_src_r475/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
if(CMAKE_INSTALL_COMPONENT)
if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
unset(CMAKE_INST_COMP_HASH)
endif()
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/dewdude/musepack/musepack_src_r475/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()

@ -0,0 +1,56 @@
/*
* C Implementation: crc32
*
* code from http://www.w3.org/TR/PNG/#D-CRCAppendix
*
*/
/* Table of CRCs of all 8-bit messages. */
static unsigned long crc_table[256];
/* Flag: has the table been computed? Initially false. */
static int crc_table_computed = 0;
/* Make the table for a fast CRC. */
static void make_crc_table(void)
{
unsigned long c;
int n, k;
for (n = 0; n < 256; n++) {
c = (unsigned long) n;
for (k = 0; k < 8; k++) {
if (c & 1)
c = 0xedb88320L ^ (c >> 1);
else
c = c >> 1;
}
crc_table[n] = c;
}
crc_table_computed = 1;
}
/* Update a running CRC with the bytes buf[0..len-1]--the CRC
should be initialized to all 1's, and the transmitted value
is the 1's complement of the final running CRC (see the
crc() routine below). */
static unsigned long update_crc(unsigned long crc, unsigned char *buf, int len)
{
unsigned long c = crc;
int n;
if (!crc_table_computed)
make_crc_table();
for (n = 0; n < len; n++) {
c = crc_table[(c ^ buf[n]) & 0xff] ^ (c >> 8);
}
return c;
}
/* Return the CRC of the bytes buf[0..len-1]. */
unsigned long mpc_crc32(unsigned char *buf, int len)
{
return update_crc(0xffffffffL, buf, len) ^ 0xffffffffL;
}

@ -0,0 +1,77 @@
/*
* Musepack audio compression
* Copyright (C) 1999-2004 Buschmann/Klemm/Piecha/Wolf
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mpc/mpcmath.h"
#ifdef FAST_MATH
const float tabatan2 [ 2*TABSTEP+1] [2];
const float tabcos [26*TABSTEP+1] [2];
const float tabsqrt_ex [256];
const float tabsqrt_m [ TABSTEP+1] [2];
void Init_FastMath ( void )
{
int i; mpc_floatint X, Y; double xm, x0, xp, x, y; float* p;
p = (float*) tabatan2;
for ( i = -TABSTEP; i <= TABSTEP; i++ ) {
xm = atan ((i-0.5)/TABSTEP);
x0 = atan ((i+0.0)/TABSTEP);
xp = atan ((i+0.5)/TABSTEP);
x = x0/2 + (xm + xp)/4;
y = xp - xm;
*p++ = x;
*p++ = y;
}
p = (float*) tabcos;
for ( i = -13*TABSTEP; i <= 13*TABSTEP; i++ ) {
xm = cos ((i-0.5)/TABSTEP);
x0 = cos ((i+0.0)/TABSTEP);
xp = cos ((i+0.5)/TABSTEP);
x = x0/2 + (xm + xp)/4;
y = xp - xm;
*p++ = x;
*p++ = y;
}
p = (float*) tabsqrt_ex;
for ( i = 0; i < 255; i++ ) {
X.n = (i << 23);
Y.n = (i << 23) + (1<<23) - 1;
*p++ = sqrt(X.f);
}
X.n = (255 << 23) - 1;
*p++ = sqrt(X.f);
p = (float*) tabsqrt_m;
for ( i = 1*TABSTEP; i <= 2*TABSTEP; i++ ) {
xm = sqrt ((i-0.5)/TABSTEP);
x0 = sqrt ((i+0.0)/TABSTEP);
xp = sqrt ((i+0.5)/TABSTEP);
x = x0/2 + (xm + xp)/4;
y = xp - xm;
*p++ = x;
*p++ = y;
}
}
#endif

@ -0,0 +1,280 @@
/*************************************************************************
* Huffman codes generation, part of the code from the Basic Compression
* Library ( http://bcl.sourceforge.net )
*
* Modified by Nicolas BOTTI rududu at laposte.net
*
*-------------------------------------------------------------------------
* Copyright (c) 2003-2006 Marcus Geelnard
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would
* be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not
* be misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
*
* Marcus Geelnard
* marcus.geelnard at home.se
*************************************************************************/
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int Symbol;
unsigned int Count;
unsigned int Code;
unsigned int Bits;
} huff_sym_t;
typedef struct huff_node huff_node_t;
struct huff_node {
huff_node_t * ChildA;
union {
huff_node_t * ChildB;
huff_sym_t * Symbol;
};
int Count;
};
static void _Huffman_StoreTree( huff_node_t *node, unsigned int bits )
{
/* Is this a leaf node? */
if( node->ChildA == 0 ) {
/* Store code info in symbol array */
node->Symbol->Bits = bits;
return;
}
/* Branch A */
_Huffman_StoreTree( node->ChildA, bits+1 );
/* Branch B */
_Huffman_StoreTree( node->ChildB, bits+1 );
}
/**
* Compare 2 symbols to sort as canonical huffman (more bits first)
* @param sym1
* @param sym2
* @return
*/
static int _Huffman_CompBits(const huff_sym_t * sym1, const huff_sym_t * sym2)
{
if (sym1->Bits == sym2->Bits){
if (sym1->Symbol == sym2->Symbol)
return 0;
else
return ((sym1->Symbol > sym2->Symbol) << 1) - 1;
} else
return ((sym1->Bits < sym2->Bits) << 1) - 1;
}
/**
* Compare 2 symbols to sort in symbol order
* @param sym1
* @param sym2
* @return
*/
static int _Huffman_CompSym(const huff_sym_t * sym1, const huff_sym_t * sym2)
{
return ((sym1->Symbol > sym2->Symbol) << 1) - 1;
}
/**
* Generate canonical huffman codes from symbols and bit lengths
* @param sym
* @param num_symbols
*/
static void _Huffman_MakeCodes(huff_sym_t * sym, unsigned int num_symbols)
{
unsigned int code = 0, i;
int bits;
qsort(sym, num_symbols, sizeof(huff_sym_t),
(int (*)(const void *, const void *)) _Huffman_CompBits);
bits = sym[0].Bits;
sym[0].Code = 0;
for( i = 1; i < num_symbols; i++){
code >>= bits - sym[i].Bits;
bits = sym[i].Bits;
code++;
sym[i].Code = code;
}
}
/**
* Make a canonical huffman tree from symbols and counts
* @param sym
* @param num_symbols
*/
void _Huffman_MakeTree( huff_sym_t * sym, unsigned int num_symbols)
{
huff_node_t * nodes, * node_1, * node_2, * root;
unsigned int k, nodes_left, next_idx;
nodes = malloc(sizeof(huff_node_t) * (num_symbols * 2 - 1));
/* Initialize all leaf nodes */
for( k = 0; k < num_symbols; ++ k ) {
nodes[k].Symbol = & sym[k];
nodes[k].Count = sym[k].Count;
nodes[k].ChildA = (huff_node_t *) 0;
}
/* Build tree by joining the lightest nodes until there is only
one node left (the root node). */
root = (huff_node_t *) 0;
nodes_left = num_symbols;
next_idx = num_symbols;
while( nodes_left > 1 ) {
/* Find the two lightest nodes */
node_1 = (huff_node_t *) 0;
node_2 = (huff_node_t *) 0;
for( k = 0; k < next_idx; ++ k ) {
if( nodes[k].Count >= 0 ) {
if( !node_1 || (nodes[k].Count <= node_1->Count) ) {
node_2 = node_1;
node_1 = &nodes[k];
} else if( !node_2 || (nodes[k].Count <= node_2->Count) )
node_2 = &nodes[k];
}
}
/* Join the two nodes into a new parent node */
root = &nodes[next_idx];
root->ChildA = node_1;
root->ChildB = node_2;
root->Count = node_1->Count + node_2->Count;
node_1->Count = -1;
node_2->Count = -1;
++ next_idx;
-- nodes_left;
}
/* Store the tree in the output stream, and in the sym[] array (the
latter is used as a look-up-table for faster encoding) */
if( root ) {
_Huffman_StoreTree( root, 0 );
} else {
/* Special case: only one symbol => no binary tree */
root = &nodes[0];
_Huffman_StoreTree( root, 1 );
}
free(nodes);
_Huffman_MakeCodes(sym, num_symbols);
}
#ifdef __GNUC__
/**
* Print the huffman tables
* print_type = 0 => print the coding table
* print_type = 1 => print the decoding table
* print_type = 2 => print the full codes in symbols order
* print_type = 3 => print the full codes in codes order
* @param sym
* @param num_symbols
* @param print_type
* @param offset
*/
void _Huffman_PrintCodes(huff_sym_t * sym, unsigned int num_symbols, int print_type, int offset)
{
unsigned int total_cnt = 0, total_size = 0, optim_size = 0, i;
int packs[4];
switch( print_type ) {
case 0 :
qsort(sym, num_symbols, sizeof(huff_sym_t),
(int (*)(const void *, const void *)) _Huffman_CompSym);
printf("{\n ");
for( i = 0; i < num_symbols; i++) {
if (i != 0)
printf(", ");
printf("{%u, %u}", sym[i].Code, sym[i].Bits);
}
printf("\n}\n");
break;
case 1:
qsort(sym, num_symbols, sizeof(huff_sym_t),
(int (*)(const void *, const void *)) _Huffman_CompBits);
printf("{\n ");
for( i = num_symbols - 1; i >= 0; i--) {
printf("{0x%.8x, %u, %i}", sym[i].Code << (32 - sym[i].Bits), sym[i].Bits, sym[i].Symbol - offset);
if (i != 0)
printf(", ");
}
printf("\n}\n");
break;
case 4:
qsort(sym, num_symbols, sizeof(huff_sym_t),
(int (*)(const void *, const void *)) _Huffman_CompBits);
printf("{\n ");
for( i = num_symbols - 1; i >= 0; i--) {
int symbol = sym[i].Symbol;
packs[3] = symbol / (offset * offset * offset);
packs[2] = (symbol - packs[3] * offset * offset * offset) / (offset * offset);
packs[1] = (symbol - (packs[3] * offset + packs[2]) * offset * offset) / offset;
packs[0] = symbol - ((packs[3] * offset + packs[2]) * offset + packs[1] * offset);
packs[0] -= offset >> 1;
packs[1] -= offset >> 1;
packs[2] -= offset >> 1;
packs[3] -= offset >> 1;
symbol = ((packs[3] & 15) << 12) | ((packs[2] & 15) << 8) | ((packs[1] & 15) << 4) | (packs[0] & 15);
printf("{0x%.8x, %u, %i}", sym[i].Code << (32 - sym[i].Bits), sym[i].Bits, symbol);
if (i != 0)
printf(", ");
}
printf("\n}\n");
break;
default:
if (print_type == 2)
qsort(sym, num_symbols, sizeof(huff_sym_t),
(int (*)(const void *, const void *)) _Huffman_CompSym);
else
qsort(sym, num_symbols, sizeof(huff_sym_t),
(int (*)(const void *, const void *)) _Huffman_CompBits);
printf("Symbol Count Lenth Code\n");
for( i = 0; i < num_symbols; i++) {
int k = sym[i].Bits - 1;
printf("%-10i %-10u %-10u ", sym[i].Symbol - offset, sym[i].Count, sym[i].Bits);
for (; k >= 0 ; k--)
printf("%u", (sym[i].Code >> k) & 1 );
printf("\n");
total_cnt += sym[i].Count;
total_size += sym[i].Count * sym[i].Bits;
if (sym[i].Count != 0)
optim_size += sym[i].Count * __builtin_log2(sym[i].Count);
}
optim_size = total_cnt * __builtin_log2(total_cnt) - optim_size;
printf("\ncount : %u huff : %f bps ", total_cnt, (float)total_size / total_cnt);
printf("opt : %f bps ", (float)optim_size / total_cnt);
printf("loss : %f bps (%f %%)\n", (float)(total_size - optim_size) / total_cnt, (float)(total_size - optim_size) * 100 / optim_size);
break;
}
}
#endif

File diff suppressed because it is too large Load Diff

@ -0,0 +1,51 @@
AC_INIT([libmpcs], [0.1])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([libmpcdec/mpc_reader.c])
AM_CONFIG_HEADER([include/config.h])
AM_INIT_AUTOMAKE
AC_LANG_C
AC_PROG_CC
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_CHECK_HEADERS([replaygain/gain_analysis.h])
AM_CONDITIONAL([MPC_GAIN], [test "x$ac_cv_header_replaygain_gain_analysis_h" = xyes])
AC_CANONICAL_HOST()
case $host_os in
*mingw32* )
LDFLAGS="${LDFLAGS} -mwindows"
EXTRALIBS="-lwinmm"
;;
* )
EXTRALIBS=""
;;
esac
AC_SUBST([EXTRALIBS])
AC_ARG_ENABLE([mpcchap], [AS_HELP_STRING([--enable-mpcchap], [enable building mpcchap])])
AM_CONDITIONAL([MPC_CHAP], [test "x$enable_mpcchap" = xyes])
CHECK_VISIBILITY
AC_CONFIG_FILES([
Makefile
include/Makefile
libmpcdec/Makefile
libmpcenc/Makefile
libmpcpsy/Makefile
libwavformat/Makefile
mpc2sv8/Makefile
mpcchap/Makefile
mpccut/Makefile
mpcdec/Makefile
mpcenc/Makefile
mpcgain/Makefile
wavcmp/Makefile
])
AC_OUTPUT

File diff suppressed because it is too large Load Diff

@ -0,0 +1,212 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: sans-serif;
}
h1 {
text-align: center;
text-transform: lowercase;
margin: 0.5em 0;
}
h2, h2 a { color: #f90; margin: 1em 0 0.25em 0; }
h3, h3 a { color: #88f; margin: 1em 0 0.25em 0; }
CAPTION { font-weight: bold }
DIV.qindex {
width: 100%;
background-color: #eeeeff;
border: 1px solid #b0b0b0;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.nav {
text-align: center;
padding: 0.25em 0;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
text-transform: lowercase;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
text-transform: lowercase;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindex, A.qindexHL { padding: 0.1em 0.5em; }
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
A.el { text-decoration: none; font-weight: bold; color: #d66; font-style: italic }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
font-family: monospace
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
hr { display: none }
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
TD.md { font-weight: bold; }
TD.mdname1, TD.mdname { color: #088; font-weight: bold; }
TABLE[cellspacing="5"] { margin-left: 2em; }
TABLE[cellspacing="5"] dl em { color: #088; font-weight: bold; }
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey, TD.indexvalue {
padding: 0.1em 1em 0.1em 0.1em;
}
TD.indexkey {
font-weight: bold;
}
TD.indexvalue {
font-style: italic;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
.mdTable {
}
.mdRow {
}
.mdescLeft, .mdescRight {
font-style: italic;
font-size: 80%;
}
.mdescRight {
}
.memItemLeft {
font-style: italic;
}
.memItemLeft, .memItemRight {
font-size: 80%;
}
.memItemRight {
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 12px;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 13px;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 12px;
}
.search { color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search { font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #eeeeff;
}
TD.tiny { font-size: 75%;
}
a {
color: #252E78;
}
a:visited {
color: #3D2185;
}

@ -0,0 +1,38 @@
/**
\mainpage libmpcdec documentation
\section whats what is libmpcdec
libmpcdec is a library that decodes musepack compressed audio data. Musepack
is a free, high performance, high quality lossy audio compression codec. For
more information on musepack visit http://www.musepack.net.
\section using using libmpcdec
Using libmpcdec is very straightforward. There are typically four things you must
do to use libmpcdec in your application.
\subsection step1 step 1: implement an mpc_reader to provide raw data to the decoder library
The role of the mpc_reader is to provide raw mpc stream data to the mpc decoding library.
This data can come from a file, a network socket, or any other source you wish.
See the documentation of
\link mpc_reader_t mpc_reader \endlink
for more information.
\subsection step2 step2: read the streaminfo properties structure from the stream
This is a simple matter of calling the streaminfo_init() and streaminfo_read() functions,
supplying your mpc_reader as a source of raw data. This reads the stream properties header from the
mpc stream. This information will be used to prime the decoder for decoding in
the next step.
\subsection step3 step 3: initialize an mpc_decoder with your mpc_reader source
This is just a matter of calling the mpc_decoder_setup() and mpc_decoder_initialize()
functions with your mpc_decoder, mpc_reader data source and streaminfo information.
\subsection step4 step 4: iteratively read raw sample data from the mpc decoder
Once you've initialized the decoding library you just iteratively call the
mpc_decoder_decode routine until it indicates that the entire stream has been read.
For a simple example of all of these steps see the sample application distributed with
libmpcdec in src/sample.cpp.
*/

@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/dewdude/musepack/musepack_src_r475")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/dewdude/musepack/musepack_src_r475")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

@ -0,0 +1 @@
INSTALL(DIRECTORY mpc DESTINATION include)

@ -0,0 +1,189 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/dewdude/musepack/musepack_src_r475
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/dewdude/musepack/musepack_src_r475
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles /home/dewdude/musepack/musepack_src_r475/include//CMakeFiles/progress.marks
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 include/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

@ -0,0 +1,12 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = foreign
nobase_include_HEADERS = \
mpc/datatypes.h \
mpc/minimax.h \
mpc/mpcmath.h \
mpc/mpc_types.h \
mpc/mpcdec.h \
mpc/reader.h \
mpc/streaminfo.h

@ -0,0 +1,54 @@
# Install script for directory: /home/dewdude/musepack/musepack_src_r475/include
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "0")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set path to fallback-tool for dependency-resolution.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/objdump")
endif()
if(CMAKE_INSTALL_COMPONENT STREQUAL "Unspecified" OR NOT CMAKE_INSTALL_COMPONENT)
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/home/dewdude/musepack/musepack_src_r475/include/mpc")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/dewdude/musepack/musepack_src_r475/include/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()

@ -0,0 +1,47 @@
K 25
svn:wc:ra_dav:version-url
V 38
/!svn/ver/474/libmpc/trunk/include/mpc
END
mpcmath.h
K 25
svn:wc:ra_dav:version-url
V 48
/!svn/ver/448/libmpc/trunk/include/mpc/mpcmath.h
END
mpcdec.h
K 25
svn:wc:ra_dav:version-url
V 47
/!svn/ver/431/libmpc/trunk/include/mpc/mpcdec.h
END
datatypes.h
K 25
svn:wc:ra_dav:version-url
V 50
/!svn/ver/294/libmpc/trunk/include/mpc/datatypes.h
END
minimax.h
K 25
svn:wc:ra_dav:version-url
V 48
/!svn/ver/294/libmpc/trunk/include/mpc/minimax.h
END
reader.h
K 25
svn:wc:ra_dav:version-url
V 47
/!svn/ver/431/libmpc/trunk/include/mpc/reader.h
END
mpc_types.h
K 25
svn:wc:ra_dav:version-url
V 50
/!svn/ver/474/libmpc/trunk/include/mpc/mpc_types.h
END
streaminfo.h
K 25
svn:wc:ra_dav:version-url
V 51
/!svn/ver/431/libmpc/trunk/include/mpc/streaminfo.h
END

@ -0,0 +1,266 @@
10
dir
475
http://svn.musepack.net/libmpc/trunk/include/mpc
http://svn.musepack.net
2011-07-28T18:52:38.341038Z
474
r2d
c51c8d5e-032a-db11-a0f2-0002b3467eef
mpcmath.h
file
2009-07-31T12:37:44.714135Z
5864a365d13acd3dfcad6b415ca47ab7
2009-07-31T12:37:44.714135Z
448
r2d
4640
mpcdec.h
file
2009-02-23T18:44:04.679955Z
df197a367c35e2087310a8dd6601da30
2009-02-23T18:44:04.679955Z
431
r2d
6019
datatypes.h
file
2006-12-19T19:48:37.131091Z
28eba7b06a1097cced74126de5591864
2006-12-19T19:48:37.131091Z
166
zorg
1245
minimax.h
file
2006-11-14T23:14:23.915140Z
e16ea369f1f8f048a68be7a0e541d655
2006-11-14T23:14:23.915140Z
137
r2d
1748
reader.h
file
2009-02-23T18:44:04.679955Z
e1dc3d18cb0008dd9452ca5c34e6a03d
2009-02-23T18:44:04.679955Z
431
r2d
3594
mpc_types.h
file
2011-07-28T18:52:38.341038Z
c60439b860e4554aa3319788ac352c59
2011-07-28T18:52:38.341038Z
474
r2d
4317
streaminfo.h
file
2009-02-23T18:44:04.679955Z
b5430525e3cc9a87ade3287cbcad7b7e
2009-02-23T18:44:04.679955Z
431
r2d
4497

@ -0,0 +1,38 @@
/*
* Musepack audio compression
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#pragma once
// mpcenc.h
#define CENTER 448 // offset for centering current data in Main-array
#define BLOCK 1152 // blocksize
#define ANABUFFER (BLOCK + CENTER) // size of PCM-data array for analysis
typedef struct {
float L [36];
float R [36];
} SubbandFloatTyp;
typedef struct {
float L [ANABUFFER];
float R [ANABUFFER];
float M [ANABUFFER];
float S [ANABUFFER];
} PCMDataTyp;

@ -0,0 +1,57 @@
/*
* Musepack audio compression
* Copyright (C) 1999-2004 Buschmann/Klemm/Piecha/Wolf
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#pragma once
# define clip(x,min,max) ( (x) < (min) ? (min) : (x) > (max) ? (max) : (x) )
#ifdef __cplusplus
# define maxi(A,B) ( (A) >? (B) )
# define mini(A,B) ( (A) <? (B) )
# define maxd(A,B) ( (A) >? (B) )
# define mind(A,B) ( (A) <? (B) )
# define maxf(A,B) ( (A) >? (B) )
# define minf(A,B) ( (A) <? (B) )
#else
# define maxi(A,B) ( (A) > (B) ? (A) : (B) )
# define mini(A,B) ( (A) < (B) ? (A) : (B) )
# define maxd(A,B) ( (A) > (B) ? (A) : (B) )
# define mind(A,B) ( (A) < (B) ? (A) : (B) )
# define maxf(A,B) ( (A) > (B) ? (A) : (B) )
# define minf(A,B) ( (A) < (B) ? (A) : (B) )
#endif
#ifdef __GNUC__
# define absi(A) abs (A)
# define absf(A) fabsf (A)
# define absd(A) fabs (A)
#else
# define absi(A) ( (A) >= 0 ? (A) : -(A) )
# define absf(A) ( (A) >= 0.f ? (A) : -(A) )
# define absd(A) ( (A) >= 0. ? (A) : -(A) )
#endif

@ -0,0 +1,146 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _MPC_TYPES_H_
#define _MPC_TYPES_H_
#ifdef WIN32
#pragma once
#endif
#include <stdlib.h>
#include <memory.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _MSC_VER
typedef __int8 mpc_int8_t;
typedef unsigned __int8 mpc_uint8_t;
typedef __int16 mpc_int16_t;
typedef unsigned __int16 mpc_uint16_t;
typedef __int32 mpc_int32_t;
typedef unsigned __int32 mpc_uint32_t;
typedef __int64 mpc_int64_t;
typedef unsigned __int64 mpc_uint64_t;
#define mpc_inline __inline
#else
#include <stdint.h>
typedef int8_t mpc_int8_t;
typedef uint8_t mpc_uint8_t;
typedef int16_t mpc_int16_t;
typedef uint16_t mpc_uint16_t;
typedef int32_t mpc_int32_t;
typedef uint32_t mpc_uint32_t;
typedef int64_t mpc_int64_t;
typedef uint64_t mpc_uint64_t;
#define mpc_inline inline
#endif
typedef int mpc_int_t;
typedef unsigned int mpc_uint_t;
typedef size_t mpc_size_t;
typedef mpc_uint8_t mpc_bool_t;
// #define LONG_SEEK_TABLE
#ifdef LONG_SEEK_TABLE // define as needed (mpc_uint32_t supports files up to 512 MB)
typedef mpc_uint64_t mpc_seek_t;
#else
typedef mpc_uint32_t mpc_seek_t;
#endif
# define mpc_int64_min -9223372036854775808ll
# define mpc_int64_max 9223372036854775807ll
typedef struct mpc_quantizer {
mpc_int16_t L [36];
mpc_int16_t R [36];
} mpc_quantizer;
/// Libmpcdec error codes
typedef enum mpc_status {
// Success.
MPC_STATUS_OK = 0,
// Generic failure (I/O error or invalid file).
MPC_STATUS_FAIL = -1
} mpc_status;
#define MPC_FIXED_POINT_SHIFT 16
#ifdef MPC_FIXED_POINT
# define MPC_FIXED_POINT_FRACTPART 14
# define MPC_FIXED_POINT_SCALE_SHIFT (MPC_FIXED_POINT_SHIFT + MPC_FIXED_POINT_FRACTPART)
# define MPC_FIXED_POINT_SCALE (1 << (MPC_FIXED_POINT_SCALE_SHIFT - 1))
typedef mpc_int32_t MPC_SAMPLE_FORMAT;
#else
typedef float MPC_SAMPLE_FORMAT;
#endif
enum {
MPC_FALSE = 0,
MPC_TRUE = !MPC_FALSE
};
//// 'Cdecl' forces the use of standard C/C++ calling convention ///////
#if defined _WIN32
# define mpc_cdecl __cdecl
#elif defined __ZTC__
# define mpc_cdecl _cdecl
#elif defined __TURBOC__
# define mpc_cdecl cdecl
#else
# define mpc_cdecl
#endif
/* DLL building support on win32 hosts */
#ifndef MPC_API
# ifdef DLL_EXPORT /* defined by libtool (if required) */
# define MPC_API __declspec(dllexport)
# endif
# ifdef MPC_DLL_IMPORT /* define if linking with this dll */
# define MPC_API __declspec(dllimport)
# endif
# ifndef MPC_API /* static linking or !_WIN32 */
# if defined(__GNUC__) && (__GNUC__ >= 4)
# define MPC_API __attribute__ ((visibility("default")))
# else
# define MPC_API
# endif
# endif
#endif
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,148 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file mpcdec.h
/// Top level include file for libmpcdec.
#ifndef _MPCDEC_H_
#define _MPCDEC_H_
#ifdef WIN32
#pragma once
#endif
#include "reader.h"
#include "streaminfo.h"
#ifdef __cplusplus
extern "C" {
#endif
enum {
MPC_FRAME_LENGTH = (36 * 32), ///< Samples per mpc frame
MPC_DECODER_BUFFER_LENGTH = (MPC_FRAME_LENGTH * 4), ///< Required buffer size for decoder
MPC_DECODER_SYNTH_DELAY = 481
};
typedef struct mpc_decoder_t mpc_decoder;
typedef struct mpc_demux_t mpc_demux;
typedef struct mpc_bits_reader_t {
unsigned char * buff; /// pointer on current byte
unsigned int count; /// unread bits in current byte
} mpc_bits_reader;
typedef struct mpc_frame_info_t {
mpc_uint32_t samples; /// number of samples in the frame (counting once for multiple channels)
mpc_int32_t bits; /// number of bits consumed by this frame (-1) if end of stream
MPC_SAMPLE_FORMAT * buffer; /// frame samples buffer (size = samples * channels * sizeof(MPC_SAMPLE_FORMAT))
mpc_bool_t is_key_frame; /// 1 if this frame is a key frame (first in block) 0 else. Set by the demuxer.
} mpc_frame_info;
typedef struct mpc_chap_info_t {
mpc_uint64_t sample; /// sample where the chapter starts
mpc_uint16_t gain; /// replaygain chapter value
mpc_uint16_t peak; /// peak chapter loudness level
mpc_uint_t tag_size; /// size of the tag element (0 if no tag is present for this chapter)
char * tag; /// pointer to an APEv2 tag without the preamble
} mpc_chap_info;
/// Initializes mpc decoder with the supplied stream info parameters.
/// \param si streaminfo structure indicating format of source stream
/// \return pointer on the initialized decoder structure if successful, 0 if not
MPC_API mpc_decoder * mpc_decoder_init(mpc_streaminfo *si);
/// Releases input mpc decoder
MPC_API void mpc_decoder_exit(mpc_decoder *p_dec);
/**
* Sets decoder sample scaling factor. All decoded samples will be multiplied
* by this factor. Useful for applying replay gain.
* @param scale_factor multiplicative scaling factor
*/
MPC_API void mpc_decoder_scale_output(mpc_decoder *p_dec, double scale_factor);
MPC_API void mpc_decoder_decode_frame(mpc_decoder * d, mpc_bits_reader * r, mpc_frame_info * i);
// This is the gain reference used in old replaygain
#define MPC_OLD_GAIN_REF 64.82
/**
* init demuxer
* @param p_reader initialized mpc_reader pointer
* @return an initialized mpc_demux pointer
*/
MPC_API mpc_demux * mpc_demux_init(mpc_reader * p_reader);
/// free demuxer
MPC_API void mpc_demux_exit(mpc_demux * d);
/**
* Calls mpc_decoder_scale_output to set the scaling factor according to the
* replay gain stream information and the supplied ouput level
* @param d pointer to a musepack demuxer
* @param level the desired ouput level (in db). Must be MPC_OLD_GAIN_REF (64.82 db) if you want to get the old replaygain behavior
* @param use_gain set it to MPC_TRUE if you want to set the scaling factor according to the stream gain
* @param use_title MPC_TRUE : uses the title gain, MPC_FALSE : uses the album gain
* @param clip_prevention MPC_TRUE : uses cliping prevention
*/
MPC_API void mpc_set_replay_level(mpc_demux * d, float level, mpc_bool_t use_gain,
mpc_bool_t use_title, mpc_bool_t clip_prevention);
/// decode frame
MPC_API mpc_status mpc_demux_decode(mpc_demux * d, mpc_frame_info * i);
/// get streaminfo
MPC_API void mpc_demux_get_info(mpc_demux * d, mpc_streaminfo * i);
/// seeks to a given sample
MPC_API mpc_status mpc_demux_seek_sample(mpc_demux * d, mpc_uint64_t destsample);
/// seeks to a given second
MPC_API mpc_status mpc_demux_seek_second(mpc_demux * d, double seconds);
/// \return the current position in the stream (in bits) from the beginning of the file
MPC_API mpc_seek_t mpc_demux_pos(mpc_demux * d);
/// chapters : only for sv8 streams
/**
* Gets the number of chapters in the stream
* @param d pointer to a musepack demuxer
* @return the number of chapters found in the stream
*/
MPC_API mpc_int_t mpc_demux_chap_nb(mpc_demux * d);
/**
* Gets datas associated to a given chapter
* The chapter tag is an APEv2 tag without the preamble
* @param d pointer to a musepack demuxer
* @param chap_nb chapter number you want datas (from 0 to mpc_demux_chap_nb(d) - 1)
* @return the chapter information structure
*/
MPC_API mpc_chap_info const * mpc_demux_chap(mpc_demux * d, int chap_nb);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,155 @@
/*
* Musepack audio compression
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <math.h>
#include <mpc/mpc_types.h>
typedef union mpc_floatint
{
float f;
mpc_int32_t n;
} mpc_floatint;
typedef union mpc_doubleint
{
double d;
mpc_int32_t n[2];
} mpc_doubleint;
static mpc_inline mpc_int32_t mpc_lrintf(float fVal)
{
mpc_floatint tmp;
tmp.f = fVal + 0x00FF8000;
return tmp.n - 0x4B7F8000;
}
#define mpc_round32 mpc_lrintf
#define mpc_nearbyintf mpc_lrintf
#ifndef M_PI
# define M_PI 3.1415926535897932384626433832795029 // 4*atan(1)
# define M_PIl 3.1415926535897932384626433832795029L
# define M_LN2 0.6931471805599453094172321214581766 // ln(2)
# define M_LN2l 0.6931471805599453094172321214581766L
# define M_LN10 2.3025850929940456840179914546843642 // ln 10 */
# define M_LN10l 2.3025850929940456840179914546843642L
#endif
// fast but maybe more inaccurate, use if you need speed
#if defined(__GNUC__) && !defined(__APPLE__)
# define SIN(x) sinf ((float)(x))
# define COS(x) cosf ((float)(x))
# define ATAN2(x,y) atan2f ((float)(x), (float)(y))
# define SQRT(x) sqrtf ((float)(x))
# define LOG(x) logf ((float)(x))
# define LOG10(x) log10f ((float)(x))
# define POW(x,y) expf (logf(x) * (y))
# define POW10(x) expf (M_LN10 * (x))
# define FLOOR(x) floorf ((float)(x))
# define IFLOOR(x) (int) floorf ((float)(x))
# define FABS(x) fabsf ((float)(x))
#else
# define SIN(x) (float) sin (x)
# define COS(x) (float) cos (x)
# define ATAN2(x,y) (float) atan2 (x, y)
# define SQRT(x) (float) sqrt (x)
# define LOG(x) (float) log (x)
# define LOG10(x) (float) log10 (x)
# define POW(x,y) (float) pow (x,y)
# define POW10(x) (float) pow (10., (x))
# define FLOOR(x) (float) floor (x)
# define IFLOOR(x) (int) floor (x)
# define FABS(x) (float) fabs (x)
#endif
#define SQRTF(x) SQRT (x)
#ifdef FAST_MATH
# define TABSTEP 64
# define COSF(x) my_cos ((float)(x))
# define ATAN2F(x,y) my_atan2 ((float)(x), (float)(y))
# define IFLOORF(x) my_ifloor ((float)(x))
void Init_FastMath ( void );
extern const float tabatan2 [] [2];
extern const float tabcos [] [2];
extern const float tabsqrt_ex [];
extern const float tabsqrt_m [] [2];
static mpc_inline float my_atan2 ( float x, float y )
{
float t, ret; int i; mpc_floatint mx, my;
mx.f = x;
my.f = y;
if ( (mx.n & 0x7FFFFFFF) < (my.n & 0x7FFFFFFF) ) {
i = mpc_round32 (t = TABSTEP * (mx.f / my.f));
ret = tabatan2 [1*TABSTEP+i][0] + tabatan2 [1*TABSTEP+i][1] * (t-i);
if ( my.n < 0 )
ret = (float)(ret - M_PI);
}
else if ( mx.n < 0 ) {
i = mpc_round32 (t = TABSTEP * (my.f / mx.f));
ret = - M_PI/2 - tabatan2 [1*TABSTEP+i][0] + tabatan2 [1*TABSTEP+i][1] * (i-t);
}
else if ( mx.n > 0 ) {
i = mpc_round32 (t = TABSTEP * (my.f / mx.f));
ret = + M_PI/2 - tabatan2 [1*TABSTEP+i][0] + tabatan2 [1*TABSTEP+i][1] * (i-t);
}
else {
ret = 0.;
}
return ret;
}
static mpc_inline float my_cos ( float x )
{
float t, ret; int i;
i = mpc_round32 (t = TABSTEP * x);
ret = tabcos [13*TABSTEP+i][0] + tabcos [13*TABSTEP+i][1] * (t-i);
return ret;
}
static mpc_inline int my_ifloor ( float x )
{
mpc_floatint mx;
mx.f = (float) (x + (0x0C00000L + 0.500000001));
return mx.n - 1262485505;
}
static mpc_inline float my_sqrt ( float x )
{
float ret; int i, ex; mpc_floatint mx;
mx.f = x;
ex = mx.n >> 23; // get the exponent
mx.n = (mx.n & 0x7FFFFF) | 0x42800000; // delete the exponent
i = mpc_round32 (mx.f); // Integer-part of the mantissa (round ????????????)
ret = tabsqrt_m [i-TABSTEP][0] + tabsqrt_m [i-TABSTEP][1] * (mx.f-i); // calculate value
ret *= tabsqrt_ex [ex];
return ret;
}
#else
# define COSF(x) COS (x)
# define ATAN2F(x,y) ATAN2 (x,y)
# define IFLOORF(x) IFLOOR (x)
#endif

@ -0,0 +1,98 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file reader.h
#ifndef _MPCDEC_READER_H_
#define _MPCDEC_READER_H_
#ifdef WIN32
#pragma once
#endif
#include <mpc/mpc_types.h>
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
/// \brief Stream reader interface structure.
///
/// This is the structure you must supply to the musepack decoding library
/// to feed it with raw data. Implement the five member functions to provide
/// a functional reader.
typedef struct mpc_reader_t mpc_reader;
struct mpc_reader_t {
/// Reads size bytes of data into buffer at ptr.
mpc_int32_t (*read)(mpc_reader *p_reader, void *ptr, mpc_int32_t size);
/// Seeks to byte position offset.
mpc_bool_t (*seek)(mpc_reader *p_reader, mpc_int32_t offset);
/// Returns the current byte offset in the stream.
mpc_int32_t (*tell)(mpc_reader *p_reader);
/// Returns the total length of the source stream, in bytes.
mpc_int32_t (*get_size)(mpc_reader *p_reader);
/// True if the stream is a seekable stream.
mpc_bool_t (*canseek)(mpc_reader *p_reader);
/// Field that can be used to identify a particular instance of
/// reader or carry along data associated with that reader.
void *data;
};
/// Initializes reader with default stdio file reader implementation. Use
/// this if you're just reading from a plain file.
///
/// \param r p_reader handle to initialize
/// \param filename input filename to attach to the reader
MPC_API mpc_status mpc_reader_init_stdio(mpc_reader *p_reader, const char *filename);
/// Initializes reader with default stdio file reader implementation. Use
/// this if you prefer to open the file yourself.
///
/// \param r p_reader handle to initialize
/// \param p_file input file handle (already open)
MPC_API mpc_status mpc_reader_init_stdio_stream(mpc_reader * p_reader, FILE * p_file);
/// Release reader with default stdio file reader implementation.
///
/// \param r reader handle to release
MPC_API void mpc_reader_exit_stdio(mpc_reader *p_reader);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,109 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file streaminfo.h
#ifndef _MPCDEC_STREAMINFO_H_
#define _MPCDEC_STREAMINFO_H_
#ifdef WIN32
#pragma once
#endif
#include <mpc/mpc_types.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef mpc_int32_t mpc_streaminfo_off_t;
/// \brief mpc stream properties structure
///
/// Structure containing all the properties of an mpc stream. Populated
/// by the streaminfo_read function.
typedef struct mpc_streaminfo {
/// @name Core mpc stream properties
//@{
mpc_uint32_t sample_freq; ///< Sample frequency of stream
mpc_uint32_t channels; ///< Number of channels in stream
mpc_uint32_t stream_version; ///< Streamversion of stream
mpc_uint32_t bitrate; ///< Bitrate of stream file (in bps)
double average_bitrate; ///< Average bitrate of stream (in bits/sec)
mpc_uint32_t max_band; ///< Maximum band-index used in stream (0...31)
mpc_uint32_t ms; ///< Mid/side stereo (0: off, 1: on)
mpc_uint32_t fast_seek; ///< True if stream supports fast-seeking (sv7)
mpc_uint32_t block_pwr; ///< Number of frames in a block = 2^block_pwr (sv8)
//@}
/// @name Replaygain properties
//@{
mpc_uint16_t gain_title; ///< Replaygain title value
mpc_uint16_t gain_album; ///< Replaygain album value
mpc_uint16_t peak_album; ///< Peak album loudness level
mpc_uint16_t peak_title; ///< Peak title loudness level
//@}
/// @name True gapless properties
//@{
mpc_uint32_t is_true_gapless; ///< True gapless? (0: no, 1: yes)
mpc_uint64_t samples; ///< Number of samples in the stream
mpc_uint64_t beg_silence; ///< Number of samples that must not be played at the beginning of the stream
//@}
/// @name Encoder informations
//@{
mpc_uint32_t encoder_version; ///< Version of encoder used
char encoder[256]; ///< Encoder name
mpc_bool_t pns; ///< pns used
float profile; ///< Quality profile of stream
const char* profile_name; ///< Name of profile used by stream
//@}
mpc_streaminfo_off_t header_position; ///< Byte offset of position of header in stream
mpc_streaminfo_off_t tag_offset; ///< Offset to file tags
mpc_streaminfo_off_t total_file_length; ///< Total length of underlying file
} mpc_streaminfo;
/// Gets length of stream si, in seconds.
/// \return length of stream in seconds
MPC_API double mpc_streaminfo_get_length(mpc_streaminfo *si);
/// Returns length of stream si, in samples.
/// \return length of stream in samples
MPC_API mpc_int64_t mpc_streaminfo_get_length_samples(mpc_streaminfo *si);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,38 @@
/*
* Musepack audio compression
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#pragma once
// mpcenc.h
#define CENTER 448 // offset for centering current data in Main-array
#define BLOCK 1152 // blocksize
#define ANABUFFER (BLOCK + CENTER) // size of PCM-data array for analysis
typedef struct {
float L [36];
float R [36];
} SubbandFloatTyp;
typedef struct {
float L [ANABUFFER];
float R [ANABUFFER];
float M [ANABUFFER];
float S [ANABUFFER];
} PCMDataTyp;

@ -0,0 +1,57 @@
/*
* Musepack audio compression
* Copyright (C) 1999-2004 Buschmann/Klemm/Piecha/Wolf
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#pragma once
# define clip(x,min,max) ( (x) < (min) ? (min) : (x) > (max) ? (max) : (x) )
#ifdef __cplusplus
# define maxi(A,B) ( (A) >? (B) )
# define mini(A,B) ( (A) <? (B) )
# define maxd(A,B) ( (A) >? (B) )
# define mind(A,B) ( (A) <? (B) )
# define maxf(A,B) ( (A) >? (B) )
# define minf(A,B) ( (A) <? (B) )
#else
# define maxi(A,B) ( (A) > (B) ? (A) : (B) )
# define mini(A,B) ( (A) < (B) ? (A) : (B) )
# define maxd(A,B) ( (A) > (B) ? (A) : (B) )
# define mind(A,B) ( (A) < (B) ? (A) : (B) )
# define maxf(A,B) ( (A) > (B) ? (A) : (B) )
# define minf(A,B) ( (A) < (B) ? (A) : (B) )
#endif
#ifdef __GNUC__
# define absi(A) abs (A)
# define absf(A) fabsf (A)
# define absd(A) fabs (A)
#else
# define absi(A) ( (A) >= 0 ? (A) : -(A) )
# define absf(A) ( (A) >= 0.f ? (A) : -(A) )
# define absd(A) ( (A) >= 0. ? (A) : -(A) )
#endif

@ -0,0 +1,146 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _MPC_TYPES_H_
#define _MPC_TYPES_H_
#ifdef WIN32
#pragma once
#endif
#include <stdlib.h>
#include <memory.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _MSC_VER
typedef __int8 mpc_int8_t;
typedef unsigned __int8 mpc_uint8_t;
typedef __int16 mpc_int16_t;
typedef unsigned __int16 mpc_uint16_t;
typedef __int32 mpc_int32_t;
typedef unsigned __int32 mpc_uint32_t;
typedef __int64 mpc_int64_t;
typedef unsigned __int64 mpc_uint64_t;
#define mpc_inline __inline
#else
#include <stdint.h>
typedef int8_t mpc_int8_t;
typedef uint8_t mpc_uint8_t;
typedef int16_t mpc_int16_t;
typedef uint16_t mpc_uint16_t;
typedef int32_t mpc_int32_t;
typedef uint32_t mpc_uint32_t;
typedef int64_t mpc_int64_t;
typedef uint64_t mpc_uint64_t;
#define mpc_inline inline
#endif
typedef int mpc_int_t;
typedef unsigned int mpc_uint_t;
typedef size_t mpc_size_t;
typedef mpc_uint8_t mpc_bool_t;
// #define LONG_SEEK_TABLE
#ifdef LONG_SEEK_TABLE // define as needed (mpc_uint32_t supports files up to 512 MB)
typedef mpc_uint64_t mpc_seek_t;
#else
typedef mpc_uint32_t mpc_seek_t;
#endif
# define mpc_int64_min -9223372036854775808ll
# define mpc_int64_max 9223372036854775807ll
typedef struct mpc_quantizer {
mpc_int16_t L [36];
mpc_int16_t R [36];
} mpc_quantizer;
/// Libmpcdec error codes
typedef enum mpc_status {
// Success.
MPC_STATUS_OK = 0,
// Generic failure (I/O error or invalid file).
MPC_STATUS_FAIL = -1
} mpc_status;
#define MPC_FIXED_POINT_SHIFT 16
#ifdef MPC_FIXED_POINT
# define MPC_FIXED_POINT_FRACTPART 14
# define MPC_FIXED_POINT_SCALE_SHIFT (MPC_FIXED_POINT_SHIFT + MPC_FIXED_POINT_FRACTPART)
# define MPC_FIXED_POINT_SCALE (1 << (MPC_FIXED_POINT_SCALE_SHIFT - 1))
typedef mpc_int32_t MPC_SAMPLE_FORMAT;
#else
typedef float MPC_SAMPLE_FORMAT;
#endif
enum {
MPC_FALSE = 0,
MPC_TRUE = !MPC_FALSE
};
//// 'Cdecl' forces the use of standard C/C++ calling convention ///////
#if defined _WIN32
# define mpc_cdecl __cdecl
#elif defined __ZTC__
# define mpc_cdecl _cdecl
#elif defined __TURBOC__
# define mpc_cdecl cdecl
#else
# define mpc_cdecl
#endif
/* DLL building support on win32 hosts */
#ifndef MPC_API
# ifdef DLL_EXPORT /* defined by libtool (if required) */
# define MPC_API __declspec(dllexport)
# endif
# ifdef MPC_DLL_IMPORT /* define if linking with this dll */
# define MPC_API __declspec(dllimport)
# endif
# ifndef MPC_API /* static linking or !_WIN32 */
# if defined(__GNUC__) && (__GNUC__ >= 4)
# define MPC_API __attribute__ ((visibility("default")))
# else
# define MPC_API
# endif
# endif
#endif
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,148 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file mpcdec.h
/// Top level include file for libmpcdec.
#ifndef _MPCDEC_H_
#define _MPCDEC_H_
#ifdef WIN32
#pragma once
#endif
#include "reader.h"
#include "streaminfo.h"
#ifdef __cplusplus
extern "C" {
#endif
enum {
MPC_FRAME_LENGTH = (36 * 32), ///< Samples per mpc frame
MPC_DECODER_BUFFER_LENGTH = (MPC_FRAME_LENGTH * 4), ///< Required buffer size for decoder
MPC_DECODER_SYNTH_DELAY = 481
};
typedef struct mpc_decoder_t mpc_decoder;
typedef struct mpc_demux_t mpc_demux;
typedef struct mpc_bits_reader_t {
unsigned char * buff; /// pointer on current byte
unsigned int count; /// unread bits in current byte
} mpc_bits_reader;
typedef struct mpc_frame_info_t {
mpc_uint32_t samples; /// number of samples in the frame (counting once for multiple channels)
mpc_int32_t bits; /// number of bits consumed by this frame (-1) if end of stream
MPC_SAMPLE_FORMAT * buffer; /// frame samples buffer (size = samples * channels * sizeof(MPC_SAMPLE_FORMAT))
mpc_bool_t is_key_frame; /// 1 if this frame is a key frame (first in block) 0 else. Set by the demuxer.
} mpc_frame_info;
typedef struct mpc_chap_info_t {
mpc_uint64_t sample; /// sample where the chapter starts
mpc_uint16_t gain; /// replaygain chapter value
mpc_uint16_t peak; /// peak chapter loudness level
mpc_uint_t tag_size; /// size of the tag element (0 if no tag is present for this chapter)
char * tag; /// pointer to an APEv2 tag without the preamble
} mpc_chap_info;
/// Initializes mpc decoder with the supplied stream info parameters.
/// \param si streaminfo structure indicating format of source stream
/// \return pointer on the initialized decoder structure if successful, 0 if not
MPC_API mpc_decoder * mpc_decoder_init(mpc_streaminfo *si);
/// Releases input mpc decoder
MPC_API void mpc_decoder_exit(mpc_decoder *p_dec);
/**
* Sets decoder sample scaling factor. All decoded samples will be multiplied
* by this factor. Useful for applying replay gain.
* @param scale_factor multiplicative scaling factor
*/
MPC_API void mpc_decoder_scale_output(mpc_decoder *p_dec, double scale_factor);
MPC_API void mpc_decoder_decode_frame(mpc_decoder * d, mpc_bits_reader * r, mpc_frame_info * i);
// This is the gain reference used in old replaygain
#define MPC_OLD_GAIN_REF 64.82
/**
* init demuxer
* @param p_reader initialized mpc_reader pointer
* @return an initialized mpc_demux pointer
*/
MPC_API mpc_demux * mpc_demux_init(mpc_reader * p_reader);
/// free demuxer
MPC_API void mpc_demux_exit(mpc_demux * d);
/**
* Calls mpc_decoder_scale_output to set the scaling factor according to the
* replay gain stream information and the supplied ouput level
* @param d pointer to a musepack demuxer
* @param level the desired ouput level (in db). Must be MPC_OLD_GAIN_REF (64.82 db) if you want to get the old replaygain behavior
* @param use_gain set it to MPC_TRUE if you want to set the scaling factor according to the stream gain
* @param use_title MPC_TRUE : uses the title gain, MPC_FALSE : uses the album gain
* @param clip_prevention MPC_TRUE : uses cliping prevention
*/
MPC_API void mpc_set_replay_level(mpc_demux * d, float level, mpc_bool_t use_gain,
mpc_bool_t use_title, mpc_bool_t clip_prevention);
/// decode frame
MPC_API mpc_status mpc_demux_decode(mpc_demux * d, mpc_frame_info * i);
/// get streaminfo
MPC_API void mpc_demux_get_info(mpc_demux * d, mpc_streaminfo * i);
/// seeks to a given sample
MPC_API mpc_status mpc_demux_seek_sample(mpc_demux * d, mpc_uint64_t destsample);
/// seeks to a given second
MPC_API mpc_status mpc_demux_seek_second(mpc_demux * d, double seconds);
/// \return the current position in the stream (in bits) from the beginning of the file
MPC_API mpc_seek_t mpc_demux_pos(mpc_demux * d);
/// chapters : only for sv8 streams
/**
* Gets the number of chapters in the stream
* @param d pointer to a musepack demuxer
* @return the number of chapters found in the stream
*/
MPC_API mpc_int_t mpc_demux_chap_nb(mpc_demux * d);
/**
* Gets datas associated to a given chapter
* The chapter tag is an APEv2 tag without the preamble
* @param d pointer to a musepack demuxer
* @param chap_nb chapter number you want datas (from 0 to mpc_demux_chap_nb(d) - 1)
* @return the chapter information structure
*/
MPC_API mpc_chap_info const * mpc_demux_chap(mpc_demux * d, int chap_nb);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,155 @@
/*
* Musepack audio compression
*
* This library 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.
*
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <math.h>
#include <mpc/mpc_types.h>
typedef union mpc_floatint
{
float f;
mpc_int32_t n;
} mpc_floatint;
typedef union mpc_doubleint
{
double d;
mpc_int32_t n[2];
} mpc_doubleint;
static mpc_inline mpc_int32_t mpc_lrintf(float fVal)
{
mpc_floatint tmp;
tmp.f = fVal + 0x00FF8000;
return tmp.n - 0x4B7F8000;
}
#define mpc_round32 mpc_lrintf
#define mpc_nearbyintf mpc_lrintf
#ifndef M_PI
# define M_PI 3.1415926535897932384626433832795029 // 4*atan(1)
# define M_PIl 3.1415926535897932384626433832795029L
# define M_LN2 0.6931471805599453094172321214581766 // ln(2)
# define M_LN2l 0.6931471805599453094172321214581766L
# define M_LN10 2.3025850929940456840179914546843642 // ln 10 */
# define M_LN10l 2.3025850929940456840179914546843642L
#endif
// fast but maybe more inaccurate, use if you need speed
#if defined(__GNUC__) && !defined(__APPLE__)
# define SIN(x) sinf ((float)(x))
# define COS(x) cosf ((float)(x))
# define ATAN2(x,y) atan2f ((float)(x), (float)(y))
# define SQRT(x) sqrtf ((float)(x))
# define LOG(x) logf ((float)(x))
# define LOG10(x) log10f ((float)(x))
# define POW(x,y) expf (logf(x) * (y))
# define POW10(x) expf (M_LN10 * (x))
# define FLOOR(x) floorf ((float)(x))
# define IFLOOR(x) (int) floorf ((float)(x))
# define FABS(x) fabsf ((float)(x))
#else
# define SIN(x) (float) sin (x)
# define COS(x) (float) cos (x)
# define ATAN2(x,y) (float) atan2 (x, y)
# define SQRT(x) (float) sqrt (x)
# define LOG(x) (float) log (x)
# define LOG10(x) (float) log10 (x)
# define POW(x,y) (float) pow (x,y)
# define POW10(x) (float) pow (10., (x))
# define FLOOR(x) (float) floor (x)
# define IFLOOR(x) (int) floor (x)
# define FABS(x) (float) fabs (x)
#endif
#define SQRTF(x) SQRT (x)
#ifdef FAST_MATH
# define TABSTEP 64
# define COSF(x) my_cos ((float)(x))
# define ATAN2F(x,y) my_atan2 ((float)(x), (float)(y))
# define IFLOORF(x) my_ifloor ((float)(x))
void Init_FastMath ( void );
extern const float tabatan2 [] [2];
extern const float tabcos [] [2];
extern const float tabsqrt_ex [];
extern const float tabsqrt_m [] [2];
static mpc_inline float my_atan2 ( float x, float y )
{
float t, ret; int i; mpc_floatint mx, my;
mx.f = x;
my.f = y;
if ( (mx.n & 0x7FFFFFFF) < (my.n & 0x7FFFFFFF) ) {
i = mpc_round32 (t = TABSTEP * (mx.f / my.f));
ret = tabatan2 [1*TABSTEP+i][0] + tabatan2 [1*TABSTEP+i][1] * (t-i);
if ( my.n < 0 )
ret = (float)(ret - M_PI);
}
else if ( mx.n < 0 ) {
i = mpc_round32 (t = TABSTEP * (my.f / mx.f));
ret = - M_PI/2 - tabatan2 [1*TABSTEP+i][0] + tabatan2 [1*TABSTEP+i][1] * (i-t);
}
else if ( mx.n > 0 ) {
i = mpc_round32 (t = TABSTEP * (my.f / mx.f));
ret = + M_PI/2 - tabatan2 [1*TABSTEP+i][0] + tabatan2 [1*TABSTEP+i][1] * (i-t);
}
else {
ret = 0.;
}
return ret;
}
static mpc_inline float my_cos ( float x )
{
float t, ret; int i;
i = mpc_round32 (t = TABSTEP * x);
ret = tabcos [13*TABSTEP+i][0] + tabcos [13*TABSTEP+i][1] * (t-i);
return ret;
}
static mpc_inline int my_ifloor ( float x )
{
mpc_floatint mx;
mx.f = (float) (x + (0x0C00000L + 0.500000001));
return mx.n - 1262485505;
}
static mpc_inline float my_sqrt ( float x )
{
float ret; int i, ex; mpc_floatint mx;
mx.f = x;
ex = mx.n >> 23; // get the exponent
mx.n = (mx.n & 0x7FFFFF) | 0x42800000; // delete the exponent
i = mpc_round32 (mx.f); // Integer-part of the mantissa (round ????????????)
ret = tabsqrt_m [i-TABSTEP][0] + tabsqrt_m [i-TABSTEP][1] * (mx.f-i); // calculate value
ret *= tabsqrt_ex [ex];
return ret;
}
#else
# define COSF(x) COS (x)
# define ATAN2F(x,y) ATAN2 (x,y)
# define IFLOORF(x) IFLOOR (x)
#endif

@ -0,0 +1,98 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file reader.h
#ifndef _MPCDEC_READER_H_
#define _MPCDEC_READER_H_
#ifdef WIN32
#pragma once
#endif
#include <mpc/mpc_types.h>
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
/// \brief Stream reader interface structure.
///
/// This is the structure you must supply to the musepack decoding library
/// to feed it with raw data. Implement the five member functions to provide
/// a functional reader.
typedef struct mpc_reader_t mpc_reader;
struct mpc_reader_t {
/// Reads size bytes of data into buffer at ptr.
mpc_int32_t (*read)(mpc_reader *p_reader, void *ptr, mpc_int32_t size);
/// Seeks to byte position offset.
mpc_bool_t (*seek)(mpc_reader *p_reader, mpc_int32_t offset);
/// Returns the current byte offset in the stream.
mpc_int32_t (*tell)(mpc_reader *p_reader);
/// Returns the total length of the source stream, in bytes.
mpc_int32_t (*get_size)(mpc_reader *p_reader);
/// True if the stream is a seekable stream.
mpc_bool_t (*canseek)(mpc_reader *p_reader);
/// Field that can be used to identify a particular instance of
/// reader or carry along data associated with that reader.
void *data;
};
/// Initializes reader with default stdio file reader implementation. Use
/// this if you're just reading from a plain file.
///
/// \param r p_reader handle to initialize
/// \param filename input filename to attach to the reader
MPC_API mpc_status mpc_reader_init_stdio(mpc_reader *p_reader, const char *filename);
/// Initializes reader with default stdio file reader implementation. Use
/// this if you prefer to open the file yourself.
///
/// \param r p_reader handle to initialize
/// \param p_file input file handle (already open)
MPC_API mpc_status mpc_reader_init_stdio_stream(mpc_reader * p_reader, FILE * p_file);
/// Release reader with default stdio file reader implementation.
///
/// \param r reader handle to release
MPC_API void mpc_reader_exit_stdio(mpc_reader *p_reader);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,109 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file streaminfo.h
#ifndef _MPCDEC_STREAMINFO_H_
#define _MPCDEC_STREAMINFO_H_
#ifdef WIN32
#pragma once
#endif
#include <mpc/mpc_types.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef mpc_int32_t mpc_streaminfo_off_t;
/// \brief mpc stream properties structure
///
/// Structure containing all the properties of an mpc stream. Populated
/// by the streaminfo_read function.
typedef struct mpc_streaminfo {
/// @name Core mpc stream properties
//@{
mpc_uint32_t sample_freq; ///< Sample frequency of stream
mpc_uint32_t channels; ///< Number of channels in stream
mpc_uint32_t stream_version; ///< Streamversion of stream
mpc_uint32_t bitrate; ///< Bitrate of stream file (in bps)
double average_bitrate; ///< Average bitrate of stream (in bits/sec)
mpc_uint32_t max_band; ///< Maximum band-index used in stream (0...31)
mpc_uint32_t ms; ///< Mid/side stereo (0: off, 1: on)
mpc_uint32_t fast_seek; ///< True if stream supports fast-seeking (sv7)
mpc_uint32_t block_pwr; ///< Number of frames in a block = 2^block_pwr (sv8)
//@}
/// @name Replaygain properties
//@{
mpc_uint16_t gain_title; ///< Replaygain title value
mpc_uint16_t gain_album; ///< Replaygain album value
mpc_uint16_t peak_album; ///< Peak album loudness level
mpc_uint16_t peak_title; ///< Peak title loudness level
//@}
/// @name True gapless properties
//@{
mpc_uint32_t is_true_gapless; ///< True gapless? (0: no, 1: yes)
mpc_uint64_t samples; ///< Number of samples in the stream
mpc_uint64_t beg_silence; ///< Number of samples that must not be played at the beginning of the stream
//@}
/// @name Encoder informations
//@{
mpc_uint32_t encoder_version; ///< Version of encoder used
char encoder[256]; ///< Encoder name
mpc_bool_t pns; ///< pns used
float profile; ///< Quality profile of stream
const char* profile_name; ///< Name of profile used by stream
//@}
mpc_streaminfo_off_t header_position; ///< Byte offset of position of header in stream
mpc_streaminfo_off_t tag_offset; ///< Offset to file tags
mpc_streaminfo_off_t total_file_length; ///< Total length of underlying file
} mpc_streaminfo;
/// Gets length of stream si, in seconds.
/// \return length of stream in seconds
MPC_API double mpc_streaminfo_get_length(mpc_streaminfo *si);
/// Returns length of stream si, in samples.
/// \return length of stream in samples
MPC_API mpc_int64_t mpc_streaminfo_get_length_samples(mpc_streaminfo *si);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,265 @@
<?xml version = '1.0'?>
<kdevelop>
<general>
<author>Nicolas Botti</author>
<email/>
<version>0.1</version>
<projectmanagement>KDevAutoProject</projectmanagement>
<primarylanguage>C</primarylanguage>
<keywords>
<keyword>C</keyword>
<keyword>Code</keyword>
</keywords>
<ignoreparts/>
<projectdirectory>.</projectdirectory>
<absoluteprojectpath>false</absoluteprojectpath>
<description/>
<projectname>libmpc</projectname>
<defaultencoding/>
</general>
<kdevautoproject>
<general>
<activetarget>mpcchap/mpcchap</activetarget>
<useconfiguration>optimized</useconfiguration>
</general>
<run>
<mainprogram/>
<terminal>true</terminal>
<directoryradio>executable</directoryradio>
<runarguments>
<mpcenc/>
<mpcdec/>
<mpcgain/>
<mpc2sv8>~/test1.mpc ~/test1-conv.mpc</mpc2sv8>
<wavcmp/>
<mpcchap/>
</runarguments>
<customdirectory>/</customdirectory>
<programargs/>
<autocompile>true</autocompile>
<envvars/>
<debugarguments>
<mpcgain/>
<mpcchap>/home/nico/test.mpc /home/nico/chaps.ini</mpcchap>
</debugarguments>
<cwd>
<mpcgain>/home/nico/src/musepack/libmpc/optimized/./mpcchap</mpcgain>
<mpcchap>/home/nico/src/musepack/libmpc/optimized/./mpcchap</mpcchap>
</cwd>
</run>
<configurations>
<optimized>
<builddir>optimized</builddir>
<ccompiler>kdevgccoptions</ccompiler>
<cxxcompiler>kdevgppoptions</cxxcompiler>
<f77compiler>kdevg77options</f77compiler>
<cflags>-O3 -fomit-frame-pointer -pipe -Wall -m3dnow -msse -ffast-math</cflags>
<envvars/>
<configargs/>
<topsourcedir/>
<cppflags>-I/home/nico/src/musepack/libreplaygain/include</cppflags>
<ldflags>-L/home/nico/src/musepack/libreplaygain/src</ldflags>
<ccompilerbinary/>
<cxxcompilerbinary/>
<f77compilerbinary/>
<cxxflags/>
<f77flags/>
</optimized>
<debug>
<configargs>--enable-debug=full</configargs>
<builddir>debug</builddir>
<ccompiler>kdevgccoptions</ccompiler>
<cxxcompiler>kdevgppoptions</cxxcompiler>
<f77compiler>kdevg77options</f77compiler>
<cflags>-O0 -Wall -g3</cflags>
<envvars/>
<topsourcedir/>
<cppflags>-I/home/nico/src/musepack/libreplaygain/include</cppflags>
<ldflags>-L/home/nico/src/musepack/libreplaygain/src</ldflags>
<ccompilerbinary/>
<cxxcompilerbinary/>
<f77compilerbinary/>
<cxxflags/>
<f77flags/>
</debug>
</configurations>
<make>
<envvars>
<envvar value="1" name="WANT_AUTOCONF_2_5" />
<envvar value="1" name="WANT_AUTOMAKE_1_6" />
</envvars>
<abortonerror>true</abortonerror>
<numberofjobs>1</numberofjobs>
<dontact>false</dontact>
<makebin/>
<prio>0</prio>
</make>
</kdevautoproject>
<kdevdoctreeview>
<ignoretocs>
<toc>ada</toc>
<toc>ada_bugs_gcc</toc>
<toc>bash</toc>
<toc>bash_bugs</toc>
<toc>clanlib</toc>
<toc>w3c-dom-level2-html</toc>
<toc>fortran_bugs_gcc</toc>
<toc>gnome1</toc>
<toc>gnustep</toc>
<toc>gtk</toc>
<toc>gtk_bugs</toc>
<toc>haskell</toc>
<toc>haskell_bugs_ghc</toc>
<toc>java_bugs_gcc</toc>
<toc>java_bugs_sun</toc>
<toc>kde2book</toc>
<toc>libstdc++</toc>
<toc>opengl</toc>
<toc>pascal_bugs_fp</toc>
<toc>php</toc>
<toc>php_bugs</toc>
<toc>perl</toc>
<toc>perl_bugs</toc>
<toc>python</toc>
<toc>python_bugs</toc>
<toc>qt-kdev3</toc>
<toc>ruby</toc>
<toc>ruby_bugs</toc>
<toc>sdl</toc>
<toc>stl</toc>
<toc>w3c-svg</toc>
<toc>sw</toc>
<toc>w3c-uaag10</toc>
<toc>wxwidgets_bugs</toc>
</ignoretocs>
<ignoreqt_xml>
<toc>Guide to the Qt Translation Tools</toc>
<toc>Qt Assistant Manual</toc>
<toc>Qt Designer Manual</toc>
<toc>Qt Reference Documentation</toc>
<toc>qmake User Guide</toc>
</ignoreqt_xml>
<ignoredoxygen>
<toc>KDE Libraries (Doxygen)</toc>
</ignoredoxygen>
</kdevdoctreeview>
<kdevfilecreate>
<useglobaltypes>
<type ext="c" />
<type ext="h" />
</useglobaltypes>
</kdevfilecreate>
<kdevfileview>
<groups>
<group pattern="*.h" name="Header files" />
<group pattern="*.c" name="Source files" />
<hidenonprojectfiles>false</hidenonprojectfiles>
<hidenonlocation>false</hidenonlocation>
</groups>
<tree>
<hidepatterns>*.o,*.lo,CVS</hidepatterns>
<hidenonprojectfiles>false</hidenonprojectfiles>
</tree>
</kdevfileview>
<kdevdocumentation>
<projectdoc>
<docsystem>Doxygen Documentation Collection</docsystem>
<docurl>mpcenc.tag</docurl>
<usermanualurl/>
</projectdoc>
</kdevdocumentation>
<substmap>
<APPNAME>mpcenc</APPNAME>
<APPNAMELC>mpcenc</APPNAMELC>
<APPNAMESC>Mpcenc</APPNAMESC>
<APPNAMEUC>MPCENC</APPNAMEUC>
<AUTHOR>Nicolas Botti</AUTHOR>
<CFLAGS/>
<EMAIL/>
<LICENSE>GPL</LICENSE>
<LICENSEFILE>COPYING</LICENSEFILE>
<OPT_INCS>-I/usr/include</OPT_INCS>
<OPT_LIBS>-lm</OPT_LIBS>
<VERSION>0.1</VERSION>
<YEAR>2006</YEAR>
<dest>/home/nico/src/musepack/svn/mpcenc-zorg/mpcenc</dest>
</substmap>
<kdevcppsupport>
<references/>
<codecompletion>
<includeGlobalFunctions>true</includeGlobalFunctions>
<includeTypes>true</includeTypes>
<includeEnums>true</includeEnums>
<includeTypedefs>false</includeTypedefs>
<automaticCodeCompletion>true</automaticCodeCompletion>
<automaticArgumentsHint>true</automaticArgumentsHint>
<automaticHeaderCompletion>true</automaticHeaderCompletion>
<codeCompletionDelay>250</codeCompletionDelay>
<argumentsHintDelay>400</argumentsHintDelay>
<headerCompletionDelay>250</headerCompletionDelay>
<showOnlyAccessibleItems>false</showOnlyAccessibleItems>
<completionBoxItemOrder>0</completionBoxItemOrder>
<howEvaluationContextMenu>true</howEvaluationContextMenu>
<showCommentWithArgumentHint>true</showCommentWithArgumentHint>
<statusBarTypeEvaluation>false</statusBarTypeEvaluation>
<namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
<processPrimaryTypes>true</processPrimaryTypes>
<processFunctionArguments>false</processFunctionArguments>
<preProcessAllHeaders>false</preProcessAllHeaders>
<parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
<resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
<alwaysParseInBackground>true</alwaysParseInBackground>
<usePermanentCaching>true</usePermanentCaching>
<alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
<includePaths>.;</includePaths>
</codecompletion>
<creategettersetter>
<prefixGet/>
<prefixSet>set</prefixSet>
<prefixVariable>m_,_</prefixVariable>
<parameterName>theValue</parameterName>
<inlineGet>true</inlineGet>
<inlineSet>true</inlineSet>
</creategettersetter>
<qt>
<used>false</used>
<version>3</version>
<includestyle>3</includestyle>
<root></root>
<designerintegration>EmbeddedKDevDesigner</designerintegration>
<qmake></qmake>
<designer></designer>
<designerpluginpaths/>
</qt>
<splitheadersource>
<enabled>false</enabled>
<synchronize>true</synchronize>
<orientation>Vertical</orientation>
</splitheadersource>
</kdevcppsupport>
<cppsupportpart>
<filetemplates>
<interfacesuffix>.h</interfacesuffix>
<implementationsuffix>.cpp</implementationsuffix>
</filetemplates>
</cppsupportpart>
<kdevdebugger>
<general>
<programargs>&quot;/home/nico/test.wav&quot; &quot;/home/nico/test2.wav&quot;</programargs>
<gdbpath/>
<dbgshell>libtool</dbgshell>
<configGdbScript/>
<runShellScript/>
<runGdbScript/>
<breakonloadinglibs>true</breakonloadinglibs>
<separatetty>false</separatetty>
<floatingtoolbar>false</floatingtoolbar>
<raiseGDBOnStart>false</raiseGDBOnStart>
</general>
<display>
<staticmembers>false</staticmembers>
<demanglenames>true</demanglenames>
<outputradix>10</outputradix>
</display>
</kdevdebugger>
</kdevelop>

@ -0,0 +1,10 @@
libmpcdec is the result of the work of many people:
* Andree Buschmann and Frank Klemm
Original implementation and core development.
* Peter Pawlowski and Benoit Amiaux
Portability and further optimizations.
* Miles Egan
Port to pure C, documentation, and api refinements.

@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/dewdude/musepack/musepack_src_r475")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/dewdude/musepack/musepack_src_r475")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

@ -0,0 +1,32 @@
# Consider dependencies only in project.
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/dewdude/musepack/musepack_src_r475/common/crc32.c" "libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.c" "libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.c" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_decoder.c" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_demux.c" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_reader.c" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.c" "libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/streaminfo.c" "libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o.d"
"/home/dewdude/musepack/musepack_src_r475/libmpcdec/synth_filter.c" "libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o.d"
"" "libmpcdec/libmpcdec.so" "gcc" "libmpcdec/CMakeFiles/mpcdec.dir/link.d"
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -0,0 +1,3 @@
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o: \
/home/dewdude/musepack/musepack_src_r475/common/crc32.c \
/usr/include/stdc-predef.h

@ -0,0 +1,242 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/dewdude/musepack/musepack_src_r475
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/dewdude/musepack/musepack_src_r475
# Include any dependencies generated for this target.
include libmpcdec/CMakeFiles/mpcdec.dir/depend.make
# Include any dependencies generated by the compiler for this target.
include libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.make
# Include the progress variables for this target.
include libmpcdec/CMakeFiles/mpcdec.dir/progress.make
# Include the compile flags for this target's objects.
include libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/codegen:
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/codegen
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o: libmpcdec/huffman.c
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o -MF CMakeFiles/mpcdec.dir/huffman.c.o.d -o CMakeFiles/mpcdec.dir/huffman.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.c
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/huffman.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.c > CMakeFiles/mpcdec.dir/huffman.c.i
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/huffman.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.c -o CMakeFiles/mpcdec.dir/huffman.c.s
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o: libmpcdec/mpc_decoder.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o -MF CMakeFiles/mpcdec.dir/mpc_decoder.c.o.d -o CMakeFiles/mpcdec.dir/mpc_decoder.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_decoder.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/mpc_decoder.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_decoder.c > CMakeFiles/mpcdec.dir/mpc_decoder.c.i
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/mpc_decoder.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_decoder.c -o CMakeFiles/mpcdec.dir/mpc_decoder.c.s
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o: libmpcdec/mpc_reader.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o -MF CMakeFiles/mpcdec.dir/mpc_reader.c.o.d -o CMakeFiles/mpcdec.dir/mpc_reader.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_reader.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/mpc_reader.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_reader.c > CMakeFiles/mpcdec.dir/mpc_reader.c.i
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/mpc_reader.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_reader.c -o CMakeFiles/mpcdec.dir/mpc_reader.c.s
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o: libmpcdec/streaminfo.c
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o -MF CMakeFiles/mpcdec.dir/streaminfo.c.o.d -o CMakeFiles/mpcdec.dir/streaminfo.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/streaminfo.c
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/streaminfo.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/streaminfo.c > CMakeFiles/mpcdec.dir/streaminfo.c.i
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/streaminfo.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/streaminfo.c -o CMakeFiles/mpcdec.dir/streaminfo.c.s
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o: libmpcdec/mpc_bits_reader.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o -MF CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o.d -o CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/mpc_bits_reader.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.c > CMakeFiles/mpcdec.dir/mpc_bits_reader.c.i
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/mpc_bits_reader.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.c -o CMakeFiles/mpcdec.dir/mpc_bits_reader.c.s
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o: libmpcdec/mpc_demux.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o -MF CMakeFiles/mpcdec.dir/mpc_demux.c.o.d -o CMakeFiles/mpcdec.dir/mpc_demux.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_demux.c
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/mpc_demux.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_demux.c > CMakeFiles/mpcdec.dir/mpc_demux.c.i
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/mpc_demux.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_demux.c -o CMakeFiles/mpcdec.dir/mpc_demux.c.s
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o: libmpcdec/requant.c
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o -MF CMakeFiles/mpcdec.dir/requant.c.o.d -o CMakeFiles/mpcdec.dir/requant.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.c
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/requant.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.c > CMakeFiles/mpcdec.dir/requant.c.i
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/requant.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.c -o CMakeFiles/mpcdec.dir/requant.c.s
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o: libmpcdec/synth_filter.c
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o -MF CMakeFiles/mpcdec.dir/synth_filter.c.o.d -o CMakeFiles/mpcdec.dir/synth_filter.c.o -c /home/dewdude/musepack/musepack_src_r475/libmpcdec/synth_filter.c
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/synth_filter.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/libmpcdec/synth_filter.c > CMakeFiles/mpcdec.dir/synth_filter.c.i
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/synth_filter.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/libmpcdec/synth_filter.c -o CMakeFiles/mpcdec.dir/synth_filter.c.s
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o: libmpcdec/CMakeFiles/mpcdec.dir/flags.make
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o: common/crc32.c
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building C object libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o -MF CMakeFiles/mpcdec.dir/__/common/crc32.c.o.d -o CMakeFiles/mpcdec.dir/__/common/crc32.c.o -c /home/dewdude/musepack/musepack_src_r475/common/crc32.c
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/mpcdec.dir/__/common/crc32.c.i"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dewdude/musepack/musepack_src_r475/common/crc32.c > CMakeFiles/mpcdec.dir/__/common/crc32.c.i
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/mpcdec.dir/__/common/crc32.c.s"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dewdude/musepack/musepack_src_r475/common/crc32.c -o CMakeFiles/mpcdec.dir/__/common/crc32.c.s
# Object files for target mpcdec
mpcdec_OBJECTS = \
"CMakeFiles/mpcdec.dir/huffman.c.o" \
"CMakeFiles/mpcdec.dir/mpc_decoder.c.o" \
"CMakeFiles/mpcdec.dir/mpc_reader.c.o" \
"CMakeFiles/mpcdec.dir/streaminfo.c.o" \
"CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o" \
"CMakeFiles/mpcdec.dir/mpc_demux.c.o" \
"CMakeFiles/mpcdec.dir/requant.c.o" \
"CMakeFiles/mpcdec.dir/synth_filter.c.o" \
"CMakeFiles/mpcdec.dir/__/common/crc32.c.o"
# External object files for target mpcdec
mpcdec_EXTERNAL_OBJECTS =
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/build.make
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/compiler_depend.ts
libmpcdec/libmpcdec.so: libmpcdec/CMakeFiles/mpcdec.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/dewdude/musepack/musepack_src_r475/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Linking C shared library libmpcdec.so"
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mpcdec.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
libmpcdec/CMakeFiles/mpcdec.dir/build: libmpcdec/libmpcdec.so
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/build
libmpcdec/CMakeFiles/mpcdec.dir/clean:
cd /home/dewdude/musepack/musepack_src_r475/libmpcdec && $(CMAKE_COMMAND) -P CMakeFiles/mpcdec.dir/cmake_clean.cmake
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/clean
libmpcdec/CMakeFiles/mpcdec.dir/depend:
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/dewdude/musepack/musepack_src_r475 /home/dewdude/musepack/musepack_src_r475/libmpcdec /home/dewdude/musepack/musepack_src_r475 /home/dewdude/musepack/musepack_src_r475/libmpcdec /home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/DependInfo.cmake "--color=$(COLOR)"
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/depend

@ -0,0 +1,28 @@
file(REMOVE_RECURSE
"CMakeFiles/mpcdec.dir/link.d"
"CMakeFiles/mpcdec.dir/__/common/crc32.c.o"
"CMakeFiles/mpcdec.dir/__/common/crc32.c.o.d"
"CMakeFiles/mpcdec.dir/huffman.c.o"
"CMakeFiles/mpcdec.dir/huffman.c.o.d"
"CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o"
"CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o.d"
"CMakeFiles/mpcdec.dir/mpc_decoder.c.o"
"CMakeFiles/mpcdec.dir/mpc_decoder.c.o.d"
"CMakeFiles/mpcdec.dir/mpc_demux.c.o"
"CMakeFiles/mpcdec.dir/mpc_demux.c.o.d"
"CMakeFiles/mpcdec.dir/mpc_reader.c.o"
"CMakeFiles/mpcdec.dir/mpc_reader.c.o.d"
"CMakeFiles/mpcdec.dir/requant.c.o"
"CMakeFiles/mpcdec.dir/requant.c.o.d"
"CMakeFiles/mpcdec.dir/streaminfo.c.o"
"CMakeFiles/mpcdec.dir/streaminfo.c.o.d"
"CMakeFiles/mpcdec.dir/synth_filter.c.o"
"CMakeFiles/mpcdec.dir/synth_filter.c.o.d"
"libmpcdec.pdb"
"libmpcdec.so"
)
# Per-language clean rules from dependency scanning.
foreach(lang C)
include(CMakeFiles/mpcdec.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -0,0 +1,646 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o
/home/dewdude/musepack/musepack_src_r475/common/crc32.c
/usr/include/stdc-predef.h
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_decoder.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/minimax.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpcdec_math.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_demux.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/minimax.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/flt-eval-method.h
/usr/include/bits/fp-fast.h
/usr/include/bits/fp-logb.h
/usr/include/bits/iscanonical.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/libm-simd-decl-stubs.h
/usr/include/bits/long-double.h
/usr/include/bits/math-vector.h
/usr/include/bits/mathcalls-helper-functions.h
/usr/include/bits/mathcalls-macros.h
/usr/include/bits/mathcalls-narrow.h
/usr/include/bits/mathcalls.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/math.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_reader.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpcdec_math.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/streaminfo.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/flt-eval-method.h
/usr/include/bits/fp-fast.h
/usr/include/bits/fp-logb.h
/usr/include/bits/iscanonical.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/libm-simd-decl-stubs.h
/usr/include/bits/long-double.h
/usr/include/bits/math-vector.h
/usr/include/bits/mathcalls-helper-functions.h
/usr/include/bits/mathcalls-macros.h
/usr/include/bits/mathcalls-narrow.h
/usr/include/bits/mathcalls.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/math.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/synth_filter.c
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpcdec_math.h
/usr/include/alloca.h
/usr/include/bits/atomic_wide_counter.h
/usr/include/bits/byteswap.h
/usr/include/bits/endian.h
/usr/include/bits/endianness.h
/usr/include/bits/floatn-common.h
/usr/include/bits/floatn.h
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/pthreadtypes-arch.h
/usr/include/bits/pthreadtypes.h
/usr/include/bits/select.h
/usr/include/bits/stdint-intn.h
/usr/include/bits/stdint-least.h
/usr/include/bits/stdint-uintn.h
/usr/include/bits/stdio.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/stdlib-bsearch.h
/usr/include/bits/stdlib-float.h
/usr/include/bits/struct_mutex.h
/usr/include/bits/struct_rwlock.h
/usr/include/bits/thread-shared-types.h
/usr/include/bits/time64.h
/usr/include/bits/timesize.h
/usr/include/bits/types.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__locale_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__sigset_t.h
/usr/include/bits/types/clock_t.h
/usr/include/bits/types/clockid_t.h
/usr/include/bits/types/cookie_io_functions_t.h
/usr/include/bits/types/locale_t.h
/usr/include/bits/types/sigset_t.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/types/struct_timespec.h
/usr/include/bits/types/struct_timeval.h
/usr/include/bits/types/time_t.h
/usr/include/bits/types/timer_t.h
/usr/include/bits/typesizes.h
/usr/include/bits/uintn-identity.h
/usr/include/bits/waitflags.h
/usr/include/bits/waitstatus.h
/usr/include/bits/wchar.h
/usr/include/bits/wordsize.h
/usr/include/endian.h
/usr/include/features-time64.h
/usr/include/features.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/include/memory.h
/usr/include/stdc-predef.h
/usr/include/stdint.h
/usr/include/stdio.h
/usr/include/stdlib.h
/usr/include/string.h
/usr/include/strings.h
/usr/include/sys/cdefs.h
/usr/include/sys/select.h
/usr/include/sys/types.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/libmpcdec.so
/usr/lib/crti.o
/usr/lib/crtn.o
/usr/lib/libc.so
/usr/lib/libgcc_s.so
/usr/lib/libgcc_s.so.1
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a
/usr/lib/ld-linux-x86-64.so.2
/usr/lib/libc.so.6
/usr/lib/libc_nonshared.a
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o
/home/dewdude/musepack/musepack_src_r475/libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o

@ -0,0 +1,870 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o: common/crc32.c \
/usr/include/stdc-predef.h
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o: libmpcdec/huffman.c \
include/mpc/mpc_types.h \
libmpcdec/huffman.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/long-double.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o: libmpcdec/mpc_bits_reader.c \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/huffman.h \
libmpcdec/internal.h \
libmpcdec/mpc_bits_reader.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/long-double.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o: libmpcdec/mpc_decoder.c \
include/mpc/minimax.h \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/decoder.h \
libmpcdec/huffman.h \
libmpcdec/internal.h \
libmpcdec/mpc_bits_reader.h \
libmpcdec/mpcdec_math.h \
libmpcdec/requant.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/long-double.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o: libmpcdec/mpc_demux.c \
include/mpc/minimax.h \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/decoder.h \
libmpcdec/huffman.h \
libmpcdec/internal.h \
libmpcdec/mpc_bits_reader.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-fast.h \
/usr/include/bits/fp-logb.h \
/usr/include/bits/iscanonical.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/long-double.h \
/usr/include/bits/math-vector.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/mathcalls.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/math.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o: libmpcdec/mpc_reader.c \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/internal.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/long-double.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o: libmpcdec/requant.c \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/decoder.h \
libmpcdec/mpcdec_math.h \
libmpcdec/requant.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/long-double.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o: libmpcdec/streaminfo.c \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/huffman.h \
libmpcdec/internal.h \
libmpcdec/mpc_bits_reader.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-fast.h \
/usr/include/bits/fp-logb.h \
/usr/include/bits/iscanonical.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/long-double.h \
/usr/include/bits/math-vector.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/mathcalls.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/math.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o: libmpcdec/synth_filter.c \
include/mpc/mpc_types.h \
include/mpc/mpcdec.h \
include/mpc/reader.h \
include/mpc/streaminfo.h \
libmpcdec/decoder.h \
libmpcdec/mpcdec_math.h \
/usr/include/alloca.h \
/usr/include/bits/atomic_wide_counter.h \
/usr/include/bits/byteswap.h \
/usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/bits/floatn-common.h \
/usr/include/bits/floatn.h \
/usr/include/bits/libc-header-start.h \
/usr/include/bits/long-double.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/pthreadtypes.h \
/usr/include/bits/select.h \
/usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-least.h \
/usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdio.h \
/usr/include/bits/stdio_lim.h \
/usr/include/bits/stdlib-bsearch.h \
/usr/include/bits/stdlib-float.h \
/usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h \
/usr/include/bits/thread-shared-types.h \
/usr/include/bits/time64.h \
/usr/include/bits/timesize.h \
/usr/include/bits/types.h \
/usr/include/bits/types/FILE.h \
/usr/include/bits/types/__FILE.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/types/locale_t.h \
/usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h \
/usr/include/bits/typesizes.h \
/usr/include/bits/uintn-identity.h \
/usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h \
/usr/include/bits/wchar.h \
/usr/include/bits/wordsize.h \
/usr/include/endian.h \
/usr/include/features-time64.h \
/usr/include/features.h \
/usr/include/gnu/stubs-64.h \
/usr/include/gnu/stubs.h \
/usr/include/memory.h \
/usr/include/stdc-predef.h \
/usr/include/stdint.h \
/usr/include/stdio.h \
/usr/include/stdlib.h \
/usr/include/string.h \
/usr/include/strings.h \
/usr/include/sys/cdefs.h \
/usr/include/sys/select.h \
/usr/include/sys/types.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h
libmpcdec/libmpcdec.so: /usr/lib/crti.o \
/usr/lib/crtn.o \
/usr/lib/libc.so \
/usr/lib/libgcc_s.so \
/usr/lib/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
/usr/lib/ld-linux-x86-64.so.2 \
/usr/lib/libc.so.6 \
/usr/lib/libc_nonshared.a \
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o \
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o:
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o:
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o:
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o:
/usr/lib/libc.so.6:
libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o:
/usr/lib/ld-linux-x86-64.so.2:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o:
/usr/lib/libgcc_s.so.1:
/usr/lib/libgcc_s.so:
/usr/lib/crtn.o:
libmpcdec/synth_filter.c:
/usr/include/bits/mathcalls.h:
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o:
/usr/include/bits/mathcalls-macros.h:
/usr/include/bits/libm-simd-decl-stubs.h:
/usr/include/bits/fp-logb.h:
/usr/lib/libc.so:
/usr/include/bits/fp-fast.h:
/usr/include/bits/flt-eval-method.h:
libmpcdec/mpc_demux.c:
/usr/include/bits/types/struct_FILE.h:
/usr/include/bits/math-vector.h:
/usr/include/bits/types/__fpos_t.h:
/usr/include/bits/types/__fpos64_t.h:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o:
/usr/include/bits/types/FILE.h:
/usr/include/bits/stdio.h:
/usr/include/bits/types/__mbstate_t.h:
include/mpc/streaminfo.h:
libmpcdec/mpcdec_math.h:
include/mpc/reader.h:
include/mpc/mpcdec.h:
/usr/lib/crti.o:
libmpcdec/mpc_bits_reader.c:
/usr/include/sys/cdefs.h:
libmpcdec/huffman.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/thread-shared-types.h:
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o:
/usr/include/bits/types/__locale_t.h:
/usr/lib/libc_nonshared.a:
libmpcdec/mpc_decoder.c:
/usr/include/bits/types.h:
/usr/include/bits/stdlib-bsearch.h:
/usr/include/bits/types/__FILE.h:
/usr/include/bits/stdlib-float.h:
libmpcdec/decoder.h:
/usr/include/bits/types/sigset_t.h:
/usr/include/bits/stdint-least.h:
/usr/include/alloca.h:
/usr/include/bits/struct_mutex.h:
/usr/include/gnu/stubs-64.h:
/usr/include/bits/select.h:
/usr/include/features-time64.h:
libmpcdec/requant.c:
/usr/include/stdc-predef.h:
/usr/include/bits/pthreadtypes-arch.h:
/usr/include/bits/long-double.h:
/usr/include/bits/stdint-intn.h:
libmpcdec/huffman.c:
/usr/include/bits/types/locale_t.h:
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h:
include/mpc/mpc_types.h:
libmpcdec/mpc_bits_reader.h:
/usr/include/memory.h:
/usr/include/bits/time64.h:
/usr/include/string.h:
/usr/include/bits/endianness.h:
/usr/include/bits/floatn-common.h:
libmpcdec/mpc_reader.c:
libmpcdec/internal.h:
common/crc32.c:
/usr/include/bits/floatn.h:
/usr/include/bits/timesize.h:
/usr/include/bits/endian.h:
/usr/include/bits/types/__sigset_t.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/libc-header-start.h:
/usr/include/strings.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/types/clock_t.h:
/usr/include/bits/atomic_wide_counter.h:
/usr/include/bits/types/clockid_t.h:
/usr/include/bits/types/struct_timespec.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/types/struct_timeval.h:
/usr/include/bits/mathcalls-helper-functions.h:
libmpcdec/requant.h:
/usr/include/bits/struct_rwlock.h:
/usr/include/bits/types/time_t.h:
/usr/include/stdlib.h:
/usr/include/bits/mathcalls-narrow.h:
/usr/include/stdio.h:
/usr/include/bits/types/timer_t.h:
include/mpc/minimax.h:
/usr/include/bits/types/cookie_io_functions_t.h:
/usr/include/bits/stdint-uintn.h:
/usr/include/endian.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/uintn-identity.h:
/usr/include/bits/wordsize.h:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h:
/usr/include/bits/waitstatus.h:
/usr/include/bits/wchar.h:
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o:
/usr/include/features.h:
/usr/include/math.h:
/usr/include/bits/iscanonical.h:
/usr/include/gnu/stubs.h:
/usr/include/stdint.h:
/usr/include/sys/select.h:
/usr/include/sys/types.h:
libmpcdec/streaminfo.c:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h:

@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for compiler generated dependencies management for mpcdec.

@ -0,0 +1,2 @@
# Empty dependencies file for mpcdec.
# This may be replaced when dependencies are built.

@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# compile C with /usr/bin/cc
C_DEFINES = -DCVD_FASTLOG -DFAST_MATH -Dmpcdec_EXPORTS
C_INCLUDES = -I/home/dewdude/musepack/musepack_src_r475/include
C_FLAGS = -O3 -Wall -fomit-frame-pointer -pipe -fPIC

@ -0,0 +1,35 @@
libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.c \
/usr/include/stdc-predef.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h

@ -0,0 +1,94 @@
libmpcdec.so: \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o \
CMakeFiles/mpcdec.dir/huffman.c.o \
CMakeFiles/mpcdec.dir/mpc_decoder.c.o \
CMakeFiles/mpcdec.dir/mpc_reader.c.o \
CMakeFiles/mpcdec.dir/streaminfo.c.o \
CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o \
CMakeFiles/mpcdec.dir/mpc_demux.c.o \
CMakeFiles/mpcdec.dir/requant.c.o \
CMakeFiles/mpcdec.dir/synth_filter.c.o \
CMakeFiles/mpcdec.dir/__/common/crc32.c.o \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so \
/usr/lib/libc.so.6 \
/usr/lib/libc_nonshared.a \
/usr/lib/ld-linux-x86-64.so.2 \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1 \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o:
CMakeFiles/mpcdec.dir/huffman.c.o:
CMakeFiles/mpcdec.dir/mpc_decoder.c.o:
CMakeFiles/mpcdec.dir/mpc_reader.c.o:
CMakeFiles/mpcdec.dir/streaminfo.c.o:
CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o:
CMakeFiles/mpcdec.dir/mpc_demux.c.o:
CMakeFiles/mpcdec.dir/requant.c.o:
CMakeFiles/mpcdec.dir/synth_filter.c.o:
CMakeFiles/mpcdec.dir/__/common/crc32.c.o:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libc.so:
/usr/lib/libc.so.6:
/usr/lib/libc_nonshared.a:
/usr/lib/ld-linux-x86-64.so.2:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/libgcc_s.so.1:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/libgcc.a:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o:
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o:

@ -0,0 +1 @@
/usr/bin/cc -fPIC -O3 -Wall -fomit-frame-pointer -pipe -Wl,--dependency-file=CMakeFiles/mpcdec.dir/link.d -shared -Wl,-soname,libmpcdec.so -o libmpcdec.so CMakeFiles/mpcdec.dir/huffman.c.o CMakeFiles/mpcdec.dir/mpc_decoder.c.o CMakeFiles/mpcdec.dir/mpc_reader.c.o CMakeFiles/mpcdec.dir/streaminfo.c.o CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o CMakeFiles/mpcdec.dir/mpc_demux.c.o CMakeFiles/mpcdec.dir/requant.c.o CMakeFiles/mpcdec.dir/synth_filter.c.o CMakeFiles/mpcdec.dir/__/common/crc32.c.o

@ -0,0 +1,47 @@
libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.c \
/usr/include/stdc-predef.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h

@ -0,0 +1,53 @@
libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_decoder.c \
/usr/include/stdc-predef.h /usr/include/string.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/sys/types.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/minimax.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpcdec_math.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h

@ -0,0 +1,57 @@
libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_demux.c \
/usr/include/stdc-predef.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/bits/flt-eval-method.h /usr/include/bits/fp-logb.h \
/usr/include/bits/fp-fast.h /usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/string.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/minimax.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h

@ -0,0 +1,46 @@
libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_reader.c \
/usr/include/stdc-predef.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h

@ -0,0 +1,11 @@
CMAKE_PROGRESS_1 = 5
CMAKE_PROGRESS_2 = 6
CMAKE_PROGRESS_3 = 7
CMAKE_PROGRESS_4 = 8
CMAKE_PROGRESS_5 = 9
CMAKE_PROGRESS_6 = 10
CMAKE_PROGRESS_7 = 11
CMAKE_PROGRESS_8 = 12
CMAKE_PROGRESS_9 = 13
CMAKE_PROGRESS_10 = 14

@ -0,0 +1,48 @@
libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.c \
/usr/include/stdc-predef.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/requant.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpcdec_math.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h

@ -0,0 +1,55 @@
libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/streaminfo.c \
/usr/include/stdc-predef.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/bits/flt-eval-method.h /usr/include/bits/fp-logb.h \
/usr/include/bits/fp-fast.h /usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/internal.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/huffman.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpc_bits_reader.h

@ -0,0 +1,48 @@
libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o: \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/synth_filter.c \
/usr/include/stdc-predef.h /usr/include/string.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpcdec.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/mpc_types.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/sys/types.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/memory.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/stdio.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/streaminfo.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/decoder.h \
/home/dewdude/musepack/musepack_src_r475/include/mpc/reader.h \
/home/dewdude/musepack/musepack_src_r475/libmpcdec/mpcdec_math.h

@ -0,0 +1,7 @@
include_directories(${libmpc_SOURCE_DIR}/include)
if(SHARED)
add_library(mpcdec SHARED huffman.c mpc_decoder.c mpc_reader.c streaminfo.c mpc_bits_reader.c mpc_demux.c requant.c synth_filter.c ${libmpc_SOURCE_DIR}/common/crc32.c)
else()
add_library(mpcdec_static STATIC huffman.c mpc_decoder.c mpc_reader.c streaminfo.c mpc_bits_reader.c mpc_demux.c requant.c synth_filter.c ${libmpc_SOURCE_DIR}/common/crc32.c)
endif()

@ -0,0 +1,31 @@
Copyright (c) 2005, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

@ -0,0 +1,40 @@
1.3.0
* first sv8 release
* major changes in the API (decoder and demuxer are split)
1.2.3
* Reduced memory usage and code size. Patch by Peter Pawlowski
1.2.2
* Fixed compilation under OpenBSD
* Unix EOF again
1.2.1
* Warnings cleanup, patch by Tomas Salfischberger, Thom Johansen and
Daniel Stenberg (Rockbox)
* Mplayer interface, patch by Reimar Doffinger
* Unix EOF everywhere
1.2
* 1.1.1 broke the API (BOOL type changed to mpc_bool_t). Version bumped to 1.2 to reflect the major change. Sorry to those who were caught by this error
* Fixed relative/absolute includes (#include "stuff.h" in /include/mpcdec, #include <mpcdec/stuff> in src/)
* Added msvc project files
* Changed mpc_reader_t structure, any specific data of the reader's
implementations should be hidden behind the (void*) data pointer. (example
in default implementation mpc_reader_file)
* Renamed to libmpcdec (to make room for libmpcenc)
1.1.1
* fix for fixed-point mode bug
1.1
* add compliance & cleanup patches from Michael Roitzsch of xine project
* switch to BSD license
* port to pure C
* add doxygen documentation
* revise API somewhat
1.0.3
* autotools build process
* sample binary added
* floating-point mode by default

@ -0,0 +1,447 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.1
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/dewdude/musepack/musepack_src_r475
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/dewdude/musepack/musepack_src_r475
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles /home/dewdude/musepack/musepack_src_r475/libmpcdec//CMakeFiles/progress.marks
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcdec/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/dewdude/musepack/musepack_src_r475/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcdec/clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcdec/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcdec/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
libmpcdec/CMakeFiles/mpcdec.dir/rule:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 libmpcdec/CMakeFiles/mpcdec.dir/rule
.PHONY : libmpcdec/CMakeFiles/mpcdec.dir/rule
# Convenience name for target.
mpcdec: libmpcdec/CMakeFiles/mpcdec.dir/rule
.PHONY : mpcdec
# fast build rule for target.
mpcdec/fast:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/build
.PHONY : mpcdec/fast
__/common/crc32.o: __/common/crc32.c.o
.PHONY : __/common/crc32.o
# target to build an object file
__/common/crc32.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.o
.PHONY : __/common/crc32.c.o
__/common/crc32.i: __/common/crc32.c.i
.PHONY : __/common/crc32.i
# target to preprocess a source file
__/common/crc32.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.i
.PHONY : __/common/crc32.c.i
__/common/crc32.s: __/common/crc32.c.s
.PHONY : __/common/crc32.s
# target to generate assembly for a file
__/common/crc32.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/__/common/crc32.c.s
.PHONY : __/common/crc32.c.s
huffman.o: huffman.c.o
.PHONY : huffman.o
# target to build an object file
huffman.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.o
.PHONY : huffman.c.o
huffman.i: huffman.c.i
.PHONY : huffman.i
# target to preprocess a source file
huffman.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.i
.PHONY : huffman.c.i
huffman.s: huffman.c.s
.PHONY : huffman.s
# target to generate assembly for a file
huffman.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/huffman.c.s
.PHONY : huffman.c.s
mpc_bits_reader.o: mpc_bits_reader.c.o
.PHONY : mpc_bits_reader.o
# target to build an object file
mpc_bits_reader.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.o
.PHONY : mpc_bits_reader.c.o
mpc_bits_reader.i: mpc_bits_reader.c.i
.PHONY : mpc_bits_reader.i
# target to preprocess a source file
mpc_bits_reader.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.i
.PHONY : mpc_bits_reader.c.i
mpc_bits_reader.s: mpc_bits_reader.c.s
.PHONY : mpc_bits_reader.s
# target to generate assembly for a file
mpc_bits_reader.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_bits_reader.c.s
.PHONY : mpc_bits_reader.c.s
mpc_decoder.o: mpc_decoder.c.o
.PHONY : mpc_decoder.o
# target to build an object file
mpc_decoder.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.o
.PHONY : mpc_decoder.c.o
mpc_decoder.i: mpc_decoder.c.i
.PHONY : mpc_decoder.i
# target to preprocess a source file
mpc_decoder.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.i
.PHONY : mpc_decoder.c.i
mpc_decoder.s: mpc_decoder.c.s
.PHONY : mpc_decoder.s
# target to generate assembly for a file
mpc_decoder.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_decoder.c.s
.PHONY : mpc_decoder.c.s
mpc_demux.o: mpc_demux.c.o
.PHONY : mpc_demux.o
# target to build an object file
mpc_demux.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.o
.PHONY : mpc_demux.c.o
mpc_demux.i: mpc_demux.c.i
.PHONY : mpc_demux.i
# target to preprocess a source file
mpc_demux.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.i
.PHONY : mpc_demux.c.i
mpc_demux.s: mpc_demux.c.s
.PHONY : mpc_demux.s
# target to generate assembly for a file
mpc_demux.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_demux.c.s
.PHONY : mpc_demux.c.s
mpc_reader.o: mpc_reader.c.o
.PHONY : mpc_reader.o
# target to build an object file
mpc_reader.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.o
.PHONY : mpc_reader.c.o
mpc_reader.i: mpc_reader.c.i
.PHONY : mpc_reader.i
# target to preprocess a source file
mpc_reader.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.i
.PHONY : mpc_reader.c.i
mpc_reader.s: mpc_reader.c.s
.PHONY : mpc_reader.s
# target to generate assembly for a file
mpc_reader.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/mpc_reader.c.s
.PHONY : mpc_reader.c.s
requant.o: requant.c.o
.PHONY : requant.o
# target to build an object file
requant.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/requant.c.o
.PHONY : requant.c.o
requant.i: requant.c.i
.PHONY : requant.i
# target to preprocess a source file
requant.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/requant.c.i
.PHONY : requant.c.i
requant.s: requant.c.s
.PHONY : requant.s
# target to generate assembly for a file
requant.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/requant.c.s
.PHONY : requant.c.s
streaminfo.o: streaminfo.c.o
.PHONY : streaminfo.o
# target to build an object file
streaminfo.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.o
.PHONY : streaminfo.c.o
streaminfo.i: streaminfo.c.i
.PHONY : streaminfo.i
# target to preprocess a source file
streaminfo.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.i
.PHONY : streaminfo.c.i
streaminfo.s: streaminfo.c.s
.PHONY : streaminfo.s
# target to generate assembly for a file
streaminfo.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/streaminfo.c.s
.PHONY : streaminfo.c.s
synth_filter.o: synth_filter.c.o
.PHONY : synth_filter.o
# target to build an object file
synth_filter.c.o:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.o
.PHONY : synth_filter.c.o
synth_filter.i: synth_filter.c.i
.PHONY : synth_filter.i
# target to preprocess a source file
synth_filter.c.i:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.i
.PHONY : synth_filter.c.i
synth_filter.s: synth_filter.c.s
.PHONY : synth_filter.s
# target to generate assembly for a file
synth_filter.c.s:
cd /home/dewdude/musepack/musepack_src_r475 && $(MAKE) $(MAKESILENT) -f libmpcdec/CMakeFiles/mpcdec.dir/build.make libmpcdec/CMakeFiles/mpcdec.dir/synth_filter.c.s
.PHONY : synth_filter.c.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... mpcdec"
@echo "... __/common/crc32.o"
@echo "... __/common/crc32.i"
@echo "... __/common/crc32.s"
@echo "... huffman.o"
@echo "... huffman.i"
@echo "... huffman.s"
@echo "... mpc_bits_reader.o"
@echo "... mpc_bits_reader.i"
@echo "... mpc_bits_reader.s"
@echo "... mpc_decoder.o"
@echo "... mpc_decoder.i"
@echo "... mpc_decoder.s"
@echo "... mpc_demux.o"
@echo "... mpc_demux.i"
@echo "... mpc_demux.s"
@echo "... mpc_reader.o"
@echo "... mpc_reader.i"
@echo "... mpc_reader.s"
@echo "... requant.o"
@echo "... requant.i"
@echo "... requant.s"
@echo "... streaminfo.o"
@echo "... streaminfo.i"
@echo "... streaminfo.s"
@echo "... synth_filter.o"
@echo "... synth_filter.i"
@echo "... synth_filter.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
cd /home/dewdude/musepack/musepack_src_r475 && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

@ -0,0 +1,19 @@
EXTRA_DIST = CMakeLists.txt
AM_CPPFLAGS = -I$(top_srcdir)/include
if HAVE_VISIBILITY
AM_CFLAGS = -fvisibility=hidden
endif
common_sources = ../common/crc32.c \
../common/huffman-bcl.c
METASOURCES = AUTO
lib_LTLIBRARIES = libmpcdec.la
libmpcdec_la_SOURCES = huffman.c mpc_decoder.c mpc_reader.c \
requant.c streaminfo.c synth_filter.c mpc_bits_reader.c mpc_demux.c \
mpc_bits_reader.h huffman.h decoder.h internal.h requant.h mpcdec_math.h \
$(common_sources)
libmpcdec_la_LDFLAGS = -no-undefined -version-info 7:0:1

@ -0,0 +1,6 @@
Musepack Decoder Library:
run "./configure [--prefix=/usr]; make"
To create a sample app using the musepack decoder library
Check ../mpcdec/mpcdec.c and ../include/mpc/mpcdec.h for more details.

@ -0,0 +1,50 @@
# Install script for directory: /home/dewdude/musepack/musepack_src_r475/libmpcdec
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "0")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set path to fallback-tool for dependency-resolution.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/objdump")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/dewdude/musepack/musepack_src_r475/libmpcdec/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()

@ -0,0 +1,101 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file decoder.h
#ifndef _MPCDEC_DECODER_H_
#define _MPCDEC_DECODER_H_
#ifdef WIN32
#pragma once
#endif
#include <mpc/reader.h>
#ifdef __cplusplus
extern "C" {
#endif
#define SEEKING_TABLE_SIZE 256u
// set it to SLOW_SEEKING_WINDOW to not use fast seeking
#define FAST_SEEKING_WINDOW 32
// set it to FAST_SEEKING_WINDOW to only use fast seeking
#define SLOW_SEEKING_WINDOW 0x80000000
enum {
MPC_V_MEM = 2304,
MPC_DECODER_MEMSIZE = 16384, // overall buffer size
};
struct mpc_decoder_t {
/// @name internal state variables
//@{
mpc_uint32_t stream_version; ///< Streamversion of stream
mpc_int32_t max_band; ///< Maximum band-index used in stream (0...31)
mpc_uint32_t ms; ///< Mid/side stereo (0: off, 1: on)
mpc_uint32_t channels; ///< Number of channels in stream
mpc_uint64_t samples; ///< Number of samples in stream
mpc_uint64_t decoded_samples; ///< Number of samples decoded from file begining
mpc_uint32_t samples_to_skip; ///< Number samples to skip (used for seeking)
mpc_int32_t last_max_band; ///< number of bands used in the last frame
// randomizer state variables
mpc_uint32_t __r1;
mpc_uint32_t __r2;
mpc_int32_t SCF_Index_L [32] [3];
mpc_int32_t SCF_Index_R [32] [3]; // holds scalefactor-indices
mpc_quantizer Q [32]; // holds quantized samples
mpc_int32_t Res_L [32];
mpc_int32_t Res_R [32]; // holds the chosen quantizer for each subband
mpc_bool_t DSCF_Flag_L [32];
mpc_bool_t DSCF_Flag_R [32]; // differential SCF used?
mpc_int32_t SCFI_L [32];
mpc_int32_t SCFI_R [32]; // describes order of transmitted SCF
mpc_bool_t MS_Flag[32]; // MS used?
#ifdef MPC_FIXED_POINT
mpc_uint8_t SCF_shift[256];
#endif
MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960];
MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960];
MPC_SAMPLE_FORMAT Y_L[36][32];
MPC_SAMPLE_FORMAT Y_R[36][32];
MPC_SAMPLE_FORMAT SCF[256]; ///< holds adapted scalefactors (for clipping prevention)
//@}
};
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,358 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file huffman.c
/// Implementations of sv7/sv8 huffman decoding functions.
#include "huffman.h"
// sv7 huffman tables
static const mpc_huffman mpc_table_HuffHdr [10] = {
{0x8000, 1, 0}, {0x6000, 3, 1}, {0x5e00, 7, -4}, {0x5d80, 9, 3}, {0x5d00, 9, 4}, {0x5c00, 8, -5}, {0x5800, 6, 2}, {0x5000, 5, -3}, {0x4000, 4, -2}, {0x0, 2, -1}
};
mpc_lut_data mpc_HuffHdr = {mpc_table_HuffHdr};
const mpc_huffman mpc_table_HuffSCFI [4] = {
{0x8000, 1, 1}, {0x6000, 3, 2}, {0x4000, 3, 0}, {0x0, 2, 3}
};
static const mpc_huffman mpc_table_HuffDSCF [16] = {
{0xf800, 5, 5}, {0xf000, 5, -4}, {0xe000, 4, 3}, {0xd000, 4, -3}, {0xc000, 4, 8}, {0xa000, 3, 1}, {0x9000, 4, 0}, {0x8800, 5, -5}, {0x8400, 6, 7}, {0x8000, 6, -7}, {0x6000, 3, -1}, {0x4000, 3, 2}, {0x3000, 4, 4}, {0x2800, 5, 6}, {0x2000, 5, -6}, {0x0, 3, -2}
};
mpc_lut_data mpc_HuffDSCF = {mpc_table_HuffDSCF};
static const mpc_huffman mpc_table_HuffQ1 [2] [27] = {
{
{0xe000, 3, 13}, {0xdc00, 6, 26}, {0xd800, 6, 0}, {0xd400, 6, 20}, {0xd000, 6, 6}, {0xc000, 4, 14}, {0xb000, 4, 12}, {0xa000, 4, 4}, {0x9000, 4, 22}, {0x8c00, 6, 8}, {0x8800, 6, 18}, {0x8400, 6, 24}, {0x8000, 6, 2}, {0x7000, 4, 16}, {0x6000, 4, 10}, {0x5800, 5, 17}, {0x5000, 5, 9}, {0x4800, 5, 1}, {0x4000, 5, 25}, {0x3800, 5, 5}, {0x3000, 5, 21}, {0x2800, 5, 3}, {0x2000, 5, 11}, {0x1800, 5, 15}, {0x1000, 5, 23}, {0x800, 5, 19}, {0x0, 5, 7}
}, {
{0x8000, 1, 13}, {0x7e00, 7, 15}, {0x7c00, 7, 1}, {0x7a00, 7, 11}, {0x7800, 7, 7}, {0x7600, 7, 17}, {0x7400, 7, 25}, {0x7200, 7, 19}, {0x7180, 9, 8}, {0x7100, 9, 18}, {0x7080, 9, 2}, {0x7000, 9, 24}, {0x6e00, 7, 3}, {0x6c00, 7, 23}, {0x6a00, 7, 21}, {0x6800, 7, 5}, {0x6700, 8, 0}, {0x6600, 8, 26}, {0x6500, 8, 6}, {0x6400, 8, 20}, {0x6000, 6, 9}, {0x5000, 4, 14}, {0x4000, 4, 12}, {0x3000, 4, 4}, {0x2000, 4, 22}, {0x1000, 4, 16}, {0x0, 4, 10}
}
};
static const mpc_huffman mpc_table_HuffQ2 [2] [25] = {
{
{0xf000, 4, 13}, {0xe000, 4, 17}, {0xd000, 4, 7}, {0xc000, 4, 11}, {0xbc00, 6, 1}, {0xb800, 6, 23}, {0xb600, 7, 4}, {0xb400, 7, 20}, {0xb200, 7, 0}, {0xb000, 7, 24}, {0xa800, 5, 22}, {0xa000, 5, 10}, {0x8000, 3, 12}, {0x7800, 5, 2}, {0x7000, 5, 14}, {0x6000, 4, 6}, {0x5000, 4, 18}, {0x4000, 4, 8}, {0x3000, 4, 16}, {0x2800, 5, 9}, {0x2000, 5, 5}, {0x1800, 5, 15}, {0x1000, 5, 21}, {0x800, 5, 19}, {0x0, 5, 3}
}, {
{0xf800, 5, 18}, {0xf000, 5, 6}, {0xe800, 5, 8}, {0xe700, 8, 3}, {0xe6c0, 10, 24}, {0xe680, 10, 4}, {0xe640, 10, 0}, {0xe600, 10, 20}, {0xe400, 7, 23}, {0xe200, 7, 1}, {0xe000, 7, 19}, {0xd800, 5, 16}, {0xd600, 7, 15}, {0xd400, 7, 21}, {0xd200, 7, 9}, {0xd000, 7, 5}, {0xcc00, 6, 2}, {0xc800, 6, 10}, {0xc400, 6, 14}, {0xc000, 6, 22}, {0x8000, 2, 12}, {0x6000, 3, 13}, {0x4000, 3, 17}, {0x2000, 3, 11}, {0x0, 3, 7}
}
};
static const mpc_huffman mpc_table_HuffQ3 [2] [7] = {
{
{0xe000, 3, 1}, {0xd000, 4, 3}, {0xc000, 4, -3}, {0xa000, 3, 2}, {0x8000, 3, -2}, {0x4000, 2, 0}, {0x0, 2, -1}
}, {
{0xc000, 2, 0}, {0x8000, 2, -1}, {0x4000, 2, 1}, {0x3000, 4, -2}, {0x2800, 5, 3}, {0x2000, 5, -3}, {0x0, 3, 2}
}
};
static const mpc_huffman mpc_table_HuffQ4 [2] [9] = {
{
{0xe000, 3, 0}, {0xc000, 3, -1}, {0xa000, 3, 1}, {0x8000, 3, -2}, {0x6000, 3, 2}, {0x5000, 4, -4}, {0x4000, 4, 4}, {0x2000, 3, 3}, {0x0, 3, -3}
}, {
{0xe000, 3, 1}, {0xd000, 4, 2}, {0xc000, 4, -3}, {0x8000, 2, 0}, {0x6000, 3, -2}, {0x5000, 4, 3}, {0x4800, 5, -4}, {0x4000, 5, 4}, {0x0, 2, -1}
}
};
static const mpc_huffman mpc_table_HuffQ5 [2] [15] = {
{
{0xf000, 4, 2}, {0xe800, 5, 5}, {0xe400, 6, -7}, {0xe000, 6, 7}, {0xd000, 4, -3}, {0xc000, 4, 3}, {0xb800, 5, -6}, {0xb000, 5, 6}, {0xa000, 4, -4}, {0x9000, 4, 4}, {0x8000, 4, -5}, {0x6000, 3, 0}, {0x4000, 3, -1}, {0x2000, 3, 1}, {0x0, 3, -2}
}, {
{0xf000, 4, 3}, {0xe800, 5, 4}, {0xe600, 7, 6}, {0xe500, 8, -7}, {0xe400, 8, 7}, {0xe000, 6, -6}, {0xc000, 3, 0}, {0xa000, 3, -1}, {0x8000, 3, 1}, {0x6000, 3, -2}, {0x4000, 3, 2}, {0x3800, 5, -5}, {0x3000, 5, 5}, {0x2000, 4, -4}, {0x0, 3, -3}
}
};
static const mpc_huffman mpc_table_HuffQ6 [2] [31] = {
{
{0xf800, 5, 3}, {0xf000, 5, -4}, {0xec00, 6, -11}, {0xe800, 6, 12}, {0xe000, 5, 4}, {0xd800, 5, 6}, {0xd000, 5, -5}, {0xc800, 5, 5}, {0xc000, 5, 7}, {0xb800, 5, -7}, {0xb400, 6, -12}, {0xb000, 6, -13}, {0xa800, 5, -6}, {0xa000, 5, 8}, {0x9800, 5, -8}, {0x9000, 5, 9}, {0x8800, 5, -9}, {0x8400, 6, 13}, {0x8200, 7, -15}, {0x8000, 7, 15}, {0x7000, 4, 0}, {0x6800, 5, -10}, {0x6000, 5, 10}, {0x5000, 4, -1}, {0x4000, 4, 2}, {0x3000, 4, 1}, {0x2000, 4, -2}, {0x1c00, 6, 14}, {0x1800, 6, -14}, {0x1000, 5, 11}, {0x0, 4, -3}
}, {
{0xf800, 5, -6}, {0xf000, 5, 6}, {0xe000, 4, 1}, {0xd000, 4, -1}, {0xce00, 7, 10}, {0xcc00, 7, -10}, {0xcb00, 8, -11}, {0xca80, 9, -12}, {0xca60, 11, 13}, {0xca58, 13, 15}, {0xca50, 13, -14}, {0xca48, 13, 14}, {0xca40, 13, -15}, {0xca00, 10, -13}, {0xc900, 8, 11}, {0xc800, 8, 12}, {0xc400, 6, -9}, {0xc000, 6, 9}, {0xb000, 4, -2}, {0xa000, 4, 2}, {0x9000, 4, 3}, {0x8000, 4, -3}, {0x7800, 5, -7}, {0x7000, 5, 7}, {0x6000, 4, -4}, {0x5000, 4, 4}, {0x4800, 5, -8}, {0x4000, 5, 8}, {0x3000, 4, 5}, {0x2000, 4, -5}, {0x0, 3, 0}
}
};
static const mpc_huffman mpc_table_HuffQ7 [2] [63] = {
{
{0xfc00, 6, 7}, {0xf800, 6, 8}, {0xf400, 6, 9}, {0xf000, 6, -8}, {0xec00, 6, 11}, {0xea00, 7, 21}, {0xe900, 8, -28}, {0xe800, 8, 28}, {0xe400, 6, -9}, {0xe200, 7, -22}, {0xe000, 7, -21}, {0xdc00, 6, -10}, {0xd800, 6, -11}, {0xd400, 6, 10}, {0xd000, 6, 12}, {0xcc00, 6, -13}, {0xca00, 7, 22}, {0xc800, 7, 23}, {0xc400, 6, -12}, {0xc000, 6, 13}, {0xbc00, 6, 14}, {0xb800, 6, -14}, {0xb600, 7, -23}, {0xb500, 8, -29}, {0xb400, 8, 29}, {0xb000, 6, -15}, {0xac00, 6, 15}, {0xa800, 6, 16}, {0xa400, 6, -16}, {0xa200, 7, -24}, {0xa000, 7, 24}, {0x9c00, 6, 17}, {0x9a00, 7, -25}, {0x9900, 8, -30}, {0x9800, 8, 30}, {0x9400, 6, -17}, {0x9000, 6, 18}, {0x8c00, 6, -18}, {0x8a00, 7, 25}, {0x8800, 7, 26}, {0x8400, 6, 19}, {0x8200, 7, -26}, {0x8000, 7, -27}, {0x7800, 5, 2}, {0x7400, 6, -19}, {0x7000, 6, 20}, {0x6800, 5, -1}, {0x6700, 8, -31}, {0x6600, 8, 31}, {0x6400, 7, 27}, {0x6000, 6, -20}, {0x5800, 5, 1}, {0x5000, 5, -5}, {0x4800, 5, -3}, {0x4000, 5, 3}, {0x3800, 5, 0}, {0x3000, 5, -2}, {0x2800, 5, -4}, {0x2000, 5, 4}, {0x1800, 5, 5}, {0x1000, 5, -6}, {0x800, 5, 6}, {0x0, 5, -7}
}, {
{0xf800, 5, -1}, {0xf000, 5, 2}, {0xe800, 5, -2}, {0xe000, 5, 3}, {0xdf00, 8, -20}, {0xdec0, 10, 24}, {0xdebc, 14, 28}, {0xdeb8, 14, -28}, {0xdeb4, 14, -30}, {0xdeb0, 14, 30}, {0xdea0, 12, -27}, {0xde9c, 14, 29}, {0xde98, 14, -29}, {0xde94, 14, 31}, {0xde90, 14, -31}, {0xde80, 12, 27}, {0xde00, 9, -22}, {0xdc00, 7, -17}, {0xd800, 6, -11}, {0xd000, 5, -3}, {0xc800, 5, 4}, {0xc000, 5, -4}, {0xbe00, 7, 17}, {0xbd00, 8, 20}, {0xbc80, 9, 22}, {0xbc40, 10, -25}, {0xbc00, 10, -26}, {0xb800, 6, 12}, {0xb000, 5, 5}, {0xa800, 5, -5}, {0xa000, 5, 6}, {0x9800, 5, -6}, {0x9400, 6, -12}, {0x9200, 7, -18}, {0x9000, 7, 18}, {0x8c00, 6, 13}, {0x8800, 6, -13}, {0x8000, 5, -7}, {0x7c00, 6, 14}, {0x7b00, 8, 21}, {0x7a00, 8, -21}, {0x7800, 7, -19}, {0x7000, 5, 7}, {0x6800, 5, 8}, {0x6400, 6, -14}, {0x6000, 6, -15}, {0x5800, 5, -8}, {0x5400, 6, 15}, {0x5200, 7, 19}, {0x51c0, 10, 25}, {0x5180, 10, 26}, {0x5100, 9, -23}, {0x5080, 9, 23}, {0x5000, 9, -24}, {0x4800, 5, -9}, {0x4000, 5, 9}, {0x3c00, 6, 16}, {0x3800, 6, -16}, {0x3000, 5, 10}, {0x2000, 4, 0}, {0x1800, 5, -10}, {0x1000, 5, 11}, {0x0, 4, 1}
}
};
mpc_lut_data mpc_HuffQ [7] [2] = {
{{mpc_table_HuffQ1[0]}, {mpc_table_HuffQ1[1]}},
{{mpc_table_HuffQ2[0]}, {mpc_table_HuffQ2[1]}},
{{mpc_table_HuffQ3[0]}, {mpc_table_HuffQ3[1]}},
{{mpc_table_HuffQ4[0]}, {mpc_table_HuffQ4[1]}},
{{mpc_table_HuffQ5[0]}, {mpc_table_HuffQ5[1]}},
{{mpc_table_HuffQ6[0]}, {mpc_table_HuffQ6[1]}},
{{mpc_table_HuffQ7[0]}, {mpc_table_HuffQ7[1]}}
};
// sv8 huffman tables
static const mpc_huffman mpc_huff_SCFI_1 [3] = {
{0x8000, 1, 1}, {0x4000, 2, 2}, {0x0, 3, 3}
}; // 3
static const mpc_int8_t mpc_sym_SCFI_1 [4] = {
2, 3, 1, 0
};
static const mpc_huffman mpc_huff_SCFI_2 [5] = {
{0x8000, 2, 3}, {0x4000, 3, 5}, {0x1800, 5, 11}, {0x400, 6, 14}, {0x0, 7, 15}
}; // 5
static const mpc_int8_t mpc_sym_SCFI_2 [16] = {
15, 10, 14, 11, 13, 9, 7, 6, 5, 12, 8, 3, 2, 0, 4, 1
};
mpc_can_data mpc_can_SCFI[2] = {{mpc_huff_SCFI_1, mpc_sym_SCFI_1}, {mpc_huff_SCFI_2, mpc_sym_SCFI_2}};
static const mpc_huffman mpc_huff_DSCF_1 [12] = {
{0xa000, 3, 7}, {0x4000, 4, 12}, {0x2800, 5, 16}, {0x1800, 6, 21}, {0xe00, 7, 27}, {0x700, 8, 34}, {0x380, 9, 41}, {0x140, 10, 48}, {0x80, 11, 53}, {0x30, 12, 57}, {0x18, 13, 60}, {0x0, 14, 63}
}; // 12
static const mpc_int8_t mpc_sym_DSCF_1 [64] = {
35, 34, 33, 36, 32, 30, 29, 27, 26, 37, 28, 25, 39, 38, 24, 23, 40, 22, 21, 20, 19, 43, 42, 41, 18, 17, 16, 15, 46, 45, 44, 14, 13, 12, 11, 49, 48, 47, 31, 10, 9, 8, 7, 6, 52, 51, 50, 5, 4, 3, 54, 53, 2, 1, 0, 57, 56, 55, 63, 62, 61, 60, 59, 58
};
static const mpc_huffman mpc_huff_DSCF_2 [13] = {
{0x6000, 3, 7}, {0x3000, 4, 10}, {0x1800, 5, 13}, {0x1000, 6, 16}, {0xa00, 7, 20}, {0x600, 8, 25}, {0x380, 9, 31}, {0x1c0, 10, 38}, {0xe0, 11, 45}, {0x50, 12, 52}, {0x20, 13, 57}, {0xc, 14, 61}, {0x0, 15, 64}
}; // 13
static const mpc_int8_t mpc_sym_DSCF_2 [65] = {
33, 32, 31, 30, 29, 34, 28, 27, 36, 35, 26, 37, 25, 38, 24, 23, 40, 39, 22, 21, 42, 41, 20, 19, 18, 45, 44, 43, 17, 16, 15, 14, 48, 47, 46, 13, 12, 11, 10, 64, 52, 51, 50, 49, 9, 8, 7, 6, 55, 54, 53, 5, 4, 3, 58, 57, 56, 2, 1, 63, 62, 61, 60, 59, 0
};
mpc_can_data mpc_can_DSCF[2] = {{mpc_huff_DSCF_1, mpc_sym_DSCF_1}, {mpc_huff_DSCF_2, mpc_sym_DSCF_2}};
static const mpc_huffman mpc_huff_Bands [12] = {
{0x8000, 1, 1}, {0x4000, 2, 2}, {0x2000, 3, 3}, {0x1000, 5, 6}, {0x800, 6, 8}, {0x600, 7, 10}, {0x300, 8, 13}, {0x200, 9, 16}, {0x140, 10, 20}, {0xc0, 11, 25}, {0x10, 12, 31}, {0x0, 13, 32}
}; // 12
static const mpc_int8_t mpc_sym_Bands [33] = {
0, 32, 1, 31, 2, 30, 3, 4, 29, 6, 5, 28, 7, 27, 26, 8, 25, 24, 23, 9, 22, 21, 20, 18, 17, 16, 15, 14, 12, 11, 10, 19, 13
};
mpc_can_data mpc_can_Bands = {mpc_huff_Bands, mpc_sym_Bands};
static const mpc_huffman mpc_huff_Res_1 [16] = {
{0x8000, 1, 1}, {0x4000, 2, 2}, {0x2000, 3, 3}, {0x1000, 4, 4}, {0x800, 5, 5}, {0x400, 6, 6}, {0x200, 7, 7}, {0x100, 8, 8}, {0x80, 9, 9}, {0x40, 10, 10}, {0x20, 11, 11}, {0x10, 12, 12}, {0x8, 13, 13}, {0x4, 14, 14}, {0x2, 15, 15}, {0x0, 16, 16}
}; // 16
static const mpc_int8_t mpc_sym_Res_1 [17] = {
0, 1, 16, 2, 3, 4, 5, 15, 6, 7, 8, 9, 10, 11, 12, 14, 13
};
static const mpc_huffman mpc_huff_Res_2 [12] = {
{0x4000, 2, 3}, {0x2000, 3, 4}, {0x1000, 4, 5}, {0x800, 5, 6}, {0x400, 6, 7}, {0x200, 7, 8}, {0x100, 8, 9}, {0x80, 9, 10}, {0x40, 10, 11}, {0x20, 11, 12}, {0x10, 12, 13}, {0x0, 14, 16}
}; // 12
static const mpc_int8_t mpc_sym_Res_2 [17] = {
16, 1, 0, 2, 15, 3, 14, 4, 5, 13, 6, 12, 7, 11, 10, 9, 8
};
mpc_can_data mpc_can_Res[2] = {{mpc_huff_Res_1, mpc_sym_Res_1}, {mpc_huff_Res_2, mpc_sym_Res_2}};
static const mpc_huffman mpc_huff_Q1 [10] = {
{0x6000, 3, 7}, {0x1000, 4, 10}, {0x800, 5, 11}, {0x400, 6, 12}, {0x200, 7, 13}, {0x100, 8, 14}, {0x80, 9, 15}, {0x40, 10, 16}, {0x20, 11, 17}, {0x0, 12, 18}
}; // 10
static const mpc_int8_t mpc_sym_Q1 [19] = {
7, 6, 5, 4, 3, 10, 9, 8, 2, 1, 11, 0, 12, 13, 14, 15, 16, 18, 17
};
mpc_can_data mpc_can_Q1 = {mpc_huff_Q1, mpc_sym_Q1};
static const mpc_huffman mpc_huff_Q2_1 [10] = {
{0xe000, 3, 7}, {0x8000, 4, 14}, {0x3c00, 6, 38}, {0x2a00, 7, 53}, {0x1200, 8, 74}, {0x600, 9, 92}, {0x3c0, 10, 104}, {0x60, 11, 119}, {0x20, 12, 122}, {0x0, 13, 124}
}; // 10
static const mpc_int8_t mpc_sym_Q2_1 [125] = {
62, 87, 67, 63, 61, 57, 37, 93, 92, 88, 86, 83, 82, 81, 68, 66, 58, 56, 42, 41, 38, 36, 32, 31, 112, 91, 72, 64, 60, 52, 43, 33, 12, 117, 113, 111, 107, 97, 89, 85, 77, 73, 71, 69, 65, 59, 55, 53, 51, 47, 39, 35, 27, 17, 13, 11, 7, 118, 116, 108, 106, 98, 96, 94, 90, 84, 80, 78, 76, 48, 46, 44, 40, 34, 30, 28, 26, 18, 16, 8, 6, 122, 110, 102, 74, 70, 54, 50, 22, 2, 123, 121, 119, 115, 114, 109, 105, 103, 101, 99, 95, 79, 75, 49, 45, 29, 25, 23, 21, 19, 15, 14, 10, 9, 5, 3, 1, 124, 104, 20, 0, 120, 100, 24, 4
};
static const mpc_huffman mpc_huff_Q2_2 [9] = {
{0xf000, 4, 15}, {0x7000, 5, 30}, {0x4800, 6, 44}, {0x3c00, 7, 62}, {0xc00, 8, 92}, {0x780, 9, 104}, {0xc0, 10, 119}, {0x40, 11, 122}, {0x0, 12, 124}
}; // 9
static const mpc_int8_t mpc_sym_Q2_2 [125] = {
62, 92, 87, 86, 82, 68, 67, 66, 63, 61, 58, 57, 56, 42, 38, 37, 32, 93, 91, 88, 83, 81, 43, 41, 36, 33, 31, 112, 72, 64, 60, 52, 12, 118, 117, 116, 113, 111, 108, 107, 106, 98, 97, 96, 94, 90, 89, 85, 84, 80, 78, 77, 76, 73, 71, 69, 65, 59, 55, 53, 51, 48, 47, 46, 44, 40, 39, 35, 34, 30, 28, 27, 26, 18, 17, 16, 13, 11, 8, 7, 6, 122, 110, 74, 70, 54, 50, 22, 14, 2, 123, 121, 119, 115, 114, 109, 105, 103, 102, 101, 99, 95, 79, 75, 49, 45, 29, 25, 23, 21, 19, 15, 10, 9, 5, 3, 1, 124, 104, 20, 0, 120, 100, 24, 4
};
static const mpc_huffman mpc_huff_Q3 [7] = {
{0xe000, 3, 7}, {0x8000, 4, 14}, {0x5000, 5, 22}, {0x2400, 6, 32}, {0xa00, 7, 41}, {0x200, 8, 46}, {0x0, 9, 48}
}; // 7
static const mpc_int8_t mpc_sym_Q3 [49] = {
0, 17, 16, 1, 15, -16, -1, 32, 31, 2, 14, -15, -32, 34, 33, 47, 46, 18, 30, -14, -2, -31, -17, -18, 49, 48, 63, 19, 29, 3, 13, -13, -3, -30, -47, -48, -33, 50, 62, 35, 45, -29, -19, -46, -34, 51, 61, -45, -35
};
static const mpc_huffman mpc_huff_Q4 [8] = {
{0xf000, 4, 15}, {0x9000, 5, 30}, {0x3400, 6, 48}, {0x1800, 7, 61}, {0x500, 8, 73}, {0x100, 9, 78}, {0x0, 10, 80}, {0x0, 0, 90}
}; // 8
static const mpc_int8_t mpc_sym_Q4 [91] = {
0, 32, 17, 16, 31, 2, 1, 15, 14, -15, -16, -1, -32, 49, 48, 34, 33, 47, 46, 19, 18, 30, 29, 3, 13, -13, -14, -2, -3, -30, -31, -17, -18, -47, -48, -33, 64, 50, 63, 62, 35, 45, 4, 12, -29, -19, -46, -34, -64, -49, 66, 65, 79, 78, 51, 61, 36, 44, 20, 28, -12, -4, -28, -20, -45, -35, -62, -63, -50, 67, 77, 52, 60, -44, -36, -61, -51, 68, 76, -60, -52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
static const mpc_huffman mpc_huff_Q5_1 [6] = {
{0xc000, 2, 3}, {0x4000, 3, 6}, {0x2000, 4, 8}, {0x1000, 5, 10}, {0x800, 6, 12}, {0x0, 7, 14}
}; // 6
static const mpc_int8_t mpc_sym_Q5_1 [15] = {
0, 2, 1, -1, -2, 3, -3, 4, -4, 5, -5, 7, 6, -6, -7
};
static const mpc_huffman mpc_huff_Q5_2 [4] = {
{0x6000, 3, 7}, {0x2000, 4, 10}, {0x1000, 5, 12}, {0x0, 6, 14}
}; // 4
static const mpc_int8_t mpc_sym_Q5_2 [15] = {
2, 1, 0, -1, -2, 4, 3, -3, -4, 5, -5, 7, 6, -6, -7
};
static const mpc_huffman mpc_huff_Q6_1 [8] = {
{0xc000, 2, 3}, {0x8000, 3, 6}, {0x4000, 4, 10}, {0x2800, 5, 14}, {0xc00, 6, 19}, {0x800, 7, 22}, {0x400, 8, 26}, {0x0, 9, 30}
}; // 8
static const mpc_int8_t mpc_sym_Q6_1 [31] = {
0, 1, -1, 3, 2, -2, -3, 4, -4, -5, 8, 7, 6, 5, -6, -7, -8, 9, -9, 11, 10, -10, -11, 15, 14, 13, 12, -12, -13, -14, -15
};
static const mpc_huffman mpc_huff_Q6_2 [5] = {
{0x5000, 4, 15}, {0x2000, 5, 20}, {0x1000, 6, 24}, {0x400, 7, 28}, {0x0, 8, 30}
}; // 5
static const mpc_int8_t mpc_sym_Q6_2 [31] = {
5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, 8, 7, 6, -6, -7, -8, 10, 9, -9, -10, 13, 12, 11, -11, -12, -13, 15, 14, -14, -15
};
static const mpc_huffman mpc_huff_Q7_1 [9] = {
{0xc000, 2, 3}, {0x8000, 3, 6}, {0x6000, 4, 10}, {0x4000, 5, 16}, {0x2800, 6, 24}, {0x1400, 7, 34}, {0xa00, 8, 44}, {0x400, 9, 54}, {0x0, 10, 62}
}; // 9
static const mpc_int8_t mpc_sym_Q7_1 [63] = {
0, 1, -1, 2, -2, 4, 3, -3, -4, 7, 6, 5, -5, -6, -7, 13, 11, 10, 9, 8, -8, -9, -10, -11, -12, 17, 16, 15, 14, 12, -13, -14, -15, -16, -17, 28, 27, 21, 20, 19, 18, -18, -19, -20, -21, -27, -28, 31, 30, 29, 26, 25, 24, 23, 22, -22, -23, -24, -25, -26, -29, -30, -31
};
static const mpc_huffman mpc_huff_Q7_2 [5] = {
{0x6000, 5, 31}, {0x2400, 6, 43}, {0x1000, 7, 52}, {0x200, 8, 60}, {0x0, 9, 62}
}; // 5
static const mpc_int8_t mpc_sym_Q7_2 [63] = {
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, 17, 16, 15, 14, 13, 12, 11, -10, -11, -12, -13, -14, -15, -16, -17, 22, 21, 20, 19, 18, -18, -19, -20, -21, -22, 29, 28, 27, 26, 25, 24, 23, -23, -24, -25, -26, -27, -28, -29, 31, 30, -30, -31
};
static const mpc_huffman mpc_huff_Q8_1 [11] = {
{0xc000, 2, 3}, {0x8000, 3, 6}, {0x7000, 4, 10}, {0x5800, 5, 17}, {0x3800, 6, 28}, {0x2800, 7, 42}, {0x1900, 8, 62}, {0xd00, 9, 87}, {0x280, 10, 113}, {0x60, 11, 123}, {0x0, 12, 126}
}; // 11
static const mpc_int8_t mpc_sym_Q8_1 [127] = {
0, 1, -1, -2, 3, 2, -3, 7, 6, 5, 4, -4, -5, -6, -7, 11, 10, 9, 8, -8, -9, -10, -11, 19, 18, 17, 16, 15, 14, 13, 12, -12, -13, -14, -15, -16, -17, -19, 56, 55, 31, 28, 27, 26, 25, 24, 23, 22, 21, 20, -18, -20, -21, -22, -23, -24, -25, -26, -27, -33, -54, -56, 63, 62, 61, 60, 59, 58, 57, 54, 53, 43, 40, 39, 38, 37, 36, 35, 34, 33, 32, 30, 29, -28, -29, -30, -31, -32, -34, -35, -36, -37, -38, -39, -40, -41, -43, -53, -55, -57, -58, -59, -60, -61, 49, 47, 46, 45, 44, 42, 41, -42, -44, -45, -46, -47, -48, -49, -50, -62, -63, 52, 51, 50, 48, -51, -52
};
static const mpc_huffman mpc_huff_Q8_2 [4] = {
{0x9800, 6, 63}, {0x2a00, 7, 101}, {0x400, 8, 122}, {0x0, 9, 126}
}; // 4
static const mpc_int8_t mpc_sym_Q8_2 [127] = {
13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 12, -14, -15, -16, -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, -41, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, -42, -43, -44, -45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -57, -58, -59, 63, 62, 61, 60, -60, -61, -62, -63
};
static const mpc_huffman mpc_huff_Q9up [6] = {
{0xf800, 6, 63}, {0xac00, 7, 125}, {0x2600, 8, -45}, {0x280, 9, -7}, {0x40, 10, -2}, {0x0, 11, -1}
}; // 6
static const mpc_int8_t mpc_sym_Q9up [256] = {
-128, 127, -108, -110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125, -126, -127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, -44, -45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -57, -58, -59, -60, -61, -62, -63, -64, -65, -66, -67, -68, -69, -70, -71, -72, -73, -74, -75, -76, -77, -78, -79, -80, -81, -82, -83, -84, -85, -86, -87, -88, -89, -90, -91, -92, -93, -94, -95, -96, -97, -98, -99, -100, -101, -102, -103, -104, -105, -106, -107, -109, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 40, 20, 19, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, -41, -42, -43, 41, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, -3, -4, -5, -6, 4, 3, 2, 1, 0, -1, -2
};
mpc_can_data mpc_can_Q9up = {mpc_huff_Q9up, mpc_sym_Q9up};
mpc_can_data mpc_can_Q [6][2] = {
{{mpc_huff_Q2_1, mpc_sym_Q2_1}, {mpc_huff_Q2_2, mpc_sym_Q2_2}},
{{mpc_huff_Q3, mpc_sym_Q3}, {mpc_huff_Q4, mpc_sym_Q4}},
{{mpc_huff_Q5_1, mpc_sym_Q5_1}, {mpc_huff_Q5_2, mpc_sym_Q5_2}},
{{mpc_huff_Q6_1, mpc_sym_Q6_1}, {mpc_huff_Q6_2, mpc_sym_Q6_2}},
{{mpc_huff_Q7_1, mpc_sym_Q7_1}, {mpc_huff_Q7_2, mpc_sym_Q7_2}},
{{mpc_huff_Q8_1, mpc_sym_Q8_1}, {mpc_huff_Q8_2, mpc_sym_Q8_2}}
};
static void huff_fill_lut(const mpc_huffman * table, mpc_huff_lut * lut, const int bits)
{
int i, idx = 0;
const int shift = 16 - bits;
for (i = (1 << bits) - 1; i >= 0 ; i--) {
if ((table[idx].Code >> shift) < i) {
lut[i].Length = table[idx].Length;
lut[i].Value = table[idx].Value;
} else {
if (table[idx].Length <= bits) {
lut[i].Length = table[idx].Length;
lut[i].Value = table[idx].Value;
} else {
lut[i].Length = 0;
lut[i].Value = idx;
}
if (i != 0)
do {
idx++;
} while ((table[idx].Code >> shift) == i);
}
}
}
static void can_fill_lut(mpc_can_data * data, const int bits)
{
int i, idx = 0;
const int shift = 16 - bits;
const mpc_huffman * table = data->table;
const mpc_int8_t * sym = data->sym;
mpc_huff_lut * lut = data->lut;
for (i = (1 << bits) - 1; i >= 0 ; i--) {
if ((table[idx].Code >> shift) < i) {
if (table[idx].Length <= bits) {
lut[i].Length = table[idx].Length;
lut[i].Value = sym[(table[idx].Value - (i >> (bits - table[idx].Length))) & 0xFF];
} else {
lut[i].Length = 0;
lut[i].Value = idx;
}
} else {
if (table[idx].Length <= bits) {
lut[i].Length = table[idx].Length;
lut[i].Value = sym[(table[idx].Value - (i >> (bits - table[idx].Length))) & 0xFF];
} else {
lut[i].Length = 0;
lut[i].Value = idx;
}
if (i != 0)
do {
idx++;
} while ((table[idx].Code >> shift) == i);
}
}
}
void huff_init_lut(const int bits)
{
int i, j;
huff_fill_lut(mpc_HuffDSCF.table, mpc_HuffDSCF.lut, bits);
huff_fill_lut(mpc_HuffHdr.table, mpc_HuffHdr.lut, bits);
can_fill_lut(&mpc_can_SCFI[0], bits);
can_fill_lut(&mpc_can_SCFI[1], bits);
can_fill_lut(&mpc_can_DSCF[0], bits);
can_fill_lut(&mpc_can_DSCF[1], bits);
can_fill_lut(&mpc_can_Res[0], bits);
can_fill_lut(&mpc_can_Res[1], bits);
can_fill_lut(&mpc_can_Q1, bits);
can_fill_lut(&mpc_can_Q9up, bits);
for( i = 0; i < 7; i++){
for( j = 0; j < 2; j++){
if (i != 6) can_fill_lut(&mpc_can_Q[i][j], bits);
huff_fill_lut(mpc_HuffQ[i][j].table, mpc_HuffQ[i][j].lut, bits);
}
}
}

@ -0,0 +1,83 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file huffman.h
/// Data structures and functions for huffman coding.
#ifndef _MPCDEC_HUFFMAN_H_
#define _MPCDEC_HUFFMAN_H_
#ifdef WIN32
#pragma once
#endif
#include <mpc/mpc_types.h>
#ifdef __cplusplus
extern "C" {
#endif
// LUT size parameter, LUT size is 1 << LUT_DEPTH
#define LUT_DEPTH 6
/// Huffman table entry.
typedef struct mpc_huffman_t {
mpc_uint16_t Code;
mpc_uint8_t Length;
mpc_int8_t Value;
} mpc_huffman;
/// Huffman LUT entry.
typedef struct mpc_huff_lut_t {
mpc_uint8_t Length;
mpc_int8_t Value;
} mpc_huff_lut;
/// Type used for huffman LUT decoding
typedef struct mpc_lut_data_t {
mpc_huffman const * const table;
mpc_huff_lut lut[1 << LUT_DEPTH];
} mpc_lut_data;
/// Type used for canonical huffman decoding
typedef struct mpc_can_data_t {
mpc_huffman const * const table;
mpc_int8_t const * const sym;
mpc_huff_lut lut[1 << LUT_DEPTH];
} mpc_can_data;
void huff_init_lut(const int bits);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,110 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file internal.h
/// Definitions and structures used only internally by the libmpcdec.
#ifndef _MPCDEC_INTERNAL_H_
#define _MPCDEC_INTERNAL_H_
#ifdef WIN32
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#include <mpc/mpcdec.h>
/// Big/little endian 32 bit byte swapping routine.
static mpc_inline
mpc_uint32_t mpc_swap32(mpc_uint32_t val) {
return (((val & 0xFF000000) >> 24) | ((val & 0x00FF0000) >> 8)
| ((val & 0x0000FF00) << 8) | ((val & 0x000000FF) << 24));
}
typedef struct mpc_block_t {
char key[2]; // block key
mpc_uint64_t size; // block size minus the block header size
} mpc_block;
#define MAX_FRAME_SIZE 4352
#define DEMUX_BUFFER_SIZE (65536 - MAX_FRAME_SIZE) // need some space as sand box
struct mpc_demux_t {
mpc_reader * r;
mpc_decoder * d;
mpc_streaminfo si;
// buffer
mpc_uint8_t buffer[DEMUX_BUFFER_SIZE + MAX_FRAME_SIZE];
mpc_size_t bytes_total;
mpc_bits_reader bits_reader;
mpc_int32_t block_bits; /// bits remaining in current audio block
mpc_uint_t block_frames; /// frames remaining in current audio block
// seeking
mpc_seek_t * seek_table;
mpc_uint_t seek_pwr; /// distance between 2 frames in seek_table = 2^seek_pwr
mpc_uint32_t seek_table_size; /// used size in seek_table
// chapters
mpc_seek_t chap_pos; /// supposed position of the first chapter block
mpc_int_t chap_nb; /// number of chapters (-1 if unknown, 0 if no chapter)
mpc_chap_info * chap; /// chapters position and tag
};
/**
* checks if a block key is valid
* @param key the two caracters key to check
* @return MPC_STATUS_FAIL if the key is invalid, MPC_STATUS_OK else
*/
static mpc_inline mpc_status mpc_check_key(char * key)
{
if (key[0] < 65 || key[0] > 90 || key[1] < 65 || key[1] > 90)
return MPC_STATUS_FAIL;
return MPC_STATUS_OK;
}
/// helper functions used by multiple files
mpc_uint32_t mpc_random_int(mpc_decoder *d); // in synth_filter.c
void mpc_decoder_init_quant(mpc_decoder *d, double scale_factor);
void mpc_decoder_synthese_filter_float(mpc_decoder *d, MPC_SAMPLE_FORMAT* OutData, mpc_int_t channels);
#define MPC_IS_FAILURE(X) ((int)(X) < (int)MPC_STATUS_OK)
#define MPC_AUTO_FAIL(X) { mpc_status s = (X); if (MPC_IS_FAILURE(s)) return s; }
#ifdef __cplusplus
}
#endif
#endif

Binary file not shown.

@ -0,0 +1,181 @@
/*
Copyright (c) 2007-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <mpc/mpcdec.h>
#include "internal.h"
#include "huffman.h"
#include "mpc_bits_reader.h"
const mpc_uint32_t Cnk[MAX_ENUM / 2][MAX_ENUM] =
{
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
{0, 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465},
{0, 0, 0, 1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364, 455, 560, 680, 816, 969, 1140, 1330, 1540, 1771, 2024, 2300, 2600, 2925, 3276, 3654, 4060, 4495},
{0, 0, 0, 0, 1, 5, 15, 35, 70, 126, 210, 330, 495, 715, 1001, 1365, 1820, 2380, 3060, 3876, 4845, 5985, 7315, 8855, 10626, 12650, 14950, 17550, 20475, 23751, 27405, 31465},
{0, 0, 0, 0, 0, 1, 6, 21, 56, 126, 252, 462, 792, 1287, 2002, 3003, 4368, 6188, 8568, 11628, 15504, 20349, 26334, 33649, 42504, 53130, 65780, 80730, 98280, 118755, 142506, 169911},
{0, 0, 0, 0, 0, 0, 1, 7, 28, 84, 210, 462, 924, 1716, 3003, 5005, 8008, 12376, 18564, 27132, 38760, 54264, 74613, 100947, 134596, 177100, 230230, 296010, 376740, 475020, 593775, 736281},
{0, 0, 0, 0, 0, 0, 0, 1, 8, 36, 120, 330, 792, 1716, 3432, 6435, 11440, 19448, 31824, 50388, 77520, 116280, 170544, 245157, 346104, 480700, 657800, 888030, 1184040, 1560780, 2035800, 2629575},
{0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 45, 165, 495, 1287, 3003, 6435, 12870, 24310, 43758, 75582, 125970, 203490, 319770, 490314, 735471, 1081575, 1562275, 2220075, 3108105, 4292145, 5852925, 7888725},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 55, 220, 715, 2002, 5005, 11440, 24310, 48620, 92378, 167960, 293930, 497420, 817190, 1307504, 2042975, 3124550, 4686825, 6906900, 10015005, 14307150, 20160075},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 66, 286, 1001, 3003, 8008, 19448, 43758, 92378, 184756, 352716, 646646, 1144066, 1961256, 3268760, 5311735, 8436285, 13123110, 20030010, 30045015, 44352165},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 78, 364, 1365, 4368, 12376, 31824, 75582, 167960, 352716, 705432, 1352078, 2496144, 4457400, 7726160, 13037895, 21474180, 34597290, 54627300, 84672315},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 91, 455, 1820, 6188, 18564, 50388, 125970, 293930, 646646, 1352078, 2704156, 5200300, 9657700, 17383860, 30421755, 51895935, 86493225, 141120525},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 105, 560, 2380, 8568, 27132, 77520, 203490, 497420, 1144066, 2496144, 5200300, 10400600, 20058300, 37442160, 67863915, 119759850, 206253075},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 120, 680, 3060, 11628, 38760, 116280, 319770, 817190, 1961256, 4457400, 9657700, 20058300, 40116600, 77558760, 145422675, 265182525},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 136, 816, 3876, 15504, 54264, 170544, 490314, 1307504, 3268760, 7726160, 17383860, 37442160, 77558760, 155117520, 300540195},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 153, 969, 4845, 20349, 74613, 245157, 735471, 2042975, 5311735, 13037895, 30421755, 67863915, 145422675, 300540195}
};
const mpc_uint8_t Cnk_len[MAX_ENUM / 2][MAX_ENUM] =
{
{0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},
{0, 0, 2, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9},
{0, 0, 0, 2, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13},
{0, 0, 0, 0, 3, 4, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16},
{0, 0, 0, 0, 0, 3, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18},
{0, 0, 0, 0, 0, 0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20},
{0, 0, 0, 0, 0, 0, 0, 3, 6, 7, 9, 10, 11, 12, 13, 14, 15, 15, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 21, 22, 22},
{0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 23, 24},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 8, 10, 11, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 21, 22, 23, 23, 24, 24, 25, 25},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 10, 12, 13, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 24, 25, 25, 26, 26},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 11, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 26, 26, 27, 27},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 9, 11, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 25, 26, 27, 28, 28},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 10, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 27, 28, 29},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 10, 12, 14, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 28, 29},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 10, 12, 14, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 10, 13, 15, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30}
};
const mpc_uint32_t Cnk_lost[MAX_ENUM / 2][MAX_ENUM] =
{
{0, 0, 1, 0, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0},
{0, 0, 1, 2, 6, 1, 11, 4, 28, 19, 9, 62, 50, 37, 23, 8, 120, 103, 85, 66, 46, 25, 3, 236, 212, 187, 161, 134, 106, 77, 47, 16},
{0, 0, 0, 0, 6, 12, 29, 8, 44, 8, 91, 36, 226, 148, 57, 464, 344, 208, 55, 908, 718, 508, 277, 24, 1796, 1496, 1171, 820, 442, 36, 3697, 3232},
{0, 0, 0, 0, 3, 1, 29, 58, 2, 46, 182, 17, 309, 23, 683, 228, 1716, 1036, 220, 3347, 2207, 877, 7529, 5758, 3734, 1434, 15218, 12293, 9017, 5363, 1303, 29576},
{0, 0, 0, 0, 0, 2, 11, 8, 2, 4, 50, 232, 761, 46, 1093, 3824, 2004, 7816, 4756, 880, 12419, 6434, 31887, 23032, 12406, 65292, 50342, 32792, 12317, 119638, 92233, 60768},
{0, 0, 0, 0, 0, 0, 1, 4, 44, 46, 50, 100, 332, 1093, 3187, 184, 4008, 14204, 5636, 26776, 11272, 56459, 30125, 127548, 85044, 31914, 228278, 147548, 49268, 454801, 312295, 142384},
{0, 0, 0, 0, 0, 0, 0, 0, 28, 8, 182, 232, 332, 664, 1757, 4944, 13320, 944, 15148, 53552, 14792, 91600, 16987, 178184, 43588, 390776, 160546, 913112, 536372, 61352, 1564729, 828448},
{0, 0, 0, 0, 0, 0, 0, 0, 7, 19, 91, 17, 761, 1093, 1757, 3514, 8458, 21778, 55490, 5102, 58654, 204518, 33974, 313105, 1015577, 534877, 1974229, 1086199, 4096463, 2535683, 499883, 6258916},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 9, 36, 309, 46, 3187, 4944, 8458, 16916, 38694, 94184, 230358, 26868, 231386, 789648, 54177, 1069754, 3701783, 1481708, 6762211, 2470066, 13394357, 5505632},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 62, 226, 23, 1093, 184, 13320, 21778, 38694, 77388, 171572, 401930, 953086, 135896, 925544, 3076873, 8340931, 3654106, 13524422, 3509417, 22756699, 2596624},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 50, 148, 683, 3824, 4008, 944, 55490, 94184, 171572, 343144, 745074, 1698160, 3931208, 662448, 3739321, 12080252, 32511574, 12481564, 49545413, 5193248},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 37, 57, 228, 2004, 14204, 15148, 5102, 230358, 401930, 745074, 1490148, 3188308, 7119516, 16170572, 3132677, 15212929, 47724503, 127314931, 42642616},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23, 464, 1716, 7816, 5636, 53552, 58654, 26868, 953086, 1698160, 3188308, 6376616, 13496132, 29666704, 66353813, 14457878, 62182381, 189497312},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 344, 1036, 4756, 26776, 14792, 204518, 231386, 135896, 3931208, 7119516, 13496132, 26992264, 56658968, 123012781, 3252931, 65435312},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 208, 220, 880, 11272, 91600, 33974, 789648, 925544, 662448, 16170572, 29666704, 56658968, 113317936, 236330717, 508019104},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 103, 55, 3347, 12419, 56459, 16987, 313105, 54177, 3076873, 3739321, 3132677, 66353813, 123012781, 236330717}
};
static const mpc_uint8_t log2[32] =
{ 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6};
static const mpc_uint8_t log2_lost[32] =
{ 0, 1, 0, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 31};
mpc_int32_t mpc_bits_golomb_dec(mpc_bits_reader * r, const mpc_uint_t k)
{
unsigned int l = 0;
unsigned int code = r->buff[0] & ((1 << r->count) - 1);
while( code == 0 ) {
l += r->count;
r->buff++;
code = r->buff[0];
r->count = 8;
}
while( ((1 << (r->count - 1)) & code) == 0 ) {
l++;
r->count--;
}
r->count--;
while( r->count < k ) {
r->buff++;
r->count += 8;
code = (code << 8) | r->buff[0];
}
r->count -= k;
return (l << k) | ((code >> r->count) & ((1 << k) - 1));
}
mpc_uint32_t mpc_bits_log_dec(mpc_bits_reader * r, mpc_uint_t max)
{
mpc_uint32_t value = 0;
if (max == 0)
return 0;
if (log2[max - 1] > 1)
value = mpc_bits_read(r, log2[max - 1] - 1);
if (value >= log2_lost[max - 1])
value = ((value << 1) | mpc_bits_read(r, 1)) - log2_lost[max - 1];
return value;
}
unsigned int mpc_bits_get_size(mpc_bits_reader * r, mpc_uint64_t * p_size)
{
unsigned char tmp;
mpc_uint64_t size = 0;
unsigned int ret = 0;
do {
tmp = mpc_bits_read(r, 8);
size = (size << 7) | (tmp & 0x7F);
ret++;
} while((tmp & 0x80));
*p_size = size;
return ret;
}
int mpc_bits_get_block(mpc_bits_reader * r, mpc_block * p_block)
{
int size = 2;
p_block->size = 0;
p_block->key[0] = mpc_bits_read(r, 8);
p_block->key[1] = mpc_bits_read(r, 8);
size += mpc_bits_get_size(r, &(p_block->size));
if (p_block->size >= size) // check if the block size doesn't conflict with the header size
p_block->size -= size;
return size;
}

@ -0,0 +1,149 @@
/*
Copyright (c) 2007-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#define MAX_ENUM 32
MPC_API int mpc_bits_get_block(mpc_bits_reader * r, mpc_block * p_block);
mpc_int32_t mpc_bits_golomb_dec(mpc_bits_reader * r, const mpc_uint_t k);
MPC_API unsigned int mpc_bits_get_size(mpc_bits_reader * r, mpc_uint64_t * p_size);
mpc_uint32_t mpc_bits_log_dec(mpc_bits_reader * r, mpc_uint_t max);
extern const mpc_uint32_t Cnk[MAX_ENUM / 2][MAX_ENUM];
extern const mpc_uint8_t Cnk_len[MAX_ENUM / 2][MAX_ENUM];
extern const mpc_uint32_t Cnk_lost[MAX_ENUM / 2][MAX_ENUM];
// can read up to 31 bits
static mpc_inline mpc_uint32_t mpc_bits_read(mpc_bits_reader * r, const unsigned int nb_bits)
{
mpc_uint32_t ret;
r->buff -= (int)(r->count - nb_bits) >> 3;
r->count = (r->count - nb_bits) & 0x07;
ret = (r->buff[0] | (r->buff[-1] << 8)) >> r->count;
if (nb_bits > (16 - r->count)) {
ret |= (mpc_uint32_t)((r->buff[-2] << 16) | (r->buff[-3] << 24)) >> r->count;
if (nb_bits > 24 && r->count != 0)
ret |= r->buff[-4] << (32 - r->count);
}
return ret & ((1 << nb_bits) - 1);
}
// basic huffman decoding routine
// works with maximum lengths up to 16
static mpc_inline mpc_int32_t mpc_bits_huff_dec(mpc_bits_reader * r, const mpc_huffman *Table)
{
mpc_uint16_t code;
code = (mpc_uint16_t)((((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count) & 0xFFFF);
while (code < Table->Code) Table++;
r->buff -= (int)(r->count - Table->Length) >> 3;
r->count = (r->count - Table->Length) & 0x07;
return Table->Value;
}
static mpc_inline mpc_int32_t mpc_bits_can_dec(mpc_bits_reader * r, const mpc_can_data *can)
{
mpc_uint16_t code;
mpc_huff_lut tmp;
const mpc_huffman * Table;
code = (mpc_uint16_t)((((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count) & 0xFFFF);
tmp = can->lut[code >> (16 - LUT_DEPTH)];
if (tmp.Length != 0) {
r->buff -= (int)(r->count - tmp.Length) >> 3;
r->count = (r->count - tmp.Length) & 0x07;
return tmp.Value;
}
Table = can->table + (unsigned char)tmp.Value;
while (code < Table->Code) Table++;
r->buff -= (int)(r->count - Table->Length) >> 3;
r->count = (r->count - Table->Length) & 0x07;
return can->sym[(Table->Value - (code >> (16 - Table->Length))) & 0xFF] ;
}
// LUT-based huffman decoding routine
// works with maximum lengths up to 16
static mpc_inline mpc_int32_t mpc_bits_huff_lut(mpc_bits_reader * r, const mpc_lut_data *lut)
{
mpc_uint16_t code;
mpc_huff_lut tmp;
const mpc_huffman * Table;
code = (mpc_uint16_t)((((r->buff[0] << 16) | (r->buff[1] << 8) | r->buff[2]) >> r->count) & 0xFFFF);
tmp = lut->lut[code >> (16 - LUT_DEPTH)];
if (tmp.Length != 0) {
r->buff -= (int)(r->count - tmp.Length) >> 3;
r->count = (r->count - tmp.Length) & 0x07;
return tmp.Value;
}
Table = lut->table + (unsigned char)tmp.Value;
while (code < Table->Code) Table++;
r->buff -= (int)(r->count - Table->Length) >> 3;
r->count = (r->count - Table->Length) & 0x07;
return Table->Value;
}
static mpc_inline mpc_uint32_t mpc_bits_enum_dec(mpc_bits_reader * r, mpc_uint_t k, mpc_uint_t n)
{
mpc_uint32_t bits = 0;
mpc_uint32_t code;
const mpc_uint32_t * C = Cnk[k-1];
code = mpc_bits_read(r, Cnk_len[k-1][n-1] - 1);
if (code >= Cnk_lost[k-1][n-1])
code = ((code << 1) | mpc_bits_read(r, 1)) - Cnk_lost[k-1][n-1];
do {
n--;
if (code >= C[n]) {
bits |= 1 << n;
code -= C[n];
C -= MAX_ENUM;
k--;
}
} while(k > 0);
return bits;
}

@ -0,0 +1,681 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file mpc_decoder.c
/// Core decoding routines and logic.
#include <string.h>
#include <mpc/mpcdec.h>
#include <mpc/minimax.h>
#include "decoder.h"
#include "huffman.h"
#include "internal.h"
#include "mpcdec_math.h"
#include "requant.h"
#include "mpc_bits_reader.h"
//SV7 tables
extern const mpc_lut_data mpc_HuffQ [7] [2];
extern const mpc_lut_data mpc_HuffHdr;
extern const mpc_huffman mpc_table_HuffSCFI [ 4];
extern const mpc_lut_data mpc_HuffDSCF;
//SV8 tables
extern const mpc_can_data mpc_can_Bands;
extern const mpc_can_data mpc_can_SCFI[2];
extern const mpc_can_data mpc_can_DSCF[2];
extern const mpc_can_data mpc_can_Res [2];
extern const mpc_can_data mpc_can_Q [8][2];
extern const mpc_can_data mpc_can_Q1;
extern const mpc_can_data mpc_can_Q9up;
//------------------------------------------------------------------------------
// types
//------------------------------------------------------------------------------
enum
{
MEMSIZE = MPC_DECODER_MEMSIZE, // overall buffer size
MEMSIZE2 = (MEMSIZE/2), // size of one buffer
MEMMASK = (MEMSIZE-1)
};
//------------------------------------------------------------------------------
// forward declarations
//------------------------------------------------------------------------------
void mpc_decoder_read_bitstream_sv7(mpc_decoder * d, mpc_bits_reader * r);
void mpc_decoder_read_bitstream_sv8(mpc_decoder * d, mpc_bits_reader * r,
mpc_bool_t is_key_frame);
static void mpc_decoder_requantisierung(mpc_decoder *d);
/**
* set the scf indexes for seeking use
* needed only for sv7 seeking
* @param d
*/
void mpc_decoder_reset_scf(mpc_decoder * d, int value)
{
memset(d->SCF_Index_L, value, sizeof d->SCF_Index_L );
memset(d->SCF_Index_R, value, sizeof d->SCF_Index_R );
}
void mpc_decoder_setup(mpc_decoder *d)
{
memset(d, 0, sizeof *d);
d->__r1 = 1;
d->__r2 = 1;
mpc_decoder_init_quant(d, 1.0f);
}
void mpc_decoder_set_streaminfo(mpc_decoder *d, mpc_streaminfo *si)
{
d->stream_version = si->stream_version;
d->ms = si->ms;
d->max_band = si->max_band;
d->channels = si->channels;
d->samples_to_skip = MPC_DECODER_SYNTH_DELAY + si->beg_silence;
if (si->stream_version == 7 && si->is_true_gapless)
d->samples = ((si->samples + MPC_FRAME_LENGTH - 1) / MPC_FRAME_LENGTH) * MPC_FRAME_LENGTH;
else
d->samples = si->samples;
}
mpc_decoder * mpc_decoder_init(mpc_streaminfo *si)
{
mpc_decoder* p_tmp = malloc(sizeof(mpc_decoder));
if (p_tmp != 0) {
mpc_decoder_setup(p_tmp);
mpc_decoder_set_streaminfo(p_tmp, si);
huff_init_lut(LUT_DEPTH); // FIXME : this needs to be called only once when the library is loaded
}
return p_tmp;
}
void mpc_decoder_exit(mpc_decoder *d)
{
free(d);
}
void mpc_decoder_decode_frame(mpc_decoder * d,
mpc_bits_reader * r,
mpc_frame_info * i)
{
mpc_bits_reader r_sav = *r;
mpc_int64_t samples_left;
samples_left = d->samples - d->decoded_samples + MPC_DECODER_SYNTH_DELAY;
if (samples_left <= 0 && d->samples != 0) {
i->samples = 0;
i->bits = -1;
return;
}
if (d->stream_version == 8)
mpc_decoder_read_bitstream_sv8(d, r, i->is_key_frame);
else
mpc_decoder_read_bitstream_sv7(d, r);
if (d->samples_to_skip < MPC_FRAME_LENGTH + MPC_DECODER_SYNTH_DELAY) {
mpc_decoder_requantisierung(d);
mpc_decoder_synthese_filter_float(d, i->buffer, d->channels);
}
d->decoded_samples += MPC_FRAME_LENGTH;
// reconstruct exact filelength
if (d->decoded_samples - d->samples < MPC_FRAME_LENGTH && d->stream_version == 7) {
int last_frame_samples = mpc_bits_read(r, 11);
if (d->decoded_samples == d->samples) {
if (last_frame_samples == 0) last_frame_samples = MPC_FRAME_LENGTH;
d->samples += last_frame_samples - MPC_FRAME_LENGTH;
samples_left += last_frame_samples - MPC_FRAME_LENGTH;
}
}
i->samples = samples_left > MPC_FRAME_LENGTH ? MPC_FRAME_LENGTH : samples_left < 0 ? 0 : (mpc_uint32_t) samples_left;
i->bits = (mpc_uint32_t) (((r->buff - r_sav.buff) << 3) + r_sav.count - r->count);
if (d->samples_to_skip) {
if (i->samples <= d->samples_to_skip) {
d->samples_to_skip -= i->samples;
i->samples = 0;
} else {
i->samples -= d->samples_to_skip;
memmove(i->buffer, i->buffer + d->samples_to_skip * d->channels,
i->samples * d->channels * sizeof (MPC_SAMPLE_FORMAT));
d->samples_to_skip = 0;
}
}
}
void
mpc_decoder_requantisierung(mpc_decoder *d)
{
mpc_int32_t Band;
mpc_int32_t n;
MPC_SAMPLE_FORMAT facL;
MPC_SAMPLE_FORMAT facR;
MPC_SAMPLE_FORMAT templ;
MPC_SAMPLE_FORMAT tempr;
MPC_SAMPLE_FORMAT* YL;
MPC_SAMPLE_FORMAT* YR;
mpc_int16_t* L;
mpc_int16_t* R;
const mpc_int32_t Last_Band = d->max_band;
#ifdef MPC_FIXED_POINT
#if MPC_FIXED_POINT_FRACTPART == 14
#define MPC_MULTIPLY_SCF(CcVal, SCF_idx) \
MPC_MULTIPLY_EX(CcVal, d->SCF[SCF_idx], d->SCF_shift[SCF_idx])
#else
#error FIXME, Cc table is in 18.14 format
#endif
#else
#define MPC_MULTIPLY_SCF(CcVal, SCF_idx) \
MPC_MULTIPLY(CcVal, d->SCF[SCF_idx])
#endif
// requantization and scaling of subband-samples
for ( Band = 0; Band <= Last_Band; Band++ ) { // setting pointers
YL = d->Y_L[0] + Band;
YR = d->Y_R[0] + Band;
L = d->Q[Band].L;
R = d->Q[Band].R;
/************************** MS-coded **************************/
if ( d->MS_Flag [Band] ) {
if ( d->Res_L [Band] ) {
if ( d->Res_R [Band] ) { // M!=0, S!=0
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][0] & 0xFF);
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][0] & 0xFF);
for ( n = 0; n < 12; n++, YL += 32, YR += 32 ) {
*YL = (templ = MPC_MULTIPLY_FLOAT_INT(facL,*L++))+(tempr = MPC_MULTIPLY_FLOAT_INT(facR,*R++));
*YR = templ - tempr;
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][1] & 0xFF);
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][1] & 0xFF);
for ( ; n < 24; n++, YL += 32, YR += 32 ) {
*YL = (templ = MPC_MULTIPLY_FLOAT_INT(facL,*L++))+(tempr = MPC_MULTIPLY_FLOAT_INT(facR,*R++));
*YR = templ - tempr;
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][2] & 0xFF);
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][2] & 0xFF);
for ( ; n < 36; n++, YL += 32, YR += 32 ) {
*YL = (templ = MPC_MULTIPLY_FLOAT_INT(facL,*L++))+(tempr = MPC_MULTIPLY_FLOAT_INT(facR,*R++));
*YR = templ - tempr;
}
} else { // M!=0, S==0
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][0] & 0xFF);
for ( n = 0; n < 12; n++, YL += 32, YR += 32 ) {
*YR = *YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][1] & 0xFF);
for ( ; n < 24; n++, YL += 32, YR += 32 ) {
*YR = *YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][2] & 0xFF);
for ( ; n < 36; n++, YL += 32, YR += 32 ) {
*YR = *YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
}
}
} else {
if (d->Res_R[Band]) // M==0, S!=0
{
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][0] & 0xFF);
for ( n = 0; n < 12; n++, YL += 32, YR += 32 ) {
*YR = - (*YL = MPC_MULTIPLY_FLOAT_INT(facR,*(R++)));
}
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][1] & 0xFF);
for ( ; n < 24; n++, YL += 32, YR += 32 ) {
*YR = - (*YL = MPC_MULTIPLY_FLOAT_INT(facR,*(R++)));
}
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][2] & 0xFF);
for ( ; n < 36; n++, YL += 32, YR += 32 ) {
*YR = - (*YL = MPC_MULTIPLY_FLOAT_INT(facR,*(R++)));
}
} else { // M==0, S==0
for ( n = 0; n < 36; n++, YL += 32, YR += 32 ) {
*YR = *YL = 0;
}
}
}
}
/************************** LR-coded **************************/
else {
if ( d->Res_L [Band] ) {
if ( d->Res_R [Band] ) { // L!=0, R!=0
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][0] & 0xFF);
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][0] & 0xFF);
for (n = 0; n < 12; n++, YL += 32, YR += 32 ) {
*YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
*YR = MPC_MULTIPLY_FLOAT_INT(facR,*R++);
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][1] & 0xFF);
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][1] & 0xFF);
for (; n < 24; n++, YL += 32, YR += 32 ) {
*YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
*YR = MPC_MULTIPLY_FLOAT_INT(facR,*R++);
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][2] & 0xFF);
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][2] & 0xFF);
for (; n < 36; n++, YL += 32, YR += 32 ) {
*YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
*YR = MPC_MULTIPLY_FLOAT_INT(facR,*R++);
}
} else { // L!=0, R==0
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][0] & 0xFF);
for ( n = 0; n < 12; n++, YL += 32, YR += 32 ) {
*YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
*YR = 0;
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][1] & 0xFF);
for ( ; n < 24; n++, YL += 32, YR += 32 ) {
*YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
*YR = 0;
}
facL = MPC_MULTIPLY_SCF( Cc[d->Res_L[Band]] , d->SCF_Index_L[Band][2] & 0xFF);
for ( ; n < 36; n++, YL += 32, YR += 32 ) {
*YL = MPC_MULTIPLY_FLOAT_INT(facL,*L++);
*YR = 0;
}
}
}
else {
if ( d->Res_R [Band] ) { // L==0, R!=0
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][0] & 0xFF);
for ( n = 0; n < 12; n++, YL += 32, YR += 32 ) {
*YL = 0;
*YR = MPC_MULTIPLY_FLOAT_INT(facR,*R++);
}
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][1] & 0xFF);
for ( ; n < 24; n++, YL += 32, YR += 32 ) {
*YL = 0;
*YR = MPC_MULTIPLY_FLOAT_INT(facR,*R++);
}
facR = MPC_MULTIPLY_SCF( Cc[d->Res_R[Band]] , d->SCF_Index_R[Band][2] & 0xFF);
for ( ; n < 36; n++, YL += 32, YR += 32 ) {
*YL = 0;
*YR = MPC_MULTIPLY_FLOAT_INT(facR,*R++);
}
} else { // L==0, R==0
for ( n = 0; n < 36; n++, YL += 32, YR += 32 ) {
*YR = *YL = 0;
}
}
}
}
}
}
void mpc_decoder_read_bitstream_sv7(mpc_decoder * d, mpc_bits_reader * r)
{
// these arrays hold decoding results for bundled quantizers (3- and 5-step)
static const mpc_int32_t idx30[] = { -1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1,-1, 0, 1};
static const mpc_int32_t idx31[] = { -1,-1,-1, 0, 0, 0, 1, 1, 1,-1,-1,-1, 0, 0, 0, 1, 1, 1,-1,-1,-1, 0, 0, 0, 1, 1, 1};
static const mpc_int32_t idx32[] = { -1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
static const mpc_int32_t idx50[] = { -2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2,-2,-1, 0, 1, 2};
static const mpc_int32_t idx51[] = { -2,-2,-2,-2,-2,-1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2};
mpc_int32_t n, idx, Max_used_Band = 0;
/***************************** Header *****************************/
// first subband
d->Res_L[0] = mpc_bits_read(r, 4);
d->Res_R[0] = mpc_bits_read(r, 4);
if (!(d->Res_L[0] == 0 && d->Res_R[0] == 0)) {
if (d->ms)
d->MS_Flag[0] = mpc_bits_read(r, 1);
Max_used_Band = 1;
}
// consecutive subbands
for ( n = 1; n <= d->max_band; n++ ) {
idx = mpc_bits_huff_lut(r, & mpc_HuffHdr);
d->Res_L[n] = (idx!=4) ? d->Res_L[n - 1] + idx : (int) mpc_bits_read(r, 4);
idx = mpc_bits_huff_lut(r, & mpc_HuffHdr);
d->Res_R[n] = (idx!=4) ? d->Res_R[n - 1] + idx : (int) mpc_bits_read(r, 4);
if (!(d->Res_L[n] == 0 && d->Res_R[n] == 0)) {
if (d->ms)
d->MS_Flag[n] = mpc_bits_read(r, 1);
Max_used_Band = n + 1;
}
}
/****************************** SCFI ******************************/
for ( n = 0; n < Max_used_Band; n++ ) {
if (d->Res_L[n])
d->SCFI_L[n] = mpc_bits_huff_dec(r, mpc_table_HuffSCFI);
if (d->Res_R[n])
d->SCFI_R[n] = mpc_bits_huff_dec(r, mpc_table_HuffSCFI);
}
/**************************** SCF/DSCF ****************************/
for ( n = 0; n < Max_used_Band; n++ ) {
mpc_int32_t * SCF = d->SCF_Index_L[n];
mpc_uint32_t Res = d->Res_L[n], SCFI = d->SCFI_L[n];
do {
if (Res) {
switch (SCFI) {
case 1:
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[0] = (idx!=8) ? SCF[2] + idx : (int) mpc_bits_read(r, 6);
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[1] = (idx!=8) ? SCF[0] + idx : (int) mpc_bits_read(r, 6);
SCF[2] = SCF[1];
break;
case 3:
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[0] = (idx!=8) ? SCF[2] + idx : (int) mpc_bits_read(r, 6);
SCF[1] = SCF[0];
SCF[2] = SCF[1];
break;
case 2:
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[0] = (idx!=8) ? SCF[2] + idx : (int) mpc_bits_read(r, 6);
SCF[1] = SCF[0];
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[2] = (idx!=8) ? SCF[1] + idx : (int) mpc_bits_read(r, 6);
break;
case 0:
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[0] = (idx!=8) ? SCF[2] + idx : (int) mpc_bits_read(r, 6);
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[1] = (idx!=8) ? SCF[0] + idx : (int) mpc_bits_read(r, 6);
idx = mpc_bits_huff_lut(r, & mpc_HuffDSCF);
SCF[2] = (idx!=8) ? SCF[1] + idx : (int) mpc_bits_read(r, 6);
break;
default:
return;
}
if (SCF[0] > 1024)
SCF[0] = 0x8080;
if (SCF[1] > 1024)
SCF[1] = 0x8080;
if (SCF[2] > 1024)
SCF[2] = 0x8080;
}
Res = d->Res_R[n];
SCFI = d->SCFI_R[n];
} while ( SCF == d->SCF_Index_L[n] && (SCF = d->SCF_Index_R[n]));
}
// if (d->seeking == TRUE)
// return;
/***************************** Samples ****************************/
for ( n = 0; n < Max_used_Band; n++ ) {
mpc_int16_t *q = d->Q[n].L, Res = d->Res_L[n];
do {
mpc_int32_t k;
const mpc_lut_data *Table;
switch (Res) {
case -2: case -3: case -4: case -5: case -6: case -7: case -8: case -9:
case -10: case -11: case -12: case -13: case -14: case -15: case -16: case -17: case 0:
break;
case -1:
for (k=0; k<36; k++ ) {
mpc_uint32_t tmp = mpc_random_int(d);
q[k] = ((tmp >> 24) & 0xFF) + ((tmp >> 16) & 0xFF) + ((tmp >> 8) & 0xFF) + ((tmp >> 0) & 0xFF) - 510;
}
break;
case 1:
Table = & mpc_HuffQ[0][mpc_bits_read(r, 1)];
for ( k = 0; k < 36; k += 3) {
idx = mpc_bits_huff_lut(r, Table);
q[k] = idx30[idx];
q[k + 1] = idx31[idx];
q[k + 2] = idx32[idx];
}
break;
case 2:
Table = & mpc_HuffQ[1][mpc_bits_read(r, 1)];
for ( k = 0; k < 36; k += 2) {
idx = mpc_bits_huff_lut(r, Table);
q[k] = idx50[idx];
q[k + 1] = idx51[idx];
}
break;
case 3:
case 4:
case 5:
case 6:
case 7:
Table = & mpc_HuffQ[Res - 1][mpc_bits_read(r, 1)];
for ( k = 0; k < 36; k++ )
q[k] = mpc_bits_huff_lut(r, Table);
break;
case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17:
for ( k = 0; k < 36; k++ )
q[k] = (mpc_int32_t)mpc_bits_read(r, Res_bit[Res]) - Dc[Res];
break;
default:
return;
}
Res = d->Res_R[n];
} while (q == d->Q[n].L && (q = d->Q[n].R));
}
}
void mpc_decoder_read_bitstream_sv8(mpc_decoder * d, mpc_bits_reader * r, mpc_bool_t is_key_frame)
{
// these arrays hold decoding results for bundled quantizers (3- and 5-step)
static const mpc_int8_t idx50[125] = {-2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2};
static const mpc_int8_t idx51[125] = {-2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2};
static const mpc_int8_t idx52[125] = {-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
mpc_int32_t n, Max_used_Band;
const mpc_can_data * Table, * Tables[2];
/***************************** Header *****************************/
if (is_key_frame == MPC_TRUE) {
Max_used_Band = mpc_bits_log_dec(r, d->max_band + 1);
} else {
Max_used_Band = d->last_max_band + mpc_bits_can_dec(r, & mpc_can_Bands);
if (Max_used_Band > 32) Max_used_Band -= 33;
}
d->last_max_band = Max_used_Band;
if (Max_used_Band) {
d->Res_L[Max_used_Band-1] = mpc_bits_can_dec(r, & mpc_can_Res[0]);
d->Res_R[Max_used_Band-1] = mpc_bits_can_dec(r, & mpc_can_Res[0]);
if (d->Res_L[Max_used_Band-1] > 15) d->Res_L[Max_used_Band-1] -= 17;
if (d->Res_R[Max_used_Band-1] > 15) d->Res_R[Max_used_Band-1] -= 17;
for ( n = Max_used_Band - 2; n >= 0; n--) {
d->Res_L[n] = mpc_bits_can_dec(r, & mpc_can_Res[d->Res_L[n + 1] > 2]) + d->Res_L[n + 1];
if (d->Res_L[n] > 15) d->Res_L[n] -= 17;
d->Res_R[n] = mpc_bits_can_dec(r, & mpc_can_Res[d->Res_R[n + 1] > 2]) + d->Res_R[n + 1];
if (d->Res_R[n] > 15) d->Res_R[n] -= 17;
}
if (d->ms) {
mpc_uint_t cnt = 0, tot = 0;
mpc_uint32_t tmp = 0;
for( n = 0; n < Max_used_Band; n++)
if ( d->Res_L[n] != 0 || d->Res_R[n] != 0 )
tot++;
cnt = mpc_bits_log_dec(r, tot);
if (cnt != 0 && cnt != tot)
tmp = mpc_bits_enum_dec(r, mini(cnt, tot-cnt), tot);
if (cnt * 2 > tot) tmp = ~tmp;
for( n = Max_used_Band - 1; n >= 0; n--)
if ( d->Res_L[n] != 0 || d->Res_R[n] != 0 ) {
d->MS_Flag[n] = tmp & 1;
tmp >>= 1;
}
}
}
for( n = Max_used_Band; n <= d->max_band; n++)
d->Res_L[n] = d->Res_R[n] = 0;
/****************************** SCFI ******************************/
if (is_key_frame == MPC_TRUE){
for( n = 0; n < 32; n++)
d->DSCF_Flag_L[n] = d->DSCF_Flag_R[n] = 1; // new block -> force key frame
}
Tables[0] = & mpc_can_SCFI[0];
Tables[1] = & mpc_can_SCFI[1];
for ( n = 0; n < Max_used_Band; n++ ) {
int tmp = 0, cnt = -1;
if (d->Res_L[n]) cnt++;
if (d->Res_R[n]) cnt++;
if (cnt >= 0) {
tmp = mpc_bits_can_dec(r, Tables[cnt]);
if (d->Res_L[n]) d->SCFI_L[n] = tmp >> (2 * cnt);
if (d->Res_R[n]) d->SCFI_R[n] = tmp & 3;
}
}
/**************************** SCF/DSCF ****************************/
for ( n = 0; n < Max_used_Band; n++ ) {
mpc_int32_t * SCF = d->SCF_Index_L[n];
mpc_uint32_t Res = d->Res_L[n], SCFI = d->SCFI_L[n];
mpc_bool_t * DSCF_Flag = &d->DSCF_Flag_L[n];
do {
if ( Res ) {
int m;
if (*DSCF_Flag == 1) {
SCF[0] = (mpc_int32_t)mpc_bits_read(r, 7) - 6;
*DSCF_Flag = 0;
} else {
mpc_uint_t tmp = mpc_bits_can_dec(r, & mpc_can_DSCF[1]);
if (tmp == 64)
tmp += mpc_bits_read(r, 6);
SCF[0] = ((SCF[2] - 25 + tmp) & 127) - 6;
}
for( m = 0; m < 2; m++){
if (((SCFI << m) & 2) == 0) {
mpc_uint_t tmp = mpc_bits_can_dec(r, & mpc_can_DSCF[0]);
if (tmp == 31)
tmp = 64 + mpc_bits_read(r, 6);
SCF[m + 1] = ((SCF[m] - 25 + tmp) & 127) - 6;
} else
SCF[m + 1] = SCF[m];
}
}
Res = d->Res_R[n];
SCFI = d->SCFI_R[n];
DSCF_Flag = &d->DSCF_Flag_R[n];
} while ( SCF == d->SCF_Index_L[n] && (SCF = d->SCF_Index_R[n]));
}
/***************************** Samples ****************************/
for ( n = 0; n < Max_used_Band; n++ ) {
mpc_int16_t *q = d->Q[n].L, Res = d->Res_L[n];
static const unsigned int thres[] = {0, 0, 3, 0, 0, 1, 3, 4, 8};
static const mpc_int8_t HuffQ2_var[5*5*5] =
{6, 5, 4, 5, 6, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6, 5, 4, 5, 6, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 3, 2, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6, 5, 4, 5, 6, 5, 4, 3, 4, 5, 4, 3, 2, 3, 4, 5, 4, 3, 4, 5, 6, 5, 4, 5, 6};
do {
mpc_uint32_t k = 0, idx = 1;
if (Res != 0) {
if (Res == 2) {
Tables[0] = & mpc_can_Q [0][0];
Tables[1] = & mpc_can_Q [0][1];
idx = 2 * thres[Res];
for ( ; k < 36; k += 3) {
int tmp = mpc_bits_can_dec(r, Tables[idx > thres[Res]]);
q[k] = idx50[tmp];
q[k + 1] = idx51[tmp];
q[k + 2] = idx52[tmp];
idx = (idx >> 1) + HuffQ2_var[tmp];
}
} else if (Res == 1) {
Table = & mpc_can_Q1;
for( ; k < 36; ){
mpc_uint32_t kmax = k + 18;
mpc_uint_t cnt = mpc_bits_can_dec(r, Table);
idx = 0;
if (cnt > 0 && cnt < 18)
idx = mpc_bits_enum_dec(r, cnt <= 9 ? cnt : 18 - cnt, 18);
if (cnt > 9) idx = ~idx;
for ( ; k < kmax; k++) {
q[k] = 0;
if ( idx & (1 << 17) )
q[k] = (mpc_bits_read(r, 1) << 1) - 1;
idx <<= 1;
}
}
} else if (Res == -1) {
for ( ; k<36; k++ ) {
mpc_uint32_t tmp = mpc_random_int(d);
q[k] = ((tmp >> 24) & 0xFF) + ((tmp >> 16) & 0xFF) + ((tmp >> 8) & 0xFF) + ((tmp >> 0) & 0xFF) - 510;
}
} else if (Res <= 4) {
Table = & mpc_can_Q[1][Res - 3];
for ( ; k < 36; k += 2 ) {
union {
mpc_int8_t sym;
struct { mpc_int8_t s1:4, s2:4; };
} tmp;
tmp.sym = mpc_bits_can_dec(r, Table);
q[k] = tmp.s1;
q[k + 1] = tmp.s2;
}
} else if (Res <= 8) {
Tables[0] = & mpc_can_Q [Res - 3][0];
Tables[1] = & mpc_can_Q [Res - 3][1];
idx = 2 * thres[Res];
for ( ; k < 36; k++ ) {
q[k] = mpc_bits_can_dec(r, Tables[idx > thres[Res]]);
idx = (idx >> 1) + absi(q[k]);
}
} else {
for ( ; k < 36; k++ ) {
q[k] = (unsigned char) mpc_bits_can_dec(r, & mpc_can_Q9up);
if (Res != 9)
q[k] = (q[k] << (Res - 9)) | mpc_bits_read(r, Res - 9);
q[k] -= Dc[Res];
}
}
}
Res = d->Res_R[n];
} while (q == d->Q[n].L && (q = d->Q[n].R));
}
}

@ -0,0 +1,738 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <math.h>
#include <string.h>
#include <mpc/streaminfo.h>
#include <mpc/mpcdec.h>
#include <mpc/minimax.h>
#include "internal.h"
#include "decoder.h"
#include "huffman.h"
#include "mpc_bits_reader.h"
/// maximum number of seek points in the table. The distance between points will
/// be adapted so this value is never exceeded.
#define MAX_SEEK_TABLE_SIZE 65536
// streaminfo.c
mpc_status streaminfo_read_header_sv8(mpc_streaminfo* si,
const mpc_bits_reader * r_in,
mpc_size_t block_size);
mpc_status streaminfo_read_header_sv7(mpc_streaminfo* si, mpc_bits_reader * r_in);
void streaminfo_encoder_info(mpc_streaminfo* si, const mpc_bits_reader * r_in);
void streaminfo_gain(mpc_streaminfo* si, const mpc_bits_reader * r_in);
// mpc_decoder.c
void mpc_decoder_reset_scf(mpc_decoder * d, int value);
enum {
MPC_BUFFER_SWAP = 1,
MPC_BUFFER_FULL = 2,
};
static void mpc_demux_clear_buff(mpc_demux * d)
{
d->bytes_total = 0;
d->bits_reader.buff = d->buffer;
d->bits_reader.count = 8;
d->block_bits = 0;
d->block_frames = 0;
}
// Returns the amount of unread bytes in the demux buffer.
// Unchecked version - may return a negative value when we've been reading
// past the end of the valid data as a result of some problem with the file.
static mpc_int32_t mpc_unread_bytes_unchecked(mpc_demux * d) {
return d->bytes_total + d->buffer - d->bits_reader.buff - ((8 - d->bits_reader.count) >> 3);
}
// Returns the amount of unread bytes in the demux buffer.
static mpc_uint32_t mpc_unread_bytes(mpc_demux * d) {
mpc_int32_t unread_bytes = mpc_unread_bytes_unchecked(d);
if (unread_bytes < 0) return 0;
return (mpc_uint32_t) unread_bytes;
}
// Returns the number of bytes available in the buffer.
static mpc_uint32_t
mpc_demux_fill(mpc_demux * d, mpc_uint32_t min_bytes, int flags)
{
mpc_uint32_t unread_bytes = (mpc_uint32_t) mpc_unread_bytes_unchecked(d);
int offset = 0;
if ((mpc_int32_t)
unread_bytes < 0) return 0; // Error - we've been reading past the end of the buffer - abort
if (min_bytes == 0 || min_bytes > DEMUX_BUFFER_SIZE ||
(unread_bytes < min_bytes && (flags & MPC_BUFFER_FULL) != 0 ))
min_bytes = DEMUX_BUFFER_SIZE;
if (unread_bytes < min_bytes) {
mpc_uint32_t bytes2read = min_bytes - unread_bytes;
mpc_uint32_t bytes_free = DEMUX_BUFFER_SIZE - d->bytes_total;
mpc_uint32_t bytesread;
if (flags & MPC_BUFFER_SWAP) {
bytes2read &= -1 << 2;
offset = (unread_bytes + 3) & ( -1 << 2);
offset -= unread_bytes;
}
if (bytes2read > bytes_free) {
if (d->bits_reader.count == 0) {
d->bits_reader.count = 8;
d->bits_reader.buff++;
}
memmove(d->buffer + offset, d->bits_reader.buff, unread_bytes);
d->bits_reader.buff = d->buffer + offset;
d->bytes_total = unread_bytes + offset;
}
bytesread = d->r->read(d->r, d->buffer + d->bytes_total, bytes2read);
if (bytesread < bytes2read) {
memset(d->buffer + d->bytes_total + bytesread, 0, bytes2read - bytesread); // FIXME : why ?
}
if (flags & MPC_BUFFER_SWAP) {
unsigned int i, * tmp = (unsigned int *) (d->buffer + d->bytes_total);
for(i = 0 ;i < (bytes2read >> 2); i++)
tmp[i] = mpc_swap32(tmp[i]);
}
d->bytes_total += bytesread;
unread_bytes += bytesread;
}
return unread_bytes;
}
/**
* seek to a bit position in the stream
* @param d demuxer context
* @param fpos position in the stream in bits from the beginning of mpc datas
* @param min_bytes number of bytes to load after seeking
*/
static mpc_status
mpc_demux_seek(mpc_demux * d, mpc_seek_t fpos, mpc_uint32_t min_bytes) {
mpc_seek_t start_pos, end_pos;
mpc_int_t bit_offset;
// get current buffer position
end_pos = ((mpc_seek_t)(d->r->tell(d->r))) << 3;
start_pos = end_pos - (d->bytes_total << 3);
if (fpos >= start_pos && fpos < end_pos) {
d->bits_reader.buff = d->buffer + ((fpos - start_pos) >> 3);
bit_offset = fpos & 7;
d->block_bits = 0;
d->block_frames = 0;
} else {
mpc_seek_t next_pos = fpos >> 3;
if (d->si.stream_version == 7)
next_pos = ((next_pos - d->si.header_position) & (-1 << 2)) + d->si.header_position;
bit_offset = (int) (fpos - (next_pos << 3));
mpc_demux_clear_buff(d);
if (!d->r->seek(d->r, (mpc_int32_t) next_pos))
return MPC_STATUS_FAIL;
}
if (d->si.stream_version == 7)
mpc_demux_fill(d, (min_bytes + ((bit_offset + 7) >> 3) + 3) & (~3), MPC_BUFFER_SWAP);
else
mpc_demux_fill(d, min_bytes + ((bit_offset + 7) >> 3), 0);
d->bits_reader.buff += bit_offset >> 3;
d->bits_reader.count = 8 - (bit_offset & 7);
return MPC_STATUS_OK;
}
/**
* return the current position in the stream (in bits) from the beginning
* of the file
* @param d demuxer context
* @return current stream position in bits
*/
mpc_seek_t mpc_demux_pos(mpc_demux * d)
{
return (((mpc_seek_t)(d->r->tell(d->r)) - d->bytes_total +
d->bits_reader.buff - d->buffer) << 3) + 8 - d->bits_reader.count;
}
/**
* Searches for a ID3v2-tag and reads the length (in bytes) of it.
*
* @param d demuxer context
* @return size of tag, in bytes
* @return MPC_STATUS_FAIL on errors of any kind
*/
static mpc_int32_t mpc_demux_skip_id3v2(mpc_demux * d)
{
mpc_uint8_t tmp [4];
mpc_bool_t footerPresent; // ID3v2.4-flag
mpc_int32_t size;
// we must be at the beginning of the stream
mpc_demux_fill(d, 3, 0);
// check id3-tag
if ( 0 != memcmp( d->bits_reader.buff, "ID3", 3 ) )
return 0;
mpc_demux_fill(d, 10, 0);
mpc_bits_read(&d->bits_reader, 24); // read ID3
mpc_bits_read(&d->bits_reader, 16); // read tag version
tmp[0] = mpc_bits_read(&d->bits_reader, 8); // read flags
footerPresent = tmp[0] & 0x10;
if ( tmp[0] & 0x0F )
return MPC_STATUS_FAIL; // not (yet???) allowed
tmp[0] = mpc_bits_read(&d->bits_reader, 8); // read size
tmp[1] = mpc_bits_read(&d->bits_reader, 8); // read size
tmp[2] = mpc_bits_read(&d->bits_reader, 8); // read size
tmp[3] = mpc_bits_read(&d->bits_reader, 8); // read size
if ( (tmp[0] | tmp[1] | tmp[2] | tmp[3]) & 0x80 )
return MPC_STATUS_FAIL; // not allowed
// read headerSize (syncsave: 4 * $0xxxxxxx = 28 significant bits)
size = tmp[0] << 21;
size |= tmp[1] << 14;
size |= tmp[2] << 7;
size |= tmp[3];
size += 10; //header
if ( footerPresent ) size += 10;
// This is called before file headers get read, streamversion etc isn't yet known, demuxing isn't properly initialized and we can't call mpc_demux_seek() from here.
mpc_demux_clear_buff(d);
if (!d->r->seek(d->r, size))
return MPC_STATUS_FAIL;
return size;
}
static mpc_status mpc_demux_seek_init(mpc_demux * d)
{
size_t seek_table_size;
if (d->seek_table != 0)
return MPC_STATUS_OK;
d->seek_pwr = 6;
if (d->si.block_pwr > d->seek_pwr)
d->seek_pwr = d->si.block_pwr;
seek_table_size = (2 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr));
while (seek_table_size > MAX_SEEK_TABLE_SIZE) {
d->seek_pwr++;
seek_table_size = (2 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr));
}
d->seek_table = malloc((size_t)(seek_table_size * sizeof(mpc_seek_t)));
if (d->seek_table == 0)
return MPC_STATUS_FAIL;
d->seek_table[0] = (mpc_seek_t)mpc_demux_pos(d);
d->seek_table_size = 1;
return MPC_STATUS_OK;
}
static mpc_status mpc_demux_ST(mpc_demux * d)
{
mpc_uint64_t tmp;
mpc_seek_t * table, last[2];
mpc_bits_reader r = d->bits_reader;
mpc_uint_t i, diff_pwr = 0, mask;
mpc_uint32_t file_table_size;
if (d->seek_table != 0)
return MPC_STATUS_OK;
mpc_bits_get_size(&r, &tmp);
file_table_size = (mpc_seek_t) tmp;
d->seek_pwr = d->si.block_pwr + mpc_bits_read(&r, 4);
tmp = 2 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr);
while (tmp > MAX_SEEK_TABLE_SIZE) {
d->seek_pwr++;
diff_pwr++;
tmp = 2 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr);
}
if ((file_table_size >> diff_pwr) > tmp)
file_table_size = tmp << diff_pwr;
d->seek_table = malloc((size_t) (tmp * sizeof(mpc_seek_t)));
d->seek_table_size = (file_table_size + ((1 << diff_pwr) - 1)) >> diff_pwr;
table = d->seek_table;
mpc_bits_get_size(&r, &tmp);
table[0] = last[0] = (mpc_seek_t) (tmp + d->si.header_position) * 8;
if (d->seek_table_size == 1)
return MPC_STATUS_OK;
mpc_bits_get_size(&r, &tmp);
last[1] = (mpc_seek_t) (tmp + d->si.header_position) * 8;
if (diff_pwr == 0) table[1] = last[1];
mask = (1 << diff_pwr) - 1;
for (i = 2; i < file_table_size; i++) {
int code = mpc_bits_golomb_dec(&r, 12);
if (code & 1)
code = -(code & (-1 << 1));
code <<= 2;
last[i & 1] = code + 2 * last[(i-1) & 1] - last[i & 1];
if ((i & mask) == 0)
table[i >> diff_pwr] = last[i & 1];
}
return MPC_STATUS_OK;
}
static mpc_status mpc_demux_SP(mpc_demux * d, int size, int block_size)
{
mpc_seek_t cur;
mpc_uint64_t ptr;
mpc_block b;
int st_head_size;
cur = mpc_demux_pos(d);
mpc_bits_get_size(&d->bits_reader, &ptr);
MPC_AUTO_FAIL( mpc_demux_seek(d, (ptr - size) * 8 + cur, 11) );
st_head_size = mpc_bits_get_block(&d->bits_reader, &b);
if (memcmp(b.key, "ST", 2) == 0) {
d->chap_pos = (ptr - size + b.size + st_head_size) * 8 + cur;
d->chap_nb = -1;
if (mpc_demux_fill(d, (mpc_uint32_t) b.size, 0) < b.size)
return MPC_STATUS_FAIL;
MPC_AUTO_FAIL( mpc_demux_ST(d) );
}
return mpc_demux_seek(d, cur, 11 + block_size);
}
static void mpc_demux_chap_empty(mpc_demux * d) {
free(d->chap); d->chap = 0;
d->chap_nb = 0; // -1 for undefined, 0 for no chapters
d->chap_pos = 0;
}
static mpc_status mpc_demux_chap_find_inner(mpc_demux * d)
{
mpc_block b;
int tag_size = 0, chap_size = 0, size, i = 0;
d->chap_nb = 0;
if (d->si.stream_version < 8)
return MPC_STATUS_OK;
if (d->chap_pos == 0) {
mpc_uint64_t cur_pos = (d->si.header_position + 4) * 8;
MPC_AUTO_FAIL( mpc_demux_seek(d, cur_pos, 11) ); // seek to the beginning of the stream
size = mpc_bits_get_block(&d->bits_reader, &b);
while (memcmp(b.key, "SE", 2) != 0) {
mpc_uint64_t new_pos = cur_pos + (size + b.size) * 8;
MPC_AUTO_FAIL(mpc_check_key(b.key));
if (memcmp(b.key, "CT", 2) == 0) {
if (d->chap_pos == 0) d->chap_pos = cur_pos;
} else {
d->chap_pos = 0;
}
if (new_pos <= cur_pos)
return MPC_STATUS_FAIL;
cur_pos = new_pos;
MPC_AUTO_FAIL( mpc_demux_seek(d, cur_pos, 11) );
size = mpc_bits_get_block(&d->bits_reader, &b);
}
if (d->chap_pos == 0)
d->chap_pos = cur_pos;
}
mpc_demux_seek(d, d->chap_pos, 20);
size = mpc_bits_get_block(&d->bits_reader, &b);
while (memcmp(b.key, "CT", 2) == 0) {
mpc_uint64_t chap_sample;
d->chap_nb++;
chap_size += size;
size = mpc_bits_get_size(&d->bits_reader, &chap_sample) + 4;
chap_size += size;
tag_size += b.size - size;
MPC_AUTO_FAIL( mpc_demux_seek(d, d->chap_pos + (chap_size + tag_size) * 8, 20) );
size = mpc_bits_get_block(&d->bits_reader, &b);
}
if (d->chap_nb > 0) {
char * ptag;
d->chap = malloc(sizeof(mpc_chap_info) * d->chap_nb + tag_size);
if (d->chap == 0)
return MPC_STATUS_FAIL;
ptag = (char*)(d->chap + d->chap_nb);
MPC_AUTO_FAIL( mpc_demux_seek(d, d->chap_pos, 11) );
size = mpc_bits_get_block(&d->bits_reader, &b);
while (memcmp(b.key, "CT", 2) == 0) {
mpc_uint_t tmp_size;
char * tmp_ptag = ptag;
if (mpc_demux_fill(d, 11 + (mpc_uint32_t) b.size, 0) < b.size)
return MPC_STATUS_FAIL;
size = mpc_bits_get_size(&d->bits_reader, &d->chap[i].sample) + 4;
d->chap[i].gain = (mpc_uint16_t) mpc_bits_read(&d->bits_reader, 16);
d->chap[i].peak = (mpc_uint16_t) mpc_bits_read(&d->bits_reader, 16);
tmp_size = b.size - size;
do {
mpc_uint_t rd_size = tmp_size;
mpc_uint8_t * tmp_buff = d->bits_reader.buff + ((8 - d->bits_reader.count) >> 3);
mpc_uint32_t avail_bytes = d->bytes_total + d->buffer - tmp_buff;
rd_size = mini(rd_size, avail_bytes);
memcpy(tmp_ptag, tmp_buff, rd_size);
tmp_size -= rd_size;
tmp_ptag += rd_size;
d->bits_reader.buff += rd_size;
mpc_demux_fill(d, tmp_size, 0);
} while (tmp_size > 0);
d->chap[i].tag_size = b.size - size;
d->chap[i].tag = ptag;
ptag += b.size - size;
i++;
size = mpc_bits_get_block(&d->bits_reader, &b);
}
}
d->bits_reader.buff -= size;
return MPC_STATUS_OK;
}
static mpc_status mpc_demux_chap_find(mpc_demux * d) {
mpc_status s = mpc_demux_chap_find_inner(d);
if (MPC_IS_FAILURE(s))
mpc_demux_chap_empty(d);
return s;
}
/**
* Gets the number of chapters in the stream
* @param d pointer to a musepack demuxer
* @return the number of chapters found in the stream
*/
mpc_int_t mpc_demux_chap_nb(mpc_demux * d)
{
if (d->chap_nb == -1)
mpc_demux_chap_find(d);
return d->chap_nb;
}
/**
* Gets datas associated to a given chapter
* The chapter tag is an APEv2 tag without the preamble
* @param d pointer to a musepack demuxer
* @param chap_nb chapter number you want datas (from 0 to mpc_demux_chap_nb(d) - 1)
* @return the chapter information structure
*/
mpc_chap_info const * mpc_demux_chap(mpc_demux * d, int chap_nb)
{
if (d->chap_nb == -1)
mpc_demux_chap_find(d);
if (chap_nb >= d->chap_nb || chap_nb < 0)
return 0;
return &d->chap[chap_nb];
}
static mpc_status mpc_demux_header(mpc_demux * d)
{
char magic[4];
d->si.pns = 0xFF;
d->si.profile_name = "n.a.";
// get header position
d->si.header_position = mpc_demux_skip_id3v2(d);
if(d->si.header_position < 0)
return MPC_STATUS_FAIL;
d->si.tag_offset = d->si.total_file_length = d->r->get_size(d->r);
mpc_demux_fill(d, 4, 0);
magic[0] = mpc_bits_read(&d->bits_reader, 8);
magic[1] = mpc_bits_read(&d->bits_reader, 8);
magic[2] = mpc_bits_read(&d->bits_reader, 8);
magic[3] = mpc_bits_read(&d->bits_reader, 8);
if (memcmp(magic, "MP+", 3) == 0) {
d->si.stream_version = magic[3] & 15;
d->si.pns = magic[3] >> 4;
if (d->si.stream_version != 7)
return MPC_STATUS_FAIL;
if (mpc_demux_fill(d, 6 * 4, MPC_BUFFER_SWAP) < 6 * 4) // header block size + endian convertion
return MPC_STATUS_FAIL;
MPC_AUTO_FAIL( streaminfo_read_header_sv7(&d->si, &d->bits_reader) );
} else if (memcmp(magic, "MPCK", 4) == 0) {
mpc_block b;
int size;
mpc_demux_fill(d, 11, 0); // max header block size
size = mpc_bits_get_block(&d->bits_reader, &b);
while( memcmp(b.key, "AP", 2) != 0 ){ // scan all blocks until audio
if (mpc_check_key(b.key) != MPC_STATUS_OK)
return MPC_STATUS_FAIL;
if (b.size > (mpc_uint64_t) DEMUX_BUFFER_SIZE - 11)
return MPC_STATUS_FAIL;
if (mpc_demux_fill(d, 11 + (mpc_uint32_t) b.size, 0) <= b.size)
return MPC_STATUS_FAIL;
if (memcmp(b.key, "SH", 2) == 0) {
MPC_AUTO_FAIL( streaminfo_read_header_sv8(&d->si, &d->bits_reader, (mpc_uint32_t) b.size) );
} else if (memcmp(b.key, "RG", 2) == 0) {
streaminfo_gain(&d->si, &d->bits_reader);
} else if (memcmp(b.key, "EI", 2) == 0) {
streaminfo_encoder_info(&d->si, &d->bits_reader);
} else if (memcmp(b.key, "SO", 2) == 0) {
MPC_AUTO_FAIL( mpc_demux_SP(d, size, (mpc_uint32_t) b.size) );
} else if (memcmp(b.key, "ST", 2) == 0) {
MPC_AUTO_FAIL( mpc_demux_ST(d) );
}
d->bits_reader.buff += b.size;
size = mpc_bits_get_block(&d->bits_reader, &b);
}
d->bits_reader.buff -= size;
if (d->si.stream_version == 0) // si not initialized !!!
return MPC_STATUS_FAIL;
} else {
return MPC_STATUS_FAIL;
}
return MPC_STATUS_OK;
}
mpc_demux * mpc_demux_init(mpc_reader * p_reader)
{
mpc_demux* p_tmp = malloc(sizeof(mpc_demux));
if (p_tmp != 0) {
memset(p_tmp, 0, sizeof(mpc_demux));
p_tmp->r = p_reader;
p_tmp->chap_nb = -1;
mpc_demux_clear_buff(p_tmp);
if (mpc_demux_header(p_tmp) == MPC_STATUS_OK &&
mpc_demux_seek_init(p_tmp) == MPC_STATUS_OK) {
p_tmp->d = mpc_decoder_init(&p_tmp->si);
} else {
if (p_tmp->seek_table)
free(p_tmp->seek_table);
free(p_tmp);
p_tmp = 0;
}
}
return p_tmp;
}
void mpc_demux_exit(mpc_demux * d)
{
mpc_decoder_exit(d->d);
free(d->seek_table);
free(d->chap);
free(d);
}
void mpc_demux_get_info(mpc_demux * d, mpc_streaminfo * i)
{
memcpy(i, &d->si, sizeof d->si);
}
static mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i)
{
mpc_bits_reader r;
if (d->si.stream_version >= 8) {
i->is_key_frame = MPC_FALSE;
if (d->block_frames == 0) {
mpc_block b = {{0,0},0};
d->bits_reader.count &= -8;
if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
d->seek_table[d->seek_table_size] = (mpc_seek_t) mpc_demux_pos(d);
d->seek_table_size ++;
}
mpc_demux_fill(d, 11, MPC_BUFFER_FULL); // max header block size
mpc_bits_get_block(&d->bits_reader, &b);
while( memcmp(b.key, "AP", 2) != 0 ) { // scan all blocks until audio
MPC_AUTO_FAIL( mpc_check_key(b.key) );
if (memcmp(b.key, "SE", 2) == 0) { // end block
i->bits = -1;
return MPC_STATUS_OK;
}
if (mpc_demux_fill(d, 11 + (mpc_uint32_t) b.size, MPC_BUFFER_FULL) < b.size)
return MPC_STATUS_FAIL;
d->bits_reader.buff += b.size;
mpc_bits_get_block(&d->bits_reader, &b);
}
d->block_bits = (mpc_uint32_t) b.size * 8;
d->block_frames = 1 << d->si.block_pwr;
i->is_key_frame = MPC_TRUE;
}
if (d->buffer + d->bytes_total - d->bits_reader.buff <= MAX_FRAME_SIZE)
mpc_demux_fill(d, (d->block_bits >> 3) + 1, MPC_BUFFER_FULL);
r = d->bits_reader;
mpc_decoder_decode_frame(d->d, &d->bits_reader, i);
d->block_bits -= ((d->bits_reader.buff - r.buff) << 3) + r.count - d->bits_reader.count;
d->block_frames--;
if (d->block_bits < 0 || (d->block_frames == 0 && d->block_bits > 7))
return MPC_STATUS_FAIL;
} else {
if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
d->seek_table[d->seek_table_size] = (mpc_seek_t) mpc_demux_pos(d);
d->seek_table_size ++;
}
mpc_demux_fill(d, MAX_FRAME_SIZE, MPC_BUFFER_FULL | MPC_BUFFER_SWAP);
d->block_bits = (mpc_int_t) mpc_bits_read(&d->bits_reader, 20); // read frame size
if (MPC_FRAME_LENGTH > d->d->samples - d->d->decoded_samples - 1) d->block_bits += 11; // we will read last frame size
r = d->bits_reader;
mpc_decoder_decode_frame(d->d, &d->bits_reader, i);
if (i->bits != -1 && d->block_bits != ((d->bits_reader.buff - r.buff) << 3) + r.count - d->bits_reader.count)
return MPC_STATUS_FAIL;
}
if (i->bits != -1 && d->buffer + d->bytes_total < d->bits_reader.buff + ((8 - d->bits_reader.count) >> 3))
return MPC_STATUS_FAIL;
return MPC_STATUS_OK;
}
mpc_status mpc_demux_decode(mpc_demux * d, mpc_frame_info * i) {
mpc_status s = mpc_demux_decode_inner(d, i);
if (MPC_IS_FAILURE(s))
i->bits = -1; // we pretend it's end of file
return s;
}
mpc_status mpc_demux_seek_second(mpc_demux * d, double seconds)
{
return mpc_demux_seek_sample(d, (mpc_int64_t)(seconds * (double)d->si.sample_freq + 0.5));
}
mpc_status mpc_demux_seek_sample(mpc_demux * d, mpc_uint64_t destsample)
{
mpc_uint32_t fwd, samples_to_skip, i;
mpc_uint32_t block_samples = MPC_FRAME_LENGTH << d->si.block_pwr;
mpc_seek_t fpos;
destsample += d->si.beg_silence;
if (destsample > d->si.samples) destsample = d->si.samples;
fwd = (mpc_uint32_t) (destsample / block_samples);
samples_to_skip = MPC_DECODER_SYNTH_DELAY +
(mpc_uint32_t) (destsample % block_samples);
if (d->si.stream_version == 7) {
if (fwd > 32) {
fwd -= 32;
samples_to_skip += MPC_FRAME_LENGTH * 32;
} else {
samples_to_skip += MPC_FRAME_LENGTH * fwd;
fwd = 0;
}
}
i = fwd >> (d->seek_pwr - d->si.block_pwr);
if (i >= d->seek_table_size)
i = d->seek_table_size - 1;
fpos = d->seek_table[i];
i <<= d->seek_pwr - d->si.block_pwr;
d->d->decoded_samples = i * block_samples;
if (d->si.stream_version >= 8) {
mpc_block b;
int size;
mpc_demux_seek(d, fpos, 11);
size = mpc_bits_get_block(&d->bits_reader, &b);
while(i < fwd) {
if (memcmp(b.key, "AP", 2) == 0) {
if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
d->seek_table[d->seek_table_size] = (mpc_seek_t) mpc_demux_pos(d) - 8 * size;
d->seek_table_size ++;
}
d->d->decoded_samples += block_samples;
i++;
}
fpos += ((mpc_uint32_t)b.size + size) * 8;
mpc_demux_seek(d, fpos, 11);
size = mpc_bits_get_block(&d->bits_reader, &b);
}
d->bits_reader.buff -= size;
} else {
mpc_decoder_reset_scf(d->d, fwd != 0);
mpc_demux_seek(d, fpos, 4);
for( ; i < fwd; i++){
if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
d->seek_table[d->seek_table_size] = (mpc_seek_t) mpc_demux_pos(d);
d->seek_table_size ++;
}
d->d->decoded_samples += block_samples;
fpos += mpc_bits_read(&d->bits_reader, 20) + 20;
mpc_demux_seek(d, fpos, 4);
}
}
d->d->samples_to_skip = samples_to_skip;
return MPC_STATUS_OK;
}
void mpc_set_replay_level(mpc_demux * d, float level, mpc_bool_t use_gain,
mpc_bool_t use_title, mpc_bool_t clip_prevention)
{
float peak = (float) ( use_title ? d->si.peak_title : d->si.peak_album );
float gain = (float) ( use_title ? d->si.gain_title : d->si.gain_album );
if(!use_gain && !clip_prevention)
return;
if(!peak)
peak = 1.;
else
peak = (float) ( (1 << 15) / pow(10, peak / (20 * 256)) );
if(!gain)
gain = 1.;
else
gain = (float) pow(10, (level - gain / 256) / 20);
if(clip_prevention && (peak < gain || !use_gain))
gain = peak;
mpc_decoder_scale_output(d->d, gain);
}

@ -0,0 +1,144 @@
/*
Copyright (c) 2005-2009, The Musepack Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the The Musepack Development Team nor the
names of its contributors may be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// \file mpc_reader.c
/// Contains implementations for simple file-based mpc_reader
#include <mpc/reader.h>
#include "internal.h"
#include <stdio.h>
#define STDIO_MAGIC 0xF34B963C ///< Just a random safe-check value...
typedef struct mpc_reader_stdio_t {
FILE *p_file;
int file_size;
mpc_bool_t is_seekable;
mpc_int32_t magic;
} mpc_reader_stdio;
/// mpc_reader callback implementations
static mpc_int32_t
read_stdio(mpc_reader *p_reader, void *ptr, mpc_int32_t size)
{
mpc_reader_stdio *p_stdio = (mpc_reader_stdio*) p_reader->data;
if(p_stdio->magic != STDIO_MAGIC) return MPC_STATUS_FAIL;
return (mpc_int32_t) fread(ptr, 1, size, p_stdio->p_file);
}
static mpc_bool_t
seek_stdio(mpc_reader *p_reader, mpc_int32_t offset)
{
mpc_reader_stdio *p_stdio = (mpc_reader_stdio*) p_reader->data;
if(p_stdio->magic != STDIO_MAGIC) return MPC_FALSE;
return p_stdio->is_seekable ? fseek(p_stdio->p_file, offset, SEEK_SET) == 0 : MPC_FALSE;
}
static mpc_int32_t
tell_stdio(mpc_reader *p_reader)
{
mpc_reader_stdio *p_stdio = (mpc_reader_stdio*) p_reader->data;
if(p_stdio->magic != STDIO_MAGIC) return MPC_STATUS_FAIL;
return ftell(p_stdio->p_file);
}
static mpc_int32_t
get_size_stdio(mpc_reader *p_reader)
{
mpc_reader_stdio *p_stdio = (mpc_reader_stdio*) p_reader->data;
if(p_stdio->magic != STDIO_MAGIC) return MPC_STATUS_FAIL;
return p_stdio->file_size;
}
static mpc_bool_t
canseek_stdio(mpc_reader *p_reader)
{
mpc_reader_stdio *p_stdio = (mpc_reader_stdio*) p_reader->data;
if(p_stdio->magic != STDIO_MAGIC) return MPC_FALSE;
return p_stdio->is_seekable;
}
mpc_status
mpc_reader_init_stdio_stream(mpc_reader * p_reader, FILE * p_file)
{
mpc_reader tmp_reader; mpc_reader_stdio *p_stdio; int err;
p_stdio = NULL;
memset(&tmp_reader, 0, sizeof tmp_reader);
p_stdio = malloc(sizeof *p_stdio);
if(!p_stdio) return MPC_STATUS_FAIL;
memset(p_stdio, 0, sizeof *p_stdio);
p_stdio->magic = STDIO_MAGIC;
p_stdio->p_file = p_file;
p_stdio->is_seekable = MPC_TRUE;
err = fseek(p_stdio->p_file, 0, SEEK_END);
if(err < 0) goto clean;
err = ftell(p_stdio->p_file);
if(err < 0) goto clean;
p_stdio->file_size = err;
err = fseek(p_stdio->p_file, 0, SEEK_SET);
if(err < 0) goto clean;
tmp_reader.data = p_stdio;
tmp_reader.canseek = canseek_stdio;
tmp_reader.get_size = get_size_stdio;
tmp_reader.read = read_stdio;
tmp_reader.seek = seek_stdio;
tmp_reader.tell = tell_stdio;
*p_reader = tmp_reader;
return MPC_STATUS_OK;
clean:
if(p_stdio && p_stdio->p_file)
fclose(p_stdio->p_file);
free(p_stdio);
return MPC_STATUS_FAIL;
}
mpc_status
mpc_reader_init_stdio(mpc_reader *p_reader, const char *filename)
{
FILE * stream = fopen(filename, "rb");
if (stream == NULL) return MPC_STATUS_FAIL;
return mpc_reader_init_stdio_stream(p_reader,stream);
}
void
mpc_reader_exit_stdio(mpc_reader *p_reader)
{
mpc_reader_stdio *p_stdio = (mpc_reader_stdio*) p_reader->data;
if(p_stdio->magic != STDIO_MAGIC) return;
fclose(p_stdio->p_file);
free(p_stdio);
p_reader->data = NULL;
}

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

Loading…
Cancel
Save