Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 ////////////////////////////////////////////////////////////////////////////////
2 ///
3 /// Sample interpolation routine using 8-tap band-limited Shannon interpolation
4 /// with kaiser window.
5 ///
6 /// Notice. This algorithm is remarkably much heavier than linear or cubic
7 /// interpolation, and not remarkably better than cubic algorithm. Thus mostly
8 /// for experimental purposes
9 ///
10 /// Author : Copyright (c) Olli Parviainen
11 /// Author e-mail : oparviai 'at' iki.fi
12 /// SoundTouch WWW: http://www.surina.net/soundtouch
13 ///
14 ////////////////////////////////////////////////////////////////////////////////
15 //
16 // $Id: InterpolateShannon.h 179 2014-01-06 18:41:42Z oparviai $
17 //
18 ////////////////////////////////////////////////////////////////////////////////
19 //
20 // License :
21 //
22 // SoundTouch audio processing library
23 // Copyright (c) Olli Parviainen
24 //
25 // This library is free software; you can redistribute it and/or
26 // modify it under the terms of the GNU Lesser General Public
27 // License as published by the Free Software Foundation; either
28 // version 2.1 of the License, or (at your option) any later version.
29 //
30 // This library is distributed in the hope that it will be useful,
31 // but WITHOUT ANY WARRANTY; without even the implied warranty of
32 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
33 // Lesser General Public License for more details.
34 //
35 // You should have received a copy of the GNU Lesser General Public
36 // License along with this library; if not, write to the Free Software
37 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
38 //
39 ////////////////////////////////////////////////////////////////////////////////
41 #ifndef _InterpolateShannon_H_
42 #define _InterpolateShannon_H_
44 #include "RateTransposer.h"
45 #include "STTypes.h"
47 namespace soundtouch
48 {
50 class InterpolateShannon : public TransposerBase
51 {
52 protected:
53 void resetRegisters();
54 int transposeMono(SAMPLETYPE *dest,
55 const SAMPLETYPE *src,
56 int &srcSamples);
57 int transposeStereo(SAMPLETYPE *dest,
58 const SAMPLETYPE *src,
59 int &srcSamples);
60 int transposeMulti(SAMPLETYPE *dest,
61 const SAMPLETYPE *src,
62 int &srcSamples);
64 float fract;
66 public:
67 InterpolateShannon();
68 };
70 }
72 #endif