Coverage Report

Created: 2026-08-31 06:32

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libhevc/decoder/ihevcd_function_selector_generic.c
Line
Count
Source
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
* @file
21
*  ihevcd_function_selector.c
22
*
23
* @brief
24
*  Contains functions to initialize function pointers used in hevc
25
*
26
* @author
27
*  Naveen
28
*
29
* @par List of Functions:
30
* @remarks
31
*  None
32
*
33
*******************************************************************************
34
*/
35
/*****************************************************************************/
36
/* File Includes                                                             */
37
/*****************************************************************************/
38
#include <stdio.h>
39
#include <stddef.h>
40
#include <stdlib.h>
41
#include <string.h>
42
43
#include "ihevc_typedefs.h"
44
#include "iv.h"
45
#include "ivd.h"
46
#include "ihevc_defs.h"
47
#include "ihevc_debug.h"
48
#include "ihevc_structs.h"
49
#include "ihevc_macros.h"
50
#include "ihevc_platform_macros.h"
51
#include "ihevc_cabac_tables.h"
52
#include "ihevc_disp_mgr.h"
53
#include "ihevc_buf_mgr.h"
54
#include "ihevc_dpb_mgr.h"
55
#include "ihevc_error.h"
56
57
#include "ihevcd_function_selector.h"
58
59
void ihevcd_init_function_ptr_generic(func_selector_t *ps_func_selector)
60
0
{
61
0
    ps_func_selector->ihevc_deblk_chroma_horz_fptr                      =  &ihevc_deblk_chroma_horz;
62
0
    ps_func_selector->ihevc_deblk_chroma_vert_fptr                      =  &ihevc_deblk_chroma_vert;
63
0
    ps_func_selector->ihevc_deblk_luma_vert_fptr                        =  &ihevc_deblk_luma_vert;
64
0
    ps_func_selector->ihevc_deblk_luma_horz_fptr                        =  &ihevc_deblk_luma_horz;
65
0
    ps_func_selector->ihevc_deblk_422chroma_horz_fptr                   =  &ihevc_deblk_422chroma_horz;
66
0
    ps_func_selector->ihevc_deblk_422chroma_vert_fptr                   =  &ihevc_deblk_422chroma_vert;
67
0
    ps_func_selector->ihevc_inter_pred_chroma_copy_fptr                 =  &ihevc_inter_pred_chroma_copy;
68
0
    ps_func_selector->ihevc_inter_pred_chroma_copy_w16out_fptr          =  &ihevc_inter_pred_chroma_copy_w16out;
69
0
    ps_func_selector->ihevc_inter_pred_chroma_horz_fptr                 =  &ihevc_inter_pred_chroma_horz;
70
0
    ps_func_selector->ihevc_inter_pred_chroma_horz_w16out_fptr          =  &ihevc_inter_pred_chroma_horz_w16out;
71
0
    ps_func_selector->ihevc_inter_pred_chroma_vert_fptr                 =  &ihevc_inter_pred_chroma_vert;
72
0
    ps_func_selector->ihevc_inter_pred_chroma_vert_w16inp_fptr          =  &ihevc_inter_pred_chroma_vert_w16inp;
73
0
    ps_func_selector->ihevc_inter_pred_chroma_vert_w16inp_w16out_fptr   =  &ihevc_inter_pred_chroma_vert_w16inp_w16out;
74
0
    ps_func_selector->ihevc_inter_pred_chroma_vert_w16out_fptr          =  &ihevc_inter_pred_chroma_vert_w16out;
75
0
    ps_func_selector->ihevc_inter_pred_luma_horz_fptr                   =  &ihevc_inter_pred_luma_horz;
76
0
    ps_func_selector->ihevc_inter_pred_luma_vert_fptr                   =  &ihevc_inter_pred_luma_vert;
77
0
    ps_func_selector->ihevc_inter_pred_luma_vert_w16out_fptr            =  &ihevc_inter_pred_luma_vert_w16out;
78
0
    ps_func_selector->ihevc_inter_pred_luma_vert_w16inp_fptr            =  &ihevc_inter_pred_luma_vert_w16inp;
79
0
    ps_func_selector->ihevc_inter_pred_luma_copy_fptr                   =  &ihevc_inter_pred_luma_copy;
80
0
    ps_func_selector->ihevc_inter_pred_luma_copy_w16out_fptr            =  &ihevc_inter_pred_luma_copy_w16out;
81
0
    ps_func_selector->ihevc_inter_pred_luma_horz_w16out_fptr            =  &ihevc_inter_pred_luma_horz_w16out;
82
0
    ps_func_selector->ihevc_inter_pred_luma_vert_w16inp_w16out_fptr     =  &ihevc_inter_pred_luma_vert_w16inp_w16out;
83
0
    ps_func_selector->ihevc_intra_pred_chroma_ref_substitution_fptr     =  &ihevc_intra_pred_chroma_ref_substitution;
84
0
    ps_func_selector->ihevc_intra_pred_luma_ref_substitution_fptr       =  &ihevc_intra_pred_luma_ref_substitution;
85
0
    ps_func_selector->ihevc_intra_pred_luma_ref_subst_all_avlble_fptr   =  &ihevc_intra_pred_luma_ref_subst_all_avlble;
86
0
    ps_func_selector->ihevc_intra_pred_ref_filtering_fptr               =  &ihevc_intra_pred_ref_filtering;
87
0
    ps_func_selector->ihevc_intra_pred_chroma_ref_filtering_fptr        =  &ihevc_intra_pred_chroma_ref_filtering;
88
0
    ps_func_selector->ihevc_intra_pred_chroma_dc_fptr                   =  &ihevc_intra_pred_chroma_dc;
89
0
    ps_func_selector->ihevc_intra_pred_chroma_horz_fptr                 =  &ihevc_intra_pred_chroma_horz;
90
0
    ps_func_selector->ihevc_intra_pred_chroma_mode2_fptr                =  &ihevc_intra_pred_chroma_mode2;
91
0
    ps_func_selector->ihevc_intra_pred_chroma_mode_18_34_fptr           =  &ihevc_intra_pred_chroma_mode_18_34;
92
0
    ps_func_selector->ihevc_intra_pred_chroma_mode_27_to_33_fptr        =  &ihevc_intra_pred_chroma_mode_27_to_33;
93
0
    ps_func_selector->ihevc_intra_pred_chroma_mode_3_to_9_fptr          =  &ihevc_intra_pred_chroma_mode_3_to_9;
94
0
    ps_func_selector->ihevc_intra_pred_chroma_planar_fptr               =  &ihevc_intra_pred_chroma_planar;
95
0
    ps_func_selector->ihevc_intra_pred_chroma_ver_fptr                  =  &ihevc_intra_pred_chroma_ver;
96
0
    ps_func_selector->ihevc_intra_pred_chroma_mode_11_to_17_fptr        =  &ihevc_intra_pred_chroma_mode_11_to_17;
97
0
    ps_func_selector->ihevc_intra_pred_chroma_mode_19_to_25_fptr        =  &ihevc_intra_pred_chroma_mode_19_to_25;
98
0
    ps_func_selector->ihevc_intra_pred_luma_mode_11_to_17_fptr          =  &ihevc_intra_pred_luma_mode_11_to_17;
99
0
    ps_func_selector->ihevc_intra_pred_luma_mode_19_to_25_fptr          =  &ihevc_intra_pred_luma_mode_19_to_25;
100
0
    ps_func_selector->ihevc_intra_pred_luma_dc_fptr                     =  &ihevc_intra_pred_luma_dc;
101
0
    ps_func_selector->ihevc_intra_pred_luma_horz_fptr                   =  &ihevc_intra_pred_luma_horz;
102
0
    ps_func_selector->ihevc_intra_pred_luma_mode2_fptr                  =  &ihevc_intra_pred_luma_mode2;
103
0
    ps_func_selector->ihevc_intra_pred_luma_mode_18_34_fptr             =  &ihevc_intra_pred_luma_mode_18_34;
104
0
    ps_func_selector->ihevc_intra_pred_luma_mode_27_to_33_fptr          =  &ihevc_intra_pred_luma_mode_27_to_33;
105
0
    ps_func_selector->ihevc_intra_pred_luma_mode_3_to_9_fptr            =  &ihevc_intra_pred_luma_mode_3_to_9;
106
0
    ps_func_selector->ihevc_intra_pred_luma_planar_fptr                 =  &ihevc_intra_pred_luma_planar;
107
0
    ps_func_selector->ihevc_intra_pred_luma_ver_fptr                    =  &ihevc_intra_pred_luma_ver;
108
0
    ps_func_selector->ihevc_itrans_4x4_ttype1_fptr                      =  &ihevc_itrans_4x4_ttype1;
109
0
    ps_func_selector->ihevc_itrans_4x4_fptr                             =  &ihevc_itrans_4x4;
110
0
    ps_func_selector->ihevc_itrans_8x8_fptr                             =  &ihevc_itrans_8x8;
111
0
    ps_func_selector->ihevc_itrans_16x16_fptr                           =  &ihevc_itrans_16x16;
112
0
    ps_func_selector->ihevc_itrans_32x32_fptr                           =  &ihevc_itrans_32x32;
113
0
    ps_func_selector->ihevc_itrans_res_4x4_ttype1_fptr                  =  &ihevc_itrans_res_4x4_ttype1;
114
0
    ps_func_selector->ihevc_itrans_res_4x4_fptr                         =  &ihevc_itrans_res_4x4;
115
0
    ps_func_selector->ihevc_itrans_res_8x8_fptr                         =  &ihevc_itrans_res_8x8;
116
0
    ps_func_selector->ihevc_itrans_res_16x16_fptr                       =  &ihevc_itrans_res_16x16;
117
0
    ps_func_selector->ihevc_itrans_res_32x32_fptr                       =  &ihevc_itrans_res_32x32;
118
0
    ps_func_selector->ihevc_itrans_res_dc_fptr                          =  &ihevc_itrans_res_dc;
119
0
    ps_func_selector->ihevc_itrans_recon_4x4_ttype1_fptr                =  &ihevc_itrans_recon_4x4_ttype1;
120
0
    ps_func_selector->ihevc_itrans_recon_4x4_fptr                       =  &ihevc_itrans_recon_4x4;
121
0
    ps_func_selector->ihevc_itrans_recon_8x8_fptr                       =  &ihevc_itrans_recon_8x8;
122
0
    ps_func_selector->ihevc_itrans_recon_16x16_fptr                     =  &ihevc_itrans_recon_16x16;
123
0
    ps_func_selector->ihevc_itrans_recon_32x32_fptr                     =  &ihevc_itrans_recon_32x32;
124
0
    ps_func_selector->ihevc_chroma_itrans_recon_4x4_fptr                =  &ihevc_chroma_itrans_recon_4x4;
125
0
    ps_func_selector->ihevc_chroma_itrans_recon_8x8_fptr                =  &ihevc_chroma_itrans_recon_8x8;
126
0
    ps_func_selector->ihevc_chroma_itrans_recon_16x16_fptr              =  &ihevc_chroma_itrans_recon_16x16;
127
0
    ps_func_selector->ihevc_chroma_itrans_recon_32x32_fptr              =  &ihevc_chroma_itrans_recon_32x32;
128
0
    ps_func_selector->ihevc_recon_4x4_ttype1_fptr                       =  &ihevc_recon_4x4_ttype1;
129
0
    ps_func_selector->ihevc_recon_4x4_fptr                              =  &ihevc_recon_4x4;
130
0
    ps_func_selector->ihevc_recon_8x8_fptr                              =  &ihevc_recon_8x8;
131
0
    ps_func_selector->ihevc_recon_16x16_fptr                            =  &ihevc_recon_16x16;
132
0
    ps_func_selector->ihevc_recon_32x32_fptr                            =  &ihevc_recon_32x32;
133
0
    ps_func_selector->ihevc_chroma_recon_4x4_fptr                       =  &ihevc_chroma_recon_4x4;
134
0
    ps_func_selector->ihevc_chroma_recon_8x8_fptr                       =  &ihevc_chroma_recon_8x8;
135
0
    ps_func_selector->ihevc_chroma_recon_16x16_fptr                     =  &ihevc_chroma_recon_16x16;
136
0
    ps_func_selector->ihevc_chroma_recon_32x32_fptr                     =  &ihevc_chroma_recon_32x32;
137
0
    ps_func_selector->ihevc_memset_16bit_mul_8_fptr                     =  &ihevc_memset_16bit_mul_8;
138
0
    ps_func_selector->ihevc_memset_16bit_fptr                           =  &ihevc_memset_16bit;
139
0
    ps_func_selector->ihevc_pad_left_luma_fptr                          =  &ihevc_pad_left_luma;
140
0
    ps_func_selector->ihevc_pad_left_chroma_fptr                        =  &ihevc_pad_left_chroma;
141
0
    ps_func_selector->ihevc_pad_right_luma_fptr                         =  &ihevc_pad_right_luma;
142
0
    ps_func_selector->ihevc_pad_right_chroma_fptr                       =  &ihevc_pad_right_chroma;
143
0
    ps_func_selector->ihevc_weighted_pred_bi_fptr                       =  &ihevc_weighted_pred_bi;
144
0
    ps_func_selector->ihevc_weighted_pred_bi_default_fptr               =  &ihevc_weighted_pred_bi_default;
145
0
    ps_func_selector->ihevc_weighted_pred_uni_fptr                      =  &ihevc_weighted_pred_uni;
146
0
    ps_func_selector->ihevc_weighted_pred_chroma_bi_fptr                =  &ihevc_weighted_pred_chroma_bi;
147
0
    ps_func_selector->ihevc_weighted_pred_chroma_bi_default_fptr        =  &ihevc_weighted_pred_chroma_bi_default;
148
0
    ps_func_selector->ihevc_weighted_pred_chroma_uni_fptr               =  &ihevc_weighted_pred_chroma_uni;
149
0
    ps_func_selector->ihevc_sao_band_offset_luma_fptr                   =  &ihevc_sao_band_offset_luma;
150
0
    ps_func_selector->ihevc_sao_band_offset_chroma_fptr                 =  &ihevc_sao_band_offset_chroma;
151
0
    ps_func_selector->ihevc_sao_edge_offset_class0_fptr                 =  &ihevc_sao_edge_offset_class0;
152
0
    ps_func_selector->ihevc_sao_edge_offset_class0_chroma_fptr          =  &ihevc_sao_edge_offset_class0_chroma;
153
0
    ps_func_selector->ihevc_sao_edge_offset_class1_fptr                 =  &ihevc_sao_edge_offset_class1;
154
0
    ps_func_selector->ihevc_sao_edge_offset_class1_chroma_fptr          =  &ihevc_sao_edge_offset_class1_chroma;
155
0
    ps_func_selector->ihevc_sao_edge_offset_class2_fptr                 =  &ihevc_sao_edge_offset_class2;
156
0
    ps_func_selector->ihevc_sao_edge_offset_class2_chroma_fptr          =  &ihevc_sao_edge_offset_class2_chroma;
157
0
    ps_func_selector->ihevc_sao_edge_offset_class3_fptr                 =  &ihevc_sao_edge_offset_class3;
158
0
    ps_func_selector->ihevc_sao_edge_offset_class3_chroma_fptr          =  &ihevc_sao_edge_offset_class3_chroma;
159
0
    ps_func_selector->ihevcd_fmt_conv_420sp_to_420sp_fptr               =  &ihevcd_fmt_conv_420sp_to_420sp;
160
0
    ps_func_selector->ihevcd_fmt_conv_420sp_to_420p_fptr                =  &ihevcd_fmt_conv_420sp_to_420p;
161
0
    ps_func_selector->ihevcd_fmt_conv_444sp_to_444p_fptr                =  &ihevcd_fmt_conv_444sp_to_444p;
162
0
    ps_func_selector->ihevcd_itrans_recon_dc_luma_fptr                  =  &ihevcd_itrans_recon_dc_luma;
163
0
    ps_func_selector->ihevcd_itrans_recon_dc_chroma_fptr                =  &ihevcd_itrans_recon_dc_chroma;
164
0
}
165