1250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/* ------------------------------------------------------------------ 2250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * Copyright (C) 1998-2009 PacketVideo 3250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * 4250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * you may not use this file except in compliance with the License. 6250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * You may obtain a copy of the License at 7250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * 8250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * 10250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * Unless required by applicable law or agreed to in writing, software 11250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * express or implied. 14250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * See the License for the specific language governing permissions 15250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * and limitations under the License. 16250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber * ------------------------------------------------------------------- 17250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber */ 18250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/* 19250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber------------------------------------------------------------------------------ 20250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber PacketVideo Corp. 21250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber MP3 Decoder Library 22250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 23250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber Filename: pvmp3_getbits.h 24250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 25250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber Date: 09/21/2007 26250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 27250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber------------------------------------------------------------------------------ 28250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber REVISION HISTORY 29250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 30250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber Description: 31250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 32250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber------------------------------------------------------------------------------ 33250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber INCLUDE DESCRIPTION 34250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 35250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 36250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber------------------------------------------------------------------------------ 37250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber*/ 38250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 39250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 40250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; CONTINUE ONLY IF NOT ALREADY DEFINED 41250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 42250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#ifndef PVMP3_GETBITS_H 43250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#define PVMP3_GETBITS_H 44250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 45250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 46250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; INCLUDES 47250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 48250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#include "pvmp3_dec_defs.h" 49250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#include "s_mp3bits.h" 50250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#include "pvmp3_audio_type_defs.h" 51250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 52250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 53250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; MACROS 54250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Define module specific macros here 55250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 56250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 57250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 58250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; DEFINES 59250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Include all pre-processor statements here. 60250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 61250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#define INBUF_ARRAY_INDEX_SHIFT (3) 62250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#define INBUF_BIT_WIDTH (1<<(INBUF_ARRAY_INDEX_SHIFT)) 63250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#define INBUF_BIT_MODULO_MASK ((INBUF_BIT_WIDTH)-1) 64250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 65250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 66250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 67250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; EXTERNAL VARIABLES REFERENCES 68250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Declare variables used in this module but defined elsewhere 69250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 70250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 71250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 72250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; SIMPLE TYPEDEF'S 73250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 74250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 75250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 76250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; ENUMERATED TYPEDEF'S 77250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 78250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 79250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 80250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; STRUCTURES TYPEDEF'S 81250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 82250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#ifdef __cplusplus 83250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huberextern "C" 84250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber{ 85250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#endif 86250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 87250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber uint32 getNbits(tmp3Bits *pMainData, 88250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber int32 neededBits); 89250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 90250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber uint16 getUpTo9bits(tmp3Bits *pMainData, 91250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber int32 neededBits); 92250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 93250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber uint32 getUpTo17bits(tmp3Bits *pMainData, 94250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber int32 neededBits); 95250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 96250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber uint8 get1bit(tmp3Bits *pMainData); 97250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 98250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#ifdef __cplusplus 99250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber} 100250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#endif 101250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 102250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 103250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; GLOBAL FUNCTION DEFINITIONS 104250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; Function Prototype declaration 105250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 106250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 107250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber/*---------------------------------------------------------------------------- 108250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber; END 109250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber----------------------------------------------------------------------------*/ 110250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 111250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber#endif 112250f2433c6e1cf2727a79971fdc6ce0f8677037aAndreas Huber 113