diff options
author | Dave Burke <daveburke@google.com> | 2012-04-17 09:51:45 -0700 |
---|---|---|
committer | Dave Burke <daveburke@google.com> | 2012-04-17 23:04:43 -0700 |
commit | 9bf37cc9712506b2483650c82d3c41152337ef7e (patch) | |
tree | 77db44e2bae06e3d144b255628be2b7a55c581d3 /libSBRenc/src/resampler.h | |
parent | a37315fe10ee143d6d0b28c19d41a476a23e63ea (diff) | |
download | ODR-AudioEnc-9bf37cc9712506b2483650c82d3c41152337ef7e.tar.gz ODR-AudioEnc-9bf37cc9712506b2483650c82d3c41152337ef7e.tar.bz2 ODR-AudioEnc-9bf37cc9712506b2483650c82d3c41152337ef7e.zip |
Fraunhofer AAC codec.
License boilerplate update to follow.
Change-Id: I2810460c11a58b6d148d84673cc031f3685e79b5
Diffstat (limited to 'libSBRenc/src/resampler.h')
-rw-r--r-- | libSBRenc/src/resampler.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/libSBRenc/src/resampler.h b/libSBRenc/src/resampler.h new file mode 100644 index 0000000..0815ba9 --- /dev/null +++ b/libSBRenc/src/resampler.h @@ -0,0 +1,109 @@ +/**************************************************************************** + + (C) Copyright Fraunhofer IIS (2004) + All Rights Reserved + + Please be advised that this software and/or program delivery is + Confidential Information of Fraunhofer and subject to and covered by the + + Fraunhofer IIS Software Evaluation Agreement + between Google Inc. and Fraunhofer + effective and in full force since March 1, 2012. + + You may use this software and/or program only under the terms and + conditions described in the above mentioned Fraunhofer IIS Software + Evaluation Agreement. Any other and/or further use requires a separate agreement. + + + This software and/or program is protected by copyright law and international + treaties. Any reproduction or distribution of this software and/or program, + or any portion of it, may result in severe civil and criminal penalties, and + will be prosecuted to the maximum extent possible under law. + + $Id$ + +*******************************************************************************/ +#ifndef __RESAMPLER_H +#define __RESAMPLER_H +/*! + \file + \brief Fixed Point Resampler Tool Box $Revision: 11752 $ +*/ + +/*! + \mainpage Fixed Point Resampler Library Documentation + + Information in this SDK is subject to change without notice. Companies, + names, and data used in examples herein are fictitious unless otherwise + noted. + + Product and corporate names may be trademarks or registered trademarks + of other companies. They are used for explanation only, with no intent + to infringe. + + No part of this publication may be reproduced or utilized in any form or + by any means, electronic or mechanical, including photocopying and + microfilm, without permission in writing from the publisher. +*/ + +#include "common_fix.h" + + +/**************************************************************************/ +/* BIQUAD Filter Structure */ +/**************************************************************************/ + +#define MAXNR_SECTIONS (15) + +#ifdef RS_BIQUAD_STATES16 +typedef FIXP_SGL FIXP_BQS; +#else +typedef FIXP_DBL FIXP_BQS; +#endif + +typedef struct +{ + FIXP_BQS states[MAXNR_SECTIONS+1][2]; /*! state buffer */ + const FIXP_SGL *coeffa; /*! pointer to filter coeffs */ + FIXP_DBL gain; /*! overall gain factor */ + int Wc; /*! normalized cutoff freq * 1000 */ + int noCoeffs; /*! number of filter coeffs sets */ + int ptr; /*! index to rinbuffers */ +} LP_FILTER; + + +/**************************************************************************/ +/* Downsampler Structure */ +/**************************************************************************/ + +typedef struct +{ + LP_FILTER downFilter; /*! filter instance */ + int ratio; /*! downsampling ration */ + int delay; /*! downsampling delay (source fs) */ + int pending; /*! number of pending output samples */ +} DOWNSAMPLER; + + +/** + * \brief Initialized a given downsampler structure. + */ +INT FDKaacEnc_InitDownsampler(DOWNSAMPLER *DownSampler, /*!< pointer to downsampler instance */ + INT Wc, /*!< normalized cutoff freq * 1000 */ + INT ratio); /*!< downsampler ratio */ + +/** + * \brief Downsample a set of audio samples. numInSamples must be at least equal to the + * downsampler ratio. + */ +INT FDKaacEnc_Downsample(DOWNSAMPLER *DownSampler, /*!< pointer to downsampler instance */ + INT_PCM *inSamples, /*!< pointer to input samples */ + INT numInSamples, /*!< number of input samples */ + INT inStride, /*!< increment of input samples */ + INT_PCM *outSamples, /*!< pointer to output samples */ + INT *numOutSamples, /*!< pointer tp number of output samples */ + INT outstride); /*!< increment of output samples */ + + + +#endif /* __RESAMPLER_H */ |