ref: 066f3cc7bac1d1a85f5274e0ec90165b3cfcbec6
dir: /tf_main.h/
/*
* Main definitions
*
* Copyright (c) 1999 M. Bakker
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/**************************************************************************
Version Control Information Method: CVS
Identifiers:
$Revision: 1.10 $
$Date: 2000/10/05 08:39:03 $ (check in)
$Author: menno $
*************************************************************************/
#ifndef _TF_MAIN_H_INCLUDED
#define _TF_MAIN_H_INCLUDED
#include "bitstream.h"
#include "block.h"
/* AAC Profile */
enum AAC_PROFILE { MAIN, LOW, SSR };
/* select different pre-/post- processing modules TK */
enum PP_MOD_SELECT { NONE=0x0, AAC_PP=0x1 };
/* select different T/F modules */
enum TF_MOD_SELECT { VM_TF_SOURCE=0x1, MDCT_AAC=0x2, MDCT_UER=0x4, QMF_MDCT_SONY=0x8, LOW_DELAY_UNH=0x10 };
/* select different Q&C modules */
enum QC_MOD_SELECT { VM_QC_SOURCE=0x1, AAC_QC=0x2, MDCT_VALUES_16BIT=0x4, UER_QC=0x8, NTT_VQ=0x10 , AAC_PRED=0x20};
/* name the audio channels */
enum CHANN_ASS {
MONO_CHAN=0,
LEFT_CHAN=0,
RIGHT_CHAN=1,
MAX_CHANNELS
};
/* audio channel configuration coding */
enum CH_CONFIG { CHC_MONO, CHC_DUAL, CHC_JOINT_DUAL, CHC_5CHAN, CHC_MODES };
/* transport layer type */ /* added "NO_SYNCWORD" by NI (28 Aug. 1996) */
enum TRANSPORT_STREAM { NO_TSTREAM, AAC_RAWDATA_TSTREAM, LENINFO_TSTREAM,
NO_SYNCWORD};
enum SR_CODING { SR8000, SR11025, SR12000, SR16000, SR22050, SR24000, SR32000, SR44100, SR48000, SR64000, SR88200, SR96000, MAX_SAMPLING_RATES };
enum WINDOW_TYPE {
ONLY_LONG_WINDOW,
LONG_SHORT_WINDOW,
ONLY_SHORT_WINDOW,
SHORT_LONG_WINDOW,
SHORT_MEDIUM_WINDOW,
MEDIUM_LONG_WINDOW,
LONG_MEDIUM_WINDOW,
MEDIUM_SHORT_WINDOW,
ONLY_MEDIUM_WINDOW,
LONG_START_WINDOW,
EIGHT_SHORT_WINDOW,
LONG_STOP_WINDOW
};
enum AAC_WINDOW_SEQUENCE { /* TK */
ONLY_LONG_SEQUENCE = ONLY_LONG_WINDOW,
LONG_START_SEQUENCE = LONG_SHORT_WINDOW,
EIGHT_SHORT_SEQUENCE = ONLY_SHORT_WINDOW,
LONG_STOP_SEQUENCE = SHORT_LONG_WINDOW
};
enum WIN_SWITCH_MODE {
STATIC_LONG,
STATIC_MEDIUM,
STATIC_SHORT,
LS_STARTSTOP_SEQUENCE,
LM_STARTSTOP_SEQUENCE,
MS_STARTSTOP_SEQUENCE,
LONG_SHORT_SEQUENCE,
LONG_MEDIUM_SEQUENCE,
MEDIUM_SHORT_SEQUENCE,
LONG_MEDIUM_SHORT_SEQUENCE,
FFT_PE_WINDOW_SWITCHING
};
#define NSFB_LONG 51
#define NSFB_SHORT 15
#define MAX_SHORT_IN_LONG_BLOCK 8
#define MAX_SHORT_WINDOWS 8
/* if static memory allocation is used, this value tells the max. nr of
audio channels to be supported */
/*#define MAX_TIME_CHANNELS (MAX_CHANNELS)*/
#define MAX_TIME_CHANNELS 6
/* max. number of scale factor bands */
#define MAX_SCFAC_BANDS ((NSFB_SHORT+1)*MAX_SHORT_IN_LONG_BLOCK)
void freq2buffer(
double p_in_data[],
double p_out_data[],
double p_overlap[],
enum WINDOW_TYPE block_type,
Window_shape wfun_select,
Window_shape wfun_select_prev,
Mdct_in overlap_select
);
void buffer2freq(
double p_in_data[],
double p_out_mdct[],
double p_overlap[],
enum WINDOW_TYPE block_type,
Window_shape wfun_select,
Window_shape wfun_select_prev,
Mdct_in overlap_select
);
void specFilter (double p_in[],
double p_out[],
int samp_rate,
int lowpass_freq,
int specLen
);
#endif /* #ifndef _TF_MAIN_H_INCLUDED */