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