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_RECONSTRUCT_H
29 #define H264SWDEC_RECONSTRUCT_H
30 
31 /*------------------------------------------------------------------------------
32     1. Include headers
33 ------------------------------------------------------------------------------*/
34 
35 #include "basetype.h"
36 #include "h264bsd_macroblock_layer.h"
37 #include "h264bsd_image.h"
38 
39 /*------------------------------------------------------------------------------
40     2. Module defines
41 ------------------------------------------------------------------------------*/
42 
43 /*------------------------------------------------------------------------------
44     3. Data types
45 ------------------------------------------------------------------------------*/
46 
47 /*------------------------------------------------------------------------------
48     4. Function prototypes
49 ------------------------------------------------------------------------------*/
50 #ifndef H264DEC_OMXDL
51 void h264bsdPredictSamples(
52   u8 *data,
53   mv_t *mv,
54   image_t *refPic,
55   u32 xA,
56   u32 yA,
57   u32 partX,
58   u32 partY,
59   u32 partWidth,
60   u32 partHeight);
61 #else
62 void h264bsdPredictSamples(
63   u8 *data,
64   mv_t *mv,
65   image_t *refPic,
66   u32 colAndRow,/* packaged data | column    | row                |*/
67   u32 part,     /* packaged data |partX|partY|partWidth|partHeight|*/
68   u8 *pFill);
69 #endif
70 
71 void h264bsdFillBlock(
72   u8 * ref,
73   u8 * fill,
74   i32 x0,
75   i32 y0,
76   u32 width,
77   u32 height,
78   u32 blockWidth,
79   u32 blockHeight,
80   u32 fillScanLength);
81 
82 void h264bsdInterpolateChromaHor(
83   u8 *pRef,
84   u8 *predPartChroma,
85   i32 x0,
86   i32 y0,
87   u32 width,
88   u32 height,
89   u32 xFrac,
90   u32 chromaPartWidth,
91   u32 chromaPartHeight);
92 
93 void h264bsdInterpolateChromaVer(
94   u8 *pRef,
95   u8 *predPartChroma,
96   i32 x0,
97   i32 y0,
98   u32 width,
99   u32 height,
100   u32 yFrac,
101   u32 chromaPartWidth,
102   u32 chromaPartHeight);
103 
104 void h264bsdInterpolateChromaHorVer(
105   u8 *ref,
106   u8 *predPartChroma,
107   i32 x0,
108   i32 y0,
109   u32 width,
110   u32 height,
111   u32 xFrac,
112   u32 yFrac,
113   u32 chromaPartWidth,
114   u32 chromaPartHeight);
115 
116 void h264bsdInterpolateVerHalf(
117   u8 *ref,
118   u8 *mb,
119   i32 x0,
120   i32 y0,
121   u32 width,
122   u32 height,
123   u32 partWidth,
124   u32 partHeight);
125 
126 void h264bsdInterpolateVerQuarter(
127   u8 *ref,
128   u8 *mb,
129   i32 x0,
130   i32 y0,
131   u32 width,
132   u32 height,
133   u32 partWidth,
134   u32 partHeight,
135   u32 verOffset);
136 
137 void h264bsdInterpolateHorHalf(
138   u8 *ref,
139   u8 *mb,
140   i32 x0,
141   i32 y0,
142   u32 width,
143   u32 height,
144   u32 partWidth,
145   u32 partHeight);
146 
147 void h264bsdInterpolateHorQuarter(
148   u8 *ref,
149   u8 *mb,
150   i32 x0,
151   i32 y0,
152   u32 width,
153   u32 height,
154   u32 partWidth,
155   u32 partHeight,
156   u32 horOffset);
157 
158 void h264bsdInterpolateHorVerQuarter(
159   u8 *ref,
160   u8 *mb,
161   i32 x0,
162   i32 y0,
163   u32 width,
164   u32 height,
165   u32 partWidth,
166   u32 partHeight,
167   u32 horVerOffset);
168 
169 void h264bsdInterpolateMidHalf(
170   u8 *ref,
171   u8 *mb,
172   i32 x0,
173   i32 y0,
174   u32 width,
175   u32 height,
176   u32 partWidth,
177   u32 partHeight);
178 
179 void h264bsdInterpolateMidVerQuarter(
180   u8 *ref,
181   u8 *mb,
182   i32 x0,
183   i32 y0,
184   u32 width,
185   u32 height,
186   u32 partWidth,
187   u32 partHeight,
188   u32 verOffset);
189 
190 void h264bsdInterpolateMidHorQuarter(
191   u8 *ref,
192   u8 *mb,
193   i32 x0,
194   i32 y0,
195   u32 width,
196   u32 height,
197   u32 partWidth,
198   u32 partHeight,
199   u32 horOffset);
200 
201 
202 void h264bsdFillRow7(
203   u8 *ref,
204   u8 *fill,
205   i32 left,
206   i32 center,
207   i32 right);
208 
209 #endif /* #ifdef H264SWDEC_RECONSTRUCT_H */
210 
211