Coverage Report

Created: 2026-09-14 07:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libde265/libde265/fallback.cc
Line
Count
Source
1
/*
2
 * H.265 video codec.
3
 * Copyright (c) 2013-2014 struktur AG, Dirk Farin <farin@struktur.de>
4
 *
5
 * This file is part of libde265.
6
 *
7
 * libde265 is free software: you can redistribute it and/or modify
8
 * it under the terms of the GNU Lesser General Public License as
9
 * published by the Free Software Foundation, either version 3 of
10
 * the License, or (at your option) any later version.
11
 *
12
 * libde265 is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public License
18
 * along with libde265.  If not, see <http://www.gnu.org/licenses/>.
19
 */
20
21
#include "fallback.h"
22
#include "fallback-motion.h"
23
#include "fallback-dct.h"
24
#include "fallback-intrapred.h"
25
#include "fallback-deblk.h"
26
27
28
void init_acceleration_functions_fallback(struct acceleration_functions* accel)
29
19.7k
{
30
19.7k
  accel->put_weighted_pred_avg_8 = put_weighted_pred_avg_8_fallback;
31
19.7k
  accel->put_unweighted_pred_8   = put_unweighted_pred_8_fallback;
32
19.7k
  accel->put_weighted_pred_8 = put_weighted_pred_8_fallback;
33
19.7k
  accel->put_weighted_bipred_8 = put_weighted_bipred_8_fallback;
34
35
19.7k
  accel->put_weighted_pred_avg_16 = put_weighted_pred_avg_16_fallback<int16_t>;
36
19.7k
  accel->put_unweighted_pred_16   = put_unweighted_pred_16_fallback<int16_t>;
37
19.7k
  accel->put_weighted_pred_16 = put_weighted_pred_16_fallback<int16_t>;
38
19.7k
  accel->put_weighted_bipred_16 = put_weighted_bipred_16_fallback<int16_t>;
39
40
  // BitDepth > 12: int32_t intermediates
41
19.7k
  accel->put_weighted_pred_avg_16_32 = put_weighted_pred_avg_16_fallback<int32_t>;
42
19.7k
  accel->put_unweighted_pred_16_32   = put_unweighted_pred_16_fallback<int32_t>;
43
19.7k
  accel->put_weighted_pred_16_32 = put_weighted_pred_16_fallback<int32_t>;
44
19.7k
  accel->put_weighted_bipred_16_32 = put_weighted_bipred_16_fallback<int32_t>;
45
46
47
19.7k
  accel->put_hevc_epel_8    = put_epel_8_fallback;
48
19.7k
  accel->put_hevc_epel_h_8  = put_epel_hv_fallback<uint8_t,int16_t>;
49
19.7k
  accel->put_hevc_epel_v_8  = put_epel_hv_fallback<uint8_t,int16_t>;
50
19.7k
  accel->put_hevc_epel_hv_8 = put_epel_hv_fallback<uint8_t,int16_t>;
51
52
19.7k
  accel->put_hevc_qpel_8[0][0] = put_qpel_0_0_fallback;
53
19.7k
  accel->put_hevc_qpel_8[0][1] = put_qpel_0_1_fallback;
54
19.7k
  accel->put_hevc_qpel_8[0][2] = put_qpel_0_2_fallback;
55
19.7k
  accel->put_hevc_qpel_8[0][3] = put_qpel_0_3_fallback;
56
19.7k
  accel->put_hevc_qpel_8[1][0] = put_qpel_1_0_fallback;
57
19.7k
  accel->put_hevc_qpel_8[1][1] = put_qpel_1_1_fallback;
58
19.7k
  accel->put_hevc_qpel_8[1][2] = put_qpel_1_2_fallback;
59
19.7k
  accel->put_hevc_qpel_8[1][3] = put_qpel_1_3_fallback;
60
19.7k
  accel->put_hevc_qpel_8[2][0] = put_qpel_2_0_fallback;
61
19.7k
  accel->put_hevc_qpel_8[2][1] = put_qpel_2_1_fallback;
62
19.7k
  accel->put_hevc_qpel_8[2][2] = put_qpel_2_2_fallback;
63
19.7k
  accel->put_hevc_qpel_8[2][3] = put_qpel_2_3_fallback;
64
19.7k
  accel->put_hevc_qpel_8[3][0] = put_qpel_3_0_fallback;
65
19.7k
  accel->put_hevc_qpel_8[3][1] = put_qpel_3_1_fallback;
66
19.7k
  accel->put_hevc_qpel_8[3][2] = put_qpel_3_2_fallback;
67
19.7k
  accel->put_hevc_qpel_8[3][3] = put_qpel_3_3_fallback;
68
69
19.7k
  accel->put_hevc_epel_16    = put_epel_16_fallback<int16_t>;
70
19.7k
  accel->put_hevc_epel_h_16  = put_epel_hv_fallback<uint16_t,int16_t>;
71
19.7k
  accel->put_hevc_epel_v_16  = put_epel_hv_fallback<uint16_t,int16_t>;
72
19.7k
  accel->put_hevc_epel_hv_16 = put_epel_hv_fallback<uint16_t,int16_t>;
73
74
19.7k
  accel->put_hevc_qpel_16[0][0] = put_qpel_0_0_fallback_16<int16_t>;
75
19.7k
  accel->put_hevc_qpel_16[0][1] = put_qpel_0_1_fallback_16;
76
19.7k
  accel->put_hevc_qpel_16[0][2] = put_qpel_0_2_fallback_16;
77
19.7k
  accel->put_hevc_qpel_16[0][3] = put_qpel_0_3_fallback_16;
78
19.7k
  accel->put_hevc_qpel_16[1][0] = put_qpel_1_0_fallback_16;
79
19.7k
  accel->put_hevc_qpel_16[1][1] = put_qpel_1_1_fallback_16;
80
19.7k
  accel->put_hevc_qpel_16[1][2] = put_qpel_1_2_fallback_16;
81
19.7k
  accel->put_hevc_qpel_16[1][3] = put_qpel_1_3_fallback_16;
82
19.7k
  accel->put_hevc_qpel_16[2][0] = put_qpel_2_0_fallback_16;
83
19.7k
  accel->put_hevc_qpel_16[2][1] = put_qpel_2_1_fallback_16;
84
19.7k
  accel->put_hevc_qpel_16[2][2] = put_qpel_2_2_fallback_16;
85
19.7k
  accel->put_hevc_qpel_16[2][3] = put_qpel_2_3_fallback_16;
86
19.7k
  accel->put_hevc_qpel_16[3][0] = put_qpel_3_0_fallback_16;
87
19.7k
  accel->put_hevc_qpel_16[3][1] = put_qpel_3_1_fallback_16;
88
19.7k
  accel->put_hevc_qpel_16[3][2] = put_qpel_3_2_fallback_16;
89
19.7k
  accel->put_hevc_qpel_16[3][3] = put_qpel_3_3_fallback_16;
90
91
  // BitDepth > 12: int32_t intermediates
92
19.7k
  accel->put_hevc_epel_16_32    = put_epel_16_fallback<int32_t>;
93
19.7k
  accel->put_hevc_epel_h_16_32  = put_epel_hv_fallback<uint16_t,int32_t>;
94
19.7k
  accel->put_hevc_epel_v_16_32  = put_epel_hv_fallback<uint16_t,int32_t>;
95
19.7k
  accel->put_hevc_epel_hv_16_32 = put_epel_hv_fallback<uint16_t,int32_t>;
96
97
19.7k
  accel->put_hevc_qpel_16_32 = put_qpel_fallback_16_32;
98
99
100
101
19.7k
  accel->transform_skip_8 = transform_skip_8_fallback;
102
19.7k
  accel->transform_skip_rdpcm_h_8 = transform_skip_rdpcm_h_8_fallback;
103
19.7k
  accel->transform_skip_rdpcm_v_8 = transform_skip_rdpcm_v_8_fallback;
104
19.7k
  accel->transform_bypass = transform_bypass_fallback;
105
19.7k
  accel->transform_bypass_rdpcm_h = transform_bypass_rdpcm_h_fallback;
106
19.7k
  accel->transform_bypass_rdpcm_v = transform_bypass_rdpcm_v_fallback;
107
19.7k
  accel->transform_4x4_dst_add_8 = transform_4x4_luma_add_8_fallback;
108
19.7k
  accel->transform_add_8[0] = transform_4x4_add_8_fallback;
109
19.7k
  accel->transform_add_8[1] = transform_8x8_add_8_fallback;
110
19.7k
  accel->transform_add_8[2] = transform_16x16_add_8_fallback;
111
19.7k
  accel->transform_add_8[3] = transform_32x32_add_8_fallback;
112
113
19.7k
  accel->transform_skip_16 = transform_skip_16_fallback;
114
19.7k
  accel->transform_4x4_dst_add_16 = transform_4x4_luma_add_16_fallback;
115
19.7k
  accel->transform_add_16[0] = transform_4x4_add_16_fallback;
116
19.7k
  accel->transform_add_16[1] = transform_8x8_add_16_fallback;
117
19.7k
  accel->transform_add_16[2] = transform_16x16_add_16_fallback;
118
19.7k
  accel->transform_add_16[3] = transform_32x32_add_16_fallback;
119
120
19.7k
  accel->rotate_coefficients = rotate_coefficients_fallback;
121
19.7k
  accel->add_residual_8  = add_residual_fallback<uint8_t>;
122
19.7k
  accel->add_residual_16 = add_residual_fallback<uint16_t>;
123
19.7k
  accel->dequant_coeff_block = dequant_coeff_block_fallback;
124
19.7k
  accel->rdpcm_h = rdpcm_h_fallback;
125
19.7k
  accel->rdpcm_v = rdpcm_v_fallback;
126
19.7k
  accel->transform_skip_residual = transform_skip_residual_fallback;
127
128
19.7k
  accel->transform_idst_4x4   = transform_idst_4x4_fallback;
129
19.7k
  accel->transform_idct_4x4   = transform_idct_4x4_fallback;
130
19.7k
  accel->transform_idct_8x8   = transform_idct_8x8_fallback;
131
19.7k
  accel->transform_idct_16x16 = transform_idct_16x16_fallback;
132
19.7k
  accel->transform_idct_32x32 = transform_idct_32x32_fallback;
133
134
19.7k
  accel->fwd_transform_4x4_dst_8 = fdst_4x4_8_fallback;
135
19.7k
  accel->fwd_transform_8[0] = fdct_4x4_8_fallback;
136
19.7k
  accel->fwd_transform_8[1] = fdct_8x8_8_fallback;
137
19.7k
  accel->fwd_transform_8[2] = fdct_16x16_8_fallback;
138
19.7k
  accel->fwd_transform_8[3] = fdct_32x32_8_fallback;
139
140
19.7k
  accel->hadamard_transform_8[0] = hadamard_4x4_8_fallback;
141
19.7k
  accel->hadamard_transform_8[1] = hadamard_8x8_8_fallback;
142
19.7k
  accel->hadamard_transform_8[2] = hadamard_16x16_8_fallback;
143
19.7k
  accel->hadamard_transform_8[3] = hadamard_32x32_8_fallback;
144
145
19.7k
  accel->intra_pred_dc_8  = intra_pred_dc_fallback<uint8_t>;
146
19.7k
  accel->intra_pred_dc_16 = intra_pred_dc_fallback<uint16_t>;
147
19.7k
  accel->intra_pred_planar_8  = intra_pred_planar_fallback<uint8_t>;
148
19.7k
  accel->intra_pred_planar_16 = intra_pred_planar_fallback<uint16_t>;
149
19.7k
  accel->intra_pred_angular_8  = intra_pred_angular_fallback<uint8_t>;
150
19.7k
  accel->intra_pred_angular_16 = intra_pred_angular_fallback<uint16_t>;
151
152
19.7k
  accel->deblock_luma_8   = deblock_luma_8_fallback;
153
19.7k
  accel->deblock_chroma_8 = deblock_chroma_8_fallback;
154
19.7k
}