media/libsoundtouch/src/InterpolateShannon.h

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     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

mercurial