blob: e09921827efe06385a9ffbb987dd463a72dfcd65 [file] [log] [blame]
Harish Mahendrakar0d8951c2014-05-16 10:31:13 -07001/******************************************************************************
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_ */