1// 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 15cc_library_static { 16 name: "libgav1", 17 vendor_available: true, 18 19 export_include_dirs: [ 20 ".", 21 "libgav1/src", 22 ], 23 24 cflags: [ 25 "-DLIBGAV1_MAX_BITDEPTH=10", 26 "-O2", 27 "-Wall", 28 "-Werror", 29 "-Wextra", 30 ], 31 32 local_include_dirs: [ 33 "libgav1", 34 ], 35 36 // Note: if optimizations are required for x86 the sse4 files should be 37 // split to their own target to receive the correct flagging. All files in 38 // the library can be built for any target without producing empty object 39 // files. 40 srcs: [ 41 "libgav1/src/buffer_pool.cc", 42 "libgav1/src/decoder.cc", 43 "libgav1/src/decoder_impl.cc", 44 "libgav1/src/decoder_settings.cc", 45 "libgav1/src/dsp/arm/average_blend_neon.cc", 46 "libgav1/src/dsp/arm/cdef_neon.cc", 47 "libgav1/src/dsp/arm/convolve_neon.cc", 48 "libgav1/src/dsp/arm/distance_weighted_blend_neon.cc", 49 "libgav1/src/dsp/arm/film_grain_neon.cc", 50 "libgav1/src/dsp/arm/intra_edge_neon.cc", 51 "libgav1/src/dsp/arm/intrapred_cfl_neon.cc", 52 "libgav1/src/dsp/arm/intrapred_directional_neon.cc", 53 "libgav1/src/dsp/arm/intrapred_filter_intra_neon.cc", 54 "libgav1/src/dsp/arm/intrapred_neon.cc", 55 "libgav1/src/dsp/arm/intrapred_smooth_neon.cc", 56 "libgav1/src/dsp/arm/inverse_transform_neon.cc", 57 "libgav1/src/dsp/arm/loop_filter_neon.cc", 58 "libgav1/src/dsp/arm/loop_restoration_neon.cc", 59 "libgav1/src/dsp/arm/mask_blend_neon.cc", 60 "libgav1/src/dsp/arm/motion_field_projection_neon.cc", 61 "libgav1/src/dsp/arm/motion_vector_search_neon.cc", 62 "libgav1/src/dsp/arm/obmc_neon.cc", 63 "libgav1/src/dsp/arm/super_res_neon.cc", 64 "libgav1/src/dsp/arm/warp_neon.cc", 65 "libgav1/src/dsp/arm/weight_mask_neon.cc", 66 "libgav1/src/dsp/average_blend.cc", 67 "libgav1/src/dsp/cdef.cc", 68 "libgav1/src/dsp/constants.cc", 69 "libgav1/src/dsp/convolve.cc", 70 "libgav1/src/dsp/distance_weighted_blend.cc", 71 "libgav1/src/dsp/dsp.cc", 72 "libgav1/src/dsp/film_grain.cc", 73 "libgav1/src/dsp/intra_edge.cc", 74 "libgav1/src/dsp/intrapred.cc", 75 "libgav1/src/dsp/inverse_transform.cc", 76 "libgav1/src/dsp/loop_filter.cc", 77 "libgav1/src/dsp/loop_restoration.cc", 78 "libgav1/src/dsp/mask_blend.cc", 79 "libgav1/src/dsp/motion_field_projection.cc", 80 "libgav1/src/dsp/motion_vector_search.cc", 81 "libgav1/src/dsp/obmc.cc", 82 "libgav1/src/dsp/super_res.cc", 83 "libgav1/src/dsp/warp.cc", 84 "libgav1/src/dsp/weight_mask.cc", 85 "libgav1/src/dsp/x86/average_blend_sse4.cc", 86 "libgav1/src/dsp/x86/cdef_sse4.cc", 87 "libgav1/src/dsp/x86/convolve_sse4.cc", 88 "libgav1/src/dsp/x86/distance_weighted_blend_sse4.cc", 89 "libgav1/src/dsp/x86/intra_edge_sse4.cc", 90 "libgav1/src/dsp/x86/intrapred_cfl_sse4.cc", 91 "libgav1/src/dsp/x86/intrapred_smooth_sse4.cc", 92 "libgav1/src/dsp/x86/intrapred_sse4.cc", 93 "libgav1/src/dsp/x86/inverse_transform_sse4.cc", 94 "libgav1/src/dsp/x86/loop_filter_sse4.cc", 95 "libgav1/src/dsp/x86/loop_restoration_sse4.cc", 96 "libgav1/src/dsp/x86/mask_blend_sse4.cc", 97 "libgav1/src/dsp/x86/motion_field_projection_sse4.cc", 98 "libgav1/src/dsp/x86/motion_vector_search_sse4.cc", 99 "libgav1/src/dsp/x86/obmc_sse4.cc", 100 "libgav1/src/dsp/x86/super_res_sse4.cc", 101 "libgav1/src/dsp/x86/warp_sse4.cc", 102 "libgav1/src/dsp/x86/weight_mask_sse4.cc", 103 "libgav1/src/film_grain.cc", 104 "libgav1/src/frame_buffer.cc", 105 "libgav1/src/internal_frame_buffer_list.cc", 106 "libgav1/src/loop_restoration_info.cc", 107 "libgav1/src/motion_vector.cc", 108 "libgav1/src/obu_parser.cc", 109 "libgav1/src/post_filter/cdef.cc", 110 "libgav1/src/post_filter/deblock.cc", 111 "libgav1/src/post_filter/loop_restoration.cc", 112 "libgav1/src/post_filter/post_filter.cc", 113 "libgav1/src/post_filter/super_res.cc", 114 "libgav1/src/prediction_mask.cc", 115 "libgav1/src/quantizer.cc", 116 "libgav1/src/reconstruction.cc", 117 "libgav1/src/residual_buffer_pool.cc", 118 "libgav1/src/status_code.cc", 119 "libgav1/src/symbol_decoder_context.cc", 120 "libgav1/src/threading_strategy.cc", 121 "libgav1/src/tile/bitstream/mode_info.cc", 122 "libgav1/src/tile/bitstream/palette.cc", 123 "libgav1/src/tile/bitstream/partition.cc", 124 "libgav1/src/tile/bitstream/transform_size.cc", 125 "libgav1/src/tile/prediction.cc", 126 "libgav1/src/tile_scratch_buffer.cc", 127 "libgav1/src/tile/tile.cc", 128 "libgav1/src/utils/bit_reader.cc", 129 "libgav1/src/utils/block_parameters_holder.cc", 130 "libgav1/src/utils/constants.cc", 131 "libgav1/src/utils/cpu.cc", 132 "libgav1/src/utils/entropy_decoder.cc", 133 "libgav1/src/utils/executor.cc", 134 "libgav1/src/utils/logging.cc", 135 "libgav1/src/utils/parameter_tree.cc", 136 "libgav1/src/utils/raw_bit_reader.cc", 137 "libgav1/src/utils/segmentation.cc", 138 "libgav1/src/utils/segmentation_map.cc", 139 "libgav1/src/utils/threadpool.cc", 140 "libgav1/src/version.cc", 141 "libgav1/src/warp_prediction.cc", 142 "libgav1/src/yuv_buffer.cc", 143 ], 144 145 arch: { 146 arm: { 147 instruction_set: "arm", 148 }, 149 }, 150 min_sdk_version: "29", 151} 152