1/* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 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 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18/* 19------------------------------------------------------------------------------ 20 PacketVideo Corp. 21 MP3 Decoder Library 22 23 Filename: pvmp3_getbits.h 24 25 Date: 09/21/2007 26 27------------------------------------------------------------------------------ 28 REVISION HISTORY 29 30 Description: 31 32------------------------------------------------------------------------------ 33 INCLUDE DESCRIPTION 34 35 36------------------------------------------------------------------------------ 37*/ 38 39/*---------------------------------------------------------------------------- 40; CONTINUE ONLY IF NOT ALREADY DEFINED 41----------------------------------------------------------------------------*/ 42#ifndef PVMP3_GETBITS_H 43#define PVMP3_GETBITS_H 44 45/*---------------------------------------------------------------------------- 46; INCLUDES 47----------------------------------------------------------------------------*/ 48#include "pvmp3_dec_defs.h" 49#include "s_mp3bits.h" 50#include "pvmp3_audio_type_defs.h" 51 52/*---------------------------------------------------------------------------- 53; MACROS 54; Define module specific macros here 55----------------------------------------------------------------------------*/ 56 57/*---------------------------------------------------------------------------- 58; DEFINES 59; Include all pre-processor statements here. 60----------------------------------------------------------------------------*/ 61#define INBUF_ARRAY_INDEX_SHIFT (3) 62#define INBUF_BIT_WIDTH (1<<(INBUF_ARRAY_INDEX_SHIFT)) 63#define INBUF_BIT_MODULO_MASK ((INBUF_BIT_WIDTH)-1) 64 65 66/*---------------------------------------------------------------------------- 67; EXTERNAL VARIABLES REFERENCES 68; Declare variables used in this module but defined elsewhere 69----------------------------------------------------------------------------*/ 70 71/*---------------------------------------------------------------------------- 72; SIMPLE TYPEDEF'S 73----------------------------------------------------------------------------*/ 74 75/*---------------------------------------------------------------------------- 76; ENUMERATED TYPEDEF'S 77----------------------------------------------------------------------------*/ 78 79/*---------------------------------------------------------------------------- 80; STRUCTURES TYPEDEF'S 81----------------------------------------------------------------------------*/ 82#ifdef __cplusplus 83extern "C" 84{ 85#endif 86 87 uint32 getNbits(tmp3Bits *pMainData, 88 int32 neededBits); 89 90 uint16 getUpTo9bits(tmp3Bits *pMainData, 91 int32 neededBits); 92 93 uint32 getUpTo17bits(tmp3Bits *pMainData, 94 int32 neededBits); 95 96 uint8 get1bit(tmp3Bits *pMainData); 97 98#ifdef __cplusplus 99} 100#endif 101 102/*---------------------------------------------------------------------------- 103; GLOBAL FUNCTION DEFINITIONS 104; Function Prototype declaration 105----------------------------------------------------------------------------*/ 106 107/*---------------------------------------------------------------------------- 108; END 109----------------------------------------------------------------------------*/ 110 111#endif 112 113