1/******************************************************************************
2 *
3 * Copyright (C) 2015 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *****************************************************************************
18 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*/
20
21/*!
22 **************************************************************************
23 * \file ih264d_parse_islice.h
24 *
25 * \brief
26 *    Contains routines that decode a I slice type
27 *
28 * Detailed_description
29 *
30 * \date
31 *    07/07/2003
32 *
33 * \author  NS
34 **************************************************************************
35 */
36
37#ifndef _IH264D_PARSE_ISLICE_H_
38#define _IH264D_PARSE_ISLICE_H_
39
40#include "ih264_typedefs.h"
41#include "ih264_macros.h"
42#include "ih264_platform_macros.h"
43#include "ih264d_tables.h"
44
45WORD32 ih264d_parse_residual4x4_cavlc(dec_struct_t * ps_dec,
46                                      dec_mb_info_t *ps_cur_mb_info,
47                                      UWORD8 u1_offset);
48WORD32 ih264d_parse_residual4x4_cabac(dec_struct_t * ps_dec,
49                                      dec_mb_info_t *ps_cur_mb_info,
50                                      UWORD8 u1_offset);
51WORD32 ih264d_parse_imb_cavlc(dec_struct_t * ps_dec,
52                              dec_mb_info_t * ps_cur_mb_info,
53                              UWORD8 u1_mb_num,
54                              UWORD8 u1_mb_type);
55WORD32 ih264d_parse_imb_cabac(dec_struct_t * ps_dec,
56                              dec_mb_info_t * ps_cur_mb_info,
57                              UWORD8 u1_mb_type);
58
59WORD32 ih264d_parse_islice_data_cavlc(dec_struct_t * ps_dec,
60                                      dec_slice_params_t * ps_slice,
61                                      UWORD16 u2_first_mb_in_slice);
62WORD32 ih264d_parse_islice_data_cabac(dec_struct_t * ps_dec,
63                                      dec_slice_params_t * ps_slice,
64                                      UWORD16 u2_first_mb_in_slice);
65WORD32 ih264d_parse_pmb_cavlc(dec_struct_t * ps_dec,
66                              dec_mb_info_t * ps_cur_mb_info,
67                              UWORD8 u1_mb_num,
68                              UWORD8 u1_num_mbsNby2);
69WORD32 ih264d_parse_pmb_cabac(dec_struct_t * ps_dec,
70                              dec_mb_info_t * ps_cur_mb_info,
71                              UWORD8 u1_mb_num,
72                              UWORD8 u1_num_mbsNby2);
73
74WORD32 ih264d_parse_bmb_non_direct_cavlc(dec_struct_t * ps_dec,
75                                       dec_mb_info_t * ps_cur_mb_info,
76                                       UWORD8 u1_mb_num,
77                                       UWORD8 u1_mbNumModNBy2);
78
79WORD32 ih264d_parse_bmb_non_direct_cabac(dec_struct_t * ps_dec,
80                                       dec_mb_info_t * ps_cur_mb_info,
81                                       UWORD8 u1_mb_num,
82                                       UWORD8 u1_mbNumModNBy2);
83
84WORD32 ih264d_parse_bmb_cavlc(dec_struct_t * ps_dec,
85                              dec_mb_info_t * ps_cur_mb_info,
86                              UWORD8 u1_mb_num,
87                              UWORD8 u1_num_mbsNby2);
88
89WORD32 ih264d_parse_bmb_cabac(dec_struct_t * ps_dec,
90                              dec_mb_info_t * ps_cur_mb_info,
91                              UWORD8 u1_mb_num,
92                              UWORD8 u1_num_mbsNby2);
93
94WORD32 ih264d_parse_inter_slice_data_cavlc(dec_struct_t * ps_dec,
95                                           dec_slice_params_t * ps_slice,
96                                           UWORD16 u2_first_mb_in_slice);
97
98WORD32 ih264d_parse_inter_slice_data_cabac(dec_struct_t * ps_dec,
99                                           dec_slice_params_t * ps_slice,
100                                           UWORD16 u2_first_mb_in_slice);
101
102WORD32 ParseBMb(dec_struct_t * ps_dec,
103                dec_mb_info_t * ps_cur_mb_info,
104                UWORD8 u1_mb_num,
105                UWORD8 u1_num_mbsNby2);
106
107WORD32 ih264d_parse_ipcm_mb(dec_struct_t * ps_dec,
108                            dec_mb_info_t *ps_cur_mb_info,
109                            UWORD8 u1_mbNum);
110WORD32 ih264d_parse_islice(dec_struct_t *ps_dec,
111                            UWORD16 u2_first_mb_in_slice);
112
113#endif  /* _IH264D_PARSE_ISLICE_H_ */
114