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 83 extern "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