qc_main.h revision e2e838afcf03e603a41a0455846eaf9614537c16
1/*
2 ** Copyright 2003-2010, VisualOn, Inc.
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 **     http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16/*******************************************************************************
17	File:		qc_main.h
18
19	Content:	Quantizing & coding functions
20
21*******************************************************************************/
22
23#ifndef _QC_MAIN_H
24#define _QC_MAIN_H
25
26#include "qc_data.h"
27#include "interface.h"
28#include "memalign.h"
29
30/* Quantizing & coding stage */
31
32Word16 QCOutNew(QC_OUT *hQC, Word16 nChannels, VO_MEM_OPERATOR *pMemOP);
33
34void QCOutDelete(QC_OUT *hQC, VO_MEM_OPERATOR *pMemOP);
35
36Word16 QCNew(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP);
37
38Word16 QCInit(QC_STATE *hQC,
39              struct QC_INIT *init);
40
41void QCDelete(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP);
42
43
44Word16 QCMain(QC_STATE *hQC,
45              ELEMENT_BITS* elBits,
46              ATS_ELEMENT* adjThrStateElement,
47              PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS], /* may be modified in-place */
48              PSY_OUT_ELEMENT* psyOutElement,
49              QC_OUT_CHANNEL  qcOutChannel[MAX_CHANNELS],   /* out                      */
50              QC_OUT_ELEMENT* qcOutElement,
51              Word16 nChannels,
52			  Word16 ancillaryDataBytes);     /* returns error code       */
53
54void updateBitres(QC_STATE* qcKernel,
55                  QC_OUT* qcOut);
56
57Word16 FinalizeBitConsumption(QC_STATE *hQC,
58                              QC_OUT* qcOut);
59
60Word16 AdjustBitrate(QC_STATE *hQC,
61                     Word32 bitRate,
62                     Word32 sampleRate);
63
64#endif /* _QC_MAIN_H */
65