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 46typedef 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 56typedef 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 67typedef 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); 77typedef 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 */ 92ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888; 93ihevcd_fmt_conv_420sp_to_rgb565_ft ihevcd_fmt_conv_420sp_to_rgb565; 94ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp; 95ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p; 96 97/* A9Q function declarations */ 98ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888_a9q; 99ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp_a9q; 100ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_a9q; 101 102/* A9A function declarations */ 103ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888_a9a; 104ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp_a9a; 105ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_a9a; 106 107/* SSSe31 function declarations */ 108ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_ssse3; 109 110/* SSE4 function declarations */ 111ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_sse42; 112 113/* armv8 function declarations */ 114ihevcd_fmt_conv_420sp_to_rgba8888_ft ihevcd_fmt_conv_420sp_to_rgba8888_av8; 115ihevcd_fmt_conv_420sp_to_420sp_ft ihevcd_fmt_conv_420sp_to_420sp_av8; 116ihevcd_fmt_conv_420sp_to_420p_ft ihevcd_fmt_conv_420sp_to_420p_av8; 117 118#endif /* _IHEVCD_FMT_CONV_H_ */ 119