xref: /aosp_15_r20/frameworks/av/media/module/foundation/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Workerpackage {
2*ec779b8eSAndroid Build Coastguard Worker    default_applicable_licenses: [
3*ec779b8eSAndroid Build Coastguard Worker        "frameworks_av_media_libstagefright_foundation_license",
4*ec779b8eSAndroid Build Coastguard Worker    ],
5*ec779b8eSAndroid Build Coastguard Worker}
6*ec779b8eSAndroid Build Coastguard Worker
7*ec779b8eSAndroid Build Coastguard Worker// Added automatically by a large-scale-change
8*ec779b8eSAndroid Build Coastguard Worker// See: http://go/android-license-faq
9*ec779b8eSAndroid Build Coastguard Workerlicense {
10*ec779b8eSAndroid Build Coastguard Worker    name: "frameworks_av_media_libstagefright_foundation_license",
11*ec779b8eSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
12*ec779b8eSAndroid Build Coastguard Worker    license_kinds: [
13*ec779b8eSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
14*ec779b8eSAndroid Build Coastguard Worker    ],
15*ec779b8eSAndroid Build Coastguard Worker    license_text: [
16*ec779b8eSAndroid Build Coastguard Worker        "NOTICE",
17*ec779b8eSAndroid Build Coastguard Worker    ],
18*ec779b8eSAndroid Build Coastguard Worker}
19*ec779b8eSAndroid Build Coastguard Worker
20*ec779b8eSAndroid Build Coastguard Workercc_library_headers {
21*ec779b8eSAndroid Build Coastguard Worker    name: "libstagefright_foundation_headers",
22*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
23*ec779b8eSAndroid Build Coastguard Worker    vendor_available: true,
24*ec779b8eSAndroid Build Coastguard Worker    host_supported: true,
25*ec779b8eSAndroid Build Coastguard Worker    min_sdk_version: "29",
26*ec779b8eSAndroid Build Coastguard Worker    apex_available: [
27*ec779b8eSAndroid Build Coastguard Worker        "//apex_available:platform",
28*ec779b8eSAndroid Build Coastguard Worker        "com.android.media",
29*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec",
30*ec779b8eSAndroid Build Coastguard Worker    ],
31*ec779b8eSAndroid Build Coastguard Worker}
32*ec779b8eSAndroid Build Coastguard Worker
33*ec779b8eSAndroid Build Coastguard Workercc_defaults {
34*ec779b8eSAndroid Build Coastguard Worker    name: "libstagefright_foundation_defaults",
35*ec779b8eSAndroid Build Coastguard Worker    vendor_available: true,
36*ec779b8eSAndroid Build Coastguard Worker    host_supported: true,
37*ec779b8eSAndroid Build Coastguard Worker    double_loadable: true,
38*ec779b8eSAndroid Build Coastguard Worker
39*ec779b8eSAndroid Build Coastguard Worker    local_include_dirs: [
40*ec779b8eSAndroid Build Coastguard Worker        "include/media/stagefright/foundation",
41*ec779b8eSAndroid Build Coastguard Worker    ],
42*ec779b8eSAndroid Build Coastguard Worker
43*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
44*ec779b8eSAndroid Build Coastguard Worker        "av-headers",
45*ec779b8eSAndroid Build Coastguard Worker        // this is only needed for the vendor variant that removes libbinder, but vendor
46*ec779b8eSAndroid Build Coastguard Worker        // target below does not allow adding header_libs.
47*ec779b8eSAndroid Build Coastguard Worker        "libbinder_headers",
48*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation_headers",
49*ec779b8eSAndroid Build Coastguard Worker        "media_ndk_headers",
50*ec779b8eSAndroid Build Coastguard Worker        "media_plugin_headers",
51*ec779b8eSAndroid Build Coastguard Worker    ],
52*ec779b8eSAndroid Build Coastguard Worker
53*ec779b8eSAndroid Build Coastguard Worker    export_header_lib_headers: [
54*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation_headers",
55*ec779b8eSAndroid Build Coastguard Worker        "media_plugin_headers",
56*ec779b8eSAndroid Build Coastguard Worker    ],
57*ec779b8eSAndroid Build Coastguard Worker
58*ec779b8eSAndroid Build Coastguard Worker    cflags: [
59*ec779b8eSAndroid Build Coastguard Worker        "-Wno-multichar",
60*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
61*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
62*ec779b8eSAndroid Build Coastguard Worker    ],
63*ec779b8eSAndroid Build Coastguard Worker
64*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
65*ec779b8eSAndroid Build Coastguard Worker        "libbinder",
66*ec779b8eSAndroid Build Coastguard Worker        "libutils",
67*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
68*ec779b8eSAndroid Build Coastguard Worker        "liblog",
69*ec779b8eSAndroid Build Coastguard Worker    ],
70*ec779b8eSAndroid Build Coastguard Worker
71*ec779b8eSAndroid Build Coastguard Worker    srcs: [
72*ec779b8eSAndroid Build Coastguard Worker        "AAtomizer.cpp",
73*ec779b8eSAndroid Build Coastguard Worker        "ABitReader.cpp",
74*ec779b8eSAndroid Build Coastguard Worker        "ABuffer.cpp",
75*ec779b8eSAndroid Build Coastguard Worker        "ADebug.cpp",
76*ec779b8eSAndroid Build Coastguard Worker        "AHandler.cpp",
77*ec779b8eSAndroid Build Coastguard Worker        "ALooper.cpp",
78*ec779b8eSAndroid Build Coastguard Worker        "ALooperRoster.cpp",
79*ec779b8eSAndroid Build Coastguard Worker        "AMessage.cpp",
80*ec779b8eSAndroid Build Coastguard Worker        "AString.cpp",
81*ec779b8eSAndroid Build Coastguard Worker        "AStringUtils.cpp",
82*ec779b8eSAndroid Build Coastguard Worker        "AudioPresentationInfo.cpp",
83*ec779b8eSAndroid Build Coastguard Worker        "ByteUtils.cpp",
84*ec779b8eSAndroid Build Coastguard Worker        "ColorUtils.cpp",
85*ec779b8eSAndroid Build Coastguard Worker        "ColorUtils_fill.cpp",
86*ec779b8eSAndroid Build Coastguard Worker        "FoundationUtils.cpp",
87*ec779b8eSAndroid Build Coastguard Worker        "MediaBuffer.cpp",
88*ec779b8eSAndroid Build Coastguard Worker        "MediaBufferBase.cpp",
89*ec779b8eSAndroid Build Coastguard Worker        "MediaBufferGroup.cpp",
90*ec779b8eSAndroid Build Coastguard Worker        "MediaDefs.cpp",
91*ec779b8eSAndroid Build Coastguard Worker        "MediaKeys.cpp",
92*ec779b8eSAndroid Build Coastguard Worker        "MetaData.cpp",
93*ec779b8eSAndroid Build Coastguard Worker        "MetaDataBase.cpp",
94*ec779b8eSAndroid Build Coastguard Worker        "OpusHeader.cpp",
95*ec779b8eSAndroid Build Coastguard Worker        "avc_utils.cpp",
96*ec779b8eSAndroid Build Coastguard Worker        "base64.cpp",
97*ec779b8eSAndroid Build Coastguard Worker        "hexdump.cpp",
98*ec779b8eSAndroid Build Coastguard Worker    ],
99*ec779b8eSAndroid Build Coastguard Worker
100*ec779b8eSAndroid Build Coastguard Worker    target: {
101*ec779b8eSAndroid Build Coastguard Worker        vendor: {
102*ec779b8eSAndroid Build Coastguard Worker            // TODO: add libbinder_headers here instead of above when it becomes supported
103*ec779b8eSAndroid Build Coastguard Worker            exclude_shared_libs: [
104*ec779b8eSAndroid Build Coastguard Worker                "libbinder",
105*ec779b8eSAndroid Build Coastguard Worker            ],
106*ec779b8eSAndroid Build Coastguard Worker            cflags: [
107*ec779b8eSAndroid Build Coastguard Worker                "-DNO_IMEMORY",
108*ec779b8eSAndroid Build Coastguard Worker            ],
109*ec779b8eSAndroid Build Coastguard Worker        },
110*ec779b8eSAndroid Build Coastguard Worker        host: {
111*ec779b8eSAndroid Build Coastguard Worker            sanitize: {
112*ec779b8eSAndroid Build Coastguard Worker                cfi: false,
113*ec779b8eSAndroid Build Coastguard Worker            },
114*ec779b8eSAndroid Build Coastguard Worker        },
115*ec779b8eSAndroid Build Coastguard Worker        apex: {
116*ec779b8eSAndroid Build Coastguard Worker            exclude_shared_libs: [
117*ec779b8eSAndroid Build Coastguard Worker                "libbinder",
118*ec779b8eSAndroid Build Coastguard Worker            ],
119*ec779b8eSAndroid Build Coastguard Worker        },
120*ec779b8eSAndroid Build Coastguard Worker        darwin: {
121*ec779b8eSAndroid Build Coastguard Worker            enabled: false,
122*ec779b8eSAndroid Build Coastguard Worker        },
123*ec779b8eSAndroid Build Coastguard Worker    },
124*ec779b8eSAndroid Build Coastguard Worker
125*ec779b8eSAndroid Build Coastguard Worker    sanitize: {
126*ec779b8eSAndroid Build Coastguard Worker        misc_undefined: [
127*ec779b8eSAndroid Build Coastguard Worker            "unsigned-integer-overflow",
128*ec779b8eSAndroid Build Coastguard Worker            "signed-integer-overflow",
129*ec779b8eSAndroid Build Coastguard Worker        ],
130*ec779b8eSAndroid Build Coastguard Worker        cfi: true,
131*ec779b8eSAndroid Build Coastguard Worker    },
132*ec779b8eSAndroid Build Coastguard Worker}
133*ec779b8eSAndroid Build Coastguard Worker
134*ec779b8eSAndroid Build Coastguard Workercc_library {
135*ec779b8eSAndroid Build Coastguard Worker    name: "libstagefright_foundation",
136*ec779b8eSAndroid Build Coastguard Worker    defaults: ["libstagefright_foundation_defaults"],
137*ec779b8eSAndroid Build Coastguard Worker    min_sdk_version: "29",
138*ec779b8eSAndroid Build Coastguard Worker    apex_available: [
139*ec779b8eSAndroid Build Coastguard Worker        "//apex_available:platform",
140*ec779b8eSAndroid Build Coastguard Worker        "com.android.media",
141*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec",
142*ec779b8eSAndroid Build Coastguard Worker    ],
143*ec779b8eSAndroid Build Coastguard Worker}
144*ec779b8eSAndroid Build Coastguard Worker
145*ec779b8eSAndroid Build Coastguard Workercc_library_static {
146*ec779b8eSAndroid Build Coastguard Worker    name: "libstagefright_foundation_without_imemory",
147*ec779b8eSAndroid Build Coastguard Worker    defaults: ["libstagefright_foundation_defaults"],
148*ec779b8eSAndroid Build Coastguard Worker    min_sdk_version: "29",
149*ec779b8eSAndroid Build Coastguard Worker    apex_available: ["com.android.media"],
150*ec779b8eSAndroid Build Coastguard Worker
151*ec779b8eSAndroid Build Coastguard Worker
152*ec779b8eSAndroid Build Coastguard Worker    cflags: [
153*ec779b8eSAndroid Build Coastguard Worker        "-Wno-multichar",
154*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
155*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
156*ec779b8eSAndroid Build Coastguard Worker        "-DNO_IMEMORY",
157*ec779b8eSAndroid Build Coastguard Worker    ],
158*ec779b8eSAndroid Build Coastguard Worker}
159*ec779b8eSAndroid Build Coastguard Worker
160*ec779b8eSAndroid Build Coastguard Worker// this gets linked into extractors in media mainline module
161*ec779b8eSAndroid Build Coastguard Worker// so must be ndk api 29 so that it runs on >=Q
162*ec779b8eSAndroid Build Coastguard Workercc_library_static {
163*ec779b8eSAndroid Build Coastguard Worker    name: "libstagefright_foundation_colorutils_ndk",
164*ec779b8eSAndroid Build Coastguard Worker    host_supported: true,
165*ec779b8eSAndroid Build Coastguard Worker    vendor_available: true,
166*ec779b8eSAndroid Build Coastguard Worker
167*ec779b8eSAndroid Build Coastguard Worker    target: {
168*ec779b8eSAndroid Build Coastguard Worker        darwin: {
169*ec779b8eSAndroid Build Coastguard Worker            enabled: false,
170*ec779b8eSAndroid Build Coastguard Worker        },
171*ec779b8eSAndroid Build Coastguard Worker    },
172*ec779b8eSAndroid Build Coastguard Worker
173*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
174*ec779b8eSAndroid Build Coastguard Worker        "liblog",
175*ec779b8eSAndroid Build Coastguard Worker        "libutils", // for sp<>
176*ec779b8eSAndroid Build Coastguard Worker        // actually invokes this, but called from folks who already load it
177*ec779b8eSAndroid Build Coastguard Worker        // "libmediandk",
178*ec779b8eSAndroid Build Coastguard Worker    ],
179*ec779b8eSAndroid Build Coastguard Worker
180*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
181*ec779b8eSAndroid Build Coastguard Worker        // this is only needed for the vendor variant that removes libbinder, but vendor
182*ec779b8eSAndroid Build Coastguard Worker        // target below does not allow adding header_libs.
183*ec779b8eSAndroid Build Coastguard Worker        "libbinder_headers",
184*ec779b8eSAndroid Build Coastguard Worker        "libstagefright_foundation_headers",
185*ec779b8eSAndroid Build Coastguard Worker        "media_ndk_headers",
186*ec779b8eSAndroid Build Coastguard Worker        "media_plugin_headers",
187*ec779b8eSAndroid Build Coastguard Worker    ],
188*ec779b8eSAndroid Build Coastguard Worker
189*ec779b8eSAndroid Build Coastguard Worker    local_include_dirs: [
190*ec779b8eSAndroid Build Coastguard Worker        "include/media/stagefright/foundation",
191*ec779b8eSAndroid Build Coastguard Worker    ],
192*ec779b8eSAndroid Build Coastguard Worker
193*ec779b8eSAndroid Build Coastguard Worker    cflags: [
194*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
195*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
196*ec779b8eSAndroid Build Coastguard Worker    ],
197*ec779b8eSAndroid Build Coastguard Worker
198*ec779b8eSAndroid Build Coastguard Worker    srcs: [
199*ec779b8eSAndroid Build Coastguard Worker        "ColorUtils_ndk.cpp",
200*ec779b8eSAndroid Build Coastguard Worker        "ColorUtils_fill.cpp",
201*ec779b8eSAndroid Build Coastguard Worker    ],
202*ec779b8eSAndroid Build Coastguard Worker
203*ec779b8eSAndroid Build Coastguard Worker    sanitize: {
204*ec779b8eSAndroid Build Coastguard Worker        misc_undefined: [
205*ec779b8eSAndroid Build Coastguard Worker            "unsigned-integer-overflow",
206*ec779b8eSAndroid Build Coastguard Worker            "signed-integer-overflow",
207*ec779b8eSAndroid Build Coastguard Worker        ],
208*ec779b8eSAndroid Build Coastguard Worker        cfi: true,
209*ec779b8eSAndroid Build Coastguard Worker    },
210*ec779b8eSAndroid Build Coastguard Worker
211*ec779b8eSAndroid Build Coastguard Worker    min_sdk_version: "29",
212*ec779b8eSAndroid Build Coastguard Worker    apex_available: [
213*ec779b8eSAndroid Build Coastguard Worker        "//apex_available:platform",
214*ec779b8eSAndroid Build Coastguard Worker        "com.android.media",
215*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.swcodec",
216*ec779b8eSAndroid Build Coastguard Worker    ],
217*ec779b8eSAndroid Build Coastguard Worker
218*ec779b8eSAndroid Build Coastguard Worker}
219