qc_main.h revision 956c553ab0ce72f8074ad0fda2ffd66a0305700c
15c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten/*
25c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** Copyright 2003-2010, VisualOn, Inc.
35c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten **
45c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** Licensed under the Apache License, Version 2.0 (the "License");
55c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** you may not use this file except in compliance with the License.
65c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** You may obtain a copy of the License at
75c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten **
85c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten **     http://www.apache.org/licenses/LICENSE-2.0
95c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten **
105c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** Unless required by applicable law or agreed to in writing, software
115c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** distributed under the License is distributed on an "AS IS" BASIS,
125c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** See the License for the specific language governing permissions and
145c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten ** limitations under the License.
155c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten */
165c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten/*******************************************************************************
175c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten	File:		qc_main.h
185c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten
19a07a1c2c91dc7ee6ded319262499f20cd01edcf7Glenn Kasten	Content:	Quantizing & coding functions
205c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten
215c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten*******************************************************************************/
225c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten
235c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten#ifndef _QC_MAIN_H
245c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten#define _QC_MAIN_H
255c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten
26a07a1c2c91dc7ee6ded319262499f20cd01edcf7Glenn Kasten#include "qc_data.h"
275c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten#include "interface.h"
285c4cc0d99d3b1cb35c5d7c237272ee53142745fbGlenn Kasten#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