1 /*
2  * Copyright (C) 2009 The Android Open Source Project
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 express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /*------------------------------------------------------------------------------
18 
19     Table of contents
20 
21     1. Include headers
22     2. Module defines
23     3. Data types
24     4. Function prototypes
25 
26 ------------------------------------------------------------------------------*/
27 
28 #ifndef H264SWDEC_STREAM_H
29 #define H264SWDEC_STREAM_H
30 
31 /*------------------------------------------------------------------------------
32     1. Include headers
33 ------------------------------------------------------------------------------*/
34 
35 #include "basetype.h"
36 
37 /*------------------------------------------------------------------------------
38     2. Module defines
39 ------------------------------------------------------------------------------*/
40 
41 /*------------------------------------------------------------------------------
42     3. Data types
43 ------------------------------------------------------------------------------*/
44 
45 typedef struct
46 {
47     u8  *pStrmBuffStart;    /* pointer to start of stream buffer */
48     u8  *pStrmCurrPos;      /* current read address in stream buffer */
49     u32  bitPosInWord;      /* bit position in stream buffer byte */
50     u32  strmBuffSize;      /* size of stream buffer (bytes) */
51     u32  strmBuffReadBits;  /* number of bits read from stream buffer */
52 } strmData_t;
53 
54 /*------------------------------------------------------------------------------
55     4. Function prototypes
56 ------------------------------------------------------------------------------*/
57 
58 u32 h264bsdGetBits(strmData_t *pStrmData, u32 numBits);
59 
60 u32 h264bsdShowBits32(strmData_t *pStrmData);
61 
62 u32 h264bsdFlushBits(strmData_t *pStrmData, u32 numBits);
63 
64 u32 h264bsdIsByteAligned(strmData_t *);
65 
66 #endif /* #ifdef H264SWDEC_STREAM_H */
67 
68