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