1// Copyright (C) 2016 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 15// Headers module is in frameworks/av/Android.bp because modules are not allowed 16// to refer to headers in parent directories and the headers live in 17// frameworks/av/include. 18 19package { 20 default_applicable_licenses: ["frameworks_av_media_ndk_license"], 21} 22 23// Added automatically by a large-scale-change that took the approach of 24// 'apply every license found to every target'. While this makes sure we respect 25// every license restriction, it may not be entirely correct. 26// 27// e.g. GPL in an MIT project might only apply to the contrib/ directory. 28// 29// Please consider splitting the single license below into multiple licenses, 30// taking care not to lose any license_kind information, and overriding the 31// default license using the 'licenses: [...]' property on targets as needed. 32// 33// For unused files, consider creating a 'fileGroup' with "//visibility:private" 34// to attach the license to, and including a comment whether the files may be 35// used in the current project. 36// See: http://go/android-license-faq 37license { 38 name: "frameworks_av_media_ndk_license", 39 visibility: [":__subpackages__"], 40 license_kinds: [ 41 "SPDX-license-identifier-Apache-2.0", 42 "SPDX-license-identifier-MIT", 43 "SPDX-license-identifier-Unicode-DFS", 44 ], 45 license_text: [ 46 "NOTICE", 47 ], 48} 49 50ndk_library { 51 name: "libmediandk", 52 symbol_file: "libmediandk.map.txt", 53 first_version: "21", 54 unversioned_until: "current", 55} 56 57ndk_headers { 58 name: "libmediandk_headers", 59 from: "include/media", 60 to: "media", 61 srcs: ["include/media/**/*.h"], 62 license: "NOTICE", 63} 64 65// for use with header_libs 66cc_library_headers { 67 name: "media_ndk_headers", 68 vendor_available: true, 69 // TODO(b/153609531): remove when no longer needed. 70 native_bridge_supported: true, 71 apex_available: [ 72 "//apex_available:platform", 73 "com.android.media", 74 "com.android.media.swcodec", 75 ], 76 min_sdk_version: "29", 77 export_include_dirs: ["include"], 78 host_supported: true, 79 target: { 80 darwin: { 81 enabled: false, 82 }, 83 }, 84} 85 86cc_library_shared { 87 name: "libmediandk", 88 llndk: { 89 symbol_file: "libmediandk.map.txt", 90 }, 91 92 srcs: [ 93 "NdkJavaVMHelper.cpp", 94 "NdkMediaCodec.cpp", 95 "NdkMediaCrypto.cpp", 96 "NdkMediaDataSource.cpp", 97 "NdkMediaExtractor.cpp", 98 "NdkMediaFormat.cpp", 99 "NdkMediaMuxer.cpp", 100 "NdkMediaDrm.cpp", 101 "NdkImage.cpp", 102 "NdkImageReader.cpp", 103 ], 104 105 include_dirs: [ 106 "frameworks/base/core/jni", 107 "frameworks/native/include/media/openmax", 108 "system/media/camera/include", 109 ], 110 111 cflags: [ 112 "-DEXPORT=__attribute__((visibility(\"default\")))", 113 "-Werror", 114 "-Wall", 115 ], 116 117 static_libs: [ 118 "libgrallocusage", 119 "libnativehelper_lazy", 120 ], 121 122 header_libs: [ 123 "jni_headers", 124 "libmediadrm_headers", 125 "libmediametrics_headers", 126 ], 127 128 shared_libs: [ 129 "android.hardware.graphics.bufferqueue@1.0", 130 "android.hidl.token@1.0-utils", 131 "libandroid_runtime_lazy", 132 "libbase", 133 "libdatasource", 134 "libmedia", 135 "libmediadrm", 136 "libmedia_omx", 137 "libmedia_jni_utils", 138 "libstagefright", 139 "libstagefright_foundation", 140 "liblog", 141 "libutils", 142 "libcutils", 143 "libnativewindow", 144 "libhidlbase", 145 "libgui", 146 "libui", 147 "libmediandk_utils", 148 ], 149 150 export_header_lib_headers: ["jni_headers"], 151 152 export_include_dirs: [ 153 "include", 154 "include_platform", 155 ], 156 157 export_shared_lib_headers: [ 158 "libgui", 159 ], 160 161 product_variables: { 162 pdk: { 163 enabled: false, 164 }, 165 }, 166 version_script: "libmediandk.map.txt", 167 stubs: { 168 symbol_file: "libmediandk.map.txt", 169 versions: ["29"], 170 }, 171} 172 173cc_library { 174 name: "libmediandk_utils", 175 176 srcs: [ 177 "NdkMediaDataSourceCallbacks.cpp", 178 ], 179 180 include_dirs: [ 181 "frameworks/av/media/libstagefright/include", 182 "frameworks/av/media/ndk/include", 183 ], 184 185 export_include_dirs: [ 186 "include", 187 ], 188 189 cflags: [ 190 "-Werror", 191 "-Wno-error=deprecated-declarations", 192 "-Wall", 193 ], 194 195 header_libs: [ 196 "libmedia_headers", 197 ], 198 199 shared_libs: [ 200 ], 201 202 sanitize: { 203 misc_undefined: [ 204 "unsigned-integer-overflow", 205 "signed-integer-overflow", 206 ], 207 cfi: true, 208 }, 209} 210 211cc_test { 212 name: "AImageReaderWindowHandleTest", 213 test_suites: ["device-tests"], 214 srcs: ["tests/AImageReaderWindowHandleTest.cpp"], 215 shared_libs: [ 216 "libbinder", 217 "libmediandk", 218 "libmediautils", 219 "libnativewindow", 220 "libgui", 221 "libutils", 222 "libui", 223 "libcutils", 224 "android.hardware.graphics.bufferqueue@1.0", 225 ], 226 header_libs: [ 227 "libstagefright_foundation_headers", 228 ], 229 230 cflags: [ 231 "-D__ANDROID_VNDK__", 232 ], 233 include_dirs: [ 234 "frameworks/av/media/ndk/", 235 ], 236} 237 238cc_library_static { 239 name: "libmediandk_format", 240 241 host_supported: true, 242 243 srcs: [ 244 "NdkMediaFormat.cpp", 245 ], 246 247 header_libs: [ 248 "libstagefright_foundation_headers", 249 ], 250 251 cflags: [ 252 "-DEXPORT=__attribute__((visibility(\"default\")))", 253 "-Werror", 254 "-Wall", 255 ], 256 257 export_include_dirs: ["include"], 258 259 sanitize: { 260 misc_undefined: [ 261 "unsigned-integer-overflow", 262 "signed-integer-overflow", 263 ], 264 cfi: true, 265 }, 266 267 target: { 268 darwin: { 269 enabled: false, 270 }, 271 }, 272 273 apex_available: [ 274 "//apex_available:platform", 275 "com.android.media", 276 "com.android.media.swcodec", 277 ], 278} 279