Home | History | Annotate | Download | only in source
      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