1*09537850SAkhilesh Sanikop// Copyright 2019 The Android Open Source Project 2*09537850SAkhilesh Sanikop// 3*09537850SAkhilesh Sanikop// Licensed under the Apache License, Version 2.0 (the "License"); 4*09537850SAkhilesh Sanikop// you may not use this file except in compliance with the License. 5*09537850SAkhilesh Sanikop// You may obtain a copy of the License at 6*09537850SAkhilesh Sanikop// 7*09537850SAkhilesh Sanikop// http://www.apache.org/licenses/LICENSE-2.0 8*09537850SAkhilesh Sanikop// 9*09537850SAkhilesh Sanikop// Unless required by applicable law or agreed to in writing, software 10*09537850SAkhilesh Sanikop// distributed under the License is distributed on an "AS IS" BASIS, 11*09537850SAkhilesh Sanikop// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*09537850SAkhilesh Sanikop// See the License for the specific language governing permissions and 13*09537850SAkhilesh Sanikop// limitations under the License. 14*09537850SAkhilesh Sanikop 15*09537850SAkhilesh Sanikoppackage { 16*09537850SAkhilesh Sanikop default_applicable_licenses: ["external_libgav1_license"], 17*09537850SAkhilesh Sanikop} 18*09537850SAkhilesh Sanikop 19*09537850SAkhilesh Sanikop// Added automatically by a large-scale-change 20*09537850SAkhilesh Sanikop// See: http://go/android-license-faq 21*09537850SAkhilesh Sanikoplicense { 22*09537850SAkhilesh Sanikop name: "external_libgav1_license", 23*09537850SAkhilesh Sanikop visibility: [":__subpackages__"], 24*09537850SAkhilesh Sanikop license_kinds: [ 25*09537850SAkhilesh Sanikop "SPDX-license-identifier-Apache-2.0", 26*09537850SAkhilesh Sanikop ], 27*09537850SAkhilesh Sanikop license_text: [ 28*09537850SAkhilesh Sanikop "LICENSE", 29*09537850SAkhilesh Sanikop ], 30*09537850SAkhilesh Sanikop} 31*09537850SAkhilesh Sanikop 32*09537850SAkhilesh Sanikopbug_component_id = 324837 33*09537850SAkhilesh Sanikop 34*09537850SAkhilesh Sanikopfuzz_email_cc = ["[email protected]"] 35*09537850SAkhilesh Sanikop 36*09537850SAkhilesh Sanikopcc_library_static { 37*09537850SAkhilesh Sanikop name: "libgav1", 38*09537850SAkhilesh Sanikop host_supported: true, 39*09537850SAkhilesh Sanikop vendor_available: true, 40*09537850SAkhilesh Sanikop 41*09537850SAkhilesh Sanikop export_include_dirs: [ 42*09537850SAkhilesh Sanikop ".", 43*09537850SAkhilesh Sanikop "src", 44*09537850SAkhilesh Sanikop ], 45*09537850SAkhilesh Sanikop 46*09537850SAkhilesh Sanikop cflags: [ 47*09537850SAkhilesh Sanikop "-DLIBGAV1_MAX_BITDEPTH=12", 48*09537850SAkhilesh Sanikop "-DLIBGAV1_THREADPOOL_USE_STD_MUTEX", 49*09537850SAkhilesh Sanikop "-O2", 50*09537850SAkhilesh Sanikop "-Wall", 51*09537850SAkhilesh Sanikop "-Werror", 52*09537850SAkhilesh Sanikop "-Wextra", 53*09537850SAkhilesh Sanikop ], 54*09537850SAkhilesh Sanikop 55*09537850SAkhilesh Sanikop local_include_dirs: [ 56*09537850SAkhilesh Sanikop ".", 57*09537850SAkhilesh Sanikop ], 58*09537850SAkhilesh Sanikop 59*09537850SAkhilesh Sanikop // Note: if optimizations are required for x86 the avx2 & sse4 files should 60*09537850SAkhilesh Sanikop // be split to their own targets to receive the correct flagging. All files 61*09537850SAkhilesh Sanikop // in the library can be built for any target without producing empty 62*09537850SAkhilesh Sanikop // object files. 63*09537850SAkhilesh Sanikop srcs: [ 64*09537850SAkhilesh Sanikop "src/buffer_pool.cc", 65*09537850SAkhilesh Sanikop "src/decoder.cc", 66*09537850SAkhilesh Sanikop "src/decoder_impl.cc", 67*09537850SAkhilesh Sanikop "src/decoder_settings.cc", 68*09537850SAkhilesh Sanikop "src/dsp/arm/average_blend_neon.cc", 69*09537850SAkhilesh Sanikop "src/dsp/arm/cdef_neon.cc", 70*09537850SAkhilesh Sanikop "src/dsp/arm/convolve_10bit_neon.cc", 71*09537850SAkhilesh Sanikop "src/dsp/arm/convolve_neon.cc", 72*09537850SAkhilesh Sanikop "src/dsp/arm/distance_weighted_blend_neon.cc", 73*09537850SAkhilesh Sanikop "src/dsp/arm/film_grain_neon.cc", 74*09537850SAkhilesh Sanikop "src/dsp/arm/intra_edge_neon.cc", 75*09537850SAkhilesh Sanikop "src/dsp/arm/intrapred_cfl_neon.cc", 76*09537850SAkhilesh Sanikop "src/dsp/arm/intrapred_directional_neon.cc", 77*09537850SAkhilesh Sanikop "src/dsp/arm/intrapred_filter_neon.cc", 78*09537850SAkhilesh Sanikop "src/dsp/arm/intrapred_neon.cc", 79*09537850SAkhilesh Sanikop "src/dsp/arm/intrapred_smooth_neon.cc", 80*09537850SAkhilesh Sanikop "src/dsp/arm/inverse_transform_10bit_neon.cc", 81*09537850SAkhilesh Sanikop "src/dsp/arm/inverse_transform_neon.cc", 82*09537850SAkhilesh Sanikop "src/dsp/arm/loop_filter_10bit_neon.cc", 83*09537850SAkhilesh Sanikop "src/dsp/arm/loop_filter_neon.cc", 84*09537850SAkhilesh Sanikop "src/dsp/arm/loop_restoration_10bit_neon.cc", 85*09537850SAkhilesh Sanikop "src/dsp/arm/loop_restoration_neon.cc", 86*09537850SAkhilesh Sanikop "src/dsp/arm/mask_blend_neon.cc", 87*09537850SAkhilesh Sanikop "src/dsp/arm/motion_field_projection_neon.cc", 88*09537850SAkhilesh Sanikop "src/dsp/arm/motion_vector_search_neon.cc", 89*09537850SAkhilesh Sanikop "src/dsp/arm/obmc_neon.cc", 90*09537850SAkhilesh Sanikop "src/dsp/arm/super_res_neon.cc", 91*09537850SAkhilesh Sanikop "src/dsp/arm/warp_neon.cc", 92*09537850SAkhilesh Sanikop "src/dsp/arm/weight_mask_neon.cc", 93*09537850SAkhilesh Sanikop "src/dsp/average_blend.cc", 94*09537850SAkhilesh Sanikop "src/dsp/cdef.cc", 95*09537850SAkhilesh Sanikop "src/dsp/constants.cc", 96*09537850SAkhilesh Sanikop "src/dsp/convolve.cc", 97*09537850SAkhilesh Sanikop "src/dsp/distance_weighted_blend.cc", 98*09537850SAkhilesh Sanikop "src/dsp/dsp.cc", 99*09537850SAkhilesh Sanikop "src/dsp/film_grain.cc", 100*09537850SAkhilesh Sanikop "src/dsp/intra_edge.cc", 101*09537850SAkhilesh Sanikop "src/dsp/intrapred.cc", 102*09537850SAkhilesh Sanikop "src/dsp/intrapred_cfl.cc", 103*09537850SAkhilesh Sanikop "src/dsp/intrapred_directional.cc", 104*09537850SAkhilesh Sanikop "src/dsp/intrapred_filter.cc", 105*09537850SAkhilesh Sanikop "src/dsp/intrapred_smooth.cc", 106*09537850SAkhilesh Sanikop "src/dsp/inverse_transform.cc", 107*09537850SAkhilesh Sanikop "src/dsp/loop_filter.cc", 108*09537850SAkhilesh Sanikop "src/dsp/loop_restoration.cc", 109*09537850SAkhilesh Sanikop "src/dsp/mask_blend.cc", 110*09537850SAkhilesh Sanikop "src/dsp/motion_field_projection.cc", 111*09537850SAkhilesh Sanikop "src/dsp/motion_vector_search.cc", 112*09537850SAkhilesh Sanikop "src/dsp/obmc.cc", 113*09537850SAkhilesh Sanikop "src/dsp/super_res.cc", 114*09537850SAkhilesh Sanikop "src/dsp/warp.cc", 115*09537850SAkhilesh Sanikop "src/dsp/weight_mask.cc", 116*09537850SAkhilesh Sanikop "src/dsp/x86/average_blend_sse4.cc", 117*09537850SAkhilesh Sanikop "src/dsp/x86/cdef_avx2.cc", 118*09537850SAkhilesh Sanikop "src/dsp/x86/cdef_sse4.cc", 119*09537850SAkhilesh Sanikop "src/dsp/x86/convolve_avx2.cc", 120*09537850SAkhilesh Sanikop "src/dsp/x86/convolve_sse4.cc", 121*09537850SAkhilesh Sanikop "src/dsp/x86/distance_weighted_blend_sse4.cc", 122*09537850SAkhilesh Sanikop "src/dsp/x86/film_grain_sse4.cc", 123*09537850SAkhilesh Sanikop "src/dsp/x86/intra_edge_sse4.cc", 124*09537850SAkhilesh Sanikop "src/dsp/x86/intrapred_cfl_sse4.cc", 125*09537850SAkhilesh Sanikop "src/dsp/x86/intrapred_directional_sse4.cc", 126*09537850SAkhilesh Sanikop "src/dsp/x86/intrapred_filter_sse4.cc", 127*09537850SAkhilesh Sanikop "src/dsp/x86/intrapred_smooth_sse4.cc", 128*09537850SAkhilesh Sanikop "src/dsp/x86/intrapred_sse4.cc", 129*09537850SAkhilesh Sanikop "src/dsp/x86/inverse_transform_sse4.cc", 130*09537850SAkhilesh Sanikop "src/dsp/x86/loop_filter_sse4.cc", 131*09537850SAkhilesh Sanikop "src/dsp/x86/loop_restoration_10bit_avx2.cc", 132*09537850SAkhilesh Sanikop "src/dsp/x86/loop_restoration_10bit_sse4.cc", 133*09537850SAkhilesh Sanikop "src/dsp/x86/loop_restoration_avx2.cc", 134*09537850SAkhilesh Sanikop "src/dsp/x86/loop_restoration_sse4.cc", 135*09537850SAkhilesh Sanikop "src/dsp/x86/mask_blend_sse4.cc", 136*09537850SAkhilesh Sanikop "src/dsp/x86/motion_field_projection_sse4.cc", 137*09537850SAkhilesh Sanikop "src/dsp/x86/motion_vector_search_sse4.cc", 138*09537850SAkhilesh Sanikop "src/dsp/x86/obmc_sse4.cc", 139*09537850SAkhilesh Sanikop "src/dsp/x86/super_res_sse4.cc", 140*09537850SAkhilesh Sanikop "src/dsp/x86/warp_sse4.cc", 141*09537850SAkhilesh Sanikop "src/dsp/x86/weight_mask_sse4.cc", 142*09537850SAkhilesh Sanikop "src/film_grain.cc", 143*09537850SAkhilesh Sanikop "src/frame_buffer.cc", 144*09537850SAkhilesh Sanikop "src/internal_frame_buffer_list.cc", 145*09537850SAkhilesh Sanikop "src/loop_restoration_info.cc", 146*09537850SAkhilesh Sanikop "src/motion_vector.cc", 147*09537850SAkhilesh Sanikop "src/obu_parser.cc", 148*09537850SAkhilesh Sanikop "src/post_filter/cdef.cc", 149*09537850SAkhilesh Sanikop "src/post_filter/deblock.cc", 150*09537850SAkhilesh Sanikop "src/post_filter/loop_restoration.cc", 151*09537850SAkhilesh Sanikop "src/post_filter/post_filter.cc", 152*09537850SAkhilesh Sanikop "src/post_filter/super_res.cc", 153*09537850SAkhilesh Sanikop "src/prediction_mask.cc", 154*09537850SAkhilesh Sanikop "src/quantizer.cc", 155*09537850SAkhilesh Sanikop "src/reconstruction.cc", 156*09537850SAkhilesh Sanikop "src/residual_buffer_pool.cc", 157*09537850SAkhilesh Sanikop "src/status_code.cc", 158*09537850SAkhilesh Sanikop "src/symbol_decoder_context.cc", 159*09537850SAkhilesh Sanikop "src/threading_strategy.cc", 160*09537850SAkhilesh Sanikop "src/tile/bitstream/mode_info.cc", 161*09537850SAkhilesh Sanikop "src/tile/bitstream/palette.cc", 162*09537850SAkhilesh Sanikop "src/tile/bitstream/partition.cc", 163*09537850SAkhilesh Sanikop "src/tile/bitstream/transform_size.cc", 164*09537850SAkhilesh Sanikop "src/tile/prediction.cc", 165*09537850SAkhilesh Sanikop "src/tile/tile.cc", 166*09537850SAkhilesh Sanikop "src/tile_scratch_buffer.cc", 167*09537850SAkhilesh Sanikop "src/utils/bit_reader.cc", 168*09537850SAkhilesh Sanikop "src/utils/block_parameters_holder.cc", 169*09537850SAkhilesh Sanikop "src/utils/constants.cc", 170*09537850SAkhilesh Sanikop "src/utils/cpu.cc", 171*09537850SAkhilesh Sanikop "src/utils/entropy_decoder.cc", 172*09537850SAkhilesh Sanikop "src/utils/executor.cc", 173*09537850SAkhilesh Sanikop "src/utils/logging.cc", 174*09537850SAkhilesh Sanikop "src/utils/raw_bit_reader.cc", 175*09537850SAkhilesh Sanikop "src/utils/segmentation.cc", 176*09537850SAkhilesh Sanikop "src/utils/segmentation_map.cc", 177*09537850SAkhilesh Sanikop "src/utils/threadpool.cc", 178*09537850SAkhilesh Sanikop "src/version.cc", 179*09537850SAkhilesh Sanikop "src/warp_prediction.cc", 180*09537850SAkhilesh Sanikop "src/yuv_buffer.cc", 181*09537850SAkhilesh Sanikop ], 182*09537850SAkhilesh Sanikop 183*09537850SAkhilesh Sanikop arch: { 184*09537850SAkhilesh Sanikop arm: { 185*09537850SAkhilesh Sanikop instruction_set: "arm", 186*09537850SAkhilesh Sanikop }, 187*09537850SAkhilesh Sanikop }, 188*09537850SAkhilesh Sanikop min_sdk_version: "29", 189*09537850SAkhilesh Sanikop apex_available: [ 190*09537850SAkhilesh Sanikop "//apex_available:platform", 191*09537850SAkhilesh Sanikop "com.android.media.swcodec", 192*09537850SAkhilesh Sanikop ], 193*09537850SAkhilesh Sanikop} 194*09537850SAkhilesh Sanikop 195*09537850SAkhilesh Sanikop// Helper library that only contains the bitstream parser. 196*09537850SAkhilesh Sanikopcc_library_static { 197*09537850SAkhilesh Sanikop name: "libgav1_parser", 198*09537850SAkhilesh Sanikop host_supported: true, 199*09537850SAkhilesh Sanikop vendor_available: true, 200*09537850SAkhilesh Sanikop 201*09537850SAkhilesh Sanikop export_include_dirs: [ 202*09537850SAkhilesh Sanikop ".", 203*09537850SAkhilesh Sanikop "src", 204*09537850SAkhilesh Sanikop ], 205*09537850SAkhilesh Sanikop 206*09537850SAkhilesh Sanikop cflags: [ 207*09537850SAkhilesh Sanikop "-DLIBGAV1_MAX_BITDEPTH=12", 208*09537850SAkhilesh Sanikop "-DLIBGAV1_THREADPOOL_USE_STD_MUTEX", 209*09537850SAkhilesh Sanikop "-O2", 210*09537850SAkhilesh Sanikop "-Wall", 211*09537850SAkhilesh Sanikop "-Werror", 212*09537850SAkhilesh Sanikop "-Wextra", 213*09537850SAkhilesh Sanikop ], 214*09537850SAkhilesh Sanikop 215*09537850SAkhilesh Sanikop srcs: [ 216*09537850SAkhilesh Sanikop "src/buffer_pool.cc", 217*09537850SAkhilesh Sanikop "src/frame_buffer.cc", 218*09537850SAkhilesh Sanikop "src/obu_parser.cc", 219*09537850SAkhilesh Sanikop "src/internal_frame_buffer_list.cc", 220*09537850SAkhilesh Sanikop "src/status_code.cc", 221*09537850SAkhilesh Sanikop "src/utils/bit_reader.cc", 222*09537850SAkhilesh Sanikop "src/utils/constants.cc", 223*09537850SAkhilesh Sanikop "src/utils/logging.cc", 224*09537850SAkhilesh Sanikop "src/utils/raw_bit_reader.cc", 225*09537850SAkhilesh Sanikop "src/utils/segmentation.cc", 226*09537850SAkhilesh Sanikop "src/utils/segmentation_map.cc", 227*09537850SAkhilesh Sanikop "src/symbol_decoder_context.cc", 228*09537850SAkhilesh Sanikop "src/quantizer.cc", 229*09537850SAkhilesh Sanikop "src/yuv_buffer.cc", 230*09537850SAkhilesh Sanikop ], 231*09537850SAkhilesh Sanikop} 232*09537850SAkhilesh Sanikop 233*09537850SAkhilesh Sanikopcc_defaults { 234*09537850SAkhilesh Sanikop name: "libgav1_fuzzer_defaults", 235*09537850SAkhilesh Sanikop host_supported: true, 236*09537850SAkhilesh Sanikop native_coverage: true, 237*09537850SAkhilesh Sanikop 238*09537850SAkhilesh Sanikop cflags: [ 239*09537850SAkhilesh Sanikop "-DLIBGAV1_ENABLE_LOGGING=0", 240*09537850SAkhilesh Sanikop "-DLIBGAV1_EXAMPLES_ENABLE_LOGGING=0", 241*09537850SAkhilesh Sanikop "-DLIBGAV1_MAX_BITDEPTH=12", 242*09537850SAkhilesh Sanikop "-DLIBGAV1_THREADPOOL_USE_STD_MUTEX", 243*09537850SAkhilesh Sanikop ], 244*09537850SAkhilesh Sanikop 245*09537850SAkhilesh Sanikop local_include_dirs: [ 246*09537850SAkhilesh Sanikop ".", 247*09537850SAkhilesh Sanikop ], 248*09537850SAkhilesh Sanikop 249*09537850SAkhilesh Sanikop srcs: [ 250*09537850SAkhilesh Sanikop "examples/file_reader.cc", 251*09537850SAkhilesh Sanikop "examples/file_reader_constants.cc", 252*09537850SAkhilesh Sanikop "examples/file_reader_factory.cc", 253*09537850SAkhilesh Sanikop "examples/ivf_parser.cc", 254*09537850SAkhilesh Sanikop ], 255*09537850SAkhilesh Sanikop 256*09537850SAkhilesh Sanikop static_libs: [ 257*09537850SAkhilesh Sanikop "libgav1", 258*09537850SAkhilesh Sanikop ], 259*09537850SAkhilesh Sanikop 260*09537850SAkhilesh Sanikop fuzz_config: { 261*09537850SAkhilesh Sanikop cc: fuzz_email_cc, 262*09537850SAkhilesh Sanikop componentid: bug_component_id, 263*09537850SAkhilesh Sanikop hotlists: [ 264*09537850SAkhilesh Sanikop "2100854", 265*09537850SAkhilesh Sanikop ], 266*09537850SAkhilesh Sanikop description: "The fuzzer targets the APIs of libgav1", 267*09537850SAkhilesh Sanikop vector: "remote", 268*09537850SAkhilesh Sanikop service_privilege: "constrained", 269*09537850SAkhilesh Sanikop users: "multi_user", 270*09537850SAkhilesh Sanikop fuzzed_code_usage: "shipped", 271*09537850SAkhilesh Sanikop }, 272*09537850SAkhilesh Sanikop} 273*09537850SAkhilesh Sanikop 274*09537850SAkhilesh Sanikopcc_fuzz { 275*09537850SAkhilesh Sanikop name: "libgav1_decoder_fuzzer", 276*09537850SAkhilesh Sanikop defaults: ["libgav1_fuzzer_defaults"], 277*09537850SAkhilesh Sanikop 278*09537850SAkhilesh Sanikop srcs: [ 279*09537850SAkhilesh Sanikop "tests/fuzzer/decoder_fuzzer.cc", 280*09537850SAkhilesh Sanikop ], 281*09537850SAkhilesh Sanikop} 282*09537850SAkhilesh Sanikop 283*09537850SAkhilesh Sanikopcc_fuzz { 284*09537850SAkhilesh Sanikop name: "libgav1_decoder_fuzzer_frame_parallel", 285*09537850SAkhilesh Sanikop defaults: ["libgav1_fuzzer_defaults"], 286*09537850SAkhilesh Sanikop 287*09537850SAkhilesh Sanikop srcs: [ 288*09537850SAkhilesh Sanikop "tests/fuzzer/decoder_fuzzer_frame_parallel.cc", 289*09537850SAkhilesh Sanikop ], 290*09537850SAkhilesh Sanikop} 291*09537850SAkhilesh Sanikop 292*09537850SAkhilesh Sanikopcc_fuzz { 293*09537850SAkhilesh Sanikop name: "libgav1_obu_parser_fuzzer", 294*09537850SAkhilesh Sanikop defaults: ["libgav1_fuzzer_defaults"], 295*09537850SAkhilesh Sanikop 296*09537850SAkhilesh Sanikop srcs: [ 297*09537850SAkhilesh Sanikop "tests/fuzzer/obu_parser_fuzzer.cc", 298*09537850SAkhilesh Sanikop ], 299*09537850SAkhilesh Sanikop} 300