1e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
2e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Copyright 2003-2010, VisualOn, Inc.
3e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
4e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Licensed under the Apache License, Version 2.0 (the "License");
5e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** you may not use this file except in compliance with the License.
6e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** You may obtain a copy of the License at
7e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
8e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **     http://www.apache.org/licenses/LICENSE-2.0
9e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
10e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Unless required by applicable law or agreed to in writing, software
11e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** distributed under the License is distributed on an "AS IS" BASIS,
12e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** See the License for the specific language governing permissions and
14e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** limitations under the License.
15e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard */
16e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*******************************************************************************
17e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	File:		psy_const.h
18e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
19e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	Content:	Global psychoacoustic constants structures
20e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
21956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong*******************************************************************************/
22956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
23956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#ifndef _PSYCONST_H
24956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define _PSYCONST_H
25956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
26e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include "config.h"
27956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
28956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define TRUE  1
29956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define FALSE 0
30956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
31956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define FRAME_LEN_LONG    AACENC_BLOCKSIZE
32956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define TRANS_FAC         8
33e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define FRAME_LEN_SHORT   (FRAME_LEN_LONG/TRANS_FAC)
34e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
35956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
36956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
37956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong/* Block types */
38956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dongenum
39956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong{
40956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  LONG_WINDOW = 0,
41956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  START_WINDOW,
42956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  SHORT_WINDOW,
43956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  STOP_WINDOW
44956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong};
45956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
46956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong/* Window shapes */
47956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dongenum
48956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong{
49956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  SINE_WINDOW = 0,
50956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  KBD_WINDOW  = 1
51956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong};
52956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
53956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong/*
54956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  MS stuff
55956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong*/
56956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dongenum
57956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong{
58956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  SI_MS_MASK_NONE = 0,
59956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  SI_MS_MASK_SOME = 1,
60956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong  SI_MS_MASK_ALL  = 2
61956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong};
62956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
63956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define MAX_NO_OF_GROUPS 4
64956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define MAX_SFB_SHORT   15  /* 15 for a memory optimized implementation, maybe 16 for convenient debugging */
65956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define MAX_SFB_LONG    51  /* 51 for a memory optimized implementation, maybe 64 for convenient debugging */
66956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define MAX_SFB         (MAX_SFB_SHORT > MAX_SFB_LONG ? MAX_SFB_SHORT : MAX_SFB_LONG)   /* = MAX_SFB_LONG */
67956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define MAX_GROUPED_SFB (MAX_NO_OF_GROUPS*MAX_SFB_SHORT > MAX_SFB_LONG ? \
68956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong                         MAX_NO_OF_GROUPS*MAX_SFB_SHORT : MAX_SFB_LONG)
69956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
70956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define BLOCK_SWITCHING_OFFSET		   (1*1024+3*128+64+128)
71956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define BLOCK_SWITCHING_DATA_SIZE          FRAME_LEN_LONG
72b676a05348e4c516fa8b57e33b10548e6142c3f8Mans Rullgard
73956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define TRANSFORM_OFFSET_LONG    0
74956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define TRANSFORM_OFFSET_SHORT   448
75956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
76956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define LOG_NORM_PCM          -15
77e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
78956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#define NUM_SAMPLE_RATES	12
79956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong
80956c553ab0ce72f8074ad0fda2ffd66a0305700cJames Dong#endif /* _PSYCONST_H */
81