1 /****************************************************************************** 2 * 3 * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 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 19 /** 20 ******************************************************************************* 21 * @file 22 * ihevcd_structs.h 23 * 24 * @brief 25 * Structure definitions used in the decoder 26 * 27 * @author 28 * Harish 29 * 30 * @par List of Functions: 31 * 32 * @remarks 33 * None 34 * 35 ******************************************************************************* 36 */ 37 38 #ifndef _IHEVCD_FMT_CONV_H_ 39 #define _IHEVCD_FMT_CONV_H_ 40 41 #define COEFF1 13073 42 #define COEFF2 -3207 43 #define COEFF3 -6664 44 #define COEFF4 16530 45 46 typedef void ihevcd_fmt_conv_420sp_to_rgba8888_ft(UWORD8 *pu1_y_src, 47 UWORD8 *pu1_uv_src, 48 UWORD32 *pu4_rgba_dst, 49 WORD32 wd, 50 WORD32 ht, 51 WORD32 src_y_strd, 52 WORD32 src_uv_strd, 53 WORD32 dst_strd, 54 WORD32 is_u_first); 55 56 typedef void ihevcd_fmt_conv_420sp_to_rgb565_ft(UWORD8 *pu1_y_src, 57 UWORD8 *pu1_uv_src, 58 UWORD16 *pu2_rgb_dst, 59 WORD32 wd, 60 WORD32 ht, 61 WORD32 src_y_strd, 62 WORD32 src_uv_strd, 63 WORD32 dst_strd, 64 WORD32 is_u_first); 65 66 67 typedef void ihevcd_fmt_conv_420sp_to_420sp_ft(UWORD8 *pu1_y_src, 68 UWORD8 *pu1_uv_src, 69 UWORD8 *pu1_y_dst, 70 UWORD8 *pu1_uv_dst, 71 WORD32 wd, 72 WORD32 ht, 73 WORD32 src_y_strd, 74 WORD32 src_uv_strd, 75 WORD32 dst_y_strd, 76 WORD32 dst_uv_strd); 77 typedef void ihevcd_fmt_conv_420sp_to_420p_ft(UWORD8 *pu1_y_src, 78 UWORD8 *pu1_uv_src, 79 UWORD8 *pu1_y_dst, 80 UWORD8 *pu1_u_dst, 81 UWORD8 *pu1_v_dst, 82 WORD32 wd, 83 WORD32 ht, 84 WORD32 src_y_strd, 85 WORD32 src_uv_strd, 86 WORD32 dst_y_strd, 87 WORD32 dst_uv_strd, 88 WORD32 is_u_first, 89 WORD32 disable_luma_copy); 90 91 /* C function declarations */ 92 ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888; 93 ihevcd_fmt_conv_420sp_to_rgb565_ft ihevcd_fmt_conv_420sp_to_rgb565; 94 ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp; 95 ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p; 96 97 /* A9Q function declarations */ 98 ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888_a9q; 99 ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp_a9q; 100 ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_a9q; 101 102 /* A9A function declarations */ 103 ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888_a9a; 104 ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp_a9a; 105 ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_a9a; 106 107 /* SSSe31 function declarations */ 108 ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_ssse3; 109 110 /* SSE4 function declarations */ 111 ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_sse42; 112 113 /* armv8 function declarations */ 114 ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888_av8; 115 ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp_av8; 116 ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_av8; 117 118 #endif /* _IHEVCD_FMT_CONV_H_ */ 119