1f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/* ------------------------------------------------------------------ 2f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Copyright (C) 1998-2009 PacketVideo 3f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * 4f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * you may not use this file except in compliance with the License. 6f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * You may obtain a copy of the License at 7f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * 8f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * 10f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Unless required by applicable law or agreed to in writing, software 11f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * express or implied. 14f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * See the License for the specific language governing permissions 15f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * and limitations under the License. 16f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * ------------------------------------------------------------------- 17f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber */ 18f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/* 19f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 20f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Pathname: s_BITS.h 21f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 22f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------ 23f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber REVISION HISTORY 24f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 25f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Remove unused field. 26f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 27f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Change buffer type from UInt to UInt32, makes API much easier 28f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber to understand and describe, and getbits is faster on TI C55X 29f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber if the buffer is 32 bits instead of 16. 30f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 31f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: Change buffer type from UInt32 to UChar. 32f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 33f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Who: Date: 34f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Description: 35f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 36f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------ 37f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber INCLUDE DESCRIPTION 38f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 39f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber This include file defines the structure, BITS 40f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 41f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber------------------------------------------------------------------------------ 42f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber*/ 43f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 44f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 45f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; CONTINUE ONLY IF NOT ALREADY DEFINED 46f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 47f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#ifndef S_BITS_H 48f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#define S_BITS_H 49f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 50f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 51f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; INCLUDES 52f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 53f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#include "pv_audio_type_defs.h" 54f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 55f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 56f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; MACROS 57f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Define module specific macros here 58f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 59f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 60f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 61f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; DEFINES 62f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Include all pre-processor statements here. 63f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 64f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 65f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 66f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; EXTERNAL VARIABLES REFERENCES 67f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Declare variables used in this module but defined elsewhere 68f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 69f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 70f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 71f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; SIMPLE TYPEDEF'S 72f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 73f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 74f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 75f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; ENUMERATED TYPEDEF'S 76f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 77f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 78f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 79f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; STRUCTURES TYPEDEF'S 80f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 81f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/* 82f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Name: BITS 83f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Description: Holds information for processing the input data buffer 84f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * as a "stream". The data is in packed format. 85f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * Fields: 86f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * pBuffer - pointer to the beginning of the buffer. If the data type of 87f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * this changes, make sure to update the constants in ibstream.h 88f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * usedBits - number of bits read thus far from the buffer. Bit 0 is 89f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * the LSB of pBuffer[0]. 90f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * availableBits - number of bits available in the buffer. 91f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber * byteAlignOffset - used with ADTS in case sync word is not aligned 92f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber on a boundary. 93f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber */ 94f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Hubertypedef struct 95f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber{ 96f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber UChar *pBuffer; 97f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber UInt usedBits; /* Keep this unsigned so can go to 65536 */ 98f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber UInt availableBits; /* Ditto */ 99f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber UInt inputBufferCurrentLength; /* Ditto */ 100f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber Int byteAlignOffset; /* Used in ADTS. See find_adts_syncword() */ 101f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber} BITS; 102f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 103f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 104f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; GLOBAL FUNCTION DEFINITIONS 105f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; Function Prototype declaration 106f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 107f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 108f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber/*---------------------------------------------------------------------------- 109f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber; END 110f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber----------------------------------------------------------------------------*/ 111f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber#endif 112f44de515d3b6098a0b585865c1a0c7b20d3075a6Andreas Huber 113