h264bsd_reconstruct.h revision 21e525fdcc234c22d843a8bf1a4ec35c4b376314
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
51void 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
62void 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
71void 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
82void 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
93void 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
104void 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
116void 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
126void 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
137void 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
147void 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
158void 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
169void 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
179void 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
190void 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
202void 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