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