18d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/****************************************************************************** 28d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 38d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Copyright (C) 2015 The Android Open Source Project 48d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 58d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Licensed under the Apache License, Version 2.0 (the "License"); 68d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * you may not use this file except in compliance with the License. 78d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * You may obtain a copy of the License at: 88d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 98d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * http://www.apache.org/licenses/LICENSE-2.0 108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Unless required by applicable law or agreed to in writing, software 128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * distributed under the License is distributed on an "AS IS" BASIS, 138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * See the License for the specific language governing permissions and 158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * limitations under the License. 168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ***************************************************************************** 188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @file 248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ih264e_fmt_conv.h 258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief 278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* The file contains extern declarations of color space conversion routines 288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author 308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ittiam 318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks 338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* None 348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#ifndef IH264E_FMT_CONV_H_ 398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define IH264E_FMT_CONV_H_ 408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define COEFF1 13073 428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define COEFF2 -3207 438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define COEFF3 -6664 448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define COEFF4 16530 458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SIH264E_ERROR_T ih264e_fmt_conv(codec_t *ps_codec, 478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pic_buf_t *ps_pic, 488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_dst, 498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_u_dst, 508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_v_dst, 518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_dst_y_strd, 528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 u4_dst_uv_strd, 538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 cur_row, 548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 num_rows); 558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void ih264e_fmt_conv_420sp_to_rgba8888_ft(UWORD8 *pu1_y_src, 578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_src, 588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 *pu4_rgba_dst, 598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 wd, 608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ht, 618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_y_strd, 628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_uv_strd, 638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 dst_strd, 648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 is_u_first); 658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void ih264e_fmt_conv_420sp_to_rgb565_ft(UWORD8 *pu1_y_src, 678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_src, 688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 *pu2_rgb_dst, 698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 wd, 708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ht, 718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_y_strd, 728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_uv_strd, 738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 dst_strd, 748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 is_u_first); 758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void ih264e_fmt_conv_420sp_to_420sp_ft(UWORD8 *pu1_y_src, 778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_src, 788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_dst, 798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_dst, 808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 wd, 818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ht, 828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_y_strd, 838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_uv_strd, 848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 dst_y_strd, 858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 dst_uv_strd); 868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void ih264e_fmt_conv_420sp_to_420p_ft(UWORD8 *pu1_y_src, 888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_uv_src, 898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_dst, 908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_u_dst, 918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_v_dst, 928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 wd, 938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 ht, 948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_y_strd, 958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 src_uv_strd, 968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 dst_y_strd, 978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 dst_uv_strd, 988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 is_u_first, 998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 disable_luma_copy); 1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void ih264e_fmt_conv_420p_to_420sp_ft(UWORD8 *pu1_y_src, UWORD8 *pu1_u_src, UWORD8 *pu1_v_src, 1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_y_dst, UWORD8 *pu1_uv_dst, 1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 u2_height, UWORD16 u2_width, UWORD16 src_y_strd, 1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 src_u_strd, UWORD16 src_v_strd, 1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD16 dst_y_strd, UWORD16 dst_uv_strd, 1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD32 convert_uv_only); 1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Stypedef void ih264e_fmt_conv_422i_to_420sp_ft(UWORD8 *pu1_y_buf,UWORD8 *pu1_u_buf,UWORD8 *pu1_v_buf, 1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_422i_buf, 1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_y_width,WORD32 u4_y_height, 1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_y_stride,WORD32 u4_u_stride,WORD32 u4_v_stride, 1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 u4_422i_stride); 1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* C function declarations */ 1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_rgba8888_ft ih264e_fmt_conv_420sp_to_rgba8888; 1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_rgb565_ft ih264e_fmt_conv_420sp_to_rgb565; 1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420sp_ft ih264e_fmt_conv_420sp_to_420sp; 1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420p_ft ih264e_fmt_conv_420sp_to_420p; 1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420p_to_420sp_ft ih264e_fmt_conv_420p_to_420sp; 1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_422i_to_420sp_ft ih264e_fmt_conv_422i_to_420sp; 1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* A9Q function declarations */ 1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_rgba8888_ft ih264e_fmt_conv_420sp_to_rgba8888_a9q; 1258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420sp_ft ih264e_fmt_conv_420sp_to_420sp_a9q; 1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420p_ft ih264e_fmt_conv_420sp_to_420p_a9q; 1278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420p_to_420sp_ft ih264e_fmt_conv_420p_to_420sp_a9q; 1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_422i_to_420sp_ft ih264e_fmt_conv_422i_to_420sp_a9q; 1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* A9A function declarations */ 1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_rgba8888_ft ih264e_fmt_conv_420sp_to_rgba8888_a9a; 1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420sp_ft ih264e_fmt_conv_420sp_to_420sp_a9a; 1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420p_ft ih264e_fmt_conv_420sp_to_420p_a9a; 1358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* SSSe31 function declarations */ 1378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420p_ft ih264e_fmt_conv_420sp_to_420p_ssse31; 1388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* SSE4 function declarations */ 1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sih264e_fmt_conv_420sp_to_420p_ft ih264e_fmt_conv_420sp_to_420p_sse42; 1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#endif /* IH264E_FMT_CONV_H_ */ 143