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 Pathname: s_BITS.h 21 22 ------------------------------------------------------------------------------ 23 REVISION HISTORY 24 25 Description: Remove unused field. 26 27 Description: Change buffer type from UInt to UInt32, makes API much easier 28 to understand and describe, and getbits is faster on TI C55X 29 if the buffer is 32 bits instead of 16. 30 31 Description: Change buffer type from UInt32 to UChar. 32 33 Who: Date: 34 Description: 35 36 ------------------------------------------------------------------------------ 37 INCLUDE DESCRIPTION 38 39 This include file defines the structure, BITS 40 41 ------------------------------------------------------------------------------ 42 */ 43 44 /*---------------------------------------------------------------------------- 45 ; CONTINUE ONLY IF NOT ALREADY DEFINED 46 ----------------------------------------------------------------------------*/ 47 #ifndef S_BITS_H 48 #define S_BITS_H 49 50 /*---------------------------------------------------------------------------- 51 ; INCLUDES 52 ----------------------------------------------------------------------------*/ 53 #include "pv_audio_type_defs.h" 54 55 /*---------------------------------------------------------------------------- 56 ; MACROS 57 ; Define module specific macros here 58 ----------------------------------------------------------------------------*/ 59 60 /*---------------------------------------------------------------------------- 61 ; DEFINES 62 ; Include all pre-processor statements here. 63 ----------------------------------------------------------------------------*/ 64 65 /*---------------------------------------------------------------------------- 66 ; EXTERNAL VARIABLES REFERENCES 67 ; Declare variables used in this module but defined elsewhere 68 ----------------------------------------------------------------------------*/ 69 70 /*---------------------------------------------------------------------------- 71 ; SIMPLE TYPEDEF'S 72 ----------------------------------------------------------------------------*/ 73 74 /*---------------------------------------------------------------------------- 75 ; ENUMERATED TYPEDEF'S 76 ----------------------------------------------------------------------------*/ 77 78 /*---------------------------------------------------------------------------- 79 ; STRUCTURES TYPEDEF'S 80 ----------------------------------------------------------------------------*/ 81 /* 82 * Name: BITS 83 * Description: Holds information for processing the input data buffer 84 * as a "stream". The data is in packed format. 85 * Fields: 86 * pBuffer - pointer to the beginning of the buffer. If the data type of 87 * this changes, make sure to update the constants in ibstream.h 88 * usedBits - number of bits read thus far from the buffer. Bit 0 is 89 * the LSB of pBuffer[0]. 90 * availableBits - number of bits available in the buffer. 91 * byteAlignOffset - used with ADTS in case sync word is not aligned 92 on a boundary. 93 */ 94 typedef struct 95 { 96 UChar *pBuffer; 97 UInt usedBits; /* Keep this unsigned so can go to 65536 */ 98 UInt availableBits; /* Ditto */ 99 UInt inputBufferCurrentLength; /* Ditto */ 100 Int byteAlignOffset; /* Used in ADTS. See find_adts_syncword() */ 101 } BITS; 102 103 /*---------------------------------------------------------------------------- 104 ; GLOBAL FUNCTION DEFINITIONS 105 ; Function Prototype declaration 106 ----------------------------------------------------------------------------*/ 107 108 /*---------------------------------------------------------------------------- 109 ; END 110 ----------------------------------------------------------------------------*/ 111 #endif 112 113