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