1 /****************************************************************************** 2 * 3 * Copyright (C) 2018 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 * \file ihevce_inter_pred.h 23 * 24 * \brief 25 * This file contains function prototypes of luma and chroma MC function 26 * interfaces for a inter PU 27 * 28 * \date 29 * 18/09/2012 30 * 31 * \author 32 * Ittiam 33 * 34 ****************************************************************************** 35 */ 36 37 #ifndef _IHEVCE_INTER_PRED_H_ 38 #define _IHEVCE_INTER_PRED_H_ 39 40 /*****************************************************************************/ 41 /* Constant Macros */ 42 /*****************************************************************************/ 43 44 /*****************************************************************************/ 45 /* Function Macros */ 46 /*****************************************************************************/ 47 48 /*****************************************************************************/ 49 /* Typedefs */ 50 /*****************************************************************************/ 51 52 /*****************************************************************************/ 53 /* Enums */ 54 /*****************************************************************************/ 55 /* enum to get availability of nbr by ANDing with nbr_mask */ 56 typedef enum TILE_NBR_MASK_E 57 { 58 TILE_TL_NBR = 0x10000000, 59 TILE_TOP_NBR = 0x01000000, 60 TILE_TR_NBR = 0x00100000, 61 TILE_LT_NBR = 0x00010000, 62 TILE_RT_NBR = 0x00001000, 63 TILE_BL_NBR = 0x00000100, 64 TILE_BOT_NBR = 0x00000010, 65 TILE_BR_NBR = 0x00000001 66 } TILE_NBR_MASK_E; 67 68 /* enum to access an array of entries representing four directions */ 69 typedef enum 70 { 71 E_TOP = 0, 72 E_LEFT = 1, 73 E_RIGHT = 2, 74 E_BOT = 3, 75 76 E_FOUR_DIRECTIONS = 4 77 } IHEVCE_FOUR_DIRECTIONS_T; 78 79 /*****************************************************************************/ 80 /* Structure */ 81 /*****************************************************************************/ 82 83 /*****************************************************************************/ 84 /* Extern Variable Declarations */ 85 /*****************************************************************************/ 86 87 extern WORD8 gai1_hevc_luma_filter_taps[4][NTAPS_LUMA]; 88 extern WORD8 gai1_hevc_chroma_filter_taps[8][NTAPS_CHROMA]; 89 90 /*****************************************************************************/ 91 /* Extern Function Declarations */ 92 /*****************************************************************************/ 93 94 IV_API_CALL_STATUS_T ihevce_luma_inter_pred_pu( 95 void *pv_inter_pred_ctxt, 96 pu_t *ps_pu, 97 void *pv_dst_buf, 98 WORD32 dst_stride, 99 WORD32 i4_flag_inter_pred_source); 100 101 IV_API_CALL_STATUS_T ihevce_luma_inter_pred_pu_high_speed( 102 void *pv_inter_pred_ctxt, 103 pu_t *ps_pu, 104 UWORD8 **ppu1_dst_buf, 105 WORD32 *pi4_dst_stride, 106 func_selector_t *ps_func_selector); 107 108 void ihevce_chroma_inter_pred_pu( 109 void *pv_inter_pred_ctxt, pu_t *ps_pu, UWORD8 *pu1_dst_buf, WORD32 dst_stride); 110 111 #endif /* _IHEVCE_INTER_PRED_H_ */ 112