Skip to content

Commit

Permalink
Added pristine files for libmodplug-0.8.9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Oct 12, 2017
1 parent 6ed68a3 commit 3cb2bee
Show file tree
Hide file tree
Showing 68 changed files with 78,204 additions and 0 deletions.
22 changes: 22 additions & 0 deletions external/libmodplug-0.8.9.0/AUTHORS
@@ -0,0 +1,22 @@
XMMS plugin:
Kenton Varda <temporal@gauge3d.org>
Konstanty Bialkowski <konstanty@ieee.org>

General Maintainence:
Konstanty Bialkowski <konstanty@ieee.org>

Sound Engine:
Olivier Lapicque <olivierl@jps.net>

BZip2 support:
Colin DeVilbiss <crdevilb@mtu.edu>
Spline and Fir resamplers:
Markus Fick <marf@gmx.net>
Endianness Fixes:
Adam Goode <adam@evdebs.org>
Endianness Fixes + Implementation of C 24bit,32bit functions:
Marco Trillo <toad@arsystel.com>
Fixes to AGC/Clipping, Frequency Limit, Other Fixes:
Alistair John Strachan <s0348365@sms.ed.ac.uk>
AMD64 Fix (long long vs long vs int)
Tyler Montbriand <tsm@accesscomm.ca>
1 change: 1 addition & 0 deletions external/libmodplug-0.8.9.0/COPYING
@@ -0,0 +1 @@
ModPlug-XMMS and libmodplug are now in the public domain.
299 changes: 299 additions & 0 deletions external/libmodplug-0.8.9.0/ChangeLog
@@ -0,0 +1,299 @@
changes:
date = 24-apr-2017 [Konstanty Bialkowski/Lionel Debroux/SEZERO]
Version 0.8.9.0
OOB Write and Read fixes + a number of divide by zero fixes.
(ABC, PAT, AMF, MDL, PSM, XM, IT, MMCMP, MID)
There were some patches 2010-2016 which were recorded here.
date = 21-apr-2009 [Konstanty Bialkowski/OpenMPT/Novell (Stanislav Brabec)]
->file: src/load_amf.cpp
where: whole file
what: added const declarations to read only variables
what: fixed delete function
->file: src/fastmix.cpp
where: X86_Convert32To24
what: conversion to 24bit was incorrect
->file: src/load_mdl.cpp
where: init of m_lpszSongComments
what: fixed delete function to be array version (Reported by
David Binderman / Stanislav Brabec)
->file: src/load_pat.cpp
where: memcpy to .reserved
what: changed fixed valid of 36 to sizeof(reserved)
(Reported by Manfred Tremmel / Stanislav Brabec)
date = 20-apr-2009 [Konstanty Bialkowski]
->file: src/load_meb.cpp
where: LoadMED
what: fixed integer boundary condition checking code (fixing
exploit)
Details of exploit (and creator of test.s3m for exploit)
http://www.securityfocus.com/bid/30801/info
http://www.15897.com/blog/post/QianQianJingTing-mod-buffer-overflow-POC.html
->file: src/load_abc.cpp
where: TestABC
what: Made ABC detection code more robust
->file: src/load_abc.cpp, sndfile.cpp, snd_fx.cpp
where: various
what: change constant variables to explicitly use const
definition
(Thanks to Leandro Nini/Diego "Flameeyes" Pettenò)
->file: src/table.cpp -> src/table.h
where: rename of file
what: moved tables to separate file
(Thanks to Leandro Nini/Diego "Flameeyes" Pettenò)

date = 15-apr-2009 [Konstanty Bialkowski]
->file: src/load_abc.cpp
where: TestABC
what: made sure obviously binary files do not try to get
loaded as ABC
where: abc_addchordname
what: made sure first argument was const char * (not just char
*)
->file: src/sndfile.cpp
where: format conversion routines
what: made sure (*a++) = func(*a), is executed properly, by
splitting into two lines
-file: src/libmodplug/sndfile.h
where: IMixPlugin
what: made sure there is a virtual destructor (to avoid
warnings)
->file: src/load_ptm.cpp
where: mixing routine
what: bswap32 was used on a uint16_t [2] array, and when gcc
uses -O2 (or greater) optimization, this may not do what is
intended.
date = 7-apr-2009 [Konstanty Bialkowski/Anthony Ramine]
-> file: src/load_abc.cpp,load_mid.cpp,load_pat.cpp
where: whole file(s)
what: removed use of ULONG, and changed to uint32_t
where: few functions
what: removed uint, and replaced with uint32_t
date = 7-apr-2009 [Zed Pobre/Debian]
-> file: src/libmodplug.pc
where: file.
what: split Libs into Libs.private
date = 2-nov-2006 [Alec Berryman/CVE-2006-4192]
-> file: src/sndfile.cpp
where: ReadSample
what: prevent buffer overflow [as reported in CVE-2006-4192]
date = 2-nov-2006 [Konstanty Bialkowski/Macro Trillo]
-> file: configure.in,config.h,load_abc.cpp,fastmix.cpp
where: Automake 2.60 used
what: In order to properly use stdint.h we should make use of the new macros for its detection, on systems with automake 2.59 but where stdint.h is available, this can be removed. (Patch by Macro Trillo)
-> file: src/load_amf.cpp, src/fastmix.cpp
where: Licensing
what: all old code was relicensed for public domain, and somehow an old version was included with GPL notices
date = 20-jul-2006 [Peter Grootswagers]
-> file: src/load_abc.cpp
where: instrument loader functions
what: replaced with correspondig functions in load_pat.cpp
-> file: src/load_mid.cpp
where: whole source
what: new loader for midi files
-> file: src/load_pat.cpp
where: whole source
what: new loader for GUS instrument patch files (pat)
-> file: src/load_pat.h
where: whole source
what: new header declaring reuseable GUS instrument patch functions (pat)
-> file: README
where: 2. Features
what: added description of load_mid.cpp and load_pat.cpp
-> file: src/Makefile.am
where: libmodplug_la_SOURCES
what: added load_mid.cpp and load_pat.cpp
where: libmodpluginclude_HEADERS
what: added load_pat.h
-> file: src/sndfile.cpp
where: function CSoundFile::Create()
what: added call to ReadMID and ReadPAT
-> file: src/libmodplug/sndfile.h
where: #define
what: added MOD_TYPE_PAT (MOD_TYPE_MID already there...)
where: class CSoundFile
what: added public function members ReadMID, TestMID, ReadPat, TestPAT and PATsample
date = 24-jun-2006 [Peter Grootswagers]
-> file: src/load_abc.cpp
where: whole source
what: new loader for abc files
-> file: README
where: 2. Features
what: added description of load_abc.cpp
-> file: src/Makefile.am
where: libmodplug_la_SOURCES
what: added load_abc.cpp
-> file: src/sndfile.cpp
where: function CSoundFile::Create()
what: added call to ReadABC
-> file: src/libmodplug/sndfile.h
where: #define
what: added MOD_TYPE_ABC
where: class CSoundFile
what: added public function members ReadABC and TestABC
date = 20-mar-2006 [Macro Trillo / "Custom libmodplug project"]
-> file : src/load_s3m.cpp
-> file : src/load_far.cpp
what: fixed endianness
date = 20-mar-2006 [Alistair John Strachan]
....

Many other changes need to be documented here...

GCC3 fixes, GCC4 fixes, More Archive Types.

date = 09-feb-2001 [Markus Fick]
-> file: fastmix.cpp
where: spline creation, spline macros
what: added unity gain clamp code, added Quantizer_Bits(shift) preprocessor constants
where: fir creation, fir macros
what: - removed x<pi/2 condition in coef creation
- added quantizer_bits(shift) preprocessor constants
- set default quantizer bits to 15 instead 14 (scale now 32768 instead 16384)
there should not occure any overflows during fir response calculation because
of the symmetric form of filter and the position of the negative fir coefs
- changed final volume calculation for 16bit samples (quality enhancement)

date = 08-feb-2001 [Markus Fick]
-> file: sndmix.cpp
where: function ReadNote()
what: modified behaviour of modplug so that interpolation is only deactivated if
a) the user selects "no interpolation"
b) linear interpolation is set and speed incr. > 0xff00
=> if spline or fir is active then we use always interpolation

-> file: fastmix.cpp
where: spline macros
what: changed spline macros to use precalculated tables (way faster)
where: file
what: - implemented spline table precalculator
- changed fir precalculator + macros (for higher quality and clearer source)
- added some comments and documentation
comment:
- preprocessor constant: SPLINE_FRACBITS
) controls quality/memory usage
range is [4..14] inclusive
4 = low quality, low memory usage
14 = highest quality, highest memory usage (1L<<14)*4*2 bytes
- preprocessor constant: WFIR_FRACBITS
) controls quality/memory usage
range is [4..12] inclusive
4 = low quality, low mu
12 = highest quality, highest memory usage ((1L<<(12+1))+1)*8*2 bytes

date = 07-feb-2001 [Markus Fick]
-> file: fastmix.cpp
where: spline macros
what: fixed error in coef calculation

date = 07-feb-2001 [Markus Fick]
-> file: sndfile.h
where: class definition of soundfile
what: removed InitFIR + DoneFIR function prototypes
-> file: sndfile.cpp
function:CSoundFile::CSoundFile()
what: [modify] removed call to CSoundFile::InitFIRMixer( )

function:CSoundFile::~CSoundFile()
what: [modify] removed call to CSoundFile::DoneFIRMixer( )
-> file: fastmix.cpp
where: spline macros
what: changed formula + added some guard bits to calculation

where: fir macros + implementation
what: - moved CSoundfile::FIR funtions to CzFIR (single instance sfir)
- changed fir macros to support CzFIR class

date = 06-feb-2001 [Markus Fick]
-> file: fastmix.cpp
where: macros
what: - removed fir filter with coef interpolation
- add spline interpolation
RM: now modplug->select( SPLINE ) selects spline and
modplug->select( POLYPHASE ) selects 8tap fir filter

date = 05-feb-2001 [Markus Fick]
-> file: fastmix.cpp
where: macros + filter order
what: [modify] changed filter order to 8 instead of 10

-> file: fastmix.cpp
what: new macros+switch for fir-interpolator with coef interpolation

date = 04-feb-2001 [Markus Fick]

-> file: sndfile.h
where: class CSoundFile (bottom)
what: [add] methods for FIR mixer support
1. int InitFIRInterpolator( );
2. int DoneFIRInterpolator( );

-> file: sndfile.cpp
function:CSoundFile::CSoundFile()
what: [modify] add call to CSoundFile::InitFIRMixer( )

function:CSoundFile::~CSoundFile()
what: [modify] add call to CSoundFile::DoneFIRMixer( )

-> file: fastmix.cpp
new include: <math.h>
why: need it for fir-coef calculation
new function: CSoundFile::InitFIRMixer( ) // initializes fir filter lookup (if necessary)
new function: CSoundFile::DoneFIRMixer( ) // decrements ReferenceCounter (for static vars) and deinitializes fir struct (if possible).
new defs:
#define FIRCPWBN 10 // log2 of number of precalculated wings (-(1L<<FIRCPWBN)..(1L<<FIRCPWBN))
#define FIRLOPOSSHIFT (16-(FIRCPWBN+1)) // shift for lopos of sampleposition -> (16 - FIRCPWBN - 1)
#define FIRLEN 9 // number(-1) of multiplications per sample
#define FIRCUT 0.90f // cutoff of filter
#define MIXNDX_FIRMIXERSRC 0x20 // src-type for firfilter
new vars:
static signed short *cFirLut; // lulines
static int bFirInitialized = 0; // initialized?
static int nFirOrder = FIRLEN; // order (modplug has 4smps pre/post extension, so limit this to 9)
static float nFirFC = FIRCUT; // cutoff (normalized to pi/2)
static int nFirCpw = (1L<<FIRCPWBN); // number of precalculted filter lines
static int nFirUsers = 0; // reference counter
new macros:
#define SNDMIX_GETMONOVOL8FIRFILTER
#define SNDMIX_GETMONOVOL16FIRFILTER
#define SNDMIX_GETSTEREOVOL8FIRFILTER
#define SNDMIX_GETSTEREOVOL16FIRFILTER
new mixer interface macros:
BEGIN_MIX_INTERFACE(Mono8BitFirFilterMix)
BEGIN_MIX_INTERFACE(Mono16BitFirFilterMix)
BEGIN_RAMPMIX_INTERFACE(Mono8BitFirFilterRampMix)
BEGIN_RAMPMIX_INTERFACE(Mono16BitFirFilterRampMix)
BEGIN_MIX_INTERFACE(FastMono8BitFirFilterMix)
BEGIN_MIX_INTERFACE(FastMono16BitFirFilterMix)
BEGIN_FASTRAMPMIX_INTERFACE(FastMono8BitFirFilterRampMix)
BEGIN_FASTRAMPMIX_INTERFACE(FastMono16BitFirFilterRampMix)
BEGIN_MIX_INTERFACE(Stereo8BitFirFilterMix)
BEGIN_MIX_INTERFACE(Stereo16BitFirFilterMix)
BEGIN_RAMPMIX_INTERFACE(Stereo8BitFirFilterRampMix)
BEGIN_RAMPMIX_INTERFACE(Stereo16BitFirFilterRampMix)
BEGIN_MIX_FLT_INTERFACE(FilterMono8BitFirFilterMix)
BEGIN_MIX_FLT_INTERFACE(FilterMono16BitFirFilterMix)
BEGIN_RAMPMIX_FLT_INTERFACE(FilterMono8BitFirFilterRampMix)
BEGIN_RAMPMIX_FLT_INTERFACE(FilterMono16BitFirFilterRampMix)
BEGIN_MIX_STFLT_INTERFACE(FilterStereo8BitFirFilterMix)
BEGIN_MIX_STFLT_INTERFACE(FilterStereo16BitFirFilterMix)
BEGIN_RAMPMIX_STFLT_INTERFACE(FilterStereo8BitFirFilterRampMix)
BEGIN_RAMPMIX_STFLT_INTERFACE(FilterStereo16BitFirFilterRampMix)
modified:
const LPMIXINTERFACE gpMixFunctionTable[2*2*16] // to hold new fir mixer interface
const LPMIXINTERFACE gpFastMixFunctionTable[2*2*16] // to hold new fir mixer interface
functioN: UINT CSoundFile::CreateStereoMix(int count)
new:
if (!(pChannel->dwFlags & CHN_NOIDO))
{
// use hq-fir mixer?
if( ((gdwSoundSetup & (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) == (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) ||
((gdwSoundSetup & (SNDMIX_HQRESAMPLER)) == (SNDMIX_HQRESAMPLER)) )
nFlags += MIXNDX_FIRMIXERSRC;
else
nFlags += MIXNDX_LINEARSRC; // use
}
was:
if (!(pChannel->dwFlags & CHN_NOIDO))
{
nFlags += MIXNDX_LINEARSRC; // use
}
Expand Down
3 changes: 3 additions & 0 deletions external/libmodplug-0.8.9.0/INSTALL
@@ -0,0 +1,3 @@
(1) ./configure
(2) make
(3) su -c "make install"
11 changes: 11 additions & 0 deletions external/libmodplug-0.8.9.0/Makefile.am
@@ -0,0 +1,11 @@
ACLOCAL_AMFLAGS = -I m4

SUBDIRS = src

EXTRA_DIST = \
AUTHORS COPYING ChangeLog \
INSTALL README TODO

pkgconfigdir=${libdir}/pkgconfig
pkgconfig_DATA=libmodplug.pc

0 comments on commit 3cb2bee

Please sign in to comment.