blob: d47cb2b4f7dabc0b19a2f11dd87aa762b50abb7e [file] [log] [blame]
James Zernd29ae722019-05-23 23:47:34 -07001// Copyright 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badoura0dbaa12021-02-25 15:24:55 -080015package {
16 default_applicable_licenses: ["external_libgav1_license"],
17}
18
19// Added automatically by a large-scale-change
20// See: http://go/android-license-faq
21license {
22 name: "external_libgav1_license",
23 visibility: [":__subpackages__"],
24 license_kinds: [
25 "SPDX-license-identifier-Apache-2.0",
26 ],
27 license_text: [
28 "libgav1/LICENSE",
29 ],
30}
31
James Zern93f52992020-08-04 17:29:28 -070032bug_component_id = 324837
33
34fuzz_email_cc = ["jzern@google.com"]
35
James Zernd29ae722019-05-23 23:47:34 -070036cc_library_static {
37 name: "libgav1",
James Zern93f52992020-08-04 17:29:28 -070038 host_supported: true,
James Zernd29ae722019-05-23 23:47:34 -070039 vendor_available: true,
40
41 export_include_dirs: [
42 ".",
James Zern9a38f2a2020-06-25 19:19:16 -070043 "libgav1/src",
James Zernd29ae722019-05-23 23:47:34 -070044 ],
45
46 cflags: [
47 "-DLIBGAV1_MAX_BITDEPTH=10",
James Zern93f52992020-08-04 17:29:28 -070048 "-DLIBGAV1_THREADPOOL_USE_STD_MUTEX",
James Zernd29ae722019-05-23 23:47:34 -070049 "-O2",
50 "-Wall",
51 "-Werror",
52 "-Wextra",
53 ],
54
55 local_include_dirs: [
56 "libgav1",
57 ],
58
James Zern81461362021-04-07 16:30:33 -070059 // Note: if optimizations are required for x86 the avx2 & sse4 files should
60 // be split to their own targets to receive the correct flagging. All files
61 // in the library can be built for any target without producing empty
62 // object files.
James Zernd29ae722019-05-23 23:47:34 -070063 srcs: [
64 "libgav1/src/buffer_pool.cc",
65 "libgav1/src/decoder.cc",
66 "libgav1/src/decoder_impl.cc",
James Zern9a38f2a2020-06-25 19:19:16 -070067 "libgav1/src/decoder_settings.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070068 "libgav1/src/dsp/arm/average_blend_neon.cc",
James Zern9a38f2a2020-06-25 19:19:16 -070069 "libgav1/src/dsp/arm/cdef_neon.cc",
James Zern43107df2021-10-28 21:40:41 -070070 "libgav1/src/dsp/arm/convolve_10bit_neon.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070071 "libgav1/src/dsp/arm/convolve_neon.cc",
72 "libgav1/src/dsp/arm/distance_weighted_blend_neon.cc",
James Zern9a38f2a2020-06-25 19:19:16 -070073 "libgav1/src/dsp/arm/film_grain_neon.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070074 "libgav1/src/dsp/arm/intra_edge_neon.cc",
James Zernd29ae722019-05-23 23:47:34 -070075 "libgav1/src/dsp/arm/intrapred_cfl_neon.cc",
76 "libgav1/src/dsp/arm/intrapred_directional_neon.cc",
James Zern81461362021-04-07 16:30:33 -070077 "libgav1/src/dsp/arm/intrapred_filter_neon.cc",
James Zernd29ae722019-05-23 23:47:34 -070078 "libgav1/src/dsp/arm/intrapred_neon.cc",
79 "libgav1/src/dsp/arm/intrapred_smooth_neon.cc",
James Zern81461362021-04-07 16:30:33 -070080 "libgav1/src/dsp/arm/inverse_transform_10bit_neon.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070081 "libgav1/src/dsp/arm/inverse_transform_neon.cc",
James Zernd29ae722019-05-23 23:47:34 -070082 "libgav1/src/dsp/arm/loop_filter_neon.cc",
James Zern43107df2021-10-28 21:40:41 -070083 "libgav1/src/dsp/arm/loop_restoration_10bit_neon.cc",
James Zernd29ae722019-05-23 23:47:34 -070084 "libgav1/src/dsp/arm/loop_restoration_neon.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070085 "libgav1/src/dsp/arm/mask_blend_neon.cc",
James Zern9a38f2a2020-06-25 19:19:16 -070086 "libgav1/src/dsp/arm/motion_field_projection_neon.cc",
87 "libgav1/src/dsp/arm/motion_vector_search_neon.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070088 "libgav1/src/dsp/arm/obmc_neon.cc",
James Zern9a38f2a2020-06-25 19:19:16 -070089 "libgav1/src/dsp/arm/super_res_neon.cc",
James Zern90a9e4d2019-08-20 22:53:35 -070090 "libgav1/src/dsp/arm/warp_neon.cc",
James Zern9a38f2a2020-06-25 19:19:16 -070091 "libgav1/src/dsp/arm/weight_mask_neon.cc",
James Zernd29ae722019-05-23 23:47:34 -070092 "libgav1/src/dsp/average_blend.cc",
93 "libgav1/src/dsp/cdef.cc",
94 "libgav1/src/dsp/constants.cc",
95 "libgav1/src/dsp/convolve.cc",
James Zernd29ae722019-05-23 23:47:34 -070096 "libgav1/src/dsp/distance_weighted_blend.cc",
97 "libgav1/src/dsp/dsp.cc",
98 "libgav1/src/dsp/film_grain.cc",
99 "libgav1/src/dsp/intra_edge.cc",
100 "libgav1/src/dsp/intrapred.cc",
James Zern81461362021-04-07 16:30:33 -0700101 "libgav1/src/dsp/intrapred_cfl.cc",
102 "libgav1/src/dsp/intrapred_directional.cc",
103 "libgav1/src/dsp/intrapred_filter.cc",
104 "libgav1/src/dsp/intrapred_smooth.cc",
James Zernd29ae722019-05-23 23:47:34 -0700105 "libgav1/src/dsp/inverse_transform.cc",
106 "libgav1/src/dsp/loop_filter.cc",
107 "libgav1/src/dsp/loop_restoration.cc",
James Zern90a9e4d2019-08-20 22:53:35 -0700108 "libgav1/src/dsp/mask_blend.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700109 "libgav1/src/dsp/motion_field_projection.cc",
110 "libgav1/src/dsp/motion_vector_search.cc",
James Zernd29ae722019-05-23 23:47:34 -0700111 "libgav1/src/dsp/obmc.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700112 "libgav1/src/dsp/super_res.cc",
James Zernd29ae722019-05-23 23:47:34 -0700113 "libgav1/src/dsp/warp.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700114 "libgav1/src/dsp/weight_mask.cc",
James Zern90a9e4d2019-08-20 22:53:35 -0700115 "libgav1/src/dsp/x86/average_blend_sse4.cc",
James Zern81461362021-04-07 16:30:33 -0700116 "libgav1/src/dsp/x86/cdef_avx2.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700117 "libgav1/src/dsp/x86/cdef_sse4.cc",
James Zern81461362021-04-07 16:30:33 -0700118 "libgav1/src/dsp/x86/convolve_avx2.cc",
James Zern90a9e4d2019-08-20 22:53:35 -0700119 "libgav1/src/dsp/x86/convolve_sse4.cc",
120 "libgav1/src/dsp/x86/distance_weighted_blend_sse4.cc",
James Zern81461362021-04-07 16:30:33 -0700121 "libgav1/src/dsp/x86/film_grain_sse4.cc",
James Zernd29ae722019-05-23 23:47:34 -0700122 "libgav1/src/dsp/x86/intra_edge_sse4.cc",
123 "libgav1/src/dsp/x86/intrapred_cfl_sse4.cc",
James Zern81461362021-04-07 16:30:33 -0700124 "libgav1/src/dsp/x86/intrapred_directional_sse4.cc",
125 "libgav1/src/dsp/x86/intrapred_filter_sse4.cc",
James Zernd29ae722019-05-23 23:47:34 -0700126 "libgav1/src/dsp/x86/intrapred_smooth_sse4.cc",
127 "libgav1/src/dsp/x86/intrapred_sse4.cc",
128 "libgav1/src/dsp/x86/inverse_transform_sse4.cc",
129 "libgav1/src/dsp/x86/loop_filter_sse4.cc",
James Zern81461362021-04-07 16:30:33 -0700130 "libgav1/src/dsp/x86/loop_restoration_10bit_avx2.cc",
131 "libgav1/src/dsp/x86/loop_restoration_10bit_sse4.cc",
132 "libgav1/src/dsp/x86/loop_restoration_avx2.cc",
James Zernd29ae722019-05-23 23:47:34 -0700133 "libgav1/src/dsp/x86/loop_restoration_sse4.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700134 "libgav1/src/dsp/x86/mask_blend_sse4.cc",
135 "libgav1/src/dsp/x86/motion_field_projection_sse4.cc",
136 "libgav1/src/dsp/x86/motion_vector_search_sse4.cc",
James Zern90a9e4d2019-08-20 22:53:35 -0700137 "libgav1/src/dsp/x86/obmc_sse4.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700138 "libgav1/src/dsp/x86/super_res_sse4.cc",
139 "libgav1/src/dsp/x86/warp_sse4.cc",
140 "libgav1/src/dsp/x86/weight_mask_sse4.cc",
141 "libgav1/src/film_grain.cc",
142 "libgav1/src/frame_buffer.cc",
James Zernd29ae722019-05-23 23:47:34 -0700143 "libgav1/src/internal_frame_buffer_list.cc",
James Zernd29ae722019-05-23 23:47:34 -0700144 "libgav1/src/loop_restoration_info.cc",
145 "libgav1/src/motion_vector.cc",
146 "libgav1/src/obu_parser.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700147 "libgav1/src/post_filter/cdef.cc",
148 "libgav1/src/post_filter/deblock.cc",
149 "libgav1/src/post_filter/loop_restoration.cc",
150 "libgav1/src/post_filter/post_filter.cc",
151 "libgav1/src/post_filter/super_res.cc",
James Zernd29ae722019-05-23 23:47:34 -0700152 "libgav1/src/prediction_mask.cc",
153 "libgav1/src/quantizer.cc",
154 "libgav1/src/reconstruction.cc",
155 "libgav1/src/residual_buffer_pool.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700156 "libgav1/src/status_code.cc",
James Zernd29ae722019-05-23 23:47:34 -0700157 "libgav1/src/symbol_decoder_context.cc",
158 "libgav1/src/threading_strategy.cc",
159 "libgav1/src/tile/bitstream/mode_info.cc",
160 "libgav1/src/tile/bitstream/palette.cc",
161 "libgav1/src/tile/bitstream/partition.cc",
162 "libgav1/src/tile/bitstream/transform_size.cc",
163 "libgav1/src/tile/prediction.cc",
164 "libgav1/src/tile/tile.cc",
James Zern81461362021-04-07 16:30:33 -0700165 "libgav1/src/tile_scratch_buffer.cc",
James Zernd29ae722019-05-23 23:47:34 -0700166 "libgav1/src/utils/bit_reader.cc",
167 "libgav1/src/utils/block_parameters_holder.cc",
168 "libgav1/src/utils/constants.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700169 "libgav1/src/utils/cpu.cc",
James Zernd29ae722019-05-23 23:47:34 -0700170 "libgav1/src/utils/entropy_decoder.cc",
171 "libgav1/src/utils/executor.cc",
172 "libgav1/src/utils/logging.cc",
James Zernd29ae722019-05-23 23:47:34 -0700173 "libgav1/src/utils/raw_bit_reader.cc",
James Zernd29ae722019-05-23 23:47:34 -0700174 "libgav1/src/utils/segmentation.cc",
175 "libgav1/src/utils/segmentation_map.cc",
176 "libgav1/src/utils/threadpool.cc",
James Zern9a38f2a2020-06-25 19:19:16 -0700177 "libgav1/src/version.cc",
James Zernd29ae722019-05-23 23:47:34 -0700178 "libgav1/src/warp_prediction.cc",
179 "libgav1/src/yuv_buffer.cc",
180 ],
181
182 arch: {
183 arm: {
184 instruction_set: "arm",
185 },
186 },
Jooyung Han906486c2020-04-16 18:48:28 +0900187 min_sdk_version: "29",
Ray Essicka9d9cdc2022-02-05 07:09:38 -0800188 apex_available: [
189 "//apex_available:platform",
190 "com.android.media.swcodec",
191 ],
James Zernd29ae722019-05-23 23:47:34 -0700192}
James Zern93f52992020-08-04 17:29:28 -0700193
194cc_defaults {
195 name: "libgav1_fuzzer_defaults",
196 host_supported: true,
197 native_coverage: true,
198
199 cflags: [
200 "-DLIBGAV1_MAX_BITDEPTH=10",
201 "-DLIBGAV1_THREADPOOL_USE_STD_MUTEX",
202 ],
203
204 local_include_dirs: [
205 "libgav1",
206 ],
207
208 srcs: [
209 "libgav1/examples/file_reader.cc",
210 "libgav1/examples/file_reader_constants.cc",
211 "libgav1/examples/file_reader_factory.cc",
212 "libgav1/examples/ivf_parser.cc",
213 ],
214
215 static_libs: [
216 "libgav1",
217 ],
218
219 fuzz_config: {
220 cc: fuzz_email_cc,
221 componentid: bug_component_id,
222 },
223}
224
225cc_fuzz {
226 name: "libgav1_decoder_fuzzer",
227 defaults: ["libgav1_fuzzer_defaults"],
228
229 srcs: [
230 "libgav1/tests/fuzzer/decoder_fuzzer.cc",
231 ],
232}
233
234cc_fuzz {
235 name: "libgav1_decoder_fuzzer_frame_parallel",
236 defaults: ["libgav1_fuzzer_defaults"],
237
238 srcs: [
239 "libgav1/tests/fuzzer/decoder_fuzzer_frame_parallel.cc",
240 ],
241}
242
243cc_fuzz {
244 name: "libgav1_obu_parser_fuzzer",
245 defaults: ["libgav1_fuzzer_defaults"],
246
247 srcs: [
248 "libgav1/tests/fuzzer/obu_parser_fuzzer.cc",
249 ],
250}